@fncts/observable 0.0.26 → 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 (149) 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 +14 -5
  10. package/Subscriber.d.ts +23 -8
  11. package/Subscription.d.ts +2 -2
  12. package/_cjs/Action.cjs +1 -1
  13. package/_cjs/AnimationFrameAction.cjs +2 -2
  14. package/_cjs/AnimationFrameScheduler.cjs +2 -2
  15. package/_cjs/AsyncAction.cjs +4 -4
  16. package/_cjs/AsyncAction.cjs.map +1 -1
  17. package/_cjs/AsyncScheduler.cjs +2 -2
  18. package/_cjs/BehaviorSubject.cjs +2 -2
  19. package/_cjs/BehaviorSubject.cjs.map +1 -1
  20. package/_cjs/Observable/api/connect.cjs +7 -7
  21. package/_cjs/Observable/api/connect.cjs.map +1 -1
  22. package/_cjs/Observable/api/connectable.cjs +4 -4
  23. package/_cjs/Observable/api/connectable.cjs.map +1 -1
  24. package/_cjs/Observable/api/fromCallback.cjs +2 -2
  25. package/_cjs/Observable/api/fromEvent.cjs +1 -1
  26. package/_cjs/Observable/api/race.cjs +4 -4
  27. package/_cjs/Observable/api/race.cjs.map +1 -1
  28. package/_cjs/Observable/api/raceWith.cjs +3 -4
  29. package/_cjs/Observable/api/raceWith.cjs.map +1 -1
  30. package/_cjs/Observable/api/repeatWhen.cjs +9 -8
  31. package/_cjs/Observable/api/repeatWhen.cjs.map +1 -1
  32. package/_cjs/Observable/api/retryWhen.cjs +9 -8
  33. package/_cjs/Observable/api/retryWhen.cjs.map +1 -1
  34. package/_cjs/Observable/api/share.cjs +9 -9
  35. package/_cjs/Observable/api/share.cjs.map +1 -1
  36. package/_cjs/Observable/api/window.cjs +12 -11
  37. package/_cjs/Observable/api/window.cjs.map +1 -1
  38. package/_cjs/Observable/api/windowCount.cjs +12 -10
  39. package/_cjs/Observable/api/windowCount.cjs.map +1 -1
  40. package/_cjs/Observable/api/windowTime.cjs +12 -11
  41. package/_cjs/Observable/api/windowTime.cjs.map +1 -1
  42. package/_cjs/Observable/api/windowToggle.cjs +26 -24
  43. package/_cjs/Observable/api/windowToggle.cjs.map +1 -1
  44. package/_cjs/Observable/api/windowWhen.cjs +17 -15
  45. package/_cjs/Observable/api/windowWhen.cjs.map +1 -1
  46. package/_cjs/Observable/api.cjs +325 -311
  47. package/_cjs/Observable/api.cjs.map +1 -1
  48. package/_cjs/Observable/definition.cjs +7 -14
  49. package/_cjs/Observable/definition.cjs.map +1 -1
  50. package/_cjs/Observable/dom/animationFrames.cjs +3 -3
  51. package/_cjs/Observable/dom/animationFrames.cjs.map +1 -1
  52. package/_cjs/Observable.cjs +64 -64
  53. package/_cjs/Observable.cjs.map +1 -1
  54. package/_cjs/ObservableRef/api.cjs +2 -2
  55. package/_cjs/ObservableRef/atomic.cjs +2 -2
  56. package/_cjs/ObservableRef/definition.cjs +1 -1
  57. package/_cjs/ObservableRef.cjs +8 -8
  58. package/_cjs/ObservableRef.cjs.map +1 -1
  59. package/_cjs/Operator.cjs +9 -14
  60. package/_cjs/Operator.cjs.map +1 -1
  61. package/_cjs/Scheduler.cjs +2 -2
  62. package/_cjs/Subject.cjs +69 -43
  63. package/_cjs/Subject.cjs.map +1 -1
  64. package/_cjs/Subscriber.cjs +122 -70
  65. package/_cjs/Subscriber.cjs.map +1 -1
  66. package/_cjs/Subscription.cjs +7 -7
  67. package/_cjs/Subscription.cjs.map +1 -1
  68. package/_cjs/config.cjs +15 -0
  69. package/_cjs/config.cjs.map +1 -0
  70. package/_cjs/index.cjs +13 -13
  71. package/_cjs/internal/animationFrameProvider.cjs +1 -1
  72. package/_cjs/internal/args.cjs +1 -1
  73. package/_cjs/internal/util.cjs +2 -2
  74. package/_mjs/AsyncAction.mjs +3 -3
  75. package/_mjs/AsyncAction.mjs.map +1 -1
  76. package/_mjs/BehaviorSubject.mjs +1 -1
  77. package/_mjs/BehaviorSubject.mjs.map +1 -1
  78. package/_mjs/Observable/api/connect.mjs +6 -6
  79. package/_mjs/Observable/api/connect.mjs.map +1 -1
  80. package/_mjs/Observable/api/connectable.mjs +1 -1
  81. package/_mjs/Observable/api/connectable.mjs.map +1 -1
  82. package/_mjs/Observable/api/race.mjs +1 -1
  83. package/_mjs/Observable/api/race.mjs.map +1 -1
  84. package/_mjs/Observable/api/raceWith.mjs +3 -4
  85. package/_mjs/Observable/api/raceWith.mjs.map +1 -1
  86. package/_mjs/Observable/api/repeatWhen.mjs +9 -8
  87. package/_mjs/Observable/api/repeatWhen.mjs.map +1 -1
  88. package/_mjs/Observable/api/retryWhen.mjs +9 -8
  89. package/_mjs/Observable/api/retryWhen.mjs.map +1 -1
  90. package/_mjs/Observable/api/share.mjs +8 -8
  91. package/_mjs/Observable/api/share.mjs.map +1 -1
  92. package/_mjs/Observable/api/window.mjs +12 -11
  93. package/_mjs/Observable/api/window.mjs.map +1 -1
  94. package/_mjs/Observable/api/windowCount.mjs +12 -10
  95. package/_mjs/Observable/api/windowCount.mjs.map +1 -1
  96. package/_mjs/Observable/api/windowTime.mjs +11 -10
  97. package/_mjs/Observable/api/windowTime.mjs.map +1 -1
  98. package/_mjs/Observable/api/windowToggle.mjs +25 -23
  99. package/_mjs/Observable/api/windowToggle.mjs.map +1 -1
  100. package/_mjs/Observable/api/windowWhen.mjs +17 -15
  101. package/_mjs/Observable/api/windowWhen.mjs.map +1 -1
  102. package/_mjs/Observable/api.mjs +304 -290
  103. package/_mjs/Observable/api.mjs.map +1 -1
  104. package/_mjs/Observable/definition.mjs +2 -9
  105. package/_mjs/Observable/definition.mjs.map +1 -1
  106. package/_mjs/Observable/dom/animationFrames.mjs +1 -1
  107. package/_mjs/Observable/dom/animationFrames.mjs.map +1 -1
  108. package/_mjs/Observable.mjs +16 -18
  109. package/_mjs/Observable.mjs.map +1 -1
  110. package/_mjs/ObservableRef.mjs +2 -3
  111. package/_mjs/ObservableRef.mjs.map +1 -1
  112. package/_mjs/Operator.mjs +6 -11
  113. package/_mjs/Operator.mjs.map +1 -1
  114. package/_mjs/Subject.mjs +65 -39
  115. package/_mjs/Subject.mjs.map +1 -1
  116. package/_mjs/Subscriber.mjs +119 -67
  117. package/_mjs/Subscriber.mjs.map +1 -1
  118. package/_mjs/Subscription.mjs +6 -6
  119. package/_mjs/Subscription.mjs.map +1 -1
  120. package/_mjs/config.mjs +9 -0
  121. package/_mjs/config.mjs.map +1 -0
  122. package/_src/AsyncAction.ts +3 -3
  123. package/_src/BehaviorSubject.ts +1 -1
  124. package/_src/Observable/api/connect.ts +2 -2
  125. package/_src/Observable/api/connectable.ts +1 -1
  126. package/_src/Observable/api/race.ts +1 -1
  127. package/_src/Observable/api/raceWith.ts +2 -5
  128. package/_src/Observable/api/repeatWhen.ts +4 -4
  129. package/_src/Observable/api/retryWhen.ts +3 -3
  130. package/_src/Observable/api/share.ts +6 -6
  131. package/_src/Observable/api/window.ts +3 -3
  132. package/_src/Observable/api/windowCount.ts +30 -33
  133. package/_src/Observable/api/windowTime.ts +4 -4
  134. package/_src/Observable/api/windowToggle.ts +19 -21
  135. package/_src/Observable/api/windowWhen.ts +10 -13
  136. package/_src/Observable/api.ts +358 -363
  137. package/_src/Observable/definition.ts +2 -17
  138. package/_src/Observable/dom/animationFrames.ts +1 -1
  139. package/_src/Observable.ts +17 -18
  140. package/_src/ObservableRef.ts +2 -3
  141. package/_src/Operator.ts +9 -21
  142. package/_src/Subject.ts +66 -39
  143. package/_src/Subscriber.ts +134 -59
  144. package/_src/Subscription.ts +8 -8
  145. package/_src/config.ts +40 -0
  146. package/_src/global.ts +1 -1
  147. package/config.d.ts +36 -0
  148. package/global.d.ts +1 -1
  149. package/package.json +2 -2
