reactor-core-ts 2.1.6 → 3.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/README.md +927 -658
  2. package/dist/_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/defineProperty.js +12 -0
  3. package/dist/_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/toPrimitive.js +14 -0
  4. package/dist/_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/toPropertyKey.js +9 -0
  5. package/dist/_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/typeof.js +11 -0
  6. package/dist/context/context-view.d.ts +31 -0
  7. package/dist/context/context-view.d.ts.map +1 -0
  8. package/dist/context/context-view.js +58 -0
  9. package/dist/context/context-view.js.map +1 -0
  10. package/dist/context/context.d.ts +46 -0
  11. package/dist/context/context.d.ts.map +1 -0
  12. package/dist/context/context.js +125 -0
  13. package/dist/context/context.js.map +1 -0
  14. package/dist/context/types.d.ts +7 -0
  15. package/dist/context/types.d.ts.map +1 -0
  16. package/dist/core/boolean-disposable.d.ts +19 -0
  17. package/dist/core/boolean-disposable.d.ts.map +1 -0
  18. package/dist/core/boolean-disposable.js +37 -0
  19. package/dist/core/boolean-disposable.js.map +1 -0
  20. package/dist/core/composite-disposable.d.ts +21 -0
  21. package/dist/core/composite-disposable.d.ts.map +1 -0
  22. package/dist/core/composite-disposable.js +64 -0
  23. package/dist/core/composite-disposable.js.map +1 -0
  24. package/dist/core/demand.d.ts +9 -0
  25. package/dist/core/demand.d.ts.map +1 -0
  26. package/dist/core/demand.js +21 -0
  27. package/dist/core/demand.js.map +1 -0
  28. package/dist/core/disposables.d.ts +12 -0
  29. package/dist/core/disposables.d.ts.map +1 -0
  30. package/dist/core/disposables.js +37 -0
  31. package/dist/core/disposables.js.map +1 -0
  32. package/dist/core/teardown.d.ts +4 -0
  33. package/dist/core/teardown.d.ts.map +1 -0
  34. package/dist/core/types.d.ts +14 -0
  35. package/dist/core/types.d.ts.map +1 -0
  36. package/dist/errors/classes.d.ts +37 -0
  37. package/dist/errors/classes.d.ts.map +1 -0
  38. package/dist/errors/classes.js +53 -0
  39. package/dist/errors/classes.js.map +1 -0
  40. package/dist/errors/exceptions.d.ts +15 -0
  41. package/dist/errors/exceptions.d.ts.map +1 -0
  42. package/dist/errors/helpers.d.ts +9 -0
  43. package/dist/errors/helpers.d.ts.map +1 -0
  44. package/dist/errors/helpers.js +18 -0
  45. package/dist/errors/helpers.js.map +1 -0
  46. package/dist/index.d.ts +17 -2556
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +8 -2
  49. package/dist/internal/abort.d.ts +5 -0
  50. package/dist/internal/abort.d.ts.map +1 -0
  51. package/dist/internal/abort.js +36 -0
  52. package/dist/internal/abort.js.map +1 -0
  53. package/dist/internal/async-queue.d.ts +48 -0
  54. package/dist/internal/async-queue.d.ts.map +1 -0
  55. package/dist/internal/async-queue.js +187 -0
  56. package/dist/internal/async-queue.js.map +1 -0
  57. package/dist/internal/iterable-terminal.d.ts +12 -0
  58. package/dist/internal/iterable-terminal.d.ts.map +1 -0
  59. package/dist/internal/iterable-terminal.js +49 -0
  60. package/dist/internal/iterable-terminal.js.map +1 -0
  61. package/dist/internal/iterable-transform.d.ts +24 -0
  62. package/dist/internal/iterable-transform.d.ts.map +1 -0
  63. package/dist/internal/iterable-transform.js +159 -0
  64. package/dist/internal/iterable-transform.js.map +1 -0
  65. package/dist/internal/iterable.d.ts +23 -0
  66. package/dist/internal/iterable.d.ts.map +1 -0
  67. package/dist/internal/iterable.js +81 -0
  68. package/dist/internal/iterable.js.map +1 -0
  69. package/dist/internal/microtask.d.ts +7 -0
  70. package/dist/internal/microtask.d.ts.map +1 -0
  71. package/dist/internal/microtask.js +19 -0
  72. package/dist/internal/microtask.js.map +1 -0
  73. package/dist/publisher/browser-sources.d.ts +15 -0
  74. package/dist/publisher/browser-sources.d.ts.map +1 -0
  75. package/dist/publisher/browser-sources.js +92 -0
  76. package/dist/publisher/browser-sources.js.map +1 -0
  77. package/dist/publisher/flux-entrypoint.d.ts +7 -0
  78. package/dist/publisher/flux-entrypoint.d.ts.map +1 -0
  79. package/dist/publisher/flux-entrypoint.js +11 -0
  80. package/dist/publisher/flux-entrypoint.js.map +1 -0
  81. package/dist/publisher/flux.d.ts +121 -0
  82. package/dist/publisher/flux.d.ts.map +1 -0
  83. package/dist/publisher/flux.js +697 -0
  84. package/dist/publisher/flux.js.map +1 -0
  85. package/dist/publisher/helpers.d.ts +19 -0
  86. package/dist/publisher/helpers.d.ts.map +1 -0
  87. package/dist/publisher/helpers.js +84 -0
  88. package/dist/publisher/helpers.js.map +1 -0
  89. package/dist/publisher/mono-entrypoint.d.ts +7 -0
  90. package/dist/publisher/mono-entrypoint.d.ts.map +1 -0
  91. package/dist/publisher/mono-entrypoint.js +11 -0
  92. package/dist/publisher/mono-entrypoint.js.map +1 -0
  93. package/dist/publisher/mono.d.ts +72 -0
  94. package/dist/publisher/mono.d.ts.map +1 -0
  95. package/dist/publisher/mono.js +373 -0
  96. package/dist/publisher/mono.js.map +1 -0
  97. package/dist/publisher/operators/aggregate.d.ts +35 -0
  98. package/dist/publisher/operators/aggregate.d.ts.map +1 -0
  99. package/dist/publisher/operators/aggregate.js +217 -0
  100. package/dist/publisher/operators/aggregate.js.map +1 -0
  101. package/dist/publisher/operators/compat/flux.d.ts +56 -0
  102. package/dist/publisher/operators/compat/flux.d.ts.map +1 -0
  103. package/dist/publisher/operators/compat/flux.js +156 -0
  104. package/dist/publisher/operators/compat/flux.js.map +1 -0
  105. package/dist/publisher/operators/compat/mono.d.ts +82 -0
  106. package/dist/publisher/operators/compat/mono.d.ts.map +1 -0
  107. package/dist/publisher/operators/compat/mono.js +125 -0
  108. package/dist/publisher/operators/compat/mono.js.map +1 -0
  109. package/dist/publisher/operators/coordination.d.ts +82 -0
  110. package/dist/publisher/operators/coordination.d.ts.map +1 -0
  111. package/dist/publisher/operators/coordination.js +345 -0
  112. package/dist/publisher/operators/coordination.js.map +1 -0
  113. package/dist/publisher/operators/error.d.ts +17 -0
  114. package/dist/publisher/operators/error.d.ts.map +1 -0
  115. package/dist/publisher/operators/error.js +48 -0
  116. package/dist/publisher/operators/error.js.map +1 -0
  117. package/dist/publisher/operators/flatten.d.ts +19 -0
  118. package/dist/publisher/operators/flatten.d.ts.map +1 -0
  119. package/dist/publisher/operators/flatten.js +127 -0
  120. package/dist/publisher/operators/flatten.js.map +1 -0
  121. package/dist/publisher/operators/lifecycle.d.ts +103 -0
  122. package/dist/publisher/operators/lifecycle.d.ts.map +1 -0
  123. package/dist/publisher/operators/lifecycle.js +237 -0
  124. package/dist/publisher/operators/lifecycle.js.map +1 -0
  125. package/dist/publisher/operators/mono-parity.d.ts +109 -0
  126. package/dist/publisher/operators/mono-parity.d.ts.map +1 -0
  127. package/dist/publisher/operators/mono-parity.js +144 -0
  128. package/dist/publisher/operators/mono-parity.js.map +1 -0
  129. package/dist/publisher/operators/mono.d.ts +30 -0
  130. package/dist/publisher/operators/mono.d.ts.map +1 -0
  131. package/dist/publisher/operators/mono.js +37 -0
  132. package/dist/publisher/operators/mono.js.map +1 -0
  133. package/dist/publisher/operators/register.d.ts +20 -0
  134. package/dist/publisher/operators/register.d.ts.map +1 -0
  135. package/dist/publisher/operators/register.js +23 -0
  136. package/dist/publisher/operators/register.js.map +1 -0
  137. package/dist/publisher/operators/selection.d.ts +25 -0
  138. package/dist/publisher/operators/selection.d.ts.map +1 -0
  139. package/dist/publisher/operators/selection.js +108 -0
  140. package/dist/publisher/operators/selection.js.map +1 -0
  141. package/dist/publisher/operators/side-effect.d.ts +15 -0
  142. package/dist/publisher/operators/side-effect.d.ts.map +1 -0
  143. package/dist/publisher/operators/side-effect.js +56 -0
  144. package/dist/publisher/operators/side-effect.js.map +1 -0
  145. package/dist/publisher/operators/terminal.d.ts +16 -0
  146. package/dist/publisher/operators/terminal.d.ts.map +1 -0
  147. package/dist/publisher/operators/terminal.js +47 -0
  148. package/dist/publisher/operators/terminal.js.map +1 -0
  149. package/dist/publisher/operators/time.d.ts +20 -0
  150. package/dist/publisher/operators/time.d.ts.map +1 -0
  151. package/dist/publisher/operators/time.js +92 -0
  152. package/dist/publisher/operators/time.js.map +1 -0
  153. package/dist/publisher/operators/transform.d.ts +31 -0
  154. package/dist/publisher/operators/transform.d.ts.map +1 -0
  155. package/dist/publisher/operators/transform.js +74 -0
  156. package/dist/publisher/operators/transform.js.map +1 -0
  157. package/dist/publisher/operators/windowing.d.ts +28 -0
  158. package/dist/publisher/operators/windowing.d.ts.map +1 -0
  159. package/dist/publisher/operators/windowing.js +148 -0
  160. package/dist/publisher/operators/windowing.js.map +1 -0
  161. package/dist/publisher/publisher.d.ts +11 -0
  162. package/dist/publisher/publisher.d.ts.map +1 -0
  163. package/dist/publisher/types.d.ts +51 -0
  164. package/dist/publisher/types.d.ts.map +1 -0
  165. package/dist/schedulers/animation-frame-scheduler.d.ts +11 -0
  166. package/dist/schedulers/animation-frame-scheduler.d.ts.map +1 -0
  167. package/dist/schedulers/animation-frame-scheduler.js +30 -0
  168. package/dist/schedulers/animation-frame-scheduler.js.map +1 -0
  169. package/dist/schedulers/base-scheduler.d.ts +28 -0
  170. package/dist/schedulers/base-scheduler.d.ts.map +1 -0
  171. package/dist/schedulers/base-scheduler.js +77 -0
  172. package/dist/schedulers/base-scheduler.js.map +1 -0
  173. package/dist/schedulers/basic-worker.d.ts +22 -0
  174. package/dist/schedulers/basic-worker.d.ts.map +1 -0
  175. package/dist/schedulers/basic-worker.js +71 -0
  176. package/dist/schedulers/basic-worker.js.map +1 -0
  177. package/dist/schedulers/delay-scheduler.d.ts +12 -0
  178. package/dist/schedulers/delay-scheduler.d.ts.map +1 -0
  179. package/dist/schedulers/delay-scheduler.js +17 -0
  180. package/dist/schedulers/delay-scheduler.js.map +1 -0
  181. package/dist/schedulers/disposed.d.ts +4 -0
  182. package/dist/schedulers/disposed.d.ts.map +1 -0
  183. package/dist/schedulers/disposed.js +14 -0
  184. package/dist/schedulers/disposed.js.map +1 -0
  185. package/dist/schedulers/duration.d.ts +8 -0
  186. package/dist/schedulers/duration.d.ts.map +1 -0
  187. package/dist/schedulers/duration.js +11 -0
  188. package/dist/schedulers/duration.js.map +1 -0
  189. package/dist/schedulers/executor-scheduler.d.ts +13 -0
  190. package/dist/schedulers/executor-scheduler.d.ts.map +1 -0
  191. package/dist/schedulers/executor-scheduler.js +43 -0
  192. package/dist/schedulers/executor-scheduler.js.map +1 -0
  193. package/dist/schedulers/immediate-scheduler.d.ts +15 -0
  194. package/dist/schedulers/immediate-scheduler.d.ts.map +1 -0
  195. package/dist/schedulers/immediate-scheduler.js +24 -0
  196. package/dist/schedulers/immediate-scheduler.js.map +1 -0
  197. package/dist/schedulers/index.d.ts +7 -0
  198. package/dist/schedulers/index.d.ts.map +1 -0
  199. package/dist/schedulers/index.js +2 -0
  200. package/dist/schedulers/interval-scheduler.d.ts +12 -0
  201. package/dist/schedulers/interval-scheduler.d.ts.map +1 -0
  202. package/dist/schedulers/interval-scheduler.js +17 -0
  203. package/dist/schedulers/interval-scheduler.js.map +1 -0
  204. package/dist/schedulers/macro-scheduler.d.ts +19 -0
  205. package/dist/schedulers/macro-scheduler.d.ts.map +1 -0
  206. package/dist/schedulers/macro-scheduler.js +30 -0
  207. package/dist/schedulers/macro-scheduler.js.map +1 -0
  208. package/dist/schedulers/microtask-scheduler.d.ts +11 -0
  209. package/dist/schedulers/microtask-scheduler.d.ts.map +1 -0
  210. package/dist/schedulers/microtask-scheduler.js +34 -0
  211. package/dist/schedulers/microtask-scheduler.js.map +1 -0
  212. package/dist/schedulers/schedulers.d.ts +39 -0
  213. package/dist/schedulers/schedulers.d.ts.map +1 -0
  214. package/dist/schedulers/schedulers.js +83 -0
  215. package/dist/schedulers/schedulers.js.map +1 -0
  216. package/dist/schedulers/timeout-scheduler.d.ts +11 -0
  217. package/dist/schedulers/timeout-scheduler.d.ts.map +1 -0
  218. package/dist/schedulers/types.d.ts +35 -0
  219. package/dist/schedulers/types.d.ts.map +1 -0
  220. package/dist/signal/signal-type.d.ts +26 -0
  221. package/dist/signal/signal-type.d.ts.map +1 -0
  222. package/dist/signal/signal-type.js +31 -0
  223. package/dist/signal/signal-type.js.map +1 -0
  224. package/dist/signal/signal.d.ts +33 -0
  225. package/dist/signal/signal.d.ts.map +1 -0
  226. package/dist/signal/signal.js +70 -0
  227. package/dist/signal/signal.js.map +1 -0
  228. package/dist/sinks/index.d.ts +7 -0
  229. package/dist/sinks/index.d.ts.map +1 -0
  230. package/dist/sinks/index.js +2 -0
  231. package/dist/sinks/many.d.ts +66 -0
  232. package/dist/sinks/many.d.ts.map +1 -0
  233. package/dist/sinks/many.js +193 -0
  234. package/dist/sinks/many.js.map +1 -0
  235. package/dist/sinks/one.d.ts +41 -0
  236. package/dist/sinks/one.d.ts.map +1 -0
  237. package/dist/sinks/one.js +144 -0
  238. package/dist/sinks/one.js.map +1 -0
  239. package/dist/sinks/specs.d.ts +25 -0
  240. package/dist/sinks/specs.d.ts.map +1 -0
  241. package/dist/sinks/specs.js +126 -0
  242. package/dist/sinks/specs.js.map +1 -0
  243. package/dist/sinks/subscribers.d.ts +16 -0
  244. package/dist/sinks/subscribers.d.ts.map +1 -0
  245. package/dist/sinks/subscribers.js +32 -0
  246. package/dist/sinks/subscribers.js.map +1 -0
  247. package/dist/sinks/types.d.ts +137 -0
  248. package/dist/sinks/types.d.ts.map +1 -0
  249. package/dist/sinks/types.js +58 -0
  250. package/dist/sinks/types.js.map +1 -0
  251. package/dist/subscription/core-subscriber.d.ts +12 -0
  252. package/dist/subscription/core-subscriber.d.ts.map +1 -0
  253. package/dist/subscription/iterable-subscription.d.ts +64 -0
  254. package/dist/subscription/iterable-subscription.d.ts.map +1 -0
  255. package/dist/subscription/iterable-subscription.js +281 -0
  256. package/dist/subscription/iterable-subscription.js.map +1 -0
  257. package/dist/subscription/reactive-streams.d.ts +8 -0
  258. package/dist/subscription/reactive-streams.d.ts.map +1 -0
  259. package/dist/subscription/reactive-streams.js +0 -0
  260. package/dist/subscription/subscriber.d.ts +17 -0
  261. package/dist/subscription/subscriber.d.ts.map +1 -0
  262. package/dist/subscription/subscription.d.ts +12 -0
  263. package/dist/subscription/subscription.d.ts.map +1 -0
  264. package/package.json +99 -33
  265. package/LICENSE.md +0 -56
  266. package/dist/index.d.mts +0 -2557
  267. package/dist/index.js.map +0 -1
  268. package/dist/index.mjs +0 -2
  269. package/dist/index.mjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,YAAY,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAC,OAAO,EAAC,MAAM,sBAAsB,CAAC;AAC7C,YAAY,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AACxD,YAAY,EAAC,UAAU,EAAC,MAAM,8BAA8B,CAAC;AAC7D,YAAY,EAAC,YAAY,EAAC,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAC,IAAI,EAAC,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAC,IAAI,EAAC,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAC,UAAU,EAAC,MAAM,uBAAuB,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,8 @@