@@ -121,29 +121,29 @@ exports.unit = void 0;
121
121
  exports.zip = zip;
122
122
  exports.zipWith = exports.zipLatest = void 0;
123
123
  exports.zipWithLatest = zipWithLatest;
124
- var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Cause/api"));
125
- var _util = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/observable/internal/util"));
124
+ var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Cause/api"));
125
+ var _util = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/observable/internal/util"));
126
126
  var tsplus_module_2 = _util;
127
- var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/util/predicates"));
128
- var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO"));
129
- var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/observable/AsyncScheduler"));
130
- var tsplus_module_6 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/observable/Subscription"));
131
- var _Scheduler = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/observable/Scheduler"));
127
+ var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/util/predicates"));
128
+ var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/IO"));
129
+ var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/observable/AsyncScheduler"));
130
+ var tsplus_module_6 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/observable/Subscription"));
131
+ var _Scheduler = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/observable/Scheduler"));
132
132
  var tsplus_module_7 = _Scheduler;
133
- var tsplus_module_8 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/observable/Operator"));
134
- var tsplus_module_9 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/api/environment"));
135
- var tsplus_module_10 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/IO/runtime"));
136
- var tsplus_module_11 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Exit/api"));
137
- var tsplus_module_12 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/io/Fiber/api/interrupt"));
138
- var tsplus_module_13 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/function/api"));
139
- var tsplus_module_14 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Either/destructors"));
140
- var tsplus_module_15 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/destructors"));
141
- var tsplus_module_16 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Environment/api"));
142
- var tsplus_module_17 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/constructors"));
143
- var tsplus_module_18 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Maybe/definition"));
144
- var tsplus_module_19 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/data/Either/constructors"));
145
- var tsplus_module_20 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/observable/Notification"));
146
- var tsplus_module_21 = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@fncts/base/collection/immutable/HashSet/api"));
133
+ var tsplus_module_8 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/observable/Operator"));
134
+ var tsplus_module_9 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/IO/api/environment"));
135
+ var tsplus_module_10 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/IO/runtime"));
136
+ var tsplus_module_11 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Exit/api"));
137
+ var tsplus_module_12 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/Fiber/api/interrupt"));
138
+ var tsplus_module_13 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/function/api"));
139
+ var tsplus_module_14 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Either/destructors"));
140
+ var tsplus_module_15 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Maybe/destructors"));
141
+ var tsplus_module_16 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Environment/api"));
142
+ var tsplus_module_17 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Maybe/constructors"));
143
+ var tsplus_module_18 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Maybe/definition"));
144
+ var tsplus_module_19 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Either/constructors"));
145
+ var tsplus_module_20 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/observable/Notification"));
146
+ var tsplus_module_21 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/collection/immutable/HashSet/api"));
147
147
  var _args = /*#__PURE__*/require("@fncts/observable/internal/args");
148
148
  var _definition2 = /*#__PURE__*/require("@fncts/observable/Observable/definition");
149
149
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
@@ -270,7 +270,7 @@ function from_1(input) {
270
270
  }
271
271
  function fromArrayLike(input) {
272
272
  return new _definition2.Observable(s => {
273
- for (let i = 0; i < input.length && !s.closed; i++) {
273
+ for (let i = 0; i < input.length && !s._closed; i++) {
274
274
  s.next(input[i]);
275
275
  }
276
276
  s.complete();
@@ -285,7 +285,7 @@ function fromIterable(iterable) {
285
285
  return new _definition2.Observable(s => {
286
286
  for (const value of iterable) {
287
287
  s.next(value);
288
- if (s.closed) {
288
+ if (s._closed) {
289
289
  return;
290
290
  }
291
291
  }
@@ -295,7 +295,7 @@ function fromIterable(iterable) {
295
295
  function fromPromise(promise) {
296
296
  return new _definition2.Observable(s => {
297
297
  promise.then(value => {
298
- if (!s.closed) {
298
+ if (!s._closed) {
299
299
  s.next(value);
300
300
  s.complete();
301
301
  }
@@ -338,7 +338,7 @@ function iterate(options) {
338
338
  async function process(asyncIterable, subscriber) {
339
339
  for await (const value of asyncIterable) {
340
340
  subscriber.next(value);
341
- if (subscriber.closed) {
341
+ if (subscriber._closed) {
342
342
  return;
343
343
  }
344
344
  }
@@ -404,7 +404,7 @@ function scheduleArray(input, scheduler) {
404
404
  s.complete();
405
405
  } else {
406
406
  s.next(input[i++]);
407
- if (!s.closed) {
407
+ if (!s._closed) {
408
408
  this.schedule();
409
409
  }
410
410
  }
@@ -502,7 +502,7 @@ function timer_1(time = 0, intervalOrScheduler, scheduler = tsplus_module_5.asyn
502
502
  }
503
503
  let n = 0;
504
504
  return scheduler.schedule(function () {
505
- if (!s.closed) {
505
+ if (!s._closed) {
506
506
  s.next(n++);
507
507
  if (0 <= intervalDuration) {
508
508
  this.schedule(undefined, intervalDuration);
@@ -523,7 +523,7 @@ function makeZip(...sources) {
523
523
  subscriber.add(() => {
524
524
  buffers = completed = null;
525
525
  });
526
- for (let sourceIndex = 0; !subscriber.closed && sourceIndex < sources.length; sourceIndex++) {
526
+ for (let sourceIndex = 0; !subscriber._closed && sourceIndex < sources.length; sourceIndex++) {
527
527
  from_1(sources[sourceIndex]).provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
528
528
  next: value => {
529
529
  buffers[sourceIndex].push(value);
@@ -555,7 +555,7 @@ function fromIO_1(io, scheduler = tsplus_module_5.asyncScheduler) {
555
555
  const scheduled = scheduler.schedule(() => {
556
556
  fiber = tsplus_module_10.unsafeRunFiber(tsplus_module_9.provideEnvironment(env, fileName_1 + ":487:36")(io), fileName_1 + ":487:56");
557
557
  fiber.addObserver(exit => {
558
- if (!s.closed) {
558
+ if (!s._closed) {
559
559
  tsplus_module_11.match(cause => s.error(cause), a => s.next(a))(exit);
560
560
  s.complete();
561
561
  }
@@ -600,14 +600,14 @@ function ap(fa) {
600
600
  */
601
601
  function mapWithIndex_1(f) {
602
602
  return fa => {
603
- return tsplus_module_8.operate_((source, subscriber, environment) => {
603
+ return new _definition2.Observable((destination, environment) => {
604
604
  let i = 0;
605
- source.provideEnvironment(environment).subscribe(new tsplus_module_8.OperatorSubscriber(subscriber, {
605
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
606
606
  next: value => {
607
- subscriber.next(f(i++, value));
607
+ destination.next(f(i++, value));
608
608
  }
609
- }));
610
- })(fa);
609
+ })(destination));
610
+ });
611
611
  };
612
612
  }
613
613
  /**
@@ -631,21 +631,21 @@ function as_1(b) {
631
631
  */
632
632
  function mapError(f) {
633
633
  return fa => {
634
- return tsplus_module_8.operate_((source, subscriber, environment) => {
635
- source.provideEnvironment(environment).subscribe(new tsplus_module_8.OperatorSubscriber(subscriber, {
634
+ return new _definition2.Observable((subscriber, environment) => {
635
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
636
636
  error: err => {
637
637
  subscriber.error(tsplus_module_1.map(f)(err));
638
638
  }
639
- }));
640
- })(fa);
639
+ })(subscriber));
640
+ });
641
641
  };
642
642
  }
643
643
  /**
644
644
  * @tsplus getter fncts.observable.Observable swap
645
645
  */
646
646
  function swap(fa) {
647
- return tsplus_module_8.operate_((source, subscriber, environment) => {
648
- source.provideEnvironment(environment).subscribe(new tsplus_module_8.OperatorSubscriber(subscriber, {
647
+ return new _definition2.Observable((subscriber, environment) => {
648
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
649
649
  next: value => {
650
650
  subscriber.error(tsplus_module_1.fail(value));
651
651
  },
@@ -656,17 +656,17 @@ function swap(fa) {
656
656
  subscriber.error(cause);
657
657
  })(tsplus_module_1.failureOrCause(err));
658
658
  }
659
- }));
660
- })(fa);
659
+ })(subscriber));
660
+ });
661
661
  }
662
662
  function filterWithIndex_1(predicate) {
663
663
  return fa => {
664
- return tsplus_module_8.operate_((source, subscriber, environment) => {
664
+ return new _definition2.Observable((subscriber, environment) => {
665
665
  let index = 0;
666
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
666
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
667
667
  next: value => predicate(index++, value) && subscriber.next(value)
668
- }));
669
- })(fa);
668
+ })(subscriber));
669
+ });
670
670
  };
671
671
  }
672
672
  function filter(predicate) {
@@ -679,12 +679,12 @@ function filter(predicate) {
679
679
  */
680
680
  function filterMapWithIndex_1(f) {
681
681
  return fa => {
682
- return tsplus_module_8.operate_((source, subscriber, environment) => {
682
+ return new _definition2.Observable((subscriber, environment) => {
683
683
  let index = 0;
684
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
684
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
685
685
  next: value => tsplus_module_15.match(() => tsplus_module_2.noop, b => subscriber.next(b))(f(index++, value))
686
- }));
687
- })(fa);
686
+ })(subscriber));
687
+ });
688
688
  };
689
689
  }
690
690
  /**
@@ -710,21 +710,21 @@ function partition(predicate) {
710
710
  */
711
711
  function partitionMapWithIndex_1(f) {
712
712
  return fa => {
713
- return [tsplus_module_8.operate_((source, subscriber, environment) => {
713
+ return [new _definition2.Observable((subscriber, environment) => {
714
714
  let index = 0;
715
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
715
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
716
716
  next: value => {
717
717
  tsplus_module_14.match(b => subscriber.next(b), tsplus_module_2.noop)(f(index++, value));
718
718
  }
719
- }));
720
- })(fa), tsplus_module_8.operate_((source, subscriber, environment) => {
719
+ })(subscriber));
720
+ }), new _definition2.Observable((subscriber, environment) => {
721
721
  let index = 0;
722
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
722
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
723
723
  next: value => {
724
724
  tsplus_module_14.match(tsplus_module_2.noop, c => subscriber.next(c))(f(index++, value));
725
725
  }
726
- }));
727
- })(fa)];
726
+ })(subscriber));
727
+ })];
728
728
  };
729
729
  }
730
730
  /**
@@ -748,7 +748,9 @@ function provideService(service, /** @tsplus auto */tag) {
748
748
  */
749
749
  function mergeMapWithIndex_1(f, concurrent = Infinity) {
750
750
  return ma => {
751
- return tsplus_module_8.operate_((source, sub, environment) => mergeInternal(source, sub, environment, f, concurrent))(ma);
751
+ return new _definition2.Observable((subscriber, environment) => {
752
+ return mergeInternal(ma, subscriber, environment, f, concurrent);
753
+ });
752
754
  };
753
755
  }
754
756
  /**
@@ -794,7 +796,9 @@ function flatten(mma) {
794
796
  */
795
797
  function foldLeftWithIndex_1(initial, f) {
796
798
  return fa => {
797
- return tsplus_module_8.operate_(scanInternal(f, initial, true, false, true))(fa);
799
+ return new _definition2.Observable((subscriber, environment) => {
800
+ return scanInternal(fa, subscriber, environment, f, initial, true, false, true);
801
+ });
798
802
  };
799
803
  }
800
804
  /**
@@ -810,7 +814,7 @@ function foldLeft_1(initial, f) {
810
814
  */
811
815
  function at(index) {
812
816
  return fa => {
813
- return onEmpty_1(() => tsplus_module_17.nothing(fileName_1 + ":839:29"))(map_1(tsplus_module_17.just)(take_1(1)(filterWithIndex_1(i => i === index)(fa))));
817
+ 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))));
814
818
  };
815
819
  }
816
820
  /**
@@ -818,8 +822,8 @@ function at(index) {
818
822
  */
819
823
  function audit_1(durationSelector) {
820
824
  return fa => {
821
- return tsplus_module_8.operate_((source, subscriber, environment) => {
822
- let lastValue = tsplus_module_17.nothing(fileName_1 + ":849:40");
825
+ return new _definition2.Observable((subscriber, environment) => {
826
+ let lastValue = tsplus_module_17.nothing(fileName_1 + ":853:40");
823
827
  let durationSubscriber = null;
824
828
  let isComplete = false;
825
829
  const endDuration = () => {
@@ -829,7 +833,7 @@ function audit_1(durationSelector) {
829
833
  const {
830
834
  value
831
835
  } = lastValue;
832
- lastValue = tsplus_module_17.nothing(fileName_1 + ":857:36");
836
+ lastValue = tsplus_module_17.nothing(fileName_1 + ":861:36");
833
837
  subscriber.next(value);
834
838
  }
835
839
  isComplete && subscriber.complete();
@@ -838,9 +842,9 @@ function audit_1(durationSelector) {
838
842
  durationSubscriber = null;
839
843
  isComplete && subscriber.complete();
840
844
  };
841
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
845
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
842
846
  next: value => {
843
- lastValue = tsplus_module_17.just(value, fileName_1 + ":869:29");
847
+ lastValue = tsplus_module_17.just(value, fileName_1 + ":873:29");
844
848
  if (!durationSubscriber) {
845
849
  from_1(durationSelector(value)).provideEnvironment(environment).subscribe(durationSubscriber = tsplus_module_8.operatorSubscriber(subscriber, {
846
850
  next: endDuration,
@@ -850,10 +854,10 @@ function audit_1(durationSelector) {
850
854
  },
851
855
  complete: () => {
852
856
  isComplete = true;
853
- (tsplus_module_18.isNothing(lastValue) || !durationSubscriber || durationSubscriber.closed) && subscriber.complete();
857
+ (tsplus_module_18.isNothing(lastValue) || !durationSubscriber || durationSubscriber._closed) && subscriber.complete();
854
858
  }
855
859
  }));
856
- })(fa);
860
+ });
857
861
  };
858
862
  }
859
863
  /**
@@ -869,27 +873,27 @@ function auditTime(duration, scheduler = tsplus_module_5.asyncScheduler) {
869
873
  */
870
874
  function buffer(closingNotifier) {
871
875
  return fa => {
872
- return tsplus_module_8.operate_((source, subscriber, environment) => {
876
+ return new _definition2.Observable((subscriber, environment) => {
873
877
  let buffer = [];
874
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
878
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
875
879
  next: value => buffer.push(value),
876
880
  complete: () => {
877
881
  subscriber.next(buffer);
878
882
  subscriber.complete();
879
883
  }
880
- }));
881
- closingNotifier.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
884
+ })(subscriber));
885
+ closingNotifier.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
882
886
  next: () => {
883
887
  const b = buffer;
884
888
  buffer = [];
885
889
  subscriber.next(b);
886
890
  },
887
891
  complete: tsplus_module_2.noop
888
- }));
892
+ })(subscriber));
889
893
  return () => {
890
894
  buffer = null;
891
895
  };
892
- })(fa);
896
+ });
893
897
  };
894
898
  }
895
899
  /**
@@ -898,10 +902,10 @@ function buffer(closingNotifier) {
898
902
  function bufferCount(bufferSize, startBufferEvery) {
899
903
  return fa => {
900
904
  startBufferEvery = startBufferEvery ?? bufferSize;
901
- return tsplus_module_8.operate_((source, subscriber, environment) => {
905
+ return new _definition2.Observable((subscriber, environment) => {
902
906
  let buffers = [];
903
907
  let count = 0;
904
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
908
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
905
909
  next: value => {
906
910
  let toEmit = null;
907
911
  if (count++ % startBufferEvery === 0) {
@@ -926,11 +930,12 @@ function bufferCount(bufferSize, startBufferEvery) {
926
930
  subscriber.next(buffer);
927
931
  }
928
932
  subscriber.complete();
933
+ },
934
+ finalize: () => {
935
+ buffers = null;
929
936
  }
930
- }, () => {
931
- buffers = null;
932
- }));
933
- })(fa);
937
+ })(subscriber));
938
+ });
934
939
  };
935
940
  }
936
941
  /**
@@ -944,7 +949,7 @@ function bufferTime(config) {
944
949
  maxBufferSize = Infinity,
945
950
  scheduler = tsplus_module_5.asyncScheduler
946
951
  } = config;
947
- return tsplus_module_8.operate_((source, subscriber, environment) => {
952
+ return new _definition2.Observable((subscriber, environment) => {
948
953
  let bufferRecords = [];
949
954
  let restartOnEmit = true;
950
955
  const emit = record => {
@@ -972,10 +977,10 @@ function bufferTime(config) {
972
977
  };
973
978
  bufferCreationInterval !== null && bufferCreationInterval >= 0 ? subscriber.add(scheduler.schedule(function () {
974
979
  startBuffer();
975
- !this.closed && subscriber.add(this.schedule(null, bufferCreationInterval));
980
+ !this._closed && subscriber.add(this.schedule(null, bufferCreationInterval));
976
981
  }, bufferCreationInterval)) : restartOnEmit = true;
977
982
  startBuffer();
978
- const bufferTimeSubscriber = tsplus_module_8.operatorSubscriber(subscriber, {
983
+ const bufferTimeSubscriber = tsplus_module_8.operate_({
979
984
  next: value => {
980
985
  const recordsCopy = bufferRecords.slice();
981
986
  for (const record of recordsCopy) {
@@ -993,10 +998,13 @@ function bufferTime(config) {
993
998
  bufferTimeSubscriber?.unsubscribe();
994
999
  subscriber.complete();
995
1000
  subscriber.unsubscribe();
1001
+ },
1002
+ finalize: () => {
1003
+ bufferRecords = null;
996
1004
  }
997
- }, () => bufferRecords = null);
998
- source.provideEnvironment(environment).subscribe(bufferTimeSubscriber);
999
- })(fa);
1005
+ })(subscriber);
1006
+ return fa.provideEnvironment(environment).subscribe(bufferTimeSubscriber);
1007
+ });
1000
1008
  };
1001
1009
  }
1002
1010
  /**
@@ -1004,7 +1012,7 @@ function bufferTime(config) {
1004
1012
  */
1005
1013
  function bufferToggle(openings, closingSelector) {
1006
1014
  return fa => {
1007
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1015
+ return new _definition2.Observable((subscriber, environment) => {
1008
1016
  const buffers = [];
1009
1017
  from_1(openings).provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1010
1018
  next: openValue => {
@@ -1023,7 +1031,7 @@ function bufferToggle(openings, closingSelector) {
1023
1031
  },
1024
1032
  complete: tsplus_module_2.noop
1025
1033
  }));
1026
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1034
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1027
1035
  next: value => {
1028
1036
  for (const buffer of buffers) {
1029
1037
  buffer.push(value);
@@ -1035,8 +1043,8 @@ function bufferToggle(openings, closingSelector) {
1035
1043
  }
1036
1044
  subscriber.complete();
1037
1045
  }
1038
- }));
1039
- })(fa);
1046
+ })(subscriber));
1047
+ });
1040
1048
  };