1
- "use strict";var L=Object.defineProperty;var z=Object.getOwnPropertyDescriptor;var U=Object.getOwnPropertyNames;var K=Object.prototype.hasOwnProperty;var j=(a,n)=>{for(var e in n)L(a,e,{get:n[e],enumerable:!0})},Q=(a,n,e,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of U(n))!K.call(a,t)&&t!==e&&L(a,t,{get:()=>n[t],enumerable:!(r=z(n,t))||r.enumerable});return a};var J=a=>Q(L({},"__esModule",{value:!0}),a);var H={};j(H,{Flux:()=>T,Mono:()=>h,Schedulers:()=>O,Signal:()=>N,Sinks:()=>Z});module.exports=J(H);var x=class{constructor(){this.entries=new Map;this.terminated=!1;this.terminalError=null}asFlux(){return T.from(this)}shouldReplayTerminalOnSubscribe(){return this.terminated}onDemandGranted(n,e){}onUnsubscribed(n,e){}onSubscribed(n,e){}deliverError(n,e){e.cancelled||n.onError(this.terminalError)}deliverComplete(n,e){e.cancelled||n.onComplete()}clearEntriesAfterComplete(){return!0}error(n){if(!this.terminated){this.terminated=!0,this.terminalError=n;for(let[e,r]of this.entries)this.deliverError(e,r);this.entries.clear()}}complete(){if(!this.terminated){this.terminated=!0;for(let[n,e]of this.entries)this.deliverComplete(n,e);this.clearEntriesAfterComplete()&&this.entries.clear()}}subscribe(n){if(this.shouldReplayTerminalOnSubscribe()){let t={request(){},unsubscribe(){}};return n.onSubscribe(t),this.terminalError?n.onError(this.terminalError):n.onComplete(),t}let e=this.createEntry();this.entries.set(n,e);let r={request:t=>{if(!e.cancelled){if(t<=0){e.cancelled=!0,this.entries.delete(n),n.onError(new Error(`request must be > 0, but was ${t}`));return}e.demand=Math.min(e.demand+t,Number.MAX_SAFE_INTEGER),this.onDemandGranted(n,e)}},unsubscribe:()=>{e.cancelled=!0,this.entries.delete(n),this.onUnsubscribed(n,e)}};return n.onSubscribe(r),this.onSubscribed(n,e),r}};var C=class extends x{constructor(){super(...arguments);this.history=[]}createEntry(){return{position:0,demand:0,cancelled:!1,draining:!1}}shouldReplayTerminalOnSubscribe(){return this.terminated&&this.history.length===0}deliverError(e,r){this.drainEntry(e,r),r.cancelled||e.onError(this.terminalError)}deliverComplete(e,r){r.cancelled||this.drainEntry(e,r)}clearEntriesAfterComplete(){return!1}onDemandGranted(e,r){this.drainEntry(e,r)}next(e){if(!this.terminated){this.history.push(e);for(let[r,t]of this.entries)t.cancelled||this.drainEntry(r,t)}}drainEntry(e,r){if(!(r.cancelled||r.draining)){r.draining=!0;try{for(;r.demand>0&&r.position<this.history.length;)if(r.demand--,e.onNext(this.history[r.position++]),r.cancelled)return;r.position>=this.history.length&&this.terminated&&(this.entries.delete(e),this.terminalError?e.onError(this.terminalError):e.onComplete())}finally{r.draining=!1}}}};var N={next(a){return{kind:"next",value:a}},error(a){return{kind:"error",error:a}},complete(){return{kind:"complete"}}};var v=class{constructor(n){this.source=n}subscribe(n,e,r){if(n!==void 0&&typeof n=="object")return this.source.subscribe(n);let t=n,o=this.defaultDemand();return this.source.subscribe({onSubscribe(u){u.request(o)},onNext:t??(()=>{}),onError:e??(u=>{throw u}),onComplete:r??(()=>{})})}switchIfEmpty(n){return this.wrapSource({subscribe:e=>{let r={request(){},unsubscribe(){}},t=null,o=!1,u=!1,i=0,s={request(l){if(!u){if(l<=0){e.onError(new Error(`request must be > 0, but was ${l}`));return}i=Math.min(i+l,Number.MAX_SAFE_INTEGER),t?t.request(l):r.request(l)}},unsubscribe(){u=!0,r.unsubscribe(),t?.unsubscribe()}};return this.source.subscribe({onSubscribe(l){r=l,e.onSubscribe(s)},onNext(l){o=!0,e.onNext(l)},onError(l){e.onError(l)},onComplete(){if(o||u){e.onComplete();return}t=n.subscribe({onSubscribe(l){t=l,i>0&&t.request(i)},onNext(l){e.onNext(l)},onError(l){e.onError(l)},onComplete(){e.onComplete()}})}}),s}})}onErrorReturn(n){return this.wrapSource({subscribe:e=>{let r={request(){},unsubscribe(){}},t=null,o=!1,u=0,i={request(s){if(!o){if(s<=0){e.onError(new Error(`request must be > 0, but was ${s}`));return}u=Math.min(u+s,Number.MAX_SAFE_INTEGER),t?t.request(s):r.request(s)}},unsubscribe(){o=!0,r.unsubscribe(),t?.unsubscribe()}};return this.source.subscribe({onSubscribe(s){r=s,e.onSubscribe(i)},onNext(s){e.onNext(s)},onError(s){o||(t=n.subscribe({onSubscribe(l){t=l,u>0&&t.request(u)},onNext(l){e.onNext(l)},onError(l){e.onError(l)},onComplete(){e.onComplete()}}))},onComplete(){e.onComplete()}}),i}})}onErrorContinue(n){return this.wrapSource({subscribe:e=>{let r=this.source.subscribe({onSubscribe(t){},onNext(t){e.onNext(t)},onError(t){n(t)?e.onComplete():e.onError(t)},onComplete(){e.onComplete()}});return e.onSubscribe(r),r}})}doFirst(n){return this.wrapSource({subscribe:e=>{let r=!0,t=this.source.subscribe({onSubscribe(o){},onNext(o){if(r){r=!1;try{n()}catch{}}e.onNext(o)},onError(o){e.onError(o)},onComplete(){e.onComplete()}});return e.onSubscribe(t),t}})}doOnNext(n){return this.wrapSource({subscribe:e=>{let r=this.source.subscribe({onSubscribe(t){},onNext(t){try{n(t)}catch{}e.onNext(t)},onError(t){e.onError(t)},onComplete(){e.onComplete()}});return e.onSubscribe(r),r}})}doOnError(n){return this.wrapSource({subscribe:e=>{let r=this.source.subscribe({onSubscribe(t){},onNext(t){e.onNext(t)},onError(t){try{n(t)}catch{}e.onError(t)},onComplete(){e.onComplete()}});return e.onSubscribe(r),r}})}doOnSubscribe(n){return this.wrapSource({subscribe:e=>{let r=this.source.subscribe({onSubscribe(t){},onNext(t){e.onNext(t)},onError(t){e.onError(t)},onComplete(){e.onComplete()}});try{n(r)}catch{}return e.onSubscribe(r),r}})}publishOn(n){return this.wrapSource({subscribe:e=>{let r=this.source.subscribe({onSubscribe(t){},onNext(t){n.schedule(()=>e.onNext(t))},onError(t){n.schedule(()=>e.onError(t))},onComplete(){n.schedule(()=>e.onComplete())}});return e.onSubscribe(r),r}})}onErrorResume(n){return this.wrapSource({subscribe:e=>{let r={request(){},unsubscribe(){}},t=null,o=!1,u=0,i={request(s){if(!o){if(s<=0){e.onError(new Error(`request must be > 0, but was ${s}`));return}u=Math.min(u+s,Number.MAX_SAFE_INTEGER),t?t.request(s):r.request(s)}},unsubscribe(){o=!0,r.unsubscribe(),t?.unsubscribe()}};return this.source.subscribe({onSubscribe(s){r=s,e.onSubscribe(i)},onNext(s){e.onNext(s)},onError(s){if(o)return;let l;try{l=n(s)}catch(c){e.onError(c instanceof Error?c:new Error(String(c)));return}t=l.subscribe({onSubscribe(c){t=c,u>0&&c.request(u)},onNext(c){e.onNext(c)},onError(c){e.onError(c)},onComplete(){e.onComplete()}})},onComplete(){e.onComplete()}}),i}})}onErrorMap(n){return this.wrapSource({subscribe:e=>{let r=this.source.subscribe({onSubscribe(t){},onNext(t){e.onNext(t)},onError(t){try{e.onError(n(t))}catch(o){e.onError(o instanceof Error?o:new Error(String(o)))}},onComplete(){e.onComplete()}});return e.onSubscribe(r),r}})}timeout(n,e){return this.wrapSource({subscribe:r=>{let t={request(){},unsubscribe(){}},o=null,u=!1,i=!1,s=!1,l=0,c=null,b=()=>{c!==null&&(clearTimeout(c),c=null)},p=()=>{b(),c=setTimeout(()=>{u||s||(i=!0,t.unsubscribe(),e?o=e.subscribe({onSubscribe(S){o=S,l>0&&S.request(l)},onNext(S){!u&&!s&&r.onNext(S)},onError(S){!u&&!s&&(s=!0,r.onError(S))},onComplete(){!u&&!s&&(s=!0,r.onComplete())}}):(s=!0,r.onError(new Error(`TimeoutError: no item within ${n}ms`))))},n)},f={request(S){if(!(u||s)){if(S<=0){r.onError(new Error(`request must be > 0, but was ${S}`));return}l=Math.min(l+S,Number.MAX_SAFE_INTEGER),o?o.request(S):t.request(S)}},unsubscribe(){u=!0,b(),t.unsubscribe(),o?.unsubscribe()}};return this.source.subscribe({onSubscribe(S){t=S,r.onSubscribe(f),p()},onNext(S){u||i||(p(),r.onNext(S))},onError(S){b(),!u&&!s&&(s=!0,r.onError(S))},onComplete(){b(),!u&&!s&&(s=!0,r.onComplete())}}),f}})}delaySubscription(n){return this.wrapSource({subscribe:e=>{let r=null,t=!1,o=0,u={request(l){if(!t){if(l<=0){e.onError(new Error(`request must be > 0, but was ${l}`));return}o=Math.min(o+l,Number.MAX_SAFE_INTEGER),r&&r.request(l)}},unsubscribe(){t=!0,r?.unsubscribe()}};e.onSubscribe(u);let i=setTimeout(()=>{t||this.source.subscribe({onSubscribe(l){r=l,o>0&&l.request(o)},onNext(l){t||e.onNext(l)},onError(l){t||e.onError(l)},onComplete(){t||e.onComplete()}})},n),s=u.unsubscribe.bind(u);return u.unsubscribe=()=>{clearTimeout(i),s()},u}})}log(n="reactor"){return this.wrapSource({subscribe:e=>{let r=`[${n}]`,t;return this.source.subscribe({onSubscribe(o){console.log(`${r} onSubscribe`),t={request(u){console.log(`${r} request(${u})`),o.request(u)},unsubscribe(){console.log(`${r} cancel`),o.unsubscribe()}},e.onSubscribe(t)},onNext(o){try{console.log(`${r} onNext(${JSON.stringify(o)})`)}catch{console.log(`${r} onNext(`,o,")")}e.onNext(o)},onError(o){console.error(`${r} onError: ${o.message}`),e.onError(o)},onComplete(){console.log(`${r} onComplete`),e.onComplete()}}),t}})}doOnRequest(n){return this.wrapSource({subscribe:e=>{let r=this.source.subscribe({onSubscribe(o){},onNext(o){e.onNext(o)},onError(o){e.onError(o)},onComplete(){e.onComplete()}}),t={request(o){try{n(o)}catch{}r.request(o)},unsubscribe(){r.unsubscribe()}};return e.onSubscribe(t),t}})}doOnEach(n){return this.wrapSource({subscribe:e=>{let r=this.source.subscribe({onSubscribe(t){},onNext(t){try{n(N.next(t))}catch{}e.onNext(t)},onError(t){try{n(N.error(t))}catch{}e.onError(t)},onComplete(){try{n(N.complete())}catch{}e.onComplete()}});return e.onSubscribe(r),r}})}subscribeOn(n){return this.wrapSource({subscribe:e=>{let r=null,t=0,o=!1,u={request(i){if(!o){if(i<=0){e.onError(new Error(`request must be > 0, but was ${i}`));return}r?r.request(i):t=Math.min(t+i,Number.MAX_SAFE_INTEGER)}},unsubscribe(){o=!0,r?.unsubscribe()}};return e.onSubscribe(u),n.schedule(()=>{o||(r=this.source.subscribe({onSubscribe(i){},onNext(i){e.onNext(i)},onError(i){e.onError(i)},onComplete(){e.onComplete()}}),t>0&&r.request(t))}),u}})}};var I=class{schedule(n){n()}};var X=class{schedule(n){Promise.resolve().then(n)}};var $=class{schedule(n){setTimeout(n,0)}};var D=class{constructor(n){this.delay=n}schedule(n){let e=setTimeout(n,this.delay);return{cancel:()=>clearTimeout(e)}}};var B=class{constructor(n){this.interval=n}schedule(n){let e=setInterval(n,this.interval);return{cancel:()=>clearInterval(e)}}};var O={immediate:()=>new I,micro:()=>new X,macro:()=>new $,delay:a=>new D(a),interval:a=>new B(a)};var T=class a extends v{constructor(n){super(n)}defaultDemand(){return Number.MAX_SAFE_INTEGER}wrapSource(n){return new a(n)}static from(n){return new a(n)}static generate(n){return new a({subscribe(e){let r=[],t=0,o=!1,u=!1,i=null,s=!1,l=!1,c=()=>{if(!(l||s)){l=!0;try{for(;t>0&&r.length>0;)if(t--,e.onNext(r.shift()),s)return;!u&&r.length===0&&o&&(u=!0,i?e.onError(i):e.onComplete())}finally{l=!1}}},b={next(f){o||s||(t>0?(t--,e.onNext(f)):r.push(f))},error(f){o||s||(o=!0,i=f,c())},complete(){o||s||(o=!0,c())}},p={request(f){if(!s){if(f<=0){e.onError(new Error(`request must be > 0, but was ${f}`));return}t=Math.min(t+f,Number.MAX_SAFE_INTEGER),c()}},unsubscribe(){s=!0,r.length=0}};e.onSubscribe(p);try{n(b)}catch(f){o||(o=!0,i=f instanceof Error?f:new Error(String(f)),c())}return p}})}static fromIterable(n){return a.generate(e=>{for(let r of n)e.next(r);e.complete()})}static range(n,e){return a.generate(r=>{for(let t=0;t<e;t++)r.next(n+t);r.complete()})}static empty(){return new a({subscribe(n){let e={request(){},unsubscribe(){}};return n.onSubscribe(e),n.onComplete(),e}})}static defer(n){return new a({subscribe(e){return n().subscribe(e)}})}static just(...n){return a.fromIterable(n)}static error(n){return new a({subscribe(e){let r={request(){},unsubscribe(){}};return e.onSubscribe(r),e.onError(n),r}})}static never(){return new a({subscribe(n){let e={request(){},unsubscribe(){}};return n.onSubscribe(e),e}})}static create(n){return new a({subscribe(e){let r=[],t=0,o=!1,u=!1,i=null,s=!1,l=[],c=[],b=[],p=()=>{for(let d of b)try{d()}catch{}},f=()=>{if(!(s||o)){s=!0;try{for(;t>0&&r.length>0&&!o;)t--,e.onNext(r.shift());u&&r.length===0&&!o&&(i?e.onError(i):e.onComplete())}finally{s=!1}}},S={next(d){o||u||(r.push(d),f())},error(d){o||u||(u=!0,i=d,p(),f())},complete(){o||u||(u=!0,p(),f())},get requested(){return t},onRequest(d){return l.push(d),S},onCancel(d){return c.push(d),S},onDispose(d){return b.push(d),S}},m={request(d){if(!(o||u&&r.length===0)){if(d<=0){e.onError(new Error(`request must be > 0, but was ${d}`));return}t=Math.min(t+d,Number.MAX_SAFE_INTEGER);for(let E of l)try{E(d)}catch{}f()}},unsubscribe(){if(!o){o=!0,r.length=0;for(let d of c)try{d()}catch{}p()}}};e.onSubscribe(m);try{n(S)}catch(d){!u&&!o&&S.error(d instanceof Error?d:new Error(String(d)))}return m}})}static using(n,e,r){return a.defer(()=>{let t=n();return a.from(e(t)).doFinally(()=>{try{r(t)}catch{}})})}static fromWebSocket(n){return a.create(e=>{n.onmessage=r=>e.next(r.data),n.onerror=r=>{let t=r instanceof Error?r:new Error(`WebSocket error: ${String(r)}`);e.error(t)},n.onclose=()=>e.complete(),e.onCancel(()=>{n.onmessage=null,n.onerror=null,n.onclose=null,n.close(1e3,"unsubscribed")})})}static fromEvent(n,e){return a.create(r=>{let t=o=>r.next(o);"addEventListener"in n?(n.addEventListener(e,t),r.onCancel(()=>n.removeEventListener(e,t))):(n.on(e,t),r.onCancel(()=>n.off(e,t)))})}static merge(...n){return n.length===0?a.empty():n.length===1?a.from(n[0]):new a({subscribe(e){let r=n.length,t=0,o=!1,u=!1,i=new Array(r),s=c=>{if(!u){u=!0;for(let b of i)b?.unsubscribe();c?e.onError(c):e.onComplete()}},l={request(c){if(!(o||u)){if(c<=0){s(new Error(`request must be > 0, but was ${c}`));return}for(let b of i)b.request(c)}},unsubscribe(){o=!0;for(let c of i)c?.unsubscribe()}};for(let c=0;c<r;c++){let b;n[c].subscribe({onSubscribe(p){b=p},onNext(p){!o&&!u&&e.onNext(p)},onError(p){s(p)},onComplete(){++t===r&&s()}}),i[c]=b}return e.onSubscribe(l),l}})}static firstWithValue(...n){return new a({subscribe(e){if(n.length===0){let c={request(){},unsubscribe(){}};return e.onSubscribe(c),e.onComplete(),c}let r=n.length,t=!1,o=!1,u=0,i=null,s=new Array(r),l={request(c){if(!o)for(let b of s)b.request(c)},unsubscribe(){o=!0;for(let c of s)c?.unsubscribe()}};for(let c=0;c<r;c++){let b=c,p;n[b].subscribe({onSubscribe(f){p=f},onNext(f){if(!(o||t)){t=!0;for(let S=0;S<r;S++)S!==b&&s[S]?.unsubscribe();e.onNext(f),e.onComplete()}},onError(f){o||t||(i=f,++u===r&&e.onError(i))},onComplete(){o||t||++u===r&&e.onComplete()}}),s[b]=p}return e.onSubscribe(l),l}})}static interval(n){return new a({subscribe(e){let r=0,t=0,o=!1,u=setInterval(()=>{o||r>0&&(r--,e.onNext(t++))},n),i={request(s){if(!o){if(s<=0){e.onError(new Error(`request must be > 0, but was ${s}`));return}r=Math.min(r+s,Number.MAX_SAFE_INTEGER)}},unsubscribe(){o=!0,clearInterval(u)}};return e.onSubscribe(i),i}})}static zip(n,e){return n.length===0?a.empty():new a({subscribe(r){let t=n.length,o=0,u=!1,i=!1,s=Array.from({length:t},()=>[]),l=new Array(t).fill(!1),c=new Array(t),b=()=>{for(;!u&&!i&&o>0&&s.every(f=>f.length>0);){o--;let f=s.map(m=>m.shift()),S;try{S=e(...f)}catch(m){i=!0;for(let d of c)d?.unsubscribe();r.onError(m instanceof Error?m:new Error(String(m)));return}r.onNext(S);for(let m=0;m<t;m++)l[m]||c[m].request(1)}if(!i&&l.some((f,S)=>f&&s[S].length===0)){i=!0;for(let f of c)f?.unsubscribe();r.onComplete()}},p={request(f){if(!(u||i)){if(f<=0){r.onError(new Error(`request must be > 0, but was ${f}`));return}o=Math.min(o+f,Number.MAX_SAFE_INTEGER),b()}},unsubscribe(){u=!0;for(let f of c)f?.unsubscribe()}};for(let f=0;f<t;f++){let S=f,m;n[S].subscribe({onSubscribe(d){m=d},onNext(d){u||i||(s[S].push(d),b())},onError(d){if(!(u||i)){i=!0;for(let E of c)E?.unsubscribe();r.onError(d)}},onComplete(){u||i||(l[S]=!0,b())}}),c[S]=m}r.onSubscribe(p);for(let f=0;f<t;f++)c[f].request(1);return p}})}static combineLatest(n,e){return n.length===0?a.empty():new a({subscribe(r){let t=n.length,o=0,u=!1,i=!1,s=[],l=new Array(t).fill(void 0),c=new Array(t).fill(!1),b=new Array(t).fill(!1),p=new Array(t),f=()=>{for(;!u&&!i&&o>0&&s.length>0;)o--,r.onNext(s.shift());!i&&b.every(Boolean)&&s.length===0&&(i=!0,r.onComplete())},S={request(m){if(!(u||i)){if(m<=0){r.onError(new Error(`request must be > 0, but was ${m}`));return}o=Math.min(o+m,Number.MAX_SAFE_INTEGER),f()}},unsubscribe(){u=!0;for(let m of p)m?.unsubscribe()}};for(let m=0;m<t;m++){let d=m,E;n[d].subscribe({onSubscribe(w){E=w},onNext(w){if(!(u||i)&&(l[d]=w,c[d]=!0,c.every(Boolean))){let G;try{G=e(...l)}catch(V){i=!0;for(let W of p)W?.unsubscribe();r.onError(V instanceof Error?V:new Error(String(V)));return}s.push(G),f()}},onError(w){if(!(u||i)){i=!0;for(let G of p)G?.unsubscribe();r.onError(w)}},onComplete(){u||i||(b[d]=!0,f())}}),p[d]=E}r.onSubscribe(S);for(let m=0;m<t;m++)p[m].request(Number.MAX_SAFE_INTEGER);return S}})}map(n){return new a({subscribe:e=>{let r=this.source.subscribe({onSubscribe(t){},onNext(t){try{e.onNext(n(t))}catch(o){e.onError(o instanceof Error?o:new Error(String(o)))}},onError(t){e.onError(t)},onComplete(){e.onComplete()}});return e.onSubscribe(r),r}})}mapNotNull(n){return new a({subscribe:e=>{let r,t=this.source.subscribe({onSubscribe(o){r=o},onNext(o){try{let u=n(o);u!=null?e.onNext(u):r.request(1)}catch(u){e.onError(u instanceof Error?u:new Error(String(u)))}},onError(o){e.onError(o)},onComplete(){e.onComplete()}});return e.onSubscribe(t),t}})}handle(n){return new a({subscribe:e=>{let r,t=!1,o=this.source.subscribe({onSubscribe(u){r=u},onNext(u){if(t)return;let i=!1,s={next(l){!i&&!t&&(i=!0,e.onNext(l))},error(l){t||(t=!0,e.onError(l))},complete(){t||(t=!0,e.onComplete())}};try{n(u,s)}catch(l){t||(t=!0,e.onError(l instanceof Error?l:new Error(String(l))))}!t&&!i&&r.request(1)},onError(u){t||e.onError(u)},onComplete(){t||e.onComplete()}});return e.onSubscribe(o),o}})}flatMap(n){return new a({subscribe:e=>{let r={request(){},unsubscribe(){}},t=new Set,o=!1,u=!1,i=!1,s=0,l=b=>{if(!u){u=!0,r.unsubscribe();for(let p of t)p.unsubscribe();t.clear(),b?e.onError(b):e.onComplete()}},c={request(b){if(!(o||u)){if(b<=0){l(new Error(`request must be > 0, but was ${b}`));return}s=Math.min(s+b,Number.MAX_SAFE_INTEGER);for(let p of t)p.request(b)}},unsubscribe(){o=!0,r.unsubscribe();for(let b of t)b.unsubscribe();t.clear()}};return this.source.subscribe({onSubscribe(b){r=b,e.onSubscribe(c)},onNext(b){if(o||u)return;let p;try{p=n(b)}catch(S){l(S instanceof Error?S:new Error(String(S)));return}let f=p.subscribe({onSubscribe(S){},onNext(S){!o&&!u&&e.onNext(S)},onError(S){l(S)},onComplete(){t.delete(f),!u&&i&&t.size===0&&l()}});t.add(f),s>0&&f.request(s)},onError(b){l(b)},onComplete(){i=!0,!u&&t.size===0&&l()}}),r.request(Number.MAX_SAFE_INTEGER),c}})}concatMap(n){return new a({subscribe:e=>{let r,t=null,o=!1,u=!1,i=!1,s=c=>{u||(u=!0,r?.unsubscribe(),t?.unsubscribe(),t=null,c?e.onError(c):e.onComplete())},l={request(c){if(!(o||u)){if(c<=0){s(new Error(`request must be > 0, but was ${c}`));return}t?t.request(c):r.request(1)}},unsubscribe(){o=!0,r?.unsubscribe(),t?.unsubscribe()}};return this.source.subscribe({onSubscribe(c){r=c,e.onSubscribe(l)},onNext(c){if(o||u)return;let b;try{b=n(c)}catch(p){s(p instanceof Error?p:new Error(String(p)));return}b.subscribe({onSubscribe(p){t=p,p.request(Number.MAX_SAFE_INTEGER)},onNext(p){!o&&!u&&e.onNext(p)},onError(p){s(p)},onComplete(){o||u||(t=null,i?s():r.request(1))}})},onError(c){s(c)},onComplete(){i=!0,t===null&&s()}}),l}})}switchMap(n){return new a({subscribe:e=>{let r,t=null,o=!1,u=!1,i=!1,s=0,l=0,c=p=>{u||(u=!0,r?.unsubscribe(),t?.unsubscribe(),t=null,p?e.onError(p):e.onComplete())},b={request(p){if(!(o||u)){if(p<=0){c(new Error(`request must be > 0, but was ${p}`));return}s=Math.min(s+p,Number.MAX_SAFE_INTEGER),t&&t.request(p)}},unsubscribe(){o=!0,r?.unsubscribe(),t?.unsubscribe()}};return this.source.subscribe({onSubscribe(p){r=p,e.onSubscribe(b)},onNext(p){if(o||u)return;t?.unsubscribe(),t=null;let f=++l,S;try{S=n(p)}catch(m){c(m instanceof Error?m:new Error(String(m)));return}S.subscribe({onSubscribe(m){if(l!==f||o||u){m.unsubscribe();return}t=m,s>0&&m.request(s)},onNext(m){l===f&&!o&&!u&&e.onNext(m)},onError(m){l===f&&c(m)},onComplete(){l!==f||o||u||(t=null,i&&c())}})},onError(p){c(p)},onComplete(){i=!0,t===null&&c()}}),r.request(Number.MAX_SAFE_INTEGER),b}})}filter(n){return new a({subscribe:e=>{let r,t=this.source.subscribe({onSubscribe(o){r=o},onNext(o){try{n(o)?e.onNext(o):r.request(1)}catch(u){e.onError(u instanceof Error?u:new Error(String(u)))}},onError(o){e.onError(o)},onComplete(){e.onComplete()}});return e.onSubscribe(t),t}})}filterWhen(n){return this.concatMap(e=>a.from(n(e)).filter(r=>r).map(()=>e))}cast(){return new a(this.source)}take(n){return n<=0?a.empty():new a({subscribe:e=>{let r,t=0,o=!1,u={request(i){o||r?.request(i)},unsubscribe(){o=!0,r?.unsubscribe()}};return this.source.subscribe({onSubscribe(i){r=i,e.onSubscribe(u)},onNext(i){o||(e.onNext(i),++t>=n&&(o=!0,r.unsubscribe(),e.onComplete()))},onError(i){o||e.onError(i)},onComplete(){o||e.onComplete()}}),u}})}takeWhile(n){return new a({subscribe:e=>{let r,t=!1,o={request(u){t||r?.request(u)},unsubscribe(){t=!0,r?.unsubscribe()}};return this.source.subscribe({onSubscribe(u){r=u,e.onSubscribe(o)},onNext(u){if(!t)try{n(u)?e.onNext(u):(t=!0,r.unsubscribe(),e.onComplete())}catch(i){t=!0,e.onError(i instanceof Error?i:new Error(String(i)))}},onError(u){t||e.onError(u)},onComplete(){t||e.onComplete()}}),o}})}takeUntilOther(n){return new a({subscribe:e=>{let r,t,o=!1,u={request(i){o||r?.request(i)},unsubscribe(){o=!0,r?.unsubscribe(),t?.unsubscribe()}};return t=n.subscribe({onSubscribe(i){t=i,i.request(1)},onNext(i){o||(o=!0,r?.unsubscribe(),e.onComplete())},onError(i){o||(o=!0,e.onError(i))},onComplete(){}}),this.source.subscribe({onSubscribe(i){r=i,e.onSubscribe(u)},onNext(i){o||e.onNext(i)},onError(i){o||e.onError(i)},onComplete(){o||(o=!0,t?.unsubscribe(),e.onComplete())}}),u}})}defaultIfEmpty(n){return new a({subscribe:e=>{let r=!1,t=this.source.subscribe({onSubscribe(o){},onNext(o){r=!0,e.onNext(o)},onError(o){e.onError(o)},onComplete(){r||e.onNext(n),e.onComplete()}});return e.onSubscribe(t),t}})}retry(n=Number.MAX_SAFE_INTEGER){return new a({subscribe:e=>{let r={request(){},unsubscribe(){}},t=0,o=!1,u=0,i=0,s={request(c){if(!o){if(c<=0){e.onError(new Error(`request must be > 0, but was ${c}`));return}t=Math.min(t+c,Number.MAX_SAFE_INTEGER),r.request(c)}},unsubscribe(){o=!0,r.unsubscribe()}},l=()=>{let c=++i;this.source.subscribe({onSubscribe(b){if(c!==i){b.unsubscribe();return}r=b,t>0&&b.request(t)},onNext(b){!o&&c===i&&e.onNext(b)},onError(b){o||c!==i||(u<n?(u++,l()):e.onError(b))},onComplete(){!o&&c===i&&e.onComplete()}})};return e.onSubscribe(s),l(),s}})}scan(n){return new a({subscribe:e=>{let r,t=!1,o=this.source.subscribe({onSubscribe(u){},onNext(u){r=t?n(r,u):u,t=!0,e.onNext(r)},onError(u){e.onError(u)},onComplete(){e.onComplete()}});return e.onSubscribe(o),o}})}scanWith(n,e){return new a({subscribe:r=>{let t=n(),o=this.source.subscribe({onSubscribe(u){},onNext(u){t=e(t,u),r.onNext(t)},onError(u){r.onError(u)},onComplete(){r.onComplete()}});return r.onSubscribe(o),o}})}zipWith(n,e){return new a({subscribe:r=>{let t=[],o=[],u=!1,i=!1,s=!1,l=!1,c={request(){},unsubscribe(){}},b={request(){},unsubscribe(){}},p=m=>{l||(l=!0,c.unsubscribe(),b.unsubscribe(),m?r.onError(m):r.onComplete())},f={request(m){if(!(s||l)){if(m<=0){p(new Error(`request must be > 0, but was ${m}`));return}c.request(m),b.request(m)}},unsubscribe(){s=!0,c.unsubscribe(),b.unsubscribe()}},S=()=>{for(;t.length>0&&o.length>0;){if(s||l)return;let m=t.shift(),d=o.shift();try{r.onNext(e(m,d))}catch(E){p(E instanceof Error?E:new Error(String(E)));return}}(u&&t.length===0||i&&o.length===0)&&p()};return this.source.subscribe({onSubscribe(m){c=m,r.onSubscribe(f)},onNext(m){!s&&!l&&(t.push(m),S())},onError(m){p(m)},onComplete(){!s&&!l&&(u=!0,S())}}),b=n.subscribe({onSubscribe(m){b=m},onNext(m){!s&&!l&&(o.push(m),S())},onError(m){p(m)},onComplete(){!s&&!l&&(i=!0,S())}}),f}})}doOnComplete(n){return new a({subscribe:e=>{let r=this.source.subscribe({onSubscribe(t){},onNext(t){e.onNext(t)},onError(t){e.onError(t)},onComplete(){try{n()}catch{}e.onComplete()}});return e.onSubscribe(r),r}})}doOnTerminate(n){return new a({subscribe:e=>{let r=this.source.subscribe({onSubscribe(t){},onNext(t){e.onNext(t)},onError(t){try{n()}catch{}e.onError(t)},onComplete(){try{n()}catch{}e.onComplete()}});return e.onSubscribe(r),r}})}doOnCancel(n){return new a({subscribe:e=>{let r=this.source.subscribe({onSubscribe(o){},onNext(o){e.onNext(o)},onError(o){e.onError(o)},onComplete(){e.onComplete()}}),t={request(o){r.request(o)},unsubscribe(){try{n()}catch{}r.unsubscribe()}};return e.onSubscribe(t),t}})}doFinally(n){return new a({subscribe:e=>{let r=this.source.subscribe({onSubscribe(o){},onNext(o){e.onNext(o)},onError(o){try{n()}catch{}e.onError(o)},onComplete(){try{n()}catch{}e.onComplete()}}),t={request(o){r.request(o)},unsubscribe(){try{n()}catch{}r.unsubscribe()}};return e.onSubscribe(t),t}})}pipe(n,e,r){return new a({subscribe:t=>{n(u=>t.onNext(u),u=>t.onError(u),()=>t.onComplete());let o={request:e,unsubscribe:r};return t.onSubscribe(o),o}})}first(){return h.generate(n=>{let e=this.source.subscribe({onSubscribe(r){},onNext(r){e.unsubscribe(),n.next(r)},onError(r){n.error(r)},onComplete(){n.complete()}});e.request(1)})}last(){return h.generate(n=>{let e,r=!1;this.source.subscribe({onSubscribe(o){},onNext(o){e=o,r=!0},onError(o){n.error(o)},onComplete(){r?n.next(e):n.complete()}}).request(Number.MAX_SAFE_INTEGER)})}count(){return h.generate(n=>{let e=0;this.source.subscribe({onSubscribe(t){},onNext(t){e++},onError(t){n.error(t)},onComplete(){n.next(e)}}).request(Number.MAX_SAFE_INTEGER)})}hasElements(){return h.generate(n=>{let e=this.source.subscribe({onSubscribe(r){},onNext(r){e.unsubscribe(),n.next(!0)},onError(r){n.error(r)},onComplete(){n.next(!1)}});e.request(1)})}any(n){return h.generate(e=>{let r=this.source.subscribe({onSubscribe(t){},onNext(t){try{n(t)&&(r.unsubscribe(),e.next(!0))}catch(o){e.error(o instanceof Error?o:new Error(String(o)))}},onError(t){e.error(t)},onComplete(){e.next(!1)}});r.request(Number.MAX_SAFE_INTEGER)})}all(n){return h.generate(e=>{let r=this.source.subscribe({onSubscribe(t){},onNext(t){try{n(t)||(r.unsubscribe(),e.next(!1))}catch(o){e.error(o instanceof Error?o:new Error(String(o)))}},onError(t){e.error(t)},onComplete(){e.next(!0)}});r.request(Number.MAX_SAFE_INTEGER)})}none(n){return this.any(n).map(e=>!e)}elementAt(n,e){return h.generate(r=>{let t=0,o=this.source.subscribe({onSubscribe(u){},onNext(u){t++===n&&(o.unsubscribe(),r.next(u))},onError(u){r.error(u)},onComplete(){e!==void 0?r.next(e):r.complete()}});o.request(Number.MAX_SAFE_INTEGER)})}collect(n=!1){return h.generate(e=>{let r=[];this.source.subscribe({onSubscribe(o){},onNext(o){r.push(o)},onError(o){e.error(o)},onComplete(){e.next(r)}}).request(Number.MAX_SAFE_INTEGER)})}collectList(){return this.collect()}sort(n){return a.defer(()=>a.from(this.collect().map(e=>(e.sort(n),e)).flatMapMany(e=>a.fromIterable(e))))}buffer(n){return new a({subscribe:e=>{let r=[],t=this.source.subscribe({onSubscribe(o){},onNext(o){r.push(o),r.length>=n&&(e.onNext(r),r=[])},onError(o){e.onError(o)},onComplete(){r.length>0&&e.onNext(r),e.onComplete()}});return e.onSubscribe(t),t}})}cache(){let n=new C,e=!1;return new a({subscribe:r=>(e||(e=!0,this.source.subscribe({onSubscribe(t){t.request(Number.MAX_SAFE_INTEGER)},onNext(t){n.next(t)},onError(t){n.error(t)},onComplete(){n.complete()}})),n.subscribe(r))})}share(){let n=new Map,e=null,r=!1,t=null,o=this.source,u=()=>{r=!1,t=null,o.subscribe({onSubscribe(i){e=i,i.request(Number.MAX_SAFE_INTEGER)},onNext(i){for(let[s,l]of n)!l.cancelled&&l.demand>0&&(l.demand--,s.onNext(i))},onError(i){r=!0,t=i,e=null;for(let[s,l]of n)l.cancelled||s.onError(i);n.clear()},onComplete(){r=!0,e=null;for(let[i,s]of n)s.cancelled||i.onComplete();n.clear()}})};return new a({subscribe:i=>{if(r){let c={request(){},unsubscribe(){}};return i.onSubscribe(c),t?i.onError(t):i.onComplete(),c}let s={demand:0,cancelled:!1};n.set(i,s);let l={request(c){if(!s.cancelled){if(c<=0){s.cancelled=!0,n.delete(i),i.onError(new Error(`request must be > 0, but was ${c}`));return}s.demand=Math.min(s.demand+c,Number.MAX_SAFE_INTEGER),!e&&!r&&u()}},unsubscribe(){s.cancelled||(s.cancelled=!0,n.delete(i),n.size===0&&e&&(e.unsubscribe(),e=null))}};return i.onSubscribe(l),l}})}indexed(){return new a({subscribe:n=>{let e=0,r=this.source.subscribe({onSubscribe(t){},onNext(t){n.onNext([e++,t])},onError(t){n.onError(t)},onComplete(){n.onComplete()}});return n.onSubscribe(r),r}})}skip(n){return new a({subscribe:e=>{let r=0,t,o=this.source.subscribe({onSubscribe(u){t=u},onNext(u){r++<n?t.request(1):e.onNext(u)},onError(u){e.onError(u)},onComplete(){e.onComplete()}});return e.onSubscribe(o),o}})}skipWhile(n){return new a({subscribe:e=>{let r=!0,t,o=this.source.subscribe({onSubscribe(u){t=u},onNext(u){if(r&&n(u)){t.request(1);return}r=!1,e.onNext(u)},onError(u){e.onError(u)},onComplete(){e.onComplete()}});return e.onSubscribe(o),o}})}skipUntil(n){return new a({subscribe:e=>{let r=!0,t,o=n.subscribe({onSubscribe(u){},onNext(u){r=!1,o.unsubscribe()},onError(u){e.onError(u)},onComplete(){}});return o.request(1),t=this.source.subscribe({onSubscribe(u){},onNext(u){r?t.request(1):e.onNext(u)},onError(u){e.onError(u)},onComplete(){e.onComplete()}}),e.onSubscribe({request(u){t.request(u)},unsubscribe(){t.unsubscribe(),o.unsubscribe()}}),{request(u){t.request(u)},unsubscribe(){t.unsubscribe(),o.unsubscribe()}}}})}distinct(){return new a({subscribe:n=>{let e=new Set,r,t=this.source.subscribe({onSubscribe(o){r=o},onNext(o){e.has(o)?r.request(1):(e.add(o),n.onNext(o))},onError(o){n.onError(o)},onComplete(){n.onComplete()}});return n.onSubscribe(t),t}})}distinctUntilChanged(n=(e,r)=>e!==r){return new a({subscribe:e=>{let r,t=!0,o,u=this.source.subscribe({onSubscribe(i){o=i},onNext(i){t||n(r,i)?(t=!1,r=i,e.onNext(i)):o.request(1)},onError(i){e.onError(i)},onComplete(){e.onComplete()}});return e.onSubscribe(u),u}})}delayElements(n){return new a({subscribe:e=>{let r={request(){},unsubscribe(){}},t=null,o=!1,u=0,i=!1,s={request(l){if(o)return;if(l<=0){e.onError(new Error(`request must be > 0, but was ${l}`));return}let c=u===0;u=Math.min(u+l,Number.MAX_SAFE_INTEGER),c&&t===null&&r.request(1)},unsubscribe(){o=!0,t?.cancel(),t=null,r.unsubscribe()}};return this.source.subscribe({onSubscribe(l){r=l,e.onSubscribe(s)},onNext(l){t=O.delay(n).schedule(()=>{t=null,!o&&(u--,e.onNext(l),!o&&(i?e.onComplete():u>0&&r.request(1)))})},onError(l){t?.cancel(),t=null,e.onError(l)},onComplete(){i=!0,t===null&&!o&&e.onComplete()}}),s}})}concatWith(n){return new a({subscribe:e=>{let r={request(){},unsubscribe(){}},t=null,o=!1,u=0,i={request(s){if(!o){if(s<=0){e.onError(new Error(`request must be > 0, but was ${s}`));return}u=Math.min(u+s,Number.MAX_SAFE_INTEGER),t?t.request(s):r.request(s)}},unsubscribe(){o=!0,r.unsubscribe(),t?.unsubscribe()}};return this.source.subscribe({onSubscribe(s){r=s,e.onSubscribe(i)},onNext(s){e.onNext(s)},onError(s){e.onError(s)},onComplete(){o||(t=n.subscribe({onSubscribe(s){t=s,u>0&&t.request(u)},onNext(s){e.onNext(s)},onError(s){e.onError(s)},onComplete(){e.onComplete()}}))}}),i}})}mergeWith(n){return new a({subscribe:e=>{let r=0,t=!1,o=!1,u={request(){},unsubscribe(){}},i={request(){},unsubscribe(){}},s=b=>{o||(o=!0,u.unsubscribe(),i.unsubscribe(),b?e.onError(b):e.onComplete())},l=()=>{!o&&++r===2&&s()},c={request(b){if(!(t||o)){if(b<=0){s(new Error(`request must be > 0, but was ${b}`));return}u.request(b),i.request(b)}},unsubscribe(){t=!0,u.unsubscribe(),i.unsubscribe()}};return this.source.subscribe({onSubscribe(b){u=b,e.onSubscribe(c)},onNext(b){!t&&!o&&e.onNext(b)},onError(b){s(b)},onComplete(){l()}}),i=n.subscribe({onSubscribe(b){},onNext(b){!t&&!o&&e.onNext(b)},onError(b){s(b)},onComplete(){l()}}),c}})}reduce(n){return h.generate(e=>{let r,t=!1;this.source.subscribe({onSubscribe(u){},onNext(u){r=t?n(r,u):u,t=!0},onError(u){e.error(u)},onComplete(){t?e.next(r):e.complete()}}).request(Number.MAX_SAFE_INTEGER)})}reduceWith(n,e){return h.generate(r=>{let t=n();this.source.subscribe({onSubscribe(u){},onNext(u){t=e(t,u)},onError(u){r.error(u)},onComplete(){r.next(t)}}).request(Number.MAX_SAFE_INTEGER)})}then(){return h.generate(n=>{this.source.subscribe({onSubscribe(r){},onNext(r){},onError(r){n.error(r)},onComplete(){n.next(void 0)}}).request(Number.MAX_SAFE_INTEGER)})}thenEmpty(n){return this.then().flatMap(()=>h.from({subscribe(e){let r=n.subscribe({onSubscribe(t){},onNext(t){},onError(t){e.onError(t)},onComplete(){e.onNext(void 0),e.onComplete()}});return e.onSubscribe(r),r}}))}retryWhen(n){return new a({subscribe:e=>{let r=[],t=null,o=0,u=m=>{r.push(m),i()},i=()=>{for(;o>0&&r.length>0&&t;)o--,t.onNext(r.shift())},s=new a({subscribe(m){t=m;let d={request(E){o=Math.min(o+E,Number.MAX_SAFE_INTEGER),i()},unsubscribe(){t=null}};return m.onSubscribe(d),d}}),l={request(){},unsubscribe(){}},c=0,b=!1,p=!1,f={request(m){if(!(b||p)){if(m<=0){e.onError(new Error(`request must be > 0, but was ${m}`));return}c=Math.min(c+m,Number.MAX_SAFE_INTEGER),l.request(m)}},unsubscribe(){b=!0,l.unsubscribe()}},S=()=>{this.source.subscribe({onSubscribe(m){l=m,c>0&&m.request(c)},onNext(m){!b&&!p&&e.onNext(m)},onError(m){!b&&!p&&u(m)},onComplete(){!b&&!p&&(p=!0,t?.onComplete(),e.onComplete())}})};return n(s).subscribe({onSubscribe(m){m.request(Number.MAX_SAFE_INTEGER)},onNext(m){!b&&!p&&(l.unsubscribe(),S())},onError(m){!b&&!p&&(p=!0,e.onError(m))},onComplete(){!b&&!p&&(p=!0,e.onComplete())}}),e.onSubscribe(f),S(),f}})}repeatWhen(n){return new a({subscribe:e=>{let r=[],t=null,o=0,u=!1,i=()=>{if(!u){u=!0;try{for(;!f&&!p&&o>0&&r.length>0&&t;)o--,t.onNext(r.shift())}finally{u=!1}}},s=()=>{r.push(void 0),i()},l=new a({subscribe(d){t=d;let E={request(w){o=Math.min(o+w,Number.MAX_SAFE_INTEGER),i()},unsubscribe(){t=null}};return d.onSubscribe(E),E}}),c={request(){},unsubscribe(){}},b=0,p=!1,f=!1,S={request(d){if(!(p||f)){if(d<=0){e.onError(new Error(`request must be > 0, but was ${d}`));return}b=Math.min(b+d,Number.MAX_SAFE_INTEGER),c.request(d)}},unsubscribe(){p=!0,c.unsubscribe()}},m=()=>{this.source.subscribe({onSubscribe(d){c=d,b>0&&d.request(b)},onNext(d){!p&&!f&&e.onNext(d)},onError(d){!p&&!f&&(f=!0,e.onError(d))},onComplete(){!p&&!f&&s()}})};return n(l).subscribe({onSubscribe(d){d.request(Number.MAX_SAFE_INTEGER)},onNext(d){!p&&!f&&(c.unsubscribe(),m())},onError(d){!p&&!f&&(f=!0,e.onError(d))},onComplete(){!p&&!f&&(f=!0,e.onComplete())}}),e.onSubscribe(S),m(),S}})}groupBy(n){return new a({subscribe:e=>{let r=new Map,t=!1,o={request(){},unsubscribe(){}},u={request(i){},unsubscribe(){t=!0,o.unsubscribe()}};return this.source.subscribe({onSubscribe(i){o=i,i.request(Number.MAX_SAFE_INTEGER),e.onSubscribe(u)},onNext(i){if(t)return;let s;try{s=n(i)}catch(c){e.onError(c instanceof Error?c:new Error(String(c)));return}let l=r.get(s);l||(l=new C,r.set(s,l),e.onNext(Object.assign(a.from(l),{key:s}))),l.next(i)},onError(i){if(!t){for(let s of r.values())s.error(i);e.onError(i)}},onComplete(){if(!t){for(let i of r.values())i.complete();e.onComplete()}}}),u}})}bufferTimeout(n,e){return new a({subscribe:r=>{let t=[],o=null,u=!1,i=()=>{if(o!==null&&(clearTimeout(o),o=null),t.length>0&&!u){let b=t;t=[],r.onNext(b)}},s=()=>{o!==null&&clearTimeout(o),o=setTimeout(()=>{u||i()},e)},l=this.source.subscribe({onSubscribe(b){b.request(Number.MAX_SAFE_INTEGER)},onNext(b){u||(t.push(b),t.length>=n?i():s())},onError(b){u||(o!==null&&clearTimeout(o),r.onError(b))},onComplete(){u||(o!==null&&(clearTimeout(o),o=null),t.length>0&&r.onNext(t),r.onComplete())}}),c={request(b){l.request(b)},unsubscribe(){u=!0,o!==null&&clearTimeout(o),l.unsubscribe()}};return r.onSubscribe(c),c}})}sample(n){return new a({subscribe:e=>{let r,t=!1,o=!1,u={request(){},unsubscribe(){}},i={request(){},unsubscribe(){}},s={request(l){o||u.request(l)},unsubscribe(){o=!0,u.unsubscribe(),i.unsubscribe()}};return i=n.subscribe({onSubscribe(l){i=l,l.request(Number.MAX_SAFE_INTEGER)},onNext(l){if(o||!t)return;let c=r;t=!1,r=void 0,e.onNext(c)},onError(l){o||e.onError(l)},onComplete(){}}),this.source.subscribe({onSubscribe(l){u=l,e.onSubscribe(s)},onNext(l){o||(r=l,t=!0)},onError(l){o||e.onError(l)},onComplete(){o||e.onComplete()}}),s}})}delayUntil(n){return this.concatMap(e=>a.from({subscribe(r){let t=!1,o={request(){},unsubscribe(){}};return o=n(e).subscribe({onSubscribe(u){o=u,u.request(Number.MAX_SAFE_INTEGER)},onNext(u){t||(t=!0,o.unsubscribe(),r.onNext(e),r.onComplete())},onError(u){t||(t=!0,r.onError(u))},onComplete(){t||(t=!0,r.onNext(e),r.onComplete())}}),r.onSubscribe(o),o}}))}expand(n){return new a({subscribe:e=>{let r=[],t=!1,o=!1,u=!1,i=!1,s=0,l=p=>{i||(i=!0,p?e.onError(p):e.onComplete())},c=()=>{if(t||u||i)return;if(s<=0||r.length===0){o&&r.length===0&&l();return}t=!0;let p=r.shift();if(s--,e.onNext(p),u||i){t=!1;return}let f;try{f=n(p)}catch(S){t=!1,l(S instanceof Error?S:new Error(String(S)));return}f.subscribe({onSubscribe(S){S.request(Number.MAX_SAFE_INTEGER)},onNext(S){!u&&!i&&r.push(S)},onError(S){t=!1,l(S)},onComplete(){t=!1,c()}})},b={request(p){if(!(u||i)){if(p<=0){l(new Error(`request must be > 0, but was ${p}`));return}s=Math.min(s+p,Number.MAX_SAFE_INTEGER),c()}},unsubscribe(){u=!0}};return this.source.subscribe({onSubscribe(p){p.request(Number.MAX_SAFE_INTEGER),e.onSubscribe(b)},onNext(p){!u&&!i&&(r.push(p),c())},onError(p){l(p)},onComplete(){o=!0,!t&&r.length===0&&l()}}),b}})}expandDeep(n){return new a({subscribe:e=>{let r=[],t=!1,o=!1,u=!1,i=!1,s=0,l=p=>{i||(i=!0,p?e.onError(p):e.onComplete())},c=()=>{if(t||u||i)return;if(s<=0||r.length===0){o&&r.length===0&&l();return}t=!0;let p=r.shift();if(s--,e.onNext(p),u||i){t=!1;return}let f;try{f=n(p)}catch(m){t=!1,l(m instanceof Error?m:new Error(String(m)));return}let S=[];f.subscribe({onSubscribe(m){m.request(Number.MAX_SAFE_INTEGER)},onNext(m){!u&&!i&&S.push(m)},onError(m){t=!1,l(m)},onComplete(){!u&&!i&&r.unshift(...S),t=!1,c()}})},b={request(p){if(!(u||i)){if(p<=0){l(new Error(`request must be > 0, but was ${p}`));return}s=Math.min(s+p,Number.MAX_SAFE_INTEGER),c()}},unsubscribe(){u=!0}};return this.source.subscribe({onSubscribe(p){p.request(Number.MAX_SAFE_INTEGER),e.onSubscribe(b)},onNext(p){!u&&!i&&(r.push(p),c())},onError(p){l(p)},onComplete(){o=!0,!t&&r.length===0&&l()}}),b}})}elapsed(){return new a({subscribe:n=>{let e=Date.now(),r=this.source.subscribe({onSubscribe(t){e=Date.now()},onNext(t){let o=Date.now(),u=o-e;e=o,n.onNext([u,t])},onError(t){n.onError(t)},onComplete(){n.onComplete()}});return n.onSubscribe(r),r}})}timestamp(){return this.map(n=>[Date.now(),n])}materialize(){return new a({subscribe:n=>{let e=!1,r=this.source.subscribe({onSubscribe(t){},onNext(t){e||n.onNext(N.next(t))},onError(t){e||(e=!0,n.onNext(N.error(t)),n.onComplete())},onComplete(){e||(e=!0,n.onNext(N.complete()),n.onComplete())}});return n.onSubscribe(r),r}})}dematerialize(){return new a({subscribe:n=>{let e=!1,r=this.source.subscribe({onSubscribe(t){},onNext(t){e||(t.kind==="next"?n.onNext(t.value):t.kind==="error"?(e=!0,n.onError(t.error)):(e=!0,n.onComplete()))},onError(t){e||(e=!0,n.onError(t))},onComplete(){e||(e=!0,n.onComplete())}});return n.onSubscribe(r),r}})}onBackpressureBuffer(n=Number.MAX_SAFE_INTEGER){return new a({subscribe:e=>{let r=[],t=0,o=!1,u=!1,i=null,s=!1,l=()=>{if(!(s||o)){s=!0;try{for(;t>0&&r.length>0&&!o;)t--,e.onNext(r.shift());u&&r.length===0&&!o&&(i?e.onError(i):e.onComplete())}finally{s=!1}}},c=this.source.subscribe({onSubscribe(p){p.request(Number.MAX_SAFE_INTEGER)},onNext(p){if(!o){if(r.length>=n){e.onError(new Error(`onBackpressureBuffer overflow (maxSize=${n})`));return}r.push(p),l()}},onError(p){o||(u=!0,i=p,l())},onComplete(){o||(u=!0,l())}}),b={request(p){if(!(o||u&&r.length===0)){if(p<=0){e.onError(new Error(`request must be > 0, but was ${p}`));return}t=Math.min(t+p,Number.MAX_SAFE_INTEGER),l()}},unsubscribe(){o=!0,r.length=0,c.unsubscribe()}};return e.onSubscribe(b),b}})}onBackpressureDrop(n){return new a({subscribe:e=>{let r=0,t=!1,o=this.source.subscribe({onSubscribe(i){i.request(Number.MAX_SAFE_INTEGER)},onNext(i){if(!t)if(r>0)r--,e.onNext(i);else try{n?.(i)}catch{}},onError(i){t||e.onError(i)},onComplete(){t||e.onComplete()}}),u={request(i){if(!t){if(i<=0){e.onError(new Error(`request must be > 0, but was ${i}`));return}r=Math.min(r+i,Number.MAX_SAFE_INTEGER)}},unsubscribe(){t=!0,o.unsubscribe()}};return e.onSubscribe(u),u}})}onBackpressureLatest(){return new a({subscribe:n=>{let e,r=!1,t=0,o=!1,u=!1,i=null,s=()=>{if(!o){if(t>0&&r){t--;let b=e;r=!1,e=void 0,n.onNext(b)}u&&!r&&!o&&(i?n.onError(i):n.onComplete())}},l=this.source.subscribe({onSubscribe(b){b.request(Number.MAX_SAFE_INTEGER)},onNext(b){o||(e=b,r=!0,s())},onError(b){o||(u=!0,i=b,s())},onComplete(){o||(u=!0,s())}}),c={request(b){if(!(o||u&&!r)){if(b<=0){n.onError(new Error(`request must be > 0, but was ${b}`));return}t=Math.min(t+b,Number.MAX_SAFE_INTEGER),s()}},unsubscribe(){o=!0,l.unsubscribe()}};return n.onSubscribe(c),c}})}limitRate(n){return new a({subscribe:e=>{let r=Math.max(1,n),t=Math.max(1,Math.floor(r*.75)),o,u=0,i=0,s=!1,l=()=>{let b=r-u;b>0&&(u+=b,o.request(b))},c={request(b){if(!s){if(b<=0){e.onError(new Error(`request must be > 0, but was ${b}`));return}l()}},unsubscribe(){s=!0,o?.unsubscribe()}};return this.source.subscribe({onSubscribe(b){o=b,e.onSubscribe(c)},onNext(b){s||(u=Math.max(0,u-1),i++,e.onNext(b),i>=t&&(i=0,l()))},onError(b){s||e.onError(b)},onComplete(){s||e.onComplete()}}),c}})}ofType(n){return this.filter(e=>e instanceof n).cast()}transformDeferred(n){return a.defer(()=>a.from(n(this)))}};var h=class a extends v{constructor(n){super(n)}defaultDemand(){return 1}wrapSource(n){return new a(n)}static generate(n){return new a({subscribe(e){let r=!1,t=!1,o=!1,u=null,i=null,s=()=>{if(!(r||!t))if(u!==null){let b=u.value;u=null,e.onNext(b),r||e.onComplete()}else if(i!==null){let b=i;i=null,e.onError(b)}else o&&e.onComplete()},l={next(b){o||r||(o=!0,t?(e.onNext(b),r||e.onComplete()):u={value:b})},error(b){o||r||(o=!0,t?e.onError(b):i=b)},complete(){o||r||(o=!0,t&&e.onComplete())}};try{n(l)}catch(b){o||(o=!0,i=b instanceof Error?b:new Error(String(b)))}let c={request(b){if(!(r||t)){if(b<=0){e.onError(new Error(`request must be > 0, but was ${b}`));return}t=!0,s()}},unsubscribe(){r=!0}};return e.onSubscribe(c),c}})}static from(n){return new a(n)}static just(n){return a.generate(e=>e.next(n))}static justOrEmpty(n){return n!=null?a.just(n):a.empty()}static empty(){return new a({subscribe(n){let e={request(){},unsubscribe(){}};return n.onSubscribe(e),n.onComplete(),e}})}static error(n){let e=n instanceof Error?n:new Error(String(n));return new a({subscribe(r){let t={request(){},unsubscribe(){}};return r.onSubscribe(t),r.onError(e),t}})}static fromPromise(n){return a.generate(e=>n.then(r=>e.next(r)).catch(r=>e.error(r instanceof Error?r:new Error(String(r)))))}static defer(n){return new a({subscribe(e){return n().subscribe(e)}})}static create(n){return a.generate(n)}static delay(n){return a.generate(e=>{let r=setTimeout(()=>e.next(0),n)})}static fromCallable(n){return a.generate(e=>{try{e.next(n())}catch(r){e.error(r instanceof Error?r:new Error(String(r)))}})}static firstWithValue(...n){return n.length===0?a.empty():a.generate(e=>{let r=!1,t=0,o=[];for(let u of n){let i=u.subscribe({onSubscribe(s){},onNext(s){if(!r){r=!0;for(let l of o)l.unsubscribe();e.next(s)}},onError(s){if(!r){r=!0;for(let l of o)l.unsubscribe();e.error(s)}},onComplete(){r||(t++,t===n.length&&(r=!0,e.complete()))}});o.push(i)}for(let u of o)u.request(1)})}static when(...n){return n.length===0?a.empty():a.generate(e=>{let r=!1,t=0,o=[];for(let u of n){let i=u.subscribe({onSubscribe(s){},onNext(s){},onError(s){if(!r){r=!0;for(let l of o)l.unsubscribe();e.error(s)}},onComplete(){r||(t++,t===n.length&&(r=!0,e.complete()))}});o.push(i)}for(let u of o)u.request(Number.MAX_SAFE_INTEGER)})}map(n){return new a({subscribe:e=>{let r=this.source.subscribe({onSubscribe(t){},onNext(t){try{e.onNext(n(t))}catch(o){e.onError(o instanceof Error?o:new Error(String(o)))}},onError(t){e.onError(t)},onComplete(){e.onComplete()}});return e.onSubscribe(r),r}})}mapNotNull(n){return new a({subscribe:e=>{let r=!1,t=this.source.subscribe({onSubscribe(o){},onNext(o){if(!r)try{let u=n(o);u!=null?e.onNext(u):(r=!0,e.onComplete())}catch(u){r=!0,e.onError(u instanceof Error?u:new Error(String(u)))}},onError(o){r||(r=!0,e.onError(o))},onComplete(){r||(r=!0,e.onComplete())}});return e.onSubscribe(t),t}})}flatMap(n){return new a({subscribe:e=>{let r={request(){},unsubscribe(){}},t=null,o=!1,u=0,i={request(s){if(!o){if(s<=0){e.onError(new Error(`request must be > 0, but was ${s}`));return}u=Math.min(u+s,Number.MAX_SAFE_INTEGER),t&&t.request(s)}},unsubscribe(){o=!0,r.unsubscribe(),t?.unsubscribe()}};return this.source.subscribe({onSubscribe(s){r=s,e.onSubscribe(i)},onNext(s){if(o)return;let l;try{l=n(s)}catch(c){e.onError(c instanceof Error?c:new Error(String(c)));return}t=l.subscribe({onSubscribe(c){},onNext(c){e.onNext(c)},onError(c){e.onError(c)},onComplete(){e.onComplete()}}),u>0&&t.request(u)},onError(s){e.onError(s)},onComplete(){t||e.onComplete()}}),r.request(1),i}})}filter(n){return new a({subscribe:e=>{let r=!1,t=this.source.subscribe({onSubscribe(o){},onNext(o){if(!r)try{n(o)?e.onNext(o):(r=!0,e.onComplete())}catch(u){r=!0,e.onError(u instanceof Error?u:new Error(String(u)))}},onError(o){r||(r=!0,e.onError(o))},onComplete(){r||(r=!0,e.onComplete())}});return e.onSubscribe(t),t}})}filterWhen(n){return new a({subscribe:e=>{let r={request(){},unsubscribe(){}},t=null,o=!1,u={request(i){if(!o&&i<=0){e.onError(new Error(`request must be > 0, but was ${i}`));return}},unsubscribe(){o=!0,r.unsubscribe(),t?.unsubscribe()}};return this.source.subscribe({onSubscribe(i){r=i,e.onSubscribe(u)},onNext(i){if(o)return;let s;try{s=n(i)}catch(c){e.onError(c instanceof Error?c:new Error(String(c)));return}let l=!1;t=s.subscribe({onSubscribe(c){},onNext(c){l||(l=!0,c?e.onNext(i):e.onComplete())},onError(c){l||(l=!0,e.onError(c))},onComplete(){l||(l=!0,e.onComplete())}}),t.request(1)},onError(i){e.onError(i)},onComplete(){t||e.onComplete()}}),r.request(1),u}})}cast(){return new a(this.source)}doFinally(n){return new a({subscribe:e=>{let r=this.source.subscribe({onSubscribe(t){},onNext(t){e.onNext(t)},onError(t){try{n()}catch{}e.onError(t)},onComplete(){try{n()}catch{}e.onComplete()}});return e.onSubscribe(r),r}})}pipe(n,e,r){return new a({subscribe:t=>{n(u=>t.onNext(u),u=>t.onError(u),()=>t.onComplete());let o={request:e,unsubscribe:r};return t.onSubscribe(o),o}})}flatMapMany(n){return T.from({subscribe:e=>{let r={request(){},unsubscribe(){}},t=null,o=!1,u=0,i={request(s){if(!o){if(s<=0){e.onError(new Error(`request must be > 0, but was ${s}`));return}u=Math.min(u+s,Number.MAX_SAFE_INTEGER),t&&t.request(s)}},unsubscribe(){o=!0,r.unsubscribe(),t?.unsubscribe()}};return this.source.subscribe({onSubscribe(s){r=s,e.onSubscribe(i)},onNext(s){if(o)return;let l;try{l=n(s)}catch(c){e.onError(c instanceof Error?c:new Error(String(c)));return}t=l.subscribe({onSubscribe(c){},onNext(c){e.onNext(c)},onError(c){e.onError(c)},onComplete(){e.onComplete()}}),u>0&&t.request(u)},onError(s){e.onError(s)},onComplete(){t||e.onComplete()}}),r.request(1),i}})}zipWith(n){return a.generate(e=>{let r,t,o=!1,u=!1,i=!1,s=p=>{i||(i=!0,c?.unsubscribe(),b?.unsubscribe(),e.error(p))},l=()=>{o&&u&&e.next([r,t])},c,b;c=this.source.subscribe({onSubscribe(p){},onNext(p){r=p,o=!0,l()},onError(p){s(p)},onComplete(){o||(b?.unsubscribe(),e.complete())}}),b=n.subscribe({onSubscribe(p){},onNext(p){t=p,u=!0,l()},onError(p){s(p)},onComplete(){u||(c?.unsubscribe(),e.complete())}}),c.request(1),b.request(1)})}zipWhen(n){return a.generate(e=>{this.source.subscribe({onSubscribe(t){},onNext(t){let o;try{o=n(t)}catch(i){e.error(i instanceof Error?i:new Error(String(i)));return}o.subscribe({onSubscribe(i){},onNext(i){e.next([t,i])},onError(i){e.error(i)},onComplete(){e.complete()}}).request(1)},onError(t){e.error(t)},onComplete(){e.complete()}}).request(1)})}hasElement(){return a.generate(n=>{let e=this.source.subscribe({onSubscribe(r){},onNext(r){e.unsubscribe(),n.next(!0)},onError(r){n.error(r)},onComplete(){n.next(!1)}});e.request(1)})}doOnSuccess(n){return new a({subscribe:e=>{let r=this.source.subscribe({onSubscribe(t){},onNext(t){try{n(t)}catch(o){e.onError(o instanceof Error?o:new Error(String(o)));return}e.onNext(t)},onError(t){e.onError(t)},onComplete(){e.onComplete()}});return e.onSubscribe(r),r}})}onErrorComplete(n){return new a({subscribe:e=>{let r=this.source.subscribe({onSubscribe(t){},onNext(t){e.onNext(t)},onError(t){!n||n(t)?e.onComplete():e.onError(t)},onComplete(){e.onComplete()}});return e.onSubscribe(r),r}})}thenReturn(n){return new a({subscribe:e=>{let r=!1,t=this.source.subscribe({onSubscribe(o){},onNext(o){},onError(o){r||(r=!0,e.onError(o))},onComplete(){r||(r=!0,e.onNext(n),e.onComplete())}});return e.onSubscribe(t),t}})}then(n){return n?new a({subscribe:e=>{let r={request(){},unsubscribe(){}},t=null,o=!1,u=0,i={request(s){if(!o){if(s<=0){e.onError(new Error(`request must be > 0, but was ${s}`));return}u=Math.min(u+s,Number.MAX_SAFE_INTEGER),t&&t.request(s)}},unsubscribe(){o=!0,r.unsubscribe(),t?.unsubscribe()}};return this.source.subscribe({onSubscribe(s){r=s,e.onSubscribe(i)},onNext(s){},onError(s){o||e.onError(s)},onComplete(){o||(t=n.subscribe({onSubscribe(s){},onNext(s){e.onNext(s)},onError(s){e.onError(s)},onComplete(){e.onComplete()}}),u>0&&t.request(u))}}),r.request(1),i}}):new a({subscribe:e=>{let r=!1,t=this.source.subscribe({onSubscribe(o){},onNext(o){},onError(o){r||(r=!0,e.onError(o))},onComplete(){r||(r=!0,e.onComplete())}});return e.onSubscribe(t),t}})}thenMany(n){return T.from({subscribe:e=>{let r={request(){},unsubscribe(){}},t=null,o=!1,u=0,i={request(s){if(!o){if(s<=0){e.onError(new Error(`request must be > 0, but was ${s}`));return}u=Math.min(u+s,Number.MAX_SAFE_INTEGER),t&&t.request(s)}},unsubscribe(){o=!0,r.unsubscribe(),t?.unsubscribe()}};return this.source.subscribe({onSubscribe(s){r=s,e.onSubscribe(i)},onNext(s){},onError(s){o||e.onError(s)},onComplete(){o||(t=n.subscribe({onSubscribe(s){},onNext(s){e.onNext(s)},onError(s){e.onError(s)},onComplete(){e.onComplete()}}),u>0&&t.request(u))}}),r.request(1),i}})}delayElement(n){return new a({subscribe:e=>{let r=null,t=!1,o=this.source.subscribe({onSubscribe(i){},onNext(i){t||(r=setTimeout(()=>{t||(e.onNext(i),e.onComplete())},n))},onError(i){e.onError(i)},onComplete(){}}),u={request(i){o.request(i)},unsubscribe(){t=!0,r!==null&&clearTimeout(r),o.unsubscribe()}};return e.onSubscribe(u),u}})}delayUntil(n){return new a({subscribe:e=>{let r={request(){},unsubscribe(){}},t=null,o=!1,u={request(i){o||r.request(i)},unsubscribe(){o=!0,r.unsubscribe(),t?.unsubscribe()}};return this.source.subscribe({onSubscribe(i){r=i,e.onSubscribe(u)},onNext(i){if(o)return;let s;try{s=n(i)}catch(c){e.onError(c instanceof Error?c:new Error(String(c)));return}let l=!1;t=s.subscribe({onSubscribe(c){},onNext(c){l||o||(l=!0,t?.unsubscribe(),e.onNext(i),e.onComplete())},onError(c){o||e.onError(c)},onComplete(){!l&&!o&&(l=!0,e.onNext(i),e.onComplete())}}),t.request(Number.MAX_SAFE_INTEGER)},onError(i){o||e.onError(i)},onComplete(){!o&&!t&&e.onComplete()}}),u}})}or(n){return new a({subscribe:e=>{let r={request(){},unsubscribe(){}},t=null,o=!1,u=!1,i={request(s){o||(t?t.request(s):r.request(s))},unsubscribe(){o=!0,r.unsubscribe(),t?.unsubscribe()}};return this.source.subscribe({onSubscribe(s){r=s,e.onSubscribe(i)},onNext(s){o||(u=!0,e.onNext(s))},onError(s){o||e.onError(s)},onComplete(){o||u||(t=n.subscribe({onSubscribe(s){},onNext(s){o||e.onNext(s)},onError(s){o||e.onError(s)},onComplete(){o||e.onComplete()}}),t.request(1))}}),i}})}retryWhen(n){return new a({subscribe:e=>{let r=!1,t=null,o=!1,u=null,i=T.from({subscribe(f){u={onNext:m=>f.onNext(m)};let S={request(m){},unsubscribe(){r=!0}};return f.onSubscribe(S),S}}),s=n(i),l,c=()=>{r||o||(t=this.source.subscribe({onSubscribe(f){},onNext(f){r||o||(o=!0,e.onNext(f),e.onComplete())},onError(f){r||u?.onNext(f)},onComplete(){!r&&!o&&e.onComplete()}}),t.request(1))},b=s.subscribe({onSubscribe(f){},onNext(f){!r&&!o&&c()},onError(f){r||e.onError(f)},onComplete(){!r&&!o&&e.onComplete()}});b.request(Number.MAX_SAFE_INTEGER),l={onNext:f=>{!r&&!o&&c()},onError:f=>{r||e.onError(f)},onComplete:()=>{!r&&!o&&e.onComplete()}},c();let p={request(f){},unsubscribe(){r=!0,t?.unsubscribe(),b.unsubscribe()}};return e.onSubscribe(p),p}})}toFuture(){return this.toPromise()}toPromise(){return new Promise((n,e)=>{let r=null;this.subscribe({onSubscribe(o){},onNext(o){r=o},onError(o){e(o)},onComplete(){n(r)}}).request(Number.MAX_SAFE_INTEGER)})}};var R=class{constructor(){this.pendingValue=null;this.completed=!1;this.terminalError=null;this.entries=new Map}get terminated(){return this.completed||this.terminalError!==null}next(n){this.terminated||this.pendingValue!==null||(this.pendingValue={value:n})}error(n){if(!this.terminated){this.terminalError=n;for(let[e,r]of this.entries)r.cancelled||e.onError(n);this.entries.clear()}}complete(){if(!this.terminated){this.completed=!0;for(let[n,e]of this.entries)e.cancelled||(this.pendingValue===null?(n.onComplete(),this.entries.delete(n)):e.demand>=1?(e.demand--,n.onNext(this.pendingValue.value),e.cancelled||n.onComplete(),this.entries.delete(n)):e.completionQueued=!0)}}asFlux(){return T.from(this)}subscribe(n){if(this.terminalError){let t={request(){},unsubscribe(){}};return n.onSubscribe(t),n.onError(this.terminalError),t}let e={demand:0,cancelled:!1,completionQueued:this.completed};if(this.entries.set(n,e),this.completed&&this.pendingValue===null){this.entries.delete(n);let t={request(){},unsubscribe(){}};return n.onSubscribe(t),n.onComplete(),t}let r={request:t=>{if(!e.cancelled){if(t<=0){e.cancelled=!0,this.entries.delete(n),n.onError(new Error(`request must be > 0, but was ${t}`));return}e.demand=Math.min(e.demand+t,Number.MAX_SAFE_INTEGER),e.completionQueued&&this.pendingValue!==null&&e.demand>=1&&(e.demand--,e.cancelled=!0,this.entries.delete(n),n.onNext(this.pendingValue.value),n.onComplete())}},unsubscribe:()=>{e.cancelled=!0,this.entries.delete(n)}};return n.onSubscribe(r),r}};var g=class{constructor(){this.terminal=null;this.subscribers=new Set}next(n){}error(n){if(!this.terminal){this.terminal={kind:"error",error:n};for(let e of this.subscribers)e.onError(n);this.subscribers.clear()}}complete(){if(!this.terminal){this.terminal={kind:"completed"};for(let n of this.subscribers)n.onComplete();this.subscribers.clear()}}asFlux(){return T.from(this)}subscribe(n){if(this.terminal){let r={request(){},unsubscribe(){}};return n.onSubscribe(r),this.terminal.kind==="completed"?n.onComplete():n.onError(this.terminal.error),r}this.subscribers.add(n);let e={request:r=>{this.subscribers.has(n)&&r<=0&&(this.subscribers.delete(n),n.onError(new Error(`request must be > 0, but was ${r}`)))},unsubscribe:()=>{this.subscribers.delete(n)}};return n.onSubscribe(e),e}};var y=class{constructor(){this.subscriber=null;this.demand=0;this.cancelled=!1;this.terminated=!1;this.terminalError=null}asFlux(){return T.from(this)}shouldReplayTerminalOnSubscribe(){return this.terminated}onDemandGranted(){}onUnsubscribed(){}afterSubscribed(){}onTerminal(){this.subscriber&&!this.cancelled&&(this.terminalError?this.subscriber.onError(this.terminalError):this.subscriber.onComplete())}error(n){this.terminated||(this.terminated=!0,this.terminalError=n,this.onTerminal())}complete(){this.terminated||(this.terminated=!0,this.onTerminal())}subscribe(n){if(this.subscriber!==null){let r={request(){},unsubscribe(){}};return n.onSubscribe(r),n.onError(new Error(`${this.constructor.name} allows only one subscriber`)),r}if(this.shouldReplayTerminalOnSubscribe()){let r={request(){},unsubscribe(){}};return n.onSubscribe(r),this.terminalError?n.onError(this.terminalError):n.onComplete(),r}this.subscriber=n;let e={request:r=>{if(!this.cancelled){if(r<=0){this.cancelled=!0;let t=this.subscriber;this.subscriber=null,t?.onError(new Error(`request must be > 0, but was ${r}`));return}this.demand=Math.min(this.demand+r,Number.MAX_SAFE_INTEGER),this.onDemandGranted()}},unsubscribe:()=>{this.cancelled=!0,this.subscriber=null,this.onUnsubscribed()}};return n.onSubscribe(e),this.afterSubscribed(),e}};var M=class extends y{constructor(){super(...arguments);this.buffer=[];this.draining=!1}shouldReplayTerminalOnSubscribe(){return!1}onTerminal(){this.drain()}onDemandGranted(){this.drain()}onUnsubscribed(){this.buffer.length=0}afterSubscribed(){this.drain()}next(e){this.terminated||this.cancelled||(this.buffer.push(e),this.drain())}drain(){if(!(!this.subscriber||this.cancelled||this.draining)){this.draining=!0;try{for(;this.demand>0&&this.buffer.length>0;)if(this.demand--,this.subscriber.onNext(this.buffer.shift()),this.cancelled)return;if(this.buffer.length===0&&this.terminated){let e=this.subscriber;this.subscriber=null,this.terminalError?e.onError(this.terminalError):e.onComplete()}}finally{this.draining=!1}}}};var F=class extends y{next(n){if(!(this.terminated||this.cancelled||!this.subscriber)){if(this.demand<=0){this.error(new Error("UnicastOnBackpressureErrorSink: subscriber cannot keep up with demand"));return}this.demand--,this.subscriber.onNext(n)}}};var A=class extends x{createEntry(){return{demand:0,cancelled:!1}}next(n){if(this.terminated)return;let e=[...this.entries.values()].filter(r=>!r.cancelled);if(!(e.length===0||!e.every(r=>r.demand>0)))for(let[r,t]of this.entries)t.cancelled||(t.demand--,r.onNext(n))}};var _=class extends x{createEntry(){return{demand:0,cancelled:!1}}next(n){if(!this.terminated)for(let[e,r]of this.entries)!r.cancelled&&r.demand>0&&(r.demand--,e.onNext(n))}};var P=class extends x{constructor(n=256,e=!0){super(),this.bufferSize=n,this.autoCancel=e}createEntry(){return{buffer:[],demand:0,cancelled:!1,draining:!1}}deliverComplete(n,e){this.drainEntry(n,e)}clearEntriesAfterComplete(){return!1}onDemandGranted(n,e){this.drainEntry(n,e)}onUnsubscribed(n,e){this.autoCancel&&this.entries.size===0&&(this.terminated=!0)}next(n){if(!this.terminated)for(let[e,r]of this.entries)r.cancelled||(r.demand>0?(r.demand--,e.onNext(n)):r.buffer.length<this.bufferSize?r.buffer.push(n):(r.cancelled=!0,this.entries.delete(e),e.onError(new Error("MulticastOnBackpressureBufferSink: buffer overflow")),this.autoCancel&&this.entries.size===0&&(this.terminated=!0)))}drainEntry(n,e){if(!(e.cancelled||e.draining)){e.draining=!0;try{for(;e.demand>0&&e.buffer.length>0;)if(e.demand--,n.onNext(e.buffer.shift()),e.cancelled)return;e.buffer.length===0&&this.terminated&&(this.entries.delete(n),this.terminalError?n.onError(this.terminalError):n.onComplete())}finally{e.draining=!1}}}};var q=class extends x{constructor(e){super();this.history=[];this.limit=e}createEntry(){return{replay:[...this.history],demand:0,cancelled:!1,draining:!1}}shouldReplayTerminalOnSubscribe(){return this.terminated&&this.history.length===0}deliverError(e,r){this.drainEntry(e,r),r.cancelled||e.onError(this.terminalError)}deliverComplete(e,r){r.cancelled||this.drainEntry(e,r)}clearEntriesAfterComplete(){return!1}onDemandGranted(e,r){this.drainEntry(e,r)}next(e){if(!this.terminated){this.history.push(e),this.history.length>this.limit&&this.history.shift();for(let[r,t]of this.entries)t.cancelled||(t.replay.push(e),this.drainEntry(r,t))}}drainEntry(e,r){if(!(r.cancelled||r.draining)){r.draining=!0;try{for(;r.demand>0&&r.replay.length>0;)if(r.demand--,e.onNext(r.replay.shift()),r.cancelled)return;r.replay.length===0&&this.terminated&&(this.entries.delete(e),this.terminalError?e.onError(this.terminalError):e.onComplete())}finally{r.draining=!1}}}};var k=class extends x{constructor(n){super(),this.latestValue=n}createEntry(){return{pending:this.latestValue,hasPending:!0,demand:0,cancelled:!1,draining:!1}}shouldReplayTerminalOnSubscribe(){return this.terminated&&this.terminalError!==null}deliverError(n,e){this.drainEntry(n,e),e.cancelled||n.onError(this.terminalError)}deliverComplete(n,e){e.cancelled||this.drainEntry(n,e)}clearEntriesAfterComplete(){return!1}onDemandGranted(n,e){this.drainEntry(n,e)}next(n){if(!this.terminated){this.latestValue=n;for(let[e,r]of this.entries)r.cancelled||(r.pending=n,r.hasPending=!0,this.drainEntry(e,r))}}drainEntry(n,e){if(!(e.cancelled||e.draining)){e.draining=!0;try{if(e.hasPending&&e.demand>0&&(e.demand--,e.hasPending=!1,n.onNext(e.pending),e.cancelled))return;!e.hasPending&&this.terminated&&(this.entries.delete(n),this.terminalError?n.onError(this.terminalError):n.onComplete())}finally{e.draining=!1}}}};var Z={empty:()=>new g,one:()=>new R,many:()=>({multicast:()=>({directAllOrNothing:()=>new A,directBestEffort:()=>new _,onBackpressureBuffer:(a=256,n=!0)=>new P(a,n)}),unicast:()=>({onBackpressureBuffer:()=>new M,onBackpressureError:()=>new F}),replay:()=>({all:()=>new C,latest:a=>new q(a),latestOrDefault:a=>new k(a),limit:a=>new q(a)})})};0&&(module.exports={Flux,Mono,Schedulers,Signal,Sinks});
2
- //# sourceMappingURL=index.js.map
1
+ import { Context } from "./context/context.js";
2
+ import { Schedulers } from "./schedulers/schedulers.js";
3
+ import { Flux } from "./publisher/flux.js";
4
+ import { Mono } from "./publisher/mono.js";
5
+ import "./publisher/flux-entrypoint.js";
6
+ import "./publisher/mono-entrypoint.js";
7
+ import { Sinks } from "./sinks/specs.js";
8
+ export { Context, Flux, Mono, Schedulers, Sinks };
@@ -0,0 +1,5 @@
1
+ /** Races a promise against an abort signal and rejects with cancellation on abort. */
2
+ export declare function raceWithAbort<T>(promise: Promise<T>, signal?: AbortSignal): Promise<T>;
3
+ /** Resolves the first emitted value from an async iterable source. */
4
+ export declare function firstValueFrom<T>(iterable: AsyncIterable<T>, signal?: AbortSignal): Promise<T | undefined>;
5
+ //# sourceMappingURL=abort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abort.d.ts","sourceRoot":"","sources":["../../src/internal/abort.ts"],"names":[],"mappings":"AAMA,sFAAsF;AACtF,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAqBtF;AAED,sEAAsE;AACtE,wBAAsB,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAQhH"}
@@ -0,0 +1,36 @@
1
+ import { CancelledError } from "../errors/classes.js";
2
+ //#region src/internal/abort.ts
3
+ /**
4
+ * @packageDocumentation
5
+ * Internal async iteration and cancellation utilities.
6
+ */
7
+ /** Races a promise against an abort signal and rejects with cancellation on abort. */
8
+ function raceWithAbort(promise, signal) {
9
+ if (!signal) return promise;
10
+ if (signal.aborted) return Promise.reject(new CancelledError());
11
+ return new Promise((resolve, reject) => {
12
+ const onAbort = () => reject(new CancelledError());
13
+ signal.addEventListener("abort", onAbort, { once: true });
14
+ promise.then((value) => {
15
+ signal.removeEventListener("abort", onAbort);
16
+ resolve(value);
17
+ }, (error) => {
18
+ signal.removeEventListener("abort", onAbort);
19
+ reject(error);
20
+ });
21
+ });
22
+ }
23
+ /** Resolves the first emitted value from an async iterable source. */
24
+ async function firstValueFrom(iterable, signal) {
25
+ const iterator = iterable[Symbol.asyncIterator]();
26
+ try {
27
+ const result = await raceWithAbort(iterator.next(), signal);
28
+ return result.done ? void 0 : result.value;
29
+ } finally {
30
+ await iterator.return?.();
31
+ }
32
+ }
33
+ //#endregion
34
+ export { firstValueFrom, raceWithAbort };
35
+
36
+ //# sourceMappingURL=abort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abort.js","names":[],"sources":["../../src/internal/abort.ts"],"sourcesContent":["/**\n * @packageDocumentation\n * Internal async iteration and cancellation utilities.\n */\nimport {CancelledError} from \"@/errors/classes.js\";\n\n/** Races a promise against an abort signal and rejects with cancellation on abort. */\nexport function raceWithAbort<T>(promise: Promise<T>, signal?: AbortSignal): Promise<T> {\n if (!signal) {\n return promise;\n }\n if (signal.aborted) {\n return Promise.reject(new CancelledError());\n }\n return new Promise((resolve, reject) => {\n const onAbort = () => reject(new CancelledError());\n signal.addEventListener(\"abort\", onAbort, {once: true});\n promise.then(\n value => {\n signal.removeEventListener(\"abort\", onAbort);\n resolve(value);\n },\n error => {\n signal.removeEventListener(\"abort\", onAbort);\n reject(error);\n }\n );\n });\n}\n\n/** Resolves the first emitted value from an async iterable source. */\nexport async function firstValueFrom<T>(iterable: AsyncIterable<T>, signal?: AbortSignal): Promise<T | undefined> {\n const iterator = iterable[Symbol.asyncIterator]();\n try {\n const result = await raceWithAbort(iterator.next(), signal);\n return result.done ? undefined : result.value;\n } finally {\n await iterator.return?.();\n }\n}\n"],"mappings":";;;;;;;AAOA,SAAgB,cAAiB,SAAqB,QAAkC;CACpF,IAAI,CAAC,QACD,OAAO;CAEX,IAAI,OAAO,SACP,OAAO,QAAQ,OAAO,IAAI,eAAe,CAAC;CAE9C,OAAO,IAAI,SAAS,SAAS,WAAW;EACpC,MAAM,gBAAgB,OAAO,IAAI,eAAe,CAAC;EACjD,OAAO,iBAAiB,SAAS,SAAS,EAAC,MAAM,KAAI,CAAC;EACtD,QAAQ,MACJ,UAAS;GACL,OAAO,oBAAoB,SAAS,OAAO;GAC3C,QAAQ,KAAK;EACjB,IACA,UAAS;GACL,OAAO,oBAAoB,SAAS,OAAO;GAC3C,OAAO,KAAK;EAChB,CACJ;CACJ,CAAC;AACL;;AAGA,eAAsB,eAAkB,UAA4B,QAA8C;CAC9G,MAAM,WAAW,SAAS,OAAO,cAAc,CAAC;CAChD,IAAI;EACA,MAAM,SAAS,MAAM,cAAc,SAAS,KAAK,GAAG,MAAM;EAC1D,OAAO,OAAO,OAAO,SAAY,OAAO;CAC5C,UAAU;EACN,MAAM,SAAS,SAAS;CAC5B;AACJ"}
@@ -0,0 +1,48 @@
1
+ /** Iterable queue used to bridge push-based producers to async iteration. */
2
+ export declare class AsyncQueue<T> implements AsyncIterable<T> {
3
+ /** Buffered values waiting for an async iterator consumer. */
4
+ private readonly values;
5
+ /** Index of the next buffered value to read. */
6
+ private valueHead;
7
+ /** Pending iterator requests waiting for a value or terminal signal. */
8
+ private readonly waiters;
9
+ /** Index of the next pending waiter to consume. */
10
+ private waiterHead;
11
+ /** Tracks whether the queue has already reached a terminal state. */
12
+ private closed;
13
+ /** Tracks whether the queue has failed, including undefined failures. */
14
+ private failed;
15
+ /** Terminal failure delivered to current and future consumers. */
16
+ private failure;
17
+ /** Abort signal watched by this queue, when cancellation is enabled. */
18
+ private abortSignal;
19
+ /** Listener registered on the abort signal. */
20
+ private abortListener;
21
+ /** Creates a queue that is optionally cancelled by an abort signal. */
22
+ constructor(signal?: AbortSignal);
23
+ /** Pushes a value to the queue or a pending consumer. */
24
+ push(value: T): boolean;
25
+ /** Completes the queue and wakes pending consumers. */
26
+ complete(): void;
27
+ /** Fails the queue and wakes pending consumers. */
28
+ error(error: unknown): void;
29
+ /** Returns the number of buffered values. */
30
+ size(): number;
31
+ /** Returns this queue as an async iterator. */
32
+ [Symbol.asyncIterator](): AsyncIterator<T>;
33
+ /** Reads the next value or terminal signal. */
34
+ next(): Promise<IteratorResult<T>>;
35
+ /** Completes the queue from an async iterator return call. */
36
+ return(): Promise<IteratorResult<T>>;
37
+ /** Returns the next pending waiter without shifting the backing array. */
38
+ private nextWaiter;
39
+ /** Compacts consumed buffered values after enough reads have accumulated. */
40
+ private compactValues;
41
+ /** Compacts consumed waiters after enough resolved requests have accumulated. */
42
+ private compactWaiters;
43
+ /** Clears all pending waiters and resets waiter indexing. */
44
+ private clearWaiters;
45
+ /** Removes the abort listener once the queue no longer needs cancellation. */
46
+ private clearAbortListener;
47
+ }
48
+ //# sourceMappingURL=async-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-queue.d.ts","sourceRoot":"","sources":["../../src/internal/async-queue.ts"],"names":[],"mappings":"AAOA,6EAA6E;AAC7E,qBAAa,UAAU,CAAC,CAAC,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;IAClD,8DAA8D;IAC9D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,gDAAgD;IAChD,OAAO,CAAC,SAAS,CAAK;IACtB,wEAAwE;IACxE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAKhB;IACR,mDAAmD;IACnD,OAAO,CAAC,UAAU,CAAK;IACvB,qEAAqE;IACrE,OAAO,CAAC,MAAM,CAAS;IACvB,yEAAyE;IACzE,OAAO,CAAC,MAAM,CAAS;IACvB,kEAAkE;IAClE,OAAO,CAAC,OAAO,CAAU;IACzB,wEAAwE;IACxE,OAAO,CAAC,WAAW,CAA0B;IAC7C,+CAA+C;IAC/C,OAAO,CAAC,aAAa,CAA2B;IAEhD,uEAAuE;IACvE,YAAmB,MAAM,CAAC,EAAE,WAAW,EActC;IAED,yDAAyD;IAClD,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAW7B;IAED,uDAAuD;IAChD,QAAQ,IAAI,IAAI,CAYtB;IAED,mDAAmD;IAC5C,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAYjC;IAED,6CAA6C;IACtC,IAAI,IAAI,MAAM,CAEpB;IAED,+CAA+C;IACxC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAEhD;IAED,+CAA+C;IACxC,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAgBxC;IAED,8DAA8D;IACvD,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAG1C;IAED,0EAA0E;IAC1E,OAAO,CAAC,UAAU;IAiBlB,6EAA6E;IAC7E,OAAO,CAAC,aAAa;IAWrB,iFAAiF;IACjF,OAAO,CAAC,cAAc;IAUtB,6DAA6D;IAC7D,OAAO,CAAC,YAAY;IAKpB,8EAA8E;IAC9E,OAAO,CAAC,kBAAkB;CAO7B"}
@@ -0,0 +1,187 @@
1
+ import _defineProperty from "../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/defineProperty.js";
2
+ import { doneResult, resolvedDoneResult } from "./iterable.js";
3
+ import { CancelledError } from "../errors/classes.js";
4
+ //#region src/internal/async-queue.ts
5
+ /**
6
+ * @packageDocumentation
7
+ * Internal async iteration and cancellation utilities.
8
+ */
9
+ var _Symbol$asyncIterator = Symbol.asyncIterator;
10
+ /** Iterable queue used to bridge push-based producers to async iteration. */
11
+ var AsyncQueue = class {
12
+ /** Creates a queue that is optionally cancelled by an abort signal. */
13
+ constructor(signal) {
14
+ _defineProperty(
15
+ this,
16
+ /** Buffered values waiting for an async iterator consumer. */
17
+ "values",
18
+ []
19
+ );
20
+ _defineProperty(
21
+ this,
22
+ /** Index of the next buffered value to read. */
23
+ "valueHead",
24
+ 0
25
+ );
26
+ _defineProperty(
27
+ this,
28
+ /** Pending iterator requests waiting for a value or terminal signal. */
29
+ "waiters",
30
+ []
31
+ );
32
+ _defineProperty(
33
+ this,
34
+ /** Index of the next pending waiter to consume. */
35
+ "waiterHead",
36
+ 0
37
+ );
38
+ _defineProperty(
39
+ this,
40
+ /** Tracks whether the queue has already reached a terminal state. */
41
+ "closed",
42
+ false
43
+ );
44
+ _defineProperty(
45
+ this,
46
+ /** Tracks whether the queue has failed, including undefined failures. */
47
+ "failed",
48
+ false
49
+ );
50
+ _defineProperty(
51
+ this,
52
+ /** Terminal failure delivered to current and future consumers. */
53
+ "failure",
54
+ void 0
55
+ );
56
+ _defineProperty(
57
+ this,
58
+ /** Abort signal watched by this queue, when cancellation is enabled. */
59
+ "abortSignal",
60
+ void 0
61
+ );
62
+ _defineProperty(
63
+ this,
64
+ /** Listener registered on the abort signal. */
65
+ "abortListener",
66
+ void 0
67
+ );
68
+ this.abortSignal = signal;
69
+ if (signal) {
70
+ if (signal.aborted) {
71
+ this.failed = true;
72
+ this.failure = new CancelledError();
73
+ this.abortSignal = void 0;
74
+ return;
75
+ }
76
+ this.abortListener = () => {
77
+ this.error(new CancelledError());
78
+ };
79
+ signal.addEventListener("abort", this.abortListener, { once: true });
80
+ }
81
+ }
82
+ /** Pushes a value to the queue or a pending consumer. */
83
+ push(value) {
84
+ if (this.closed || this.failed) return false;
85
+ const waiter = this.nextWaiter();
86
+ if (waiter) waiter.resolve({
87
+ done: false,
88
+ value
89
+ });
90
+ else this.values.push(value);
91
+ return true;
92
+ }
93
+ /** Completes the queue and wakes pending consumers. */
94
+ complete() {
95
+ if (this.closed || this.failed) return;
96
+ this.closed = true;
97
+ this.clearAbortListener();
98
+ const done = doneResult();
99
+ for (let index = this.waiterHead; index < this.waiters.length; index += 1) this.waiters[index].resolve(done);
100
+ this.clearWaiters();
101
+ }
102
+ /** Fails the queue and wakes pending consumers. */
103
+ error(error) {
104
+ if (this.closed || this.failed) return;
105
+ this.failed = true;
106
+ this.failure = error;
107
+ this.clearAbortListener();
108
+ for (let index = this.waiterHead; index < this.waiters.length; index += 1) this.waiters[index].reject(this.failure);
109
+ this.clearWaiters();
110
+ }
111
+ /** Returns the number of buffered values. */
112
+ size() {
113
+ return this.values.length - this.valueHead;
114
+ }
115
+ /** Returns this queue as an async iterator. */
116
+ [_Symbol$asyncIterator]() {
117
+ return this;
118
+ }
119
+ /** Reads the next value or terminal signal. */
120
+ next() {
121
+ if (this.valueHead < this.values.length) {
122
+ const value = this.values[this.valueHead];
123
+ this.valueHead += 1;
124
+ this.compactValues();
125
+ return Promise.resolve({
126
+ done: false,
127
+ value
128
+ });
129
+ }
130
+ if (this.failed) return Promise.reject(this.failure);
131
+ if (this.closed) return resolvedDoneResult();
132
+ return new Promise((resolve, reject) => {
133
+ this.waiters.push({
134
+ resolve,
135
+ reject
136
+ });
137
+ });
138
+ }
139
+ /** Completes the queue from an async iterator return call. */
140
+ return() {
141
+ this.complete();
142
+ return resolvedDoneResult();
143
+ }
144
+ /** Returns the next pending waiter without shifting the backing array. */
145
+ nextWaiter() {
146
+ if (this.waiterHead >= this.waiters.length) return;
147
+ const waiter = this.waiters[this.waiterHead];
148
+ this.waiterHead += 1;
149
+ this.compactWaiters();
150
+ return waiter;
151
+ }
152
+ /** Compacts consumed buffered values after enough reads have accumulated. */
153
+ compactValues() {
154
+ if (this.valueHead === this.values.length) {
155
+ this.values.length = 0;
156
+ this.valueHead = 0;
157
+ } else if (this.valueHead > 1024 && this.valueHead * 2 > this.values.length) {
158
+ this.values.copyWithin(0, this.valueHead);
159
+ this.values.length -= this.valueHead;
160
+ this.valueHead = 0;
161
+ }
162
+ }
163
+ /** Compacts consumed waiters after enough resolved requests have accumulated. */
164
+ compactWaiters() {
165
+ if (this.waiterHead === this.waiters.length) this.clearWaiters();
166
+ else if (this.waiterHead > 1024 && this.waiterHead * 2 > this.waiters.length) {
167
+ this.waiters.copyWithin(0, this.waiterHead);
168
+ this.waiters.length -= this.waiterHead;
169
+ this.waiterHead = 0;
170
+ }
171
+ }
172
+ /** Clears all pending waiters and resets waiter indexing. */
173
+ clearWaiters() {
174
+ this.waiters.length = 0;
175
+ this.waiterHead = 0;
176
+ }
177
+ /** Removes the abort listener once the queue no longer needs cancellation. */
178
+ clearAbortListener() {
179
+ if (this.abortSignal && this.abortListener) this.abortSignal.removeEventListener("abort", this.abortListener);
180
+ this.abortSignal = void 0;
181
+ this.abortListener = void 0;
182
+ }
183
+ };
184
+ //#endregion
185
+ export { AsyncQueue };
186
+
187
+ //# sourceMappingURL=async-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async-queue.js","names":[],"sources":["../../src/internal/async-queue.ts"],"sourcesContent":["/**\n * @packageDocumentation\n * Internal async iteration and cancellation utilities.\n */\nimport {CancelledError} from \"@/errors/classes.js\";\nimport {doneResult, resolvedDoneResult} from \"@/internal/iterable.js\";\n\n/** Iterable queue used to bridge push-based producers to async iteration. */\nexport class AsyncQueue<T> implements AsyncIterable<T> {\n /** Buffered values waiting for an async iterator consumer. */\n private readonly values: T[] = [];\n /** Index of the next buffered value to read. */\n private valueHead = 0;\n /** Pending iterator requests waiting for a value or terminal signal. */\n private readonly waiters: Array<{\n /** Resolves the pending iterator request. */\n resolve: (result: IteratorResult<T>) => void;\n /** Rejects the pending iterator request. */\n reject: (error: unknown) => void;\n }> = [];\n /** Index of the next pending waiter to consume. */\n private waiterHead = 0;\n /** Tracks whether the queue has already reached a terminal state. */\n private closed = false;\n /** Tracks whether the queue has failed, including undefined failures. */\n private failed = false;\n /** Terminal failure delivered to current and future consumers. */\n private failure: unknown;\n /** Abort signal watched by this queue, when cancellation is enabled. */\n private abortSignal: AbortSignal | undefined;\n /** Listener registered on the abort signal. */\n private abortListener: (() => void) | undefined;\n\n /** Creates a queue that is optionally cancelled by an abort signal. */\n public constructor(signal?: AbortSignal) {\n this.abortSignal = signal;\n if (signal) {\n if (signal.aborted) {\n this.failed = true;\n this.failure = new CancelledError();\n this.abortSignal = undefined;\n return;\n }\n this.abortListener = () => {\n this.error(new CancelledError());\n };\n signal.addEventListener(\"abort\", this.abortListener, {once: true});\n }\n }\n\n /** Pushes a value to the queue or a pending consumer. */\n public push(value: T): boolean {\n if (this.closed || this.failed) {\n return false;\n }\n const waiter = this.nextWaiter();\n if (waiter) {\n waiter.resolve({done: false, value});\n } else {\n this.values.push(value);\n }\n return true;\n }\n\n /** Completes the queue and wakes pending consumers. */\n public complete(): void {\n if (this.closed || this.failed) {\n return;\n }\n this.closed = true;\n this.clearAbortListener();\n const done = doneResult<T>();\n for (let index = this.waiterHead; index < this.waiters.length; index += 1) {\n const waiter = this.waiters[index]!;\n waiter.resolve(done);\n }\n this.clearWaiters();\n }\n\n /** Fails the queue and wakes pending consumers. */\n public error(error: unknown): void {\n if (this.closed || this.failed) {\n return;\n }\n this.failed = true;\n this.failure = error;\n this.clearAbortListener();\n for (let index = this.waiterHead; index < this.waiters.length; index += 1) {\n const waiter = this.waiters[index]!;\n waiter.reject(this.failure);\n }\n this.clearWaiters();\n }\n\n /** Returns the number of buffered values. */\n public size(): number {\n return this.values.length - this.valueHead;\n }\n\n /** Returns this queue as an async iterator. */\n public [Symbol.asyncIterator](): AsyncIterator<T> {\n return this;\n }\n\n /** Reads the next value or terminal signal. */\n public next(): Promise<IteratorResult<T>> {\n if (this.valueHead < this.values.length) {\n const value = this.values[this.valueHead] as T;\n this.valueHead += 1;\n this.compactValues();\n return Promise.resolve({done: false, value});\n }\n if (this.failed) {\n return Promise.reject(this.failure);\n }\n if (this.closed) {\n return resolvedDoneResult<T>();\n }\n return new Promise((resolve, reject) => {\n this.waiters.push({resolve, reject});\n });\n }\n\n /** Completes the queue from an async iterator return call. */\n public return(): Promise<IteratorResult<T>> {\n this.complete();\n return resolvedDoneResult<T>();\n }\n\n /** Returns the next pending waiter without shifting the backing array. */\n private nextWaiter():\n | {\n /** Resolves the pending iterator request. */\n resolve: (result: IteratorResult<T>) => void;\n /** Rejects the pending iterator request. */\n reject: (error: unknown) => void;\n }\n | undefined {\n if (this.waiterHead >= this.waiters.length) {\n return undefined;\n }\n const waiter = this.waiters[this.waiterHead]!;\n this.waiterHead += 1;\n this.compactWaiters();\n return waiter;\n }\n\n /** Compacts consumed buffered values after enough reads have accumulated. */\n private compactValues(): void {\n if (this.valueHead === this.values.length) {\n this.values.length = 0;\n this.valueHead = 0;\n } else if (this.valueHead > 1024 && this.valueHead * 2 > this.values.length) {\n this.values.copyWithin(0, this.valueHead);\n this.values.length -= this.valueHead;\n this.valueHead = 0;\n }\n }\n\n /** Compacts consumed waiters after enough resolved requests have accumulated. */\n private compactWaiters(): void {\n if (this.waiterHead === this.waiters.length) {\n this.clearWaiters();\n } else if (this.waiterHead > 1024 && this.waiterHead * 2 > this.waiters.length) {\n this.waiters.copyWithin(0, this.waiterHead);\n this.waiters.length -= this.waiterHead;\n this.waiterHead = 0;\n }\n }\n\n /** Clears all pending waiters and resets waiter indexing. */\n private clearWaiters(): void {\n this.waiters.length = 0;\n this.waiterHead = 0;\n }\n\n /** Removes the abort listener once the queue no longer needs cancellation. */\n private clearAbortListener(): void {\n if (this.abortSignal && this.abortListener) {\n this.abortSignal.removeEventListener(\"abort\", this.abortListener);\n }\n this.abortSignal = undefined;\n this.abortListener = undefined;\n }\n}\n"],"mappings":";;;;;;;;4BAoGY,OAAO;;AA5FnB,IAAa,aAAb,MAAuD;;CA0BnD,YAAmB,QAAsB;;;;GAxBzC;GAA+B,CAAC;;;;;GAEhC;GAAoB;;;;;GAEpB;GAKK,CAAC;;;;;GAEN;GAAqB;;;;;GAErB;GAAiB;;;;;GAEjB;GAAiB;;;;;GAEjB;;;;;;GAEA;;;;;;GAEA;;;EAII,KAAK,cAAc;EACnB,IAAI,QAAQ;GACR,IAAI,OAAO,SAAS;IAChB,KAAK,SAAS;IACd,KAAK,UAAU,IAAI,eAAe;IAClC,KAAK,cAAc;IACnB;GACJ;GACA,KAAK,sBAAsB;IACvB,KAAK,MAAM,IAAI,eAAe,CAAC;GACnC;GACA,OAAO,iBAAiB,SAAS,KAAK,eAAe,EAAC,MAAM,KAAI,CAAC;EACrE;CACJ;;CAGA,KAAY,OAAmB;EAC3B,IAAI,KAAK,UAAU,KAAK,QACpB,OAAO;EAEX,MAAM,SAAS,KAAK,WAAW;EAC/B,IAAI,QACA,OAAO,QAAQ;GAAC,MAAM;GAAO;EAAK,CAAC;OAEnC,KAAK,OAAO,KAAK,KAAK;EAE1B,OAAO;CACX;;CAGA,WAAwB;EACpB,IAAI,KAAK,UAAU,KAAK,QACpB;EAEJ,KAAK,SAAS;EACd,KAAK,mBAAmB;EACxB,MAAM,OAAO,WAAc;EAC3B,KAAK,IAAI,QAAQ,KAAK,YAAY,QAAQ,KAAK,QAAQ,QAAQ,SAAS,GAEpE,AADe,KAAK,QAAQ,MAC5B,CAAO,QAAQ,IAAI;EAEvB,KAAK,aAAa;CACtB;;CAGA,MAAa,OAAsB;EAC/B,IAAI,KAAK,UAAU,KAAK,QACpB;EAEJ,KAAK,SAAS;EACd,KAAK,UAAU;EACf,KAAK,mBAAmB;EACxB,KAAK,IAAI,QAAQ,KAAK,YAAY,QAAQ,KAAK,QAAQ,QAAQ,SAAS,GAEpE,AADe,KAAK,QAAQ,MAC5B,CAAO,OAAO,KAAK,OAAO;EAE9B,KAAK,aAAa;CACtB;;CAGA,OAAsB;EAClB,OAAO,KAAK,OAAO,SAAS,KAAK;CACrC;;CAGA,CAAA,yBAAkD;EAC9C,OAAO;CACX;;CAGA,OAA0C;EACtC,IAAI,KAAK,YAAY,KAAK,OAAO,QAAQ;GACrC,MAAM,QAAQ,KAAK,OAAO,KAAK;GAC/B,KAAK,aAAa;GAClB,KAAK,cAAc;GACnB,OAAO,QAAQ,QAAQ;IAAC,MAAM;IAAO;GAAK,CAAC;EAC/C;EACA,IAAI,KAAK,QACL,OAAO,QAAQ,OAAO,KAAK,OAAO;EAEtC,IAAI,KAAK,QACL,OAAO,mBAAsB;EAEjC,OAAO,IAAI,SAAS,SAAS,WAAW;GACpC,KAAK,QAAQ,KAAK;IAAC;IAAS;GAAM,CAAC;EACvC,CAAC;CACL;;CAGA,SAA4C;EACxC,KAAK,SAAS;EACd,OAAO,mBAAsB;CACjC;;CAGA,aAOgB;EACZ,IAAI,KAAK,cAAc,KAAK,QAAQ,QAChC;EAEJ,MAAM,SAAS,KAAK,QAAQ,KAAK;EACjC,KAAK,cAAc;EACnB,KAAK,eAAe;EACpB,OAAO;CACX;;CAGA,gBAA8B;EAC1B,IAAI,KAAK,cAAc,KAAK,OAAO,QAAQ;GACvC,KAAK,OAAO,SAAS;GACrB,KAAK,YAAY;EACrB,OAAO,IAAI,KAAK,YAAY,QAAQ,KAAK,YAAY,IAAI,KAAK,OAAO,QAAQ;GACzE,KAAK,OAAO,WAAW,GAAG,KAAK,SAAS;GACxC,KAAK,OAAO,UAAU,KAAK;GAC3B,KAAK,YAAY;EACrB;CACJ;;CAGA,iBAA+B;EAC3B,IAAI,KAAK,eAAe,KAAK,QAAQ,QACjC,KAAK,aAAa;OACf,IAAI,KAAK,aAAa,QAAQ,KAAK,aAAa,IAAI,KAAK,QAAQ,QAAQ;GAC5E,KAAK,QAAQ,WAAW,GAAG,KAAK,UAAU;GAC1C,KAAK,QAAQ,UAAU,KAAK;GAC5B,KAAK,aAAa;EACtB;CACJ;;CAGA,eAA6B;EACzB,KAAK,QAAQ,SAAS;EACtB,KAAK,aAAa;CACtB;;CAGA,qBAAmC;EAC/B,IAAI,KAAK,eAAe,KAAK,eACzB,KAAK,YAAY,oBAAoB,SAAS,KAAK,aAAa;EAEpE,KAAK,cAAc;EACnB,KAAK,gBAAgB;CACzB;AACJ"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * Internal iterable terminal helpers.
4
+ */
5
+ import { type AnyIterable } from "./iterable.js";
6
+ /** Collects an iterable into an array, using a synchronous loop when possible. */
7
+ export declare function collectIterable<T>(source: AnyIterable<T>): T[] | Promise<T[]>;
8
+ /** Returns the last value from an iterable, or undefined when it is empty. */
9
+ export declare function lastIterableValue<T>(source: AnyIterable<T>): T | undefined | Promise<T | undefined>;
10
+ /** Counts iterable values, using a synchronous loop when possible. */
11
+ export declare function countIterable<T>(source: AnyIterable<T>): number | Promise<number>;
12
+ //# sourceMappingURL=iterable-terminal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterable-terminal.d.ts","sourceRoot":"","sources":["../../src/internal/iterable-terminal.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAC,KAAK,WAAW,EAAkB,MAAM,wBAAwB,CAAC;AAEzE,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAS7E;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CASnG;AAED,sEAAsE;AACtE,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CASjF"}
@@ -0,0 +1,49 @@
1
+ import { isAsyncIterable } from "./iterable.js";
2
+ //#region src/internal/iterable-terminal.ts
3
+ /**
4
+ * @packageDocumentation
5
+ * Internal iterable terminal helpers.
6
+ */
7
+ /** Collects an iterable into an array, using a synchronous loop when possible. */
8
+ function collectIterable(source) {
9
+ if (isAsyncIterable(source)) return collectAsync(source);
10
+ const values = [];
11
+ for (const value of source) values.push(value);
12
+ return values;
13
+ }
14
+ /** Returns the last value from an iterable, or undefined when it is empty. */
15
+ function lastIterableValue(source) {
16
+ if (isAsyncIterable(source)) return lastAsync(source);
17
+ let last;
18
+ for (const value of source) last = value;
19
+ return last;
20
+ }
21
+ /** Counts iterable values, using a synchronous loop when possible. */
22
+ function countIterable(source) {
23
+ if (isAsyncIterable(source)) return countAsync(source);
24
+ let count = 0;
25
+ for (const _ of source) count += 1;
26
+ return count;
27
+ }
28
+ /** Collects an async iterable into an array. */
29
+ async function collectAsync(source) {
30
+ const values = [];
31
+ for await (const value of source) values.push(value);
32
+ return values;
33
+ }
34
+ /** Returns the last async iterable value, or undefined when empty. */
35
+ async function lastAsync(source) {
36
+ let last;
37
+ for await (const value of source) last = value;
38
+ return last;
39
+ }
40
+ /** Counts async iterable values. */
41
+ async function countAsync(source) {
42
+ let count = 0;
43
+ for await (const _ of source) count += 1;
44
+ return count;
45
+ }
46
+ //#endregion
47
+ export { collectIterable, countIterable, lastIterableValue };
48
+
49
+ //# sourceMappingURL=iterable-terminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterable-terminal.js","names":[],"sources":["../../src/internal/iterable-terminal.ts"],"sourcesContent":["/**\n * @packageDocumentation\n * Internal iterable terminal helpers.\n */\nimport {type AnyIterable, isAsyncIterable} from \"@/internal/iterable.js\";\n\n/** Collects an iterable into an array, using a synchronous loop when possible. */\nexport function collectIterable<T>(source: AnyIterable<T>): T[] | Promise<T[]> {\n if (isAsyncIterable<T>(source)) {\n return collectAsync(source);\n }\n const values: T[] = [];\n for (const value of source) {\n values.push(value);\n }\n return values;\n}\n\n/** Returns the last value from an iterable, or undefined when it is empty. */\nexport function lastIterableValue<T>(source: AnyIterable<T>): T | undefined | Promise<T | undefined> {\n if (isAsyncIterable<T>(source)) {\n return lastAsync(source);\n }\n let last: T | undefined;\n for (const value of source) {\n last = value;\n }\n return last;\n}\n\n/** Counts iterable values, using a synchronous loop when possible. */\nexport function countIterable<T>(source: AnyIterable<T>): number | Promise<number> {\n if (isAsyncIterable<T>(source)) {\n return countAsync(source);\n }\n let count = 0;\n for (const _ of source) {\n count += 1;\n }\n return count;\n}\n\n/** Collects an async iterable into an array. */\nasync function collectAsync<T>(source: AsyncIterable<T>): Promise<T[]> {\n const values: T[] = [];\n for await (const value of source) {\n values.push(value);\n }\n return values;\n}\n\n/** Returns the last async iterable value, or undefined when empty. */\nasync function lastAsync<T>(source: AsyncIterable<T>): Promise<T | undefined> {\n let last: T | undefined;\n for await (const value of source) {\n last = value;\n }\n return last;\n}\n\n/** Counts async iterable values. */\nasync function countAsync<T>(source: AsyncIterable<T>): Promise<number> {\n let count = 0;\n for await (const _ of source) {\n count += 1;\n }\n return count;\n}\n"],"mappings":";;;;;;;AAOA,SAAgB,gBAAmB,QAA4C;CAC3E,IAAI,gBAAmB,MAAM,GACzB,OAAO,aAAa,MAAM;CAE9B,MAAM,SAAc,CAAC;CACrB,KAAK,MAAM,SAAS,QAChB,OAAO,KAAK,KAAK;CAErB,OAAO;AACX;;AAGA,SAAgB,kBAAqB,QAAgE;CACjG,IAAI,gBAAmB,MAAM,GACzB,OAAO,UAAU,MAAM;CAE3B,IAAI;CACJ,KAAK,MAAM,SAAS,QAChB,OAAO;CAEX,OAAO;AACX;;AAGA,SAAgB,cAAiB,QAAkD;CAC/E,IAAI,gBAAmB,MAAM,GACzB,OAAO,WAAW,MAAM;CAE5B,IAAI,QAAQ;CACZ,KAAK,MAAM,KAAK,QACZ,SAAS;CAEb,OAAO;AACX;;AAGA,eAAe,aAAgB,QAAwC;CACnE,MAAM,SAAc,CAAC;CACrB,WAAW,MAAM,SAAS,QACtB,OAAO,KAAK,KAAK;CAErB,OAAO;AACX;;AAGA,eAAe,UAAa,QAAkD;CAC1E,IAAI;CACJ,WAAW,MAAM,SAAS,QACtB,OAAO;CAEX,OAAO;AACX;;AAGA,eAAe,WAAc,QAA2C;CACpE,IAAI,QAAQ;CACZ,WAAW,MAAM,KAAK,QAClB,SAAS;CAEb,OAAO;AACX"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @packageDocumentation
3
+ * Internal iterable transformation helpers.
4
+ */
5
+ import { type AnyIterable } from "./iterable.js";
6
+ /** Maps an iterable, preserving synchronous iteration when possible. */
7
+ export declare function mapIterable<T, R>(source: AnyIterable<T>, mapper: (value: T) => R): AnyIterable<R>;
8
+ /** Filters an iterable, preserving synchronous iteration when possible. */
9
+ export declare function filterIterable<T>(source: AnyIterable<T>, predicate: (value: T) => boolean): AnyIterable<T>;
10
+ /** Takes values while a predicate returns true, preserving synchronous iteration when possible. */
11
+ export declare function takeWhileIterable<T>(source: AnyIterable<T>, predicate: (value: T) => boolean): AnyIterable<T>;
12
+ /** Takes values until a predicate returns true, preserving synchronous iteration when possible. */
13
+ export declare function takeUntilIterable<T>(source: AnyIterable<T>, predicate: (value: T) => boolean): AnyIterable<T>;
14
+ /** Skips a fixed number of values, preserving synchronous iteration when possible. */
15
+ export declare function skipIterable<T>(source: AnyIterable<T>, count: number): AnyIterable<T>;
16
+ /** Skips values while a predicate returns true, preserving synchronous iteration when possible. */
17
+ export declare function skipWhileIterable<T>(source: AnyIterable<T>, predicate: (value: T) => boolean): AnyIterable<T>;
18
+ /** Keeps the first value for every selected key, preserving synchronous iteration when possible. */
19
+ export declare function distinctIterable<T, K>(source: AnyIterable<T>, keySelector: (value: T) => K): AnyIterable<T>;
20
+ /** Keeps values whose selected key differs from the previous key. */
21
+ export declare function distinctUntilChangedIterable<T, K>(source: AnyIterable<T>, keySelector: (value: T) => K): AnyIterable<T>;
22
+ /** Emits a fallback value when the source is empty. */
23
+ export declare function defaultIfEmptyIterable<T>(source: AnyIterable<T>, defaultValue: T): AnyIterable<T>;
24
+ //# sourceMappingURL=iterable-transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterable-transform.d.ts","sourceRoot":"","sources":["../../src/internal/iterable-transform.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAC,KAAK,WAAW,EAAkB,MAAM,wBAAwB,CAAC;AAEzE,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAajG;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAiB1G;AAED,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAmB7G;AAED,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAmB7G;AAED,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAuBrF;AAED,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAuB7G;AAED,oGAAoG;AACpG,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAuB3G;AAED,qEAAqE;AACrE,wBAAgB,4BAA4B,CAAC,CAAC,EAAE,CAAC,EAC7C,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EACtB,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAC7B,WAAW,CAAC,CAAC,CAAC,CA2BhB;AAED,uDAAuD;AACvD,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAuBjG"}