1041
1049
  }
1042
1050
  /**
@@ -1044,7 +1052,7 @@ function bufferToggle(openings, closingSelector) {
1044
1052
  */
1045
1053
  function bufferWhen(closingSelector) {
1046
1054
  return fa => {
1047
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1055
+ return new _definition2.Observable((subscriber, environment) => {
1048
1056
  let buffer = null;
1049
1057
  let closingSubscriber = null;
1050
1058
  const openBuffer = () => {
@@ -1058,14 +1066,15 @@ function bufferWhen(closingSelector) {
1058
1066
  }));
1059
1067
  };
1060
1068
  openBuffer();
1061
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1069
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1062
1070
  next: value => buffer?.push(value),
1063
1071
  complete: () => {
1064
1072
  buffer && subscriber.next(buffer);
1065
1073
  subscriber.complete();
1066
- }
1067
- }, () => buffer = closingSubscriber = null));
1068
- })(fa);
1074
+ },
1075
+ finalize: () => buffer = closingSubscriber = null
1076
+ })(subscriber));
1077
+ });
1069
1078
  };
1070
1079
  }
1071
1080
  /**
@@ -1073,13 +1082,13 @@ function bufferWhen(closingSelector) {
1073
1082
  */
1074
1083
  function catchAllCause_1(f) {
1075
1084
  return self => {
1076
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1085
+ return new _definition2.Observable((subscriber, environment) => {
1077
1086
  let innerSub = null;
1078
1087
  let syncUnsub = false;
1079
1088
  let handledResult;
1080
- innerSub = source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1089
+ innerSub = self.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1081
1090
  error: cause => {
1082
- handledResult = from_1(f(cause, catchAllCause_1(f)(source)));
1091
+ handledResult = from_1(f(cause, catchAllCause_1(f)(self)));
1083
1092
  if (innerSub) {
1084
1093
  innerSub.unsubscribe();
1085
1094
  innerSub = null;
@@ -1088,13 +1097,13 @@ function catchAllCause_1(f) {
1088
1097
  syncUnsub = true;
1089
1098
  }
1090
1099
  }
1091
- }));
1100
+ })(subscriber));
1092
1101
  if (syncUnsub) {
1093
1102
  innerSub.unsubscribe();
1094
1103
  innerSub = null;
1095
1104
  handledResult.provideEnvironment(environment).subscribe(subscriber);
1096
1105
  }
1097
- })(self);
1106
+ });
1098
1107
  };
1099
1108
  }
1100
1109
  /**
@@ -1108,9 +1117,9 @@ function concatAll_1(ffa) {
1108
1117
  */
1109
1118
  function concat_1(...sources) {
1110
1119
  return fa => {
1111
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1112
- concatAll_1(fromArrayLike([source, ...sources])).provideEnvironment(environment).subscribe(subscriber);
1113
- })(fa);
1120
+ return new _definition2.Observable((subscriber, environment) => {
1121
+ return concatAll_1(fromArrayLike([fa, ...sources])).provideEnvironment(environment).subscribe(subscriber);
1122
+ });
1114
1123
  };
1115
1124
  }
1116
1125
  /**
@@ -1147,11 +1156,11 @@ function combineLatestAll(fa) {
1147
1156
  function zipLatest_1(...sources) {
1148
1157
  return self => {
1149
1158
  if (!sources.length) {
1150
- return from_1(self).unsafeCoerce();
1159
+ return from_1(self);
1151
1160
  }
1152
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1153
- combineLatestInternal(subscriber, environment, [source, ...sources]);
1154
- })(from_1(self));
1161
+ return new _definition2.Observable((subscriber, environment) => {
1162
+ return combineLatestInternal(subscriber, environment, [self, ...sources]);
1163
+ });
1155
1164
  };
1156
1165
  }
1157
1166
  /**
@@ -1167,8 +1176,8 @@ function zipWithLatest(that, f) {
1167
1176
  */
1168
1177
  function debounceWith(durationSelector) {
1169
1178
  return fa => {
1170
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1171
- let lastValue = tsplus_module_17.nothing(fileName_1 + ":1287:40");
1179
+ return new _definition2.Observable((subscriber, environment) => {
1180
+ let lastValue = tsplus_module_17.nothing(fileName_1 + ":1288:40");
1172
1181
  let durationSubscriber = null;
1173
1182
  const emit = () => {
1174
1183
  durationSubscriber?.unsubscribe();
@@ -1177,28 +1186,29 @@ function debounceWith(durationSelector) {
1177
1186
  const {
1178
1187
  value
1179
1188
  } = lastValue;
1180
- lastValue = tsplus_module_17.nothing(fileName_1 + ":1294:36");
1189
+ lastValue = tsplus_module_17.nothing(fileName_1 + ":1295:36");
1181
1190
  subscriber.next(value);
1182
1191
  }
1183
1192
  };
1184
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1193
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1185
1194
  next: value => {
1186
1195
  durationSubscriber?.unsubscribe();
1187
- lastValue = tsplus_module_17.just(value, fileName_1 + ":1304:40");
1188
- durationSubscriber = tsplus_module_8.operatorSubscriber(subscriber, {
1196
+ lastValue = tsplus_module_17.just(value, fileName_1 + ":1303:38");
1197
+ durationSubscriber = tsplus_module_8.operate_({
1189
1198
  next: emit,
1190
1199
  complete: tsplus_module_2.noop
1191
- });
1200
+ })(subscriber);
1192
1201
  from_1(durationSelector(value)).provideEnvironment(environment).subscribe(durationSubscriber);
1193
1202
  },
1194
1203
  complete: () => {
1195
1204
  emit();
1196
1205
  subscriber.complete();
1206
+ },
1207
+ finalize: () => {
1208
+ lastValue = durationSubscriber = null;
1197
1209
  }
1198
- }, () => {
1199
- lastValue = durationSubscriber = null;
1200
- }));
1201
- })(fa);
1210
+ })(subscriber));
1211
+ });
1202
1212
  };
1203
1213
  }
1204
1214
  /**
@@ -1206,7 +1216,7 @@ function debounceWith(durationSelector) {
1206
1216
  */
1207
1217
  function debounce(dueTime, scheduler = tsplus_module_5.asyncScheduler) {
1208
1218
  return fa => {
1209
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1219
+ return new _definition2.Observable((subscriber, environment) => {
1210
1220
  let activeTask = null;
1211
1221
  let lastValue = null;
1212
1222
  let lastTime = null;
@@ -1229,7 +1239,7 @@ function debounce(dueTime, scheduler = tsplus_module_5.asyncScheduler) {
1229
1239
  }
1230
1240
  emit();
1231
1241
  }
1232
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1242
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1233
1243
  next: value => {
1234
1244
  lastValue = value;
1235
1245
  lastTime = scheduler.now();
@@ -1241,27 +1251,28 @@ function debounce(dueTime, scheduler = tsplus_module_5.asyncScheduler) {
1241
1251
  complete: () => {
1242
1252
  emit();
1243
1253
  subscriber.complete();
1254
+ },
1255
+ finalize: () => {
1256
+ lastValue = activeTask = null;
1244
1257
  }
1245
- }, () => {
1246
- lastValue = activeTask = null;
1247
- }));
1248
- })(fa);
1258
+ })(subscriber));
1259
+ });
1249
1260
  };
1250
1261
  }
1251
1262
  /**
1252
1263
  * @tsplus getter fncts.observable.Observable either
1253
1264
  */
1254
1265
  function either(fa) {
1255
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1256
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1266
+ return new _definition2.Observable((subscriber, environment) => {
1267
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1257
1268
  next: value => {
1258
- subscriber.next(tsplus_module_19.right(value, fileName_1 + ":1384:39"));
1269
+ subscriber.next(tsplus_module_19.right(value, fileName_1 + ":1379:39"));
1259
1270
  },
1260
1271
  error: error => {
1261
- tsplus_module_14.match(e => subscriber.next(tsplus_module_19.left(e, fileName_1 + ":1388:47")), cause => subscriber.error(cause))(tsplus_module_1.failureOrCause(error));
1272
+ 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));
1262
1273
  }
1263
- }));
1264
- })(fa);
1274
+ })(subscriber));
1275
+ });
1265
1276
  }
1266
1277
  /**
1267
1278
  * @tsplus pipeable fncts.observable.Observable delayWithIndex
@@ -1292,39 +1303,39 @@ function delay(due, scheduler = tsplus_module_5.asyncScheduler) {
1292
1303
  * @tsplus getter fncts.observable.Observable dematerialize
1293
1304
  */
1294
1305
  function dematerialize(fa) {
1295
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1296
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1306
+ return new _definition2.Observable((subscriber, environment) => {
1307
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1297
1308
  next: notification => tsplus_module_20.observe(subscriber)(notification)
1298
- }));
1299
- })(fa);
1309
+ })(subscriber));
1310
+ });
1300
1311
  }
1301
1312
  /**
1302
1313
  * @tsplus pipeable fncts.observable.Observable ensuring
1303
1314
  */
1304
1315
  function ensuring(finalizer) {
1305
1316
  return fa => {
1306
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1307
- source.provideEnvironment(environment).subscribe(subscriber);
1317
+ return new _definition2.Observable((subscriber, environment) => {
1308
1318
  subscriber.add(finalizer);
1309
- })(fa);
1319
+ return fa.provideEnvironment(environment).subscribe(subscriber);
1320
+ });
1310
1321
  };
1311
1322
  }
1312
1323
  /**
1313
1324
  * @tsplus getter fncts.observable.Observable exhaustAll
1314
1325
  */
1315
1326
  function exhaustAll(ffa) {
1316
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1327
+ return new _definition2.Observable((subscriber, environment) => {
1317
1328
  let isComplete = false;
1318
1329
  let innerSub = null;
1319
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1330
+ return ffa.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1320
1331
  next: inner => {
1321
1332
  if (!innerSub) {
1322
- innerSub = from_1(inner).provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1333
+ innerSub = from_1(inner).provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1323
1334
  complete: () => {
1324
1335
  innerSub = null;
1325
1336
  isComplete && subscriber.complete();
1326
1337
  }
1327
- }));
1338
+ })(subscriber));
1328
1339
  }
1329
1340
  },
1330
1341
  complete: () => {
@@ -1332,26 +1343,26 @@ function exhaustAll(ffa) {
1332
1343
  !innerSub && subscriber.complete();
1333
1344
  }
1334
1345
  }));
1335
- })(ffa);
1346
+ });
1336
1347
  }
1337
1348
  /**
1338
1349
  * @tsplus pipeable fncts.observable.Observable exhaustMapWithIndex
1339
1350
  */
1340
1351
  function exhaustMapWithIndex_1(f) {
1341
1352
  return self => {
1342
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1353
+ return new _definition2.Observable((subscriber, environment) => {
1343
1354
  let index = 0;
1344
1355
  let innerSub = null;
1345
1356
  let isComplete = false;
1346
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1357
+ self.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1347
1358
  next: outerValue => {
1348
1359
  if (!innerSub) {
1349
- innerSub = tsplus_module_8.operatorSubscriber(subscriber, {
1360
+ innerSub = tsplus_module_8.operate_({
1350
1361
  complete: () => {
1351
1362
  innerSub = null;
1352
1363
  isComplete && subscriber.complete();
1353
1364
  }
1354
- });
1365
+ })(subscriber);
1355
1366
  from_1(f(index++, outerValue)).provideEnvironment(environment).subscribe(innerSub);
1356
1367
  }
1357
1368
  },
@@ -1359,8 +1370,8 @@ function exhaustMapWithIndex_1(f) {
1359
1370
  isComplete = true;
1360
1371
  !innerSub && subscriber.complete();
1361
1372
  }
1362
- }));
1363
- })(self);
1373
+ })(subscriber));
1374
+ });
1364
1375
  };
1365
1376
  }
1366
1377
  /**
@@ -1377,7 +1388,9 @@ function exhaustMap(f) {
1377
1388
  function expandWithIndex_1(f, concurrent = Infinity) {
1378
1389
  return fa => {
1379
1390
  concurrent = (concurrent || 0) < 1 ? Infinity : concurrent;
1380
- return tsplus_module_8.operate_((source, subscriber, environment) => mergeInternal(source, subscriber, environment, f, concurrent, undefined, true))(fa);
1391
+ return new _definition2.Observable((subscriber, environment) => {
1392
+ return mergeInternal(fa, subscriber, environment, f, concurrent, undefined, true);
1393
+ });
1381
1394
  };
1382
1395
  }
1383
1396
  /**
@@ -1390,7 +1403,7 @@ function expand(f, concurrent = Infinity) {
1390
1403
  }
1391
1404
  function findWithIndex_1(predicate) {
1392
1405
  return fa => {
1393
- return tsplus_module_8.operate_(findInternal(predicate, "value"))(fa);
1406
+ return new _definition2.Observable(findInternal(fa, predicate, "value"));
1394
1407
  };
1395
1408
  }
1396
1409
  function find(predicate) {
@@ -1400,7 +1413,7 @@ function find(predicate) {
1400
1413
  }
1401
1414
  function findIndexWithIndex_1(predicate) {
1402
1415
  return fa => {
1403
- return tsplus_module_8.operate_(findInternal(predicate, "index"))(fa);
1416
+ return new _definition2.Observable(findInternal(fa, predicate, "index"));
1404
1417
  };
1405
1418
  }
1406
1419
  function findIndex(predicate) {
@@ -1413,7 +1426,7 @@ function forkJoin(...args) {
1413
1426
  args: sources,
1414
1427
  keys
1415
1428
  } = (0, _util.arrayOrObject)(args);
1416
- return new _definition2.Observable(s => {
1429
+ return new _definition2.Observable((s, environment) => {
1417
1430
  const length = sources.length;
1418
1431
  if (!length) {
1419
1432
  s.complete();
@@ -1424,7 +1437,7 @@ function forkJoin(...args) {
1424
1437
  let remainingEmissions = length;
1425
1438
  for (let sourceIndex = 0; sourceIndex < length; sourceIndex++) {
1426
1439
  let hasValue = false;
1427
- from_1(sources[sourceIndex]).subscribe(tsplus_module_8.operatorSubscriber(s, {
1440
+ from_1(sources[sourceIndex]).provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1428
1441
  next: value => {
1429
1442
  if (!hasValue) {
1430
1443
  hasValue = true;
@@ -1444,7 +1457,7 @@ function forkJoin(...args) {
1444
1457
  s.complete();
1445
1458
  }
1446
1459
  }
1447
- }));
1460
+ })(s));
1448
1461
  }
1449
1462
  });
1450
1463
  }
@@ -1452,18 +1465,18 @@ function forkJoin(...args) {
1452
1465
  * @tsplus getter fncts.observable.Observable ignore
1453
1466
  */
1454
1467
  function ignore(fa) {
1455
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1456
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1468
+ return new _definition2.Observable((subscriber, environment) => {
1469
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1457
1470
  next: tsplus_module_2.noop
1458
- }));
1459
- })(fa);
1471
+ })(subscriber));
1472
+ });
1460
1473
  }
1461
1474
  /**
1462
1475
  * @tsplus getter fncts.observable.Observable isEmpty
1463
1476
  */
1464
1477
  function isEmpty(fa) {
1465
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1466
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1478
+ return new _definition2.Observable((subscriber, environment) => {
1479
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1467
1480
  next: () => {
1468
1481
  subscriber.next(false);
1469
1482
  subscriber.complete();
@@ -1472,15 +1485,15 @@ function isEmpty(fa) {
1472
1485
  subscriber.next(true);
1473
1486
  subscriber.complete();
1474
1487
  }
1475
- }));
1476
- })(fa);
1488
+ })(subscriber));
1489
+ });
1477
1490
  }
1478
1491
  /**
1479
1492
  * @tsplus getter fncts.observable.Observable materialize
1480
1493
  */
1481
1494
  function materialize(fa) {
1482
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1483
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1495
+ return new _definition2.Observable((subscriber, environment) => {
1496
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1484
1497
  next: value => {
1485
1498
  subscriber.next(tsplus_module_20.next(value));
1486
1499
  },
@@ -1490,8 +1503,8 @@ function materialize(fa) {
1490
1503
  complete: () => {
1491
1504
  subscriber.next(tsplus_module_20.complete());
1492
1505
  }
1493
- }));
1494
- })(fa);
1506
+ })(subscriber));
1507
+ });
1495
1508
  }
1496
1509
  /**
1497
1510
  * @tsplus pipeable fncts.observable.Observable mergeAll
@@ -1506,12 +1519,12 @@ function mergeAll_1(concurrent = Infinity) {
1506
1519
  */
1507
1520
  function mergeScanWithIndex_1(initial, f, concurrent = Infinity) {
1508
1521
  return fa => {
1509
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1522
+ return new _definition2.Observable((subscriber, environment) => {
1510
1523
  let state = initial;
1511
- return mergeInternal(source, subscriber, environment, (index, value) => f(index, state, value), concurrent, value => {
1524
+ return mergeInternal(fa, subscriber, environment, (index, value) => f(index, state, value), concurrent, value => {
1512
1525
  state = value;
1513
1526
  }, false, undefined, () => state = null);
1514
- })(fa);
1527
+ });
1515
1528
  };
1516
1529
  }
1517
1530
  /**
@@ -1523,10 +1536,10 @@ function mergeScan(initial, f, concurrent = Infinity) {
1523
1536
  };
1524
1537
  }
1525
1538
  function onErrorResumeNext(fa, ...sources) {
1526
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1527
- const remaining = [source, ...sources];
1539
+ return new _definition2.Observable((subscriber, environment) => {
1540
+ const remaining = [fa, ...sources];
1528
1541
  const subscribeNext = () => {
1529
- if (!subscriber.closed) {
1542
+ if (!subscriber._closed) {
1530
1543
  if (remaining.length > 0) {
1531
1544
  let nextSource;
1532
1545
  try {
@@ -1535,10 +1548,10 @@ function onErrorResumeNext(fa, ...sources) {
1535
1548
  subscribeNext();
1536
1549
  return;
1537
1550
  }
1538
- const innerSub = tsplus_module_8.operatorSubscriber(subscriber, {
1551
+ const innerSub = tsplus_module_8.operate_({
1539
1552
  error: tsplus_module_2.noop,
1540
1553
  complete: tsplus_module_2.noop
1541
- });
1554
+ })(subscriber);
1542
1555
  subscriber.add(nextSource.provideEnvironment(environment).subscribe(innerSub));
1543
1556
  innerSub.add(subscribeNext);
1544
1557
  } else {
@@ -1547,16 +1560,16 @@ function onErrorResumeNext(fa, ...sources) {
1547
1560
  }
1548
1561
  };
1549
1562
  subscribeNext();
1550
- })(fa);
1563
+ });
1551
1564
  }
1552
1565
  /**
1553
1566
  * @tsplus pipeable fncts.observable.Observable onEmpty
1554
1567
  */
1555
1568
  function onEmpty_1(f) {
1556
1569
  return fa => {
1557
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1570
+ return new _definition2.Observable((subscriber, environment) => {
1558
1571
  let hasValue = false;
1559
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1572
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1560
1573
  next: value => {
1561
1574
  hasValue = true;
1562
1575
  subscriber.next(value);
@@ -1567,8 +1580,8 @@ function onEmpty_1(f) {
1567
1580
  }
1568
1581
  subscriber.complete();
1569
1582
  }
1570
- }));
1571
- })(fa);
1583
+ })(subscriber));
1584
+ });
1572
1585
  };
1573
1586
  }
1574
1587
  /**
@@ -1576,12 +1589,12 @@ function onEmpty_1(f) {
1576
1589
  */
1577
1590
  function repeat(count = Infinity) {
1578
1591
  return fa => {
1579
- return count <= 0 ? empty_1() : tsplus_module_8.operate_((source, subscriber, environment) => {
1592
+ return count <= 0 ? empty_1() : new _definition2.Observable((subscriber, environment) => {
1580
1593
  let repeats = 0;
1581
1594
  let innerSub;
1582
1595
  const loop = () => {
1583
1596
  let syncUnsub = false;
1584
- innerSub = source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1597
+ innerSub = fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1585
1598
  complete: () => {
1586
1599
  if (++repeats < count) {
1587
1600
  if (innerSub) {
@@ -1595,7 +1608,7 @@ function repeat(count = Infinity) {
1595
1608
  subscriber.complete;
1596
1609
  }
1597
1610
  }
1598
- }));
1611
+ })(subscriber));
1599
1612
  if (syncUnsub) {
1600
1613
  innerSub.unsubscribe();
1601
1614
  innerSub = null;
@@ -1603,7 +1616,7 @@ function repeat(count = Infinity) {
1603
1616
  }
1604
1617
  };
1605
1618
  loop();
1606
- })(fa);
1619
+ });
1607
1620
  };
1608
1621
  }
1609
1622
  function retry(configOrCount = Infinity) {
@@ -1620,12 +1633,12 @@ function retry(configOrCount = Infinity) {
1620
1633
  count,
1621
1634
  resetOnSuccess = false
1622
1635
  } = config;
1623
- return count <= 0 ? fa : tsplus_module_8.operate_((source, subscriber, environment) => {
1636
+ return count <= 0 ? fa : new _definition2.Observable((subscriber, environment) => {
1624
1637
  let retries = 0;
1625
1638
  let innerSub;
1626
1639
  const loop = () => {
1627
1640
  let syncUnsub = false;
1628
- innerSub = source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1641
+ innerSub = fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1629
1642
  next: value => {
1630
1643
  if (resetOnSuccess) {
1631
1644
  retries = 0;
@@ -1645,7 +1658,7 @@ function retry(configOrCount = Infinity) {
1645
1658
  subscriber.error(err);
1646
1659
  }
1647
1660
  }
1648
- }));
1661
+ })(subscriber));
1649
1662
  if (syncUnsub) {
1650
1663
  innerSub.unsubscribe();
1651
1664
  innerSub = null;
@@ -1653,7 +1666,7 @@ function retry(configOrCount = Infinity) {
1653
1666
  }
1654
1667
  };
1655
1668
  loop();
1656
- })(fa);
1669
+ });
1657
1670
  };
1658
1671
  }
1659
1672
  /**
@@ -1661,15 +1674,15 @@ function retry(configOrCount = Infinity) {
1661
1674
  */
1662
1675
  function sample_1(notifier) {
1663
1676
  return fa => {
1664
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1677
+ return new _definition2.Observable((subscriber, environment) => {
1665
1678
  let hasValue = false;
1666
1679
  let lastValue = null;
1667
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1680
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1668
1681
  next: value => {
1669
1682
  hasValue = true;
1670
1683
  lastValue = value;
1671
1684
  }
1672
- }));
1685
+ })(subscriber));
1673
1686
  const emit = () => {
1674
1687
  if (hasValue) {
1675
1688
  hasValue = false;
@@ -1678,11 +1691,11 @@ function sample_1(notifier) {
1678
1691
  subscriber.next(value);
1679
1692
  }
1680
1693
  };
1681
- notifier.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1694
+ notifier.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1682
1695
  next: emit,
1683
1696
  complete: tsplus_module_2.noop
1684
- }));
1685
- })(fa);
1697
+ })(subscriber));
1698
+ });
1686
1699
  };
1687
1700
  }
1688
1701
  /**
@@ -1698,7 +1711,7 @@ function sampleTime(period, scheduler = tsplus_module_5.asyncScheduler) {
1698
1711
  */
1699
1712
  function scanLeftWithIndex_1(initial, f) {
1700
1713
  return fa => {
1701
- return tsplus_module_8.operate_(scanInternal(f, initial, true, true))(fa);
1714
+ return new _definition2.Observable((subscriber, environment) => scanInternal(fa, subscriber, environment, f, initial, true, true));
1702
1715
  };
1703
1716
  }
1704
1717
  /**
@@ -1712,7 +1725,7 @@ function scanLeft(initial, f) {
1712
1725
  /**
1713
1726
  * @tsplus static fncts.observable.ObservableOps service
1714
1727
  */
1715
- function service( /** @tsplus auto */tag) {
1728
+ function service(/** @tsplus auto */tag) {
1716
1729
  return serviceWithObservable_1(service => of_1(service), tag);
1717
1730
  }
1718
1731
  /**
@@ -1740,10 +1753,10 @@ function skip(count) {
1740
1753
  */
1741
1754
  function skipLast(skipCount) {
1742
1755
  return fa => {
1743
- return skipCount <= 0 ? fa : tsplus_module_8.operate_((source, subscriber, environment) => {
1756
+ return skipCount <= 0 ? fa : new _definition2.Observable((subscriber, environment) => {
1744
1757
  let ring = new Array(skipCount);
1745
1758
  let seen = 0;
1746
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1759
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1747
1760
  next: value => {
1748
1761
  const valueIndex = seen++;
1749
1762
  if (valueIndex < skipCount) {
@@ -1755,11 +1768,11 @@ function skipLast(skipCount) {
1755
1768
  subscriber.next(oldValue);
1756
1769
  }
1757
1770
  }
1758
- }));
1771
+ })(subscriber));
1759
1772
  return () => {
1760
1773
  ring = null;
1761
1774
  };
1762
- })(fa);
1775
+ });
1763
1776
  };
1764
1777
  }
1765
1778
  /**
@@ -1767,20 +1780,20 @@ function skipLast(skipCount) {
1767
1780
  */
1768
1781
  function skipUntil(notifier) {
1769
1782
  return fa => {
1770
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1783
+ return new _definition2.Observable((subscriber, environment) => {
1771
1784
  let taking = false;
1772
- const skipSubscriber = tsplus_module_8.operatorSubscriber(subscriber, {
1785
+ const skipSubscriber = tsplus_module_8.operate_({
1773
1786
  next: () => {
1774
1787
  skipSubscriber?.unsubscribe();
1775
1788
  taking = true;
1776
1789
  },
1777
1790
  complete: tsplus_module_2.noop
1778
- });
1791
+ })(subscriber);
1779
1792
  from_1(notifier).provideEnvironment(environment).subscribe(skipSubscriber);
1780
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1793
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1781
1794
  next: value => taking && subscriber.next(value)
1782
- }));
1783
- })(fa);
1795
+ })(subscriber));
1796
+ });
1784
1797
  };
1785
1798
  }
1786
1799
  /**
@@ -1788,13 +1801,13 @@ function skipUntil(notifier) {
1788
1801
  */
1789
1802
  function skipWhile(predicate) {
1790
1803
  return fa => {
1791
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1804
+ return new _definition2.Observable((subscriber, environment) => {
1792
1805
  let taking = false;
1793
1806
  let index = 0;
1794
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1807
+ return fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1795
1808
  next: value => (taking || (taking = !predicate(index++, value))) && subscriber.next(value)
1796
- }));
1797
- })(fa);
1809
+ })(subscriber));
1810
+ });
1798
1811
  };
1799
1812
  }
1800
1813
  /**
@@ -1802,10 +1815,10 @@ function skipWhile(predicate) {
1802
1815
  */
1803
1816
  function startWith(...values) {
1804
1817
  return fa => {
1805
- return tsplus_module_8.operate_((source, subscriber) => {
1818
+ return new _definition2.Observable((subscriber, environment) => {
1806
1819
  // @ts-expect-error
1807
- concat_1(values)(source).subscribe(subscriber);
1808
- })(fa);
1820
+ return concat_1(values)(fa).provideEnvironment(environment).subscribe(subscriber);
1821
+ });
1809
1822
  };
1810
1823
  }
1811
1824
  /**
@@ -1813,9 +1826,9 @@ function startWith(...values) {
1813
1826
  */
1814
1827
  function subscribeOn(scheduler, delay = 0) {
1815
1828
  return fa => {
1816
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1817
- subscriber.add(scheduler.schedule(() => source.provideEnvironment(environment).subscribe(subscriber), delay));
1818
- })(fa);
1829
+ return new _definition2.Observable((subscriber, environment) => {
1830
+ subscriber.add(scheduler.schedule(() => fa.provideEnvironment(environment).subscribe(subscriber), delay));
1831
+ });
1819
1832
  };
1820
1833
  }
1821
1834
  /**
@@ -1829,28 +1842,29 @@ function switchAll(ffa) {
1829
1842
  */
1830
1843
  function switchMapWithIndex_1(f) {
1831
1844
  return fa => {
1832
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1845
+ return new _definition2.Observable((destination, environment) => {
1833
1846
  let innerSubscriber = null;
1834
1847
  let index = 0;
1835
1848
  let isComplete = false;
1836
- const checkComplete = () => isComplete && !innerSubscriber && subscriber.complete();
1837
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1849
+ const checkComplete = () => isComplete && !innerSubscriber && destination.complete();
1850
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1838
1851
  next: value => {
1839
1852
  innerSubscriber?.unsubscribe();
1840
1853
  const outerIndex = index++;
1841
- from_1(f(outerIndex, value)).provideEnvironment(environment).subscribe(innerSubscriber = tsplus_module_8.operatorSubscriber(subscriber, {
1842
- next: innerValue => subscriber.next(innerValue),
1854
+ from_1(f(outerIndex, value)).provideEnvironment(environment).subscribe(innerSubscriber = tsplus_module_8.operate_({
1855
+ next: innerValue => destination.next(innerValue),
1843
1856
  complete: () => {
1844
1857
  innerSubscriber = null;
1845
1858
  checkComplete();
1846
1859
  }
1847
- }));
1860
+ })(destination));
1861
+ },
1862
+ complete: () => {
1863
+ isComplete = true;
1864
+ checkComplete();
1848
1865
  }
1849
- }, () => {
1850
- isComplete = true;
1851
- checkComplete();
1852
- }));
1853
- })(fa);
1866
+ })(destination));
1867
+ });
1854
1868
  };
1855
1869
  }
1856
1870
  /**
@@ -1866,13 +1880,13 @@ function switchMap_1(f) {
1866
1880
  */
1867
1881
  function switchScanWithIndex_1(initial, f) {
1868
1882
  return fa => {
1869
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1883
+ return new _definition2.Observable((subscriber, environment) => {
1870
1884
  let state = initial;
1871
- switchMapWithIndex_1((index, value) => map_1(b => (state = b, b))(from_1(f(index, state, value))))(source).provideEnvironment(environment).subscribe(subscriber);
1885
+ switchMapWithIndex_1((index, value) => map_1(b => (state = b, b))(from_1(f(index, state, value))))(fa).provideEnvironment(environment).subscribe(subscriber);
1872
1886
  return () => {
1873
1887
  state = null;
1874
1888
  };
1875
- })(fa);
1889
+ });
1876
1890
  };
1877
1891
  }
1878
1892
  /**
@@ -1888,9 +1902,9 @@ function switchScan(initial, f) {
1888
1902
  */
1889
1903
  function take_1(count) {
1890
1904
  return fa => {
1891
- return count <= 0 ? empty_1() : tsplus_module_8.operate_((source, sub, environment) => {
1905
+ return count <= 0 ? empty_1() : new _definition2.Observable((sub, environment) => {
1892
1906
  let seen = 0;
1893
- source.provideEnvironment(environment).subscribe(new tsplus_module_8.OperatorSubscriber(sub, {
1907
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1894
1908
  next: value => {
1895
1909
  if (++seen <= count) {
1896
1910
  sub.next(value);
@@ -1899,8 +1913,8 @@ function take_1(count) {
1899
1913
  }
1900
1914
  }
1901
1915
  }
1902
- }));
1903
- })(fa);
1916
+ })(sub));
1917
+ });
1904
1918
  };
1905
1919
  }
1906
1920
  /**
@@ -1908,9 +1922,9 @@ function take_1(count) {
1908
1922
  */
1909
1923
  function takeLast(count) {
1910
1924
  return fa => {
1911
- return count <= 0 ? empty_1() : tsplus_module_8.operate_((source, subscriber, environment) => {
1925
+ return count <= 0 ? empty_1() : new _definition2.Observable((subscriber, environment) => {
1912
1926
  let buffer = [];
1913
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1927
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1914
1928
  next: value => {
1915
1929
  buffer.push(value);
1916
1930
  count < buffer.length && buffer.shift();
@@ -1920,11 +1934,12 @@ function takeLast(count) {
1920
1934
  subscriber.next(value);
1921
1935
  }
1922
1936
  subscriber.complete();
1937
+ },
1938
+ finalize: () => {
1939
+ buffer = null;
1923
1940
  }
1924
- }, () => {
1925
- buffer = null;
1926
- }));
1927
- })(fa);
1941
+ })(subscriber));
1942
+ });
1928
1943
  };
1929
1944
  }
1930
1945
  /**
@@ -1932,27 +1947,27 @@ function takeLast(count) {
1932
1947
  */
1933
1948
  function takeUntil(notifier) {
1934
1949
  return fa => {
1935
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1936
- from_1(notifier).provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1950
+ return new _definition2.Observable((subscriber, environment) => {
1951
+ from_1(notifier).provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1937
1952
  next: () => subscriber.complete(),
1938
1953
  complete: tsplus_module_2.noop
1939
- }));
1940
- !subscriber.closed && source.provideEnvironment(environment).subscribe(subscriber);
1941
- })(fa);
1954
+ })(subscriber));
1955
+ !subscriber._closed && fa.provideEnvironment(environment).subscribe(subscriber);
1956
+ });
1942
1957
  };
1943
1958
  }
1944
1959
  function takeWhileWithIndex_1(predicate, inclusive) {
1945
1960
  return fa => {
1946
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1961
+ return new _definition2.Observable((subscriber, environment) => {
1947
1962
  let index = 0;
1948
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1963
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1949
1964
  next: value => {
1950
1965
  const result = predicate(index++, value);
1951
1966
  (result || inclusive) && subscriber.next(value);
1952
1967
  !result && subscriber.complete();
1953
1968
  }
1954
- }));
1955
- })(fa);
1969
+ })(subscriber));
1970
+ });
1956
1971
  };
1957
1972
  }
1958
1973
  function takeWhile(predicate, inclusive) {
@@ -1965,8 +1980,8 @@ function takeWhile(predicate, inclusive) {
1965
1980
  */
1966
1981
  function tap(observer) {
1967
1982
  return fa => {
1968
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1969
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
1983
+ return new _definition2.Observable((subscriber, environment) => {
1984
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
1970
1985
  next: value => {
1971
1986
  observer.next?.(value);
1972
1987
  subscriber.next(value);
@@ -1979,8 +1994,8 @@ function tap(observer) {
1979
1994
  observer.complete?.();
1980
1995
  subscriber.complete();
1981
1996
  }
1982
- }));
1983
- })(fa);
1997
+ })(subscriber));
1998
+ });
1984
1999
  };
1985
2000
  }
1986
2001
  const defaultThrottleConfig = exports.defaultThrottleConfig = {
@@ -1995,8 +2010,8 @@ function throttle_1(durationSelector, {
1995
2010
  trailing
1996
2011
  } = defaultThrottleConfig) {
1997
2012
  return fa => {
1998
- return tsplus_module_8.operate_((source, subscriber, environment) => {
1999
- let sendValue = tsplus_module_17.nothing(fileName_1 + ":2372:51");
2013
+ return new _definition2.Observable((subscriber, environment) => {
2014
+ let sendValue = tsplus_module_17.nothing(fileName_1 + ":2363:51");
2000
2015
  let throttled = null;
2001
2016
  let isComplete = false;
2002
2017
  const endThrottling = () => {
@@ -2011,31 +2026,31 @@ function throttle_1(durationSelector, {
2011
2026
  throttled = null;
2012
2027
  isComplete && subscriber.complete();
2013
2028
  };
2014
- const startThrottling = value => throttled = from_1(durationSelector(value)).provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
2029
+ const startThrottling = value => throttled = from_1(durationSelector(value)).provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
2015
2030
  next: endThrottling,
2016
2031
  complete: cleanupThrottling
2017
- }));
2032
+ })(subscriber));
2018
2033
  const send = () => {
2019
2034
  if (tsplus_module_18.isJust(sendValue)) {
2020
2035
  const {
2021
2036
  value
2022
2037
  } = sendValue;
2023
- sendValue = tsplus_module_17.nothing(fileName_1 + ":2394:36");
2038
+ sendValue = tsplus_module_17.nothing(fileName_1 + ":2385:36");
2024
2039
  subscriber.next(value);
2025
2040
  !isComplete && startThrottling(value);
2026
2041
  }
2027
2042
  };
2028
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
2043
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
2029
2044
  next: value => {
2030
- sendValue = tsplus_module_17.just(value, fileName_1 + ":2402:29");
2031
- !(throttled && !throttled.closed) && (leading ? send() : startThrottling(value));
2045
+ sendValue = tsplus_module_17.just(value, fileName_1 + ":2393:29");
2046
+ !(throttled && !throttled._closed) && (leading ? send() : startThrottling(value));
2032
2047
  },
2033
2048
  complete: () => {
2034
2049
  isComplete = true;
2035
- !(trailing && tsplus_module_18.isJust(sendValue) && throttled && !throttled.closed) && subscriber.complete();
2050
+ !(trailing && tsplus_module_18.isJust(sendValue) && throttled && !throttled._closed) && subscriber.complete();
2036
2051
  }
2037
- }));
2038
- })(fa);
2052
+ })(subscriber));
2053
+ });
2039
2054
  };
2040
2055
  }
2041
2056
  /**
@@ -2064,11 +2079,11 @@ function timeout(config) {
2064
2079
  scheduler = tsplus_module_5.asyncScheduler,
2065
2080
  meta = null
2066
2081
  } = config;
2067
- return tsplus_module_8.operate_((source, subscriber, environment) => {
2082
+ return new _definition2.Observable((subscriber, environment) => {
2068
2083
  // eslint-disable-next-line prefer-const
2069
2084
  let originalSourceSubscription;
2070
2085
  let timerSubscription;
2071
- let lastValue = tsplus_module_17.nothing(fileName_1 + ":2483:40");
2086
+ let lastValue = tsplus_module_17.nothing(fileName_1 + ":2474:40");
2072
2087
  let seen = 0;
2073
2088
  const startTimer = delay => {
2074
2089
  timerSubscription = (0, _Scheduler.caughtSchedule)(subscriber, scheduler, () => {
@@ -2080,22 +2095,23 @@ function timeout(config) {
2080
2095
  })).provideEnvironment(environment).subscribe(subscriber);
2081
2096
  }, delay);
2082
2097
  };
2083
- originalSourceSubscription = source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
2098
+ originalSourceSubscription = fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
2084
2099
  next: value => {
2085
2100
  timerSubscription?.unsubscribe();
2086
2101
  seen++;
2087
- lastValue = tsplus_module_17.just(value, fileName_1 + ":2511:31");
2102
+ lastValue = tsplus_module_17.just(value, fileName_1 + ":2500:29");
2088
2103
  subscriber.next(value);
2089
2104
  each > 0 && startTimer(each);
2105
+ },
2106
+ finalize: () => {
2107
+ if (!timerSubscription?._closed) {
2108
+ timerSubscription?.unsubscribe();
2109
+ }
2110
+ lastValue = tsplus_module_17.nothing(fileName_1 + ":2508:32");
2090
2111
  }
2091
- }, () => {
2092
- if (!timerSubscription?.closed) {
2093
- timerSubscription?.unsubscribe();
2094
- }
2095
- lastValue = tsplus_module_17.nothing(fileName_1 + ":2520:32");
2096
- }));
2112
+ })(subscriber));
2097
2113
  startTimer(first != null ? typeof first === "number" ? first : +first - scheduler.now() : each);
2098
- })(fa);
2114
+ });
2099
2115
  };
2100
2116
  }
2101
2117
  function timeoutError(info) {
@@ -2108,18 +2124,18 @@ function toArrayAccumulator(arr, value) {
2108
2124
  * @tsplus getter fncts.observable.Observable toArray
2109
2125
  */
2110
2126
  function toArray_1(fa) {
2111
- return tsplus_module_8.operate_((source, subscriber, environment) => {
2112
- foldLeft_1([], toArrayAccumulator)(source).provideEnvironment(environment).subscribe(subscriber);
2113
- })(fa);
2127
+ return new _definition2.Observable((subscriber, environment) => {
2128
+ foldLeft_1([], toArrayAccumulator)(fa).provideEnvironment(environment).subscribe(subscriber);
2129
+ });
2114
2130
  }
2115
2131
  /**
2116
2132
  * @tsplus pipeable fncts.observable.Observable unique
2117
2133
  */
2118
2134
  function unique(toKey, flushes) {
2119
2135
  return fa => {
2120
- return tsplus_module_8.operate_((source, subscriber, environment) => {
2136
+ return new _definition2.Observable((subscriber, environment) => {
2121
2137
  let distinctKeys = tsplus_module_21.empty();
2122
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
2138
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
2123
2139
  next: value => {
2124
2140
  const key = toKey ? toKey(value) : value;
2125
2141
  if (!tsplus_module_21.has(key)(distinctKeys)) {
@@ -2127,21 +2143,21 @@ function unique(toKey, flushes) {
2127
2143
  subscriber.next(value);
2128
2144
  }
2129
2145
  }
2130
- }));
2131
- flushes?.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
2146
+ })(subscriber));
2147
+ flushes?.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
2132
2148
  next: () => distinctKeys = tsplus_module_21.empty(),
2133
2149
  complete: tsplus_module_2.noop
2134
- }));
2135
- })(fa);
2150
+ })(subscriber));
2151
+ });
2136
2152
  };
2137
2153
  }
2138
2154
  function uniqueUntilChanged_1(E, keySelector = tsplus_module_13.identity) {
2139
2155
  return fa => {
2140
2156
  const compare = "equals" in E ? E.equals : E;
2141
- return tsplus_module_8.operate_((source, subscriber, environment) => {
2157
+ return new _definition2.Observable((subscriber, environment) => {
2142
2158
  let previousKey;
2143
2159
  let first = true;
2144
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
2160
+ fa.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
2145
2161
  next: value => {
2146
2162
  const currentKey = keySelector(value);
2147
2163
  if (first || !compare(previousKey, currentKey)) {
@@ -2150,8 +2166,8 @@ function uniqueUntilChanged_1(E, keySelector = tsplus_module_13.identity) {
2150
2166
  subscriber.next(value);
2151
2167
  }
2152
2168
  }
2153
- }));
2154
- })(fa);
2169
+ })(subscriber));
2170
+ });
2155
2171
  };
2156
2172
  }
2157
2173
  function uniqueUntilKeyChanged(key, equals) {
@@ -2173,7 +2189,7 @@ function combineLatestInternal(subscriber, environment, observables, scheduler,
2173
2189
  maybeSchedule(subscriber, scheduler, () => {
2174
2190
  const source = scheduler ? scheduled_1(scheduler)(observables[i]) : from_1(observables[i]);
2175
2191
  let hasFirstValue = false;
2176
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
2192
+ source.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
2177
2193
  next: value => {
2178
2194
  values[i] = value;
2179
2195
  if (!hasFirstValue) {
@@ -2189,28 +2205,28 @@ function combineLatestInternal(subscriber, environment, observables, scheduler,
2189
2205
  subscriber.complete();
2190
2206
  }
2191
2207
  }
2192
- }));
2208
+ })(subscriber));
2193
2209
  });
2194
2210
  }
2195
2211
  });
2196
2212
  }
2197
- function findInternal(predicate, emit) {
2213
+ function findInternal(source, predicate, emit) {
2198
2214
  const findIndex = emit === "index";
2199
- return (source, subscriber, environment) => {
2215
+ return (subscriber, environment) => {
2200
2216
  let index = 0;
2201
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
2217
+ source.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
2202
2218
  next: value => {
2203
2219
  const i = index++;
2204
2220
  if (predicate(index++, value)) {
2205
- subscriber.next(findIndex ? i : tsplus_module_17.just(value, fileName_1 + ":2690:49"));
2221
+ subscriber.next(findIndex ? i : tsplus_module_17.just(value, fileName_1 + ":2678:49"));
2206
2222
  subscriber.complete();
2207
2223
  }
2208
2224
  },
2209
2225
  complete: () => {
2210
- subscriber.next(findIndex ? -1 : tsplus_module_17.nothing(fileName_1 + ":2695:51"));
2226
+ subscriber.next(findIndex ? -1 : tsplus_module_17.nothing(fileName_1 + ":2683:51"));
2211
2227
  subscriber.complete();
2212
2228
  }
2213
- }));
2229
+ })(subscriber));
2214
2230
  };
2215
2231
  }
2216
2232
  function joinAllInternal(fa, joiner) {
@@ -2276,22 +2292,20 @@ function mergeInternal(source, subscriber, environment, f, concurrent, onBeforeN
2276
2292
  additionalTeardown?.();
2277
2293
  };
2278
2294
  }
2279
- function scanInternal(f, initial, hasInitial, emitOnNext, emitBeforeComplete) {
2280
- return (source, subscriber, environment) => {
2281
- let hasState = hasInitial;
2282
- let state = initial;
2283
- let index = 0;
2284
- source.provideEnvironment(environment).subscribe(tsplus_module_8.operatorSubscriber(subscriber, {
2285
- next: value => {
2286
- const i = index++;
2287
- state = hasState ? f(i, state, value) : (hasState = true, value);
2288
- emitOnNext && subscriber.next(state);
2289
- },
2290
- complete: emitBeforeComplete && (() => {
2291
- hasState && subscriber.next(state);
2292
- subscriber.complete();
2293
- })
2294
- }));
2295
- };
2295
+ function scanInternal(source, subscriber, environment, f, initial, hasInitial, emitOnNext, emitBeforeComplete) {
2296
+ let hasState = hasInitial;
2297
+ let state = initial;
2298
+ let index = 0;
2299
+ return source.provideEnvironment(environment).subscribe(tsplus_module_8.operate_({
2300
+ next: value => {
2301
+ const i = index++;
2302
+ state = hasState ? f(i, state, value) : (hasState = true, value);
2303
+ emitOnNext && subscriber.next(state);
2304
+ },
2305
+ complete: emitBeforeComplete && (() => {
2306
+ hasState && subscriber.next(state);
2307
+ subscriber.complete();
2308
+ })
2309
+ })(subscriber));
2296
2310
  }
2297
2311
  //# sourceMappingURL=api.cjs.map