@fncts/io 0.0.49 → 0.0.50

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 (226) hide show
  1. package/IO/api/foreachExec.d.ts +18 -0
  2. package/Push/Bounds.d.ts +4 -0
  3. package/Push/FlattenStrategy.d.ts +47 -0
  4. package/Push/IndexedBuffer.d.ts +19 -0
  5. package/Push/MergeStrategy.d.ts +19 -0
  6. package/Push/Operator/IOLoopOperator.d.ts +61 -0
  7. package/Push/Operator/IOOperator.d.ts +63 -0
  8. package/Push/Operator/LoopOperator.d.ts +50 -0
  9. package/Push/Operator/SyncOperator.d.ts +41 -0
  10. package/Push/Operator.d.ts +4 -0
  11. package/Push/Producer/IOProducer.d.ts +41 -0
  12. package/Push/Producer/SyncProducer.d.ts +61 -0
  13. package/Push/Producer.d.ts +1 -0
  14. package/Push/Sink.d.ts +65 -0
  15. package/Push/api.d.ts +78 -161
  16. package/Push/definition.d.ts +92 -19
  17. package/Push/internal.d.ts +3 -0
  18. package/Push.d.ts +6 -0
  19. package/Ref/Synchronized/definition.d.ts +32 -9
  20. package/Ref/definition.d.ts +12 -0
  21. package/Scope/api.d.ts +16 -1
  22. package/Sink/definition.d.ts +5 -6
  23. package/Subject/Atomic.d.ts +19 -9
  24. package/Subject/DeferredRef.d.ts +17 -0
  25. package/Subject/Hold.d.ts +19 -0
  26. package/Subject/RefSubject/Atomic.d.ts +41 -0
  27. package/Subject/RefSubject/Derived.d.ts +43 -0
  28. package/Subject/RefSubject/RefSubject.d.ts +27 -0
  29. package/Subject/definition.d.ts +14 -2
  30. package/Subject.d.ts +2 -0
  31. package/SubscriptionRef.d.ts +0 -1
  32. package/_cjs/IO/api/foreachExec.cjs +29 -4
  33. package/_cjs/IO/api/foreachExec.cjs.map +1 -1
  34. package/_cjs/Push/Bounds.cjs +2 -0
  35. package/_cjs/Push/Bounds.cjs.map +1 -0
  36. package/_cjs/Push/FlattenStrategy.cjs +95 -0
  37. package/_cjs/Push/FlattenStrategy.cjs.map +1 -0
  38. package/_cjs/Push/IndexedBuffer.cjs +70 -0
  39. package/_cjs/Push/IndexedBuffer.cjs.map +1 -0
  40. package/_cjs/Push/MergeStrategy.cjs +45 -0
  41. package/_cjs/Push/MergeStrategy.cjs.map +1 -0
  42. package/_cjs/Push/Operator/IOLoopOperator.cjs +225 -0
  43. package/_cjs/Push/Operator/IOLoopOperator.cjs.map +1 -0
  44. package/_cjs/Push/Operator/IOOperator.cjs +104 -0
  45. package/_cjs/Push/Operator/IOOperator.cjs.map +1 -0
  46. package/_cjs/Push/Operator/LoopOperator.cjs +165 -0
  47. package/_cjs/Push/Operator/LoopOperator.cjs.map +1 -0
  48. package/_cjs/Push/Operator/SyncOperator.cjs +78 -0
  49. package/_cjs/Push/Operator/SyncOperator.cjs.map +1 -0
  50. package/_cjs/Push/Operator.cjs +2 -0
  51. package/_cjs/Push/Operator.cjs.map +1 -0
  52. package/_cjs/Push/Producer/IOProducer.cjs +67 -0
  53. package/_cjs/Push/Producer/IOProducer.cjs.map +1 -0
  54. package/_cjs/Push/Producer/SyncProducer.cjs +107 -0
  55. package/_cjs/Push/Producer/SyncProducer.cjs.map +1 -0
  56. package/_cjs/Push/Producer.cjs +2 -0
  57. package/_cjs/Push/Producer.cjs.map +1 -0
  58. package/_cjs/Push/Sink.cjs +219 -0
  59. package/_cjs/Push/Sink.cjs.map +1 -0
  60. package/_cjs/Push/api.cjs +339 -383
  61. package/_cjs/Push/api.cjs.map +1 -1
  62. package/_cjs/Push/definition.cjs +79 -22
  63. package/_cjs/Push/definition.cjs.map +1 -1
  64. package/_cjs/Push/internal.cjs +31 -26
  65. package/_cjs/Push/internal.cjs.map +1 -1
  66. package/_cjs/Push.cjs +66 -0
  67. package/_cjs/Push.cjs.map +1 -1
  68. package/_cjs/Ref/Synchronized/definition.cjs +12 -12
  69. package/_cjs/Ref/Synchronized/definition.cjs.map +1 -1
  70. package/_cjs/Ref/definition.cjs.map +1 -1
  71. package/_cjs/Scope/api.cjs +28 -7
  72. package/_cjs/Scope/api.cjs.map +1 -1
  73. package/_cjs/Sink/definition.cjs +2 -3
  74. package/_cjs/Sink/definition.cjs.map +1 -1
  75. package/_cjs/Stream/definition.cjs.map +1 -1
  76. package/_cjs/Subject/Atomic.cjs +45 -10
  77. package/_cjs/Subject/Atomic.cjs.map +1 -1
  78. package/_cjs/Subject/DeferredRef.cjs +53 -0
  79. package/_cjs/Subject/DeferredRef.cjs.map +1 -0
  80. package/_cjs/Subject/Hold.cjs +41 -0
  81. package/_cjs/Subject/Hold.cjs.map +1 -0
  82. package/_cjs/Subject/RefSubject/Atomic.cjs +130 -0
  83. package/_cjs/Subject/RefSubject/Atomic.cjs.map +1 -0
  84. package/_cjs/Subject/RefSubject/Derived.cjs +98 -0
  85. package/_cjs/Subject/RefSubject/Derived.cjs.map +1 -0
  86. package/_cjs/Subject/RefSubject/RefSubject.cjs +19 -0
  87. package/_cjs/Subject/RefSubject/RefSubject.cjs.map +1 -0
  88. package/_cjs/Subject/definition.cjs +16 -1
  89. package/_cjs/Subject/definition.cjs.map +1 -1
  90. package/_cjs/Subject.cjs +22 -0
  91. package/_cjs/Subject.cjs.map +1 -1
  92. package/_cjs/SubscriptionRef.cjs +0 -1
  93. package/_cjs/SubscriptionRef.cjs.map +1 -1
  94. package/_mjs/IO/api/foreachExec.mjs +27 -4
  95. package/_mjs/IO/api/foreachExec.mjs.map +1 -1
  96. package/_mjs/Push/Bounds.mjs +2 -0
  97. package/_mjs/Push/Bounds.mjs.map +1 -0
  98. package/_mjs/Push/FlattenStrategy.mjs +86 -0
  99. package/_mjs/Push/FlattenStrategy.mjs.map +1 -0
  100. package/_mjs/Push/IndexedBuffer.mjs +61 -0
  101. package/_mjs/Push/IndexedBuffer.mjs.map +1 -0
  102. package/_mjs/Push/MergeStrategy.mjs +34 -0
  103. package/_mjs/Push/MergeStrategy.mjs.map +1 -0
  104. package/_mjs/Push/Operator/IOLoopOperator.mjs +208 -0
  105. package/_mjs/Push/Operator/IOLoopOperator.mjs.map +1 -0
  106. package/_mjs/Push/Operator/IOOperator.mjs +91 -0
  107. package/_mjs/Push/Operator/IOOperator.mjs.map +1 -0
  108. package/_mjs/Push/Operator/LoopOperator.mjs +151 -0
  109. package/_mjs/Push/Operator/LoopOperator.mjs.map +1 -0
  110. package/_mjs/Push/Operator/SyncOperator.mjs +67 -0
  111. package/_mjs/Push/Operator/SyncOperator.mjs.map +1 -0
  112. package/_mjs/Push/Operator.mjs +2 -0
  113. package/_mjs/Push/Operator.mjs.map +1 -0
  114. package/_mjs/Push/Producer/IOProducer.mjs +55 -0
  115. package/_mjs/Push/Producer/IOProducer.mjs.map +1 -0
  116. package/_mjs/Push/Producer/SyncProducer.mjs +90 -0
  117. package/_mjs/Push/Producer/SyncProducer.mjs.map +1 -0
  118. package/_mjs/Push/Producer.mjs +2 -0
  119. package/_mjs/Push/Producer.mjs.map +1 -0
  120. package/_mjs/Push/Sink.mjs +206 -0
  121. package/_mjs/Push/Sink.mjs.map +1 -0
  122. package/_mjs/Push/api.mjs +311 -344
  123. package/_mjs/Push/api.mjs.map +1 -1
  124. package/_mjs/Push/definition.mjs +73 -18
  125. package/_mjs/Push/definition.mjs.map +1 -1
  126. package/_mjs/Push/internal.mjs +30 -26
  127. package/_mjs/Push/internal.mjs.map +1 -1
  128. package/_mjs/Push.mjs +7 -1
  129. package/_mjs/Push.mjs.map +1 -1
  130. package/_mjs/Ref/Synchronized/definition.mjs +12 -12
  131. package/_mjs/Ref/Synchronized/definition.mjs.map +1 -1
  132. package/_mjs/Ref/definition.mjs.map +1 -1
  133. package/_mjs/Scope/api.mjs +22 -4
  134. package/_mjs/Scope/api.mjs.map +1 -1
  135. package/_mjs/Sink/definition.mjs +2 -3
  136. package/_mjs/Sink/definition.mjs.map +1 -1
  137. package/_mjs/Stream/definition.mjs.map +1 -1
  138. package/_mjs/Subject/Atomic.mjs +46 -10
  139. package/_mjs/Subject/Atomic.mjs.map +1 -1
  140. package/_mjs/Subject/DeferredRef.mjs +45 -0
  141. package/_mjs/Subject/DeferredRef.mjs.map +1 -0
  142. package/_mjs/Subject/Hold.mjs +33 -0
  143. package/_mjs/Subject/Hold.mjs.map +1 -0
  144. package/_mjs/Subject/RefSubject/Atomic.mjs +122 -0
  145. package/_mjs/Subject/RefSubject/Atomic.mjs.map +1 -0
  146. package/_mjs/Subject/RefSubject/Derived.mjs +90 -0
  147. package/_mjs/Subject/RefSubject/Derived.mjs.map +1 -0
  148. package/_mjs/Subject/RefSubject/RefSubject.mjs +12 -0
  149. package/_mjs/Subject/RefSubject/RefSubject.mjs.map +1 -0
  150. package/_mjs/Subject/definition.mjs +14 -0
  151. package/_mjs/Subject/definition.mjs.map +1 -1
  152. package/_mjs/Subject.mjs +2 -0
  153. package/_mjs/Subject.mjs.map +1 -1
  154. package/_mjs/SubscriptionRef.mjs +0 -1
  155. package/_mjs/SubscriptionRef.mjs.map +1 -1
  156. package/_src/IO/api/foreachExec.ts +47 -0
  157. package/_src/Push/Bounds.ts +4 -0
  158. package/_src/Push/FlattenStrategy.ts +137 -0
  159. package/_src/Push/IndexedBuffer.ts +79 -0
  160. package/_src/Push/MergeStrategy.ts +59 -0
  161. package/_src/Push/Operator/IOLoopOperator.ts +413 -0
  162. package/_src/Push/Operator/IOOperator.ts +173 -0
  163. package/_src/Push/Operator/LoopOperator.ts +242 -0
  164. package/_src/Push/Operator/SyncOperator.ts +107 -0
  165. package/_src/Push/Operator.ts +7 -0
  166. package/_src/Push/Producer/IOProducer.ts +83 -0
  167. package/_src/Push/Producer/SyncProducer.ts +105 -0
  168. package/_src/Push/Producer.ts +0 -0
  169. package/_src/Push/Sink.ts +302 -0
  170. package/_src/Push/api.ts +387 -513
  171. package/_src/Push/definition.ts +216 -23
  172. package/_src/Push/internal.ts +11 -0
  173. package/_src/Push.ts +7 -1
  174. package/_src/Ref/Synchronized/definition.ts +81 -37
  175. package/_src/Ref/definition.ts +26 -0
  176. package/_src/Scope/api.ts +22 -0
  177. package/_src/Sink/definition.ts +4 -5
  178. package/_src/Stream/definition.ts +0 -1
  179. package/_src/Subject/Atomic.ts +68 -11
  180. package/_src/Subject/DeferredRef.ts +44 -0
  181. package/_src/Subject/Hold.ts +48 -0
  182. package/_src/Subject/RefSubject/Atomic.ts +193 -0
  183. package/_src/Subject/RefSubject/Derived.ts +179 -0
  184. package/_src/Subject/RefSubject/RefSubject.ts +90 -0
  185. package/_src/Subject/definition.ts +21 -3
  186. package/_src/Subject.ts +5 -3
  187. package/_src/SubscriptionRef.ts +1 -1
  188. package/_src/index.ts +49 -50
  189. package/index.d.ts +0 -1
  190. package/package.json +4 -4
  191. package/RefSubject/Atomic.d.ts +0 -34
  192. package/RefSubject/Synchronized/api.d.ts +0 -9
  193. package/RefSubject/Synchronized/definition.d.ts +0 -39
  194. package/RefSubject/api.d.ts +0 -120
  195. package/RefSubject/definition.d.ts +0 -52
  196. package/RefSubject.d.ts +0 -3
  197. package/_cjs/RefSubject/Atomic.cjs +0 -107
  198. package/_cjs/RefSubject/Atomic.cjs.map +0 -1
  199. package/_cjs/RefSubject/Synchronized/api.cjs +0 -22
  200. package/_cjs/RefSubject/Synchronized/api.cjs.map +0 -1
  201. package/_cjs/RefSubject/Synchronized/definition.cjs +0 -55
  202. package/_cjs/RefSubject/Synchronized/definition.cjs.map +0 -1
  203. package/_cjs/RefSubject/api.cjs +0 -251
  204. package/_cjs/RefSubject/api.cjs.map +0 -1
  205. package/_cjs/RefSubject/definition.cjs +0 -26
  206. package/_cjs/RefSubject/definition.cjs.map +0 -1
  207. package/_cjs/RefSubject.cjs +0 -39
  208. package/_cjs/RefSubject.cjs.map +0 -1
  209. package/_mjs/RefSubject/Atomic.mjs +0 -99
  210. package/_mjs/RefSubject/Atomic.mjs.map +0 -1
  211. package/_mjs/RefSubject/Synchronized/api.mjs +0 -15
  212. package/_mjs/RefSubject/Synchronized/api.mjs.map +0 -1
  213. package/_mjs/RefSubject/Synchronized/definition.mjs +0 -47
  214. package/_mjs/RefSubject/Synchronized/definition.mjs.map +0 -1
  215. package/_mjs/RefSubject/api.mjs +0 -229
  216. package/_mjs/RefSubject/api.mjs.map +0 -1
  217. package/_mjs/RefSubject/definition.mjs +0 -19
  218. package/_mjs/RefSubject/definition.mjs.map +0 -1
  219. package/_mjs/RefSubject.mjs +0 -5
  220. package/_mjs/RefSubject.mjs.map +0 -1
  221. package/_src/RefSubject/Atomic.ts +0 -129
  222. package/_src/RefSubject/Synchronized/api.ts +0 -14
  223. package/_src/RefSubject/Synchronized/definition.ts +0 -76
  224. package/_src/RefSubject/api.ts +0 -253
  225. package/_src/RefSubject/definition.ts +0 -70
  226. package/_src/RefSubject.ts +0 -5
@@ -1,22 +1,58 @@
1
1
  var _a, _b;
2
- import * as tsplus_module_1 from "@fncts/io/Push/api";
3
- import { Multicast } from "@fncts/io/Push";
2
+ const fileName_1 = "(@fncts/io) src/Subject/Atomic.ts";
3
+ import * as tsplus_module_1 from "@fncts/base/data/Exit/constructors";
4
+ import * as tsplus_module_2 from "@fncts/io/IO/api";
5
+ import * as tsplus_module_3 from "@fncts/io/Scope/api";
6
+ import * as tsplus_module_4 from "@fncts/io/IO/api/environment";
7
+ import * as tsplus_module_5 from "@fncts/base/data/ExecutionStrategy";
8
+ import { HashSet as MutableHashSet } from "@fncts/base/collection/mutable/HashSet";
4
9
  import { PushTypeId, PushVariance } from "@fncts/io/Push/definition";
10
+ import { withScope } from "@fncts/io/Push/internal";
11
+ import { PSubject } from "@fncts/io/Subject/definition";
5
12
  import { SubjectTypeId } from "@fncts/io/Subject/definition";
6
- export class AtomicSubject {
13
+ import { IO } from "../IO.mjs";
14
+ export class AtomicSubject extends PSubject {
7
15
  constructor() {
16
+ super(...arguments);
8
17
  this[_a] = SubjectTypeId;
9
18
  this[_b] = PushTypeId;
10
- this.stream = new Multicast(tsplus_module_1.never);
19
+ this.sinks = MutableHashSet.empty();
20
+ this.interruptScopes = tsplus_module_2.fiberIdWith(fiberId => tsplus_module_2.foreachDiscard(this.sinks, ([,, scope]) => scope.close(() => tsplus_module_1.interrupt(fiberId, fileName_1 + ":29:76")), fileName_1 + ":29:32"));
21
+ this.interrupt = this.interruptScopes;
11
22
  }
12
- run(emitter) {
13
- return this.stream.run(emitter);
23
+ get subscribers() {
24
+ return this.sinks.size;
14
25
  }
15
- event(value) {
16
- return this.stream.event(value);
26
+ run(sink) {
27
+ return this.addSink(sink, scope => tsplus_module_3.awaitClose(scope));
17
28
  }
18
- error(cause) {
19
- return this.stream.error(cause);
29
+ onSuccess(value) {
30
+ return tsplus_module_2.defer(() => this.unsafeOnSuccess(value), fileName_1 + ":39:20");
31
+ }
32
+ onFailure(cause) {
33
+ return tsplus_module_2.defer(() => this.unsafeOnFailure(cause), fileName_1 + ":43:20");
34
+ }
35
+ addSink(sink, f) {
36
+ return withScope(innerScope => tsplus_module_4.environmentWithIO(environment => {
37
+ const entry = [sink, environment, innerScope];
38
+ this.sinks.add(entry);
39
+ const remove = tsplus_module_2.succeed(() => this.sinks.remove(entry), fileName_1 + ":55:28");
40
+ return tsplus_module_2.zipRight(f(innerScope), fileName_1 + ":56:51")(tsplus_module_3.addFinalizer(() => remove, fileName_1 + ":56:41")(innerScope));
41
+ }, fileName_1 + ":52:29"), tsplus_module_5.sequential);
42
+ }
43
+ unsafeOnSuccess(a) {
44
+ if (this.sinks.size === 0) {
45
+ return tsplus_module_2.unit;
46
+ } else {
47
+ return tsplus_module_2.foreachDiscard(this.sinks, ([sink, environment]) => tsplus_module_4.provideSomeEnvironment(environment, fileName_1 + ":70:34")(tsplus_module_2.catchAllCause(cause => sink.onFailure(cause), fileName_1 + ":69:25")(sink.onSuccess(a))), fileName_1 + ":66:41");
48
+ }
49
+ }
50
+ unsafeOnFailure(cause) {
51
+ if (this.sinks.size === 0) {
52
+ return tsplus_module_2.unit;
53
+ } else {
54
+ return tsplus_module_2.foreachDiscard(this.sinks, ([sink, environment, scope]) => tsplus_module_4.provideSomeEnvironment(environment, fileName_1 + ":83:34")(tsplus_module_2.catchAllCause(error => scope.close(() => tsplus_module_1.failCause(error, fileName_1 + ":82:63")), fileName_1 + ":82:25")(sink.onFailure(cause))), fileName_1 + ":79:41");
55
+ }
20
56
  }
21
57
  }
22
58
  _a = SubjectTypeId, _b = PushTypeId;
@@ -1 +1 @@
1
- {"version":3,"file":"Atomic.mjs","names":["Multicast","PushTypeId","PushVariance","SubjectTypeId","AtomicSubject","constructor","_a","_b","stream","tsplus_module_1","never","run","emitter","event","value","error","cause"],"sources":["../../_src/Subject/Atomic.ts"],"sourcesContent":[null],"mappings":";;AAGA,SAASA,SAAS,QAAc,gBAAgB;AAChD,SAASC,UAAU,EAAEC,YAAY,QAAQ,2BAA2B;AACpE,SAASC,aAAa,QAAQ,8BAA8B;AAE5D,OAAM,MAAOC,aAAa;EAA1BC,YAAA;IACW,KAAAC,EAAA,CAAe,GAAkBH,aAAa;IAC9C,KAAAI,EAAA,CAAY,GAAqBN,UAAU;IAO3C,KAAAO,MAAM,GAAG,IAAIR,SAAS,CAAAS,eAAA,CAAAC,KAAA,CAAyB;EAa1D;EAXEC,GAAGA,CAAIC,OAAsB;IAC3B,OAAO,IAAI,CAACJ,MAAM,CAACG,GAAG,CAACC,OAAO,CAAC;EACjC;EAEAC,KAAKA,CAACC,KAAQ;IACZ,OAAO,IAAI,CAACN,MAAM,CAACK,KAAK,CAACC,KAAK,CAAC;EACjC;EAEAC,KAAKA,CAACC,KAAe;IACnB,OAAO,IAAI,CAACR,MAAM,CAACO,KAAK,CAACC,KAAK,CAAC;EACjC;;KApBUb,aAAa,EAAAI,EAAA,GACbN,UAAU","ignoreList":[]}
1
+ {"version":3,"file":"Atomic.mjs","names":["HashSet","MutableHashSet","PushTypeId","PushVariance","withScope","PSubject","SubjectTypeId","IO","AtomicSubject","constructor","_a","_b","sinks","empty","interruptScopes","tsplus_module_2","fiberIdWith","fiberId","foreachDiscard","scope","close","tsplus_module_1","interrupt","fileName_1","subscribers","size","run","sink","addSink","tsplus_module_3","awaitClose","onSuccess","value","defer","unsafeOnSuccess","onFailure","cause","unsafeOnFailure","f","innerScope","tsplus_module_4","environmentWithIO","environment","entry","add","remove","succeed","zipRight","addFinalizer","tsplus_module_5","sequential","a","unit","provideSomeEnvironment","catchAllCause","error","failCause"],"sources":["../../_src/Subject/Atomic.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ const fileName_1 = "(@fncts/io) src/Subject/DeferredRef.ts";
2
+ import * as tsplus_module_1 from "@fncts/base/data/Maybe/definition";
3
+ import * as tsplus_module_2 from "@fncts/io/Future/api";
4
+ import * as tsplus_module_3 from "@fncts/base/data/Maybe/api";
5
+ import * as tsplus_module_4 from "@fncts/io/IO/api";
6
+ import * as tsplus_module_5 from "@fncts/base/data/Equatable/api";
7
+ import * as tsplus_module_6 from "@fncts/base/data/Maybe/constructors";
8
+ import * as tsplus_module_7 from "@fncts/base/data/Exit/constructors";
9
+ import * as tsplus_module_8 from "@fncts/io/Future/constructors";
10
+ import { External } from "../IO.mjs";
11
+ export class FutureRef extends External {
12
+ constructor(fiberId, current) {
13
+ super();
14
+ this.fiberId = fiberId;
15
+ this.current = current;
16
+ this.version = -1;
17
+ this.toIO = tsplus_module_4.defer(() => {
18
+ const current = this.current.get;
19
+ if (tsplus_module_1.isNothing(current)) {
20
+ return tsplus_module_2.wait(this.future, fileName_1 + ":20:25");
21
+ } else {
22
+ return tsplus_module_3.toUndefined(current);
23
+ }
24
+ }, fileName_1 + ":17:35");
25
+ this.reset();
26
+ }
27
+ done(exit) {
28
+ const current = this.current.get;
29
+ if (tsplus_module_1.isJust(current) && tsplus_module_5.strictEquals(current.value, exit)) {
30
+ return false;
31
+ }
32
+ tsplus_module_2.unsafeDone(exit, fileName_1 + ":31:27")(this.future);
33
+ this.version += 1;
34
+ return true;
35
+ }
36
+ reset() {
37
+ this.current.set(tsplus_module_6.nothing(fileName_1 + ":37:29"));
38
+ this.version = -1;
39
+ if (this.future) {
40
+ tsplus_module_2.unsafeDone(tsplus_module_7.interrupt(this.fiberId, fileName_1 + ":40:44"), fileName_1 + ":40:29")(this.future);
41
+ }
42
+ this.future = tsplus_module_8.unsafeMake(this.fiberId);
43
+ }
44
+ }
45
+ //# sourceMappingURL=DeferredRef.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeferredRef.mjs","names":["External","FutureRef","constructor","fiberId","current","version","toIO","tsplus_module_4","defer","get","tsplus_module_1","isNothing","tsplus_module_2","wait","future","fileName_1","tsplus_module_3","toUndefined","reset","done","exit","isJust","tsplus_module_5","strictEquals","value","unsafeDone","set","tsplus_module_6","nothing","tsplus_module_7","interrupt","tsplus_module_8","unsafeMake"],"sources":["../../_src/Subject/DeferredRef.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;AAEA,SAASA,QAAQ,QAAY,WAAU;AAEvC,OAAM,MAAOC,SAAgB,SAAQD,QAAqB;EAIxDE,YACWC,OAAgB,EAChBC,OAA2C;IAEpD,KAAK,EAAE;IAHE,KAAAD,OAAO,GAAPA,OAAO;IACP,KAAAC,OAAO,GAAPA,OAAO;IALX,KAAAC,OAAO,GAAG,CAAC,CAAC;IAWnB,KAAAC,IAAI,GAAoBC,eAAA,CAAAC,KAAA,CAAS,MAAK;MACpC,MAAMJ,OAAO,GAAG,IAAI,CAACA,OAAO,CAACK,GAAG;MAChC,IAAIC,eAAA,CAAAC,SAAA,CAAAP,OAAO,CAAY,EAAE;QACvB,OAAAQ,eAAA,CAAAC,IAAA,CAAO,IAAI,CAACC,MAAM,EAAAC,UAAA;MACpB,CAAC,MAAM;QACL,OAAOC,eAAA,CAAAC,WAAA,CAAAb,OAAO,CAAO;MACvB;IACF,CAAC,EAAAW,UAAA,YAAC;IAVA,IAAI,CAACG,KAAK,EAAE;EACd;EAWAC,IAAIA,CAACC,IAAgB;IACnB,MAAMhB,OAAO,GAAG,IAAI,CAACA,OAAO,CAACK,GAAG;IAChC,IAAIC,eAAA,CAAAW,MAAA,CAAAjB,OAAO,CAAS,IAAIkB,eAAA,CAAAC,YAAA,CAAuBnB,OAAO,CAACoB,KAAK,EAAEJ,IAAI,CAAC,EAAE;MACnE,OAAO,KAAK;IACd;IACAR,eAAA,CAAAa,UAAA,CAAuBL,IAAI,EAAAL,UAAA,aAA3B,IAAI,CAACD,MAAM,CAAiB;IAC5B,IAAI,CAACT,OAAO,IAAI,CAAC;IACjB,OAAO,IAAI;EACb;EAEAa,KAAKA,CAAA;IACH,IAAI,CAACd,OAAO,CAACsB,GAAG,CAACC,eAAA,CAAAC,OAAA,CAAAb,UAAA,YAAS,CAAC;IAC3B,IAAI,CAACV,OAAO,GAAG,CAAC,CAAC;IACjB,IAAI,IAAI,CAACS,MAAM,EAAE;MACfF,eAAA,CAAAa,UAAA,CAAuBI,eAAA,CAAAC,SAAA,CAAe,IAAI,CAAC3B,OAAO,EAAAY,UAAA,YAAC,EAAAA,UAAA,aAAnD,IAAI,CAACD,MAAM,CAAyC;IACtD;IACA,IAAI,CAACA,MAAM,GAAGiB,eAAA,CAAAC,UAAA,CAAkB,IAAI,CAAC7B,OAAO,CAAC;EAC/C","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ const fileName_1 = "(@fncts/io) src/Subject/Hold.ts";
2
+ import * as tsplus_module_1 from "@fncts/base/data/Maybe/constructors";
3
+ import * as tsplus_module_2 from "@fncts/base/data/Exit/constructors";
4
+ import * as tsplus_module_3 from "@fncts/io/IO/api";
5
+ import * as tsplus_module_4 from "@fncts/base/data/Exit/api";
6
+ import * as tsplus_module_5 from "@fncts/base/data/Maybe/destructors";
7
+ import * as tsplus_module_6 from "@fncts/io/Scope/api";
8
+ import { AtomicReference } from "@fncts/base/internal/AtomicReference";
9
+ import { IO } from "../IO.mjs";
10
+ import { AtomicSubject } from "./Atomic.mjs";
11
+ export class HoldSubject extends AtomicSubject {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.value = new AtomicReference(tsplus_module_1.nothing(fileName_1 + ":16:83"));
15
+ this.interrupt = tsplus_module_3.zipRight(tsplus_module_3.succeed(() => this.value.set(tsplus_module_1.nothing(fileName_1 + ":47:87")), fileName_1 + ":47:64"), fileName_1 + ":47:61")(this.interruptScopes);
16
+ }
17
+ onSuccess(value) {
18
+ return tsplus_module_3.defer(() => {
19
+ this.value.set(tsplus_module_1.just(tsplus_module_2.succeed(value, fileName_1 + ":20:39"), fileName_1 + ":20:26"));
20
+ return this.unsafeOnSuccess(value);
21
+ }, fileName_1 + ":19:20");
22
+ }
23
+ onFailure(cause) {
24
+ return tsplus_module_3.defer(() => {
25
+ this.value.set(tsplus_module_1.just(tsplus_module_2.failCause(cause, fileName_1 + ":27:41"), fileName_1 + ":27:26"));
26
+ return this.unsafeOnFailure(cause);
27
+ }, fileName_1 + ":26:20");
28
+ }
29
+ run(sink) {
30
+ return this.addSink(sink, scope => tsplus_module_3.zipRight(tsplus_module_6.awaitClose(scope), fileName_1 + ":43:12")(tsplus_module_5.match(() => tsplus_module_3.unit, exit => tsplus_module_4.match(cause => sink.onFailure(cause), value => sink.onSuccess(value))(exit))(this.value.get)));
31
+ }
32
+ }
33
+ //# sourceMappingURL=Hold.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Hold.mjs","names":["AtomicReference","IO","AtomicSubject","HoldSubject","constructor","value","tsplus_module_1","nothing","fileName_1","interrupt","tsplus_module_3","zipRight","succeed","set","interruptScopes","onSuccess","defer","just","tsplus_module_2","unsafeOnSuccess","onFailure","cause","failCause","unsafeOnFailure","run","sink","addSink","scope","tsplus_module_6","awaitClose","tsplus_module_5","match","unit","exit","tsplus_module_4","get"],"sources":["../../_src/Subject/Hold.ts"],"sourcesContent":[null],"mappings":";;;;;;;AAKA,SAASA,eAAe,QAAQ,sCAAsC;AAEtE,SAASC,EAAE,QAAQ,WAAU;AAC7B,SAASC,aAAa,QAAQ,cAAa;AAM3C,OAAM,MAAOC,WAAkB,SAAQD,aAAmB;EAA1DE,YAAA;;IACW,KAAAC,KAAK,GAAuC,IAAIL,eAAe,CAACM,eAAA,CAAAC,OAAA,CAAAC,UAAA,YAAS,CAAC;IA+BnF,KAAAC,SAAS,GAAAC,eAAA,CAAAC,QAAA,CAAkDD,eAAA,CAAAE,OAAA,OAAG,IAAI,CAACP,KAAK,CAACQ,GAAG,CAACP,eAAA,CAAAC,OAAA,CAAAC,UAAA,YAAS,CAAC,EAAAA,UAAA,YAAC,EAAAA,UAAA,aAApD,IAAI,CAACM,eAAe;EAC1D;EA9BEC,SAASA,CAACV,KAAQ;IAChB,OAAOK,eAAA,CAAAM,KAAA,CAAS,MAAK;MACnB,IAAI,CAACX,KAAK,CAACQ,GAAG,CAACP,eAAA,CAAAW,IAAA,CAAKC,eAAA,CAAAN,OAAA,CAAaP,KAAK,EAAAG,UAAA,YAAC,EAAAA,UAAA,YAAC,CAAC;MACzC,OAAO,IAAI,CAACW,eAAe,CAACd,KAAK,CAAC;IACpC,CAAC,EAAAG,UAAA,YAAC;EACJ;EAEAY,SAASA,CAACC,KAAe;IACvB,OAAOX,eAAA,CAAAM,KAAA,CAAS,MAAK;MACnB,IAAI,CAACX,KAAK,CAACQ,GAAG,CAACP,eAAA,CAAAW,IAAA,CAAKC,eAAA,CAAAI,SAAA,CAAeD,KAAK,EAAAb,UAAA,YAAC,EAAAA,UAAA,YAAC,CAAC;MAC3C,OAAO,IAAI,CAACe,eAAe,CAACF,KAAK,CAAC;IACpC,CAAC,EAAAb,UAAA,YAAC;EACJ;EAEAgB,GAAGA,CAAKC,IAA0B;IAChC,OAAO,IAAI,CAACC,OAAO,CACjBD,IAAI,EACHE,KAAK,IAAIjB,eAAA,CAAAC,QAAA,CAAAiB,eAAA,CAAAC,UAAA,CAQJF,KAAK,GAAAnB,UAAA,aAPTsB,eAAA,CAAAC,KAAA,CACE,MAAKrB,eAAA,CAAAsB,IAAQ,EACZC,IAAI,IACHC,eAAA,CAAAH,KAAA,CACGV,KAAK,IAAKI,IAAI,CAACL,SAAS,CAACC,KAAK,CAAC,EAC/BhB,KAAK,IAAKoB,IAAI,CAACV,SAAS,CAACV,KAAK,CAAC,EAFlC4B,IAAI,CAGH,EANL,IAAI,CAAC5B,KAAK,CAAC8B,GAAG,CAOb,CAAmB,CACvB;EACH","ignoreList":[]}
@@ -0,0 +1,122 @@
1
+ const fileName_1 = "(@fncts/io) src/Subject/RefSubject/Atomic.ts";
2
+ import * as tsplus_module_1 from "@fncts/io/Semaphore/constructors";
3
+ import * as tsplus_module_2 from "@fncts/base/data/Exit/constructors";
4
+ import * as tsplus_module_3 from "@fncts/io/IO/api";
5
+ import * as tsplus_module_4 from "@fncts/io/IO/api/environment";
6
+ import * as tsplus_module_5 from "@fncts/base/data/Exit/api";
7
+ import * as tsplus_module_6 from "@fncts/base/data/Maybe/definition";
8
+ import * as tsplus_module_7 from "@fncts/io/Fiber/api/interrupt";
9
+ import * as tsplus_module_8 from "@fncts/base/data/function/api";
10
+ import * as tsplus_module_9 from "@fncts/io/IO/api/interrupt";
11
+ import * as tsplus_module_10 from "@fncts/io/IO/api/forkIn";
12
+ import { IO } from "@fncts/io/IO";
13
+ import { PSynchronizedInternal } from "@fncts/io/Ref/Synchronized/definition";
14
+ import { FutureRef } from "../DeferredRef.mjs";
15
+ import { HoldSubject } from "../Hold.mjs";
16
+ import { Derived } from "./Derived.mjs";
17
+ import { PRefSubject } from "./RefSubject.mjs";
18
+ export class Atomic extends PRefSubject {
19
+ constructor(fiberId, initial, runtime, scope) {
20
+ super();
21
+ this.fiberId = fiberId;
22
+ this.initial = initial;
23
+ this.runtime = runtime;
24
+ this.scope = scope;
25
+ this.semaphore = tsplus_module_1.unsafeMakeSemaphore(1);
26
+ this.subject = new HoldSubject();
27
+ this.futureRef = new FutureRef(this.fiberId, this.subject.value);
28
+ this.fiber = null;
29
+ this.interrupt = tsplus_module_3.fiberIdWith(fiberId => {
30
+ this.futureRef.reset();
31
+ return tsplus_module_3.zipRight(this.subject.interrupt, fileName_1 + ":30:77")(tsplus_module_3.zipRight(this.interruptFiber, fileName_1 + ":30:55")(this.scope.close(() => tsplus_module_2.interrupt(fiberId, fileName_1 + ":30:43"))));
32
+ });
33
+ this.subscribers = this.subject.subscribers;
34
+ this.onSuccess = this.set;
35
+ this.interruptFiber = tsplus_module_3.defer(() => {
36
+ if (this.fiber) {
37
+ return tsplus_module_7.interrupt(this.fiber);
38
+ } else {
39
+ return tsplus_module_3.unit;
40
+ }
41
+ }, fileName_1 + ":171:36");
42
+ }
43
+ run(sink) {
44
+ return this.subject.run(sink);
45
+ }
46
+ onFailure(cause) {
47
+ const exit = tsplus_module_2.failCause(cause, fileName_1 + ":40:32");
48
+ return tsplus_module_3.defer(() => {
49
+ if (this.futureRef.done(exit)) {
50
+ return this.sendEvent(exit);
51
+ } else {
52
+ return tsplus_module_3.unit;
53
+ }
54
+ }, fileName_1 + ":41:20");
55
+ }
56
+ modify(f, __tsplusTrace) {
57
+ return tsplus_module_3.flatMap(a => {
58
+ const [c, a1] = f(a);
59
+ return tsplus_module_3.as(() => c, fileName_1 + ":55:29")(this.set(a1, fileName_1 + ":55:22"));
60
+ }, fileName_1 + ":53:28")(this.get);
61
+ }
62
+ modifyIO(f, __tsplusTrace) {
63
+ return tsplus_module_3.flatMap(([b, a]) => tsplus_module_3.as(() => b, fileName_1 + ":60:66")(this.set(a, fileName_1 + ":60:60")), fileName_1 + ":60:39")(tsplus_module_3.flatMap(f, fileName_1 + ":60:28")(this.get));
64
+ }
65
+ match(setError, getError, set, get, __tsplusTrace) {
66
+ return this.matchIO(setError, getError, set, get, fileName_1 + ":70:24");
67
+ }
68
+ matchAll(setError, getError, setGetError, set, get, __tsplusTrace) {
69
+ return this.matchAllIO(setError, getError, setGetError, set, get, fileName_1 + ":81:27");
70
+ }
71
+ matchIO(setError, getError, set, get, __tsplusTrace) {
72
+ return new PSynchronizedInternal(this.semaphore, tsplus_module_3.matchIO(e => tsplus_module_3.failNow(getError(e), fileName_1 + ":93:41"), get, fileName_1 + ":93:23")(this.get), c => tsplus_module_3.flatMap(a => tsplus_module_3.mapError(setError, fileName_1 + ":94:56")(this.set(a, fileName_1 + ":94:44")), fileName_1 + ":94:28")(set(c)));
73
+ }
74
+ matchAllIO(setError, getError, setGetError, set, get, __tsplusTrace) {
75
+ return new PSynchronizedInternal(this.semaphore, tsplus_module_3.matchIO(e => tsplus_module_3.failNow(getError(e), fileName_1 + ":108:41"), get, fileName_1 + ":108:23")(this.get), c => tsplus_module_3.matchIO(e => tsplus_module_3.failNow(setGetError(e), fileName_1 + ":111:28"), b => tsplus_module_3.flatMap(a => tsplus_module_3.mapError(setError, fileName_1 + ":112:63")(this.set(a, fileName_1 + ":112:51")), fileName_1 + ":112:35")(set(c)(b)), fileName_1 + ":110:25")(this.get));
76
+ }
77
+ matchIOSubject(mapSetError, mapGetError, mapErrorInput, mapSetErrorInput, mapSet, mapGet, __tsplusTrace) {
78
+ return new Derived(f => f({
79
+ ref: this,
80
+ mapSetError,
81
+ mapGetError,
82
+ mapErrorInput,
83
+ mapSetErrorInput,
84
+ mapSet,
85
+ mapGet
86
+ }));
87
+ }
88
+ set(a, __tsplusTrace) {
89
+ const exit = tsplus_module_2.succeed(a, fileName_1 + ":140:30");
90
+ return tsplus_module_3.defer(() => {
91
+ if (this.futureRef.done(exit)) {
92
+ return this.sendEvent(exit);
93
+ } else {
94
+ return tsplus_module_3.unit;
95
+ }
96
+ }, fileName_1 + ":141:20");
97
+ }
98
+ get get() {
99
+ return this.getOrInit(false);
100
+ }
101
+ sendEvent(exit) {
102
+ return tsplus_module_5.match(cause => tsplus_module_4.provideEnvironment(this.runtime.environment, fileName_1 + ":156:66")(this.subject.onFailure(cause)), value => tsplus_module_4.provideEnvironment(this.runtime.environment, fileName_1 + ":157:66")(this.subject.onSuccess(value)))(exit);
103
+ }
104
+ getOrInit(lock) {
105
+ return tsplus_module_3.defer(() => {
106
+ if (this.fiber === null && tsplus_module_6.isNothing(this.futureRef.current.get)) {
107
+ return tsplus_module_3.zipRight(this.futureRef, fileName_1 + ":164:33")(this.init(lock));
108
+ } else {
109
+ return this.futureRef;
110
+ }
111
+ }, fileName_1 + ":162:20");
112
+ }
113
+ init(lock) {
114
+ const maybeWithLock = lock ? this.semaphore.withPermits(1) : tsplus_module_8.identity;
115
+ const initialize = maybeWithLock(tsplus_module_9.onExit(exit => tsplus_module_3.succeed(() => {
116
+ this.fiber = null;
117
+ this.futureRef.done(exit);
118
+ }, fileName_1 + ":184:11"), fileName_1 + ":183:71")(tsplus_module_4.provideEnvironment(this.runtime.environment, fileName_1 + ":183:38")(this.initial)));
119
+ return tsplus_module_3.flatMap(fiber => tsplus_module_3.succeed(() => this.fiber = fiber, fileName_1 + ":191:63"), fileName_1 + ":191:49")(tsplus_module_10.forkIn(this.scope, fileName_1 + ":191:29")(initialize));
120
+ }
121
+ }
122
+ //# sourceMappingURL=Atomic.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Atomic.mjs","names":["IO","PSynchronizedInternal","FutureRef","HoldSubject","Derived","PRefSubject","Atomic","constructor","fiberId","initial","runtime","scope","semaphore","tsplus_module_1","unsafeMakeSemaphore","subject","futureRef","value","fiber","interrupt","tsplus_module_3","fiberIdWith","reset","zipRight","fileName_1","interruptFiber","close","tsplus_module_2","subscribers","onSuccess","set","defer","tsplus_module_7","unit","run","sink","onFailure","cause","exit","failCause","done","sendEvent","modify","f","__tsplusTrace","flatMap","a","c","a1","as","get","modifyIO","b","match","setError","getError","matchIO","matchAll","setGetError","matchAllIO","e","failNow","mapError","matchIOSubject","mapSetError","mapGetError","mapErrorInput","mapSetErrorInput","mapSet","mapGet","ref","succeed","getOrInit","tsplus_module_5","tsplus_module_4","provideEnvironment","environment","lock","tsplus_module_6","isNothing","current","init","maybeWithLock","withPermits","tsplus_module_8","identity","initialize","tsplus_module_9","onExit","tsplus_module_10","forkIn"],"sources":["../../../_src/Subject/RefSubject/Atomic.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,90 @@
1
+ const fileName_1 = "(@fncts/io) src/Subject/RefSubject/Derived.ts";
2
+ import * as tsplus_module_1 from "@fncts/base/data/Cause/api";
3
+ import * as tsplus_module_2 from "@fncts/io/IO/api";
4
+ import * as tsplus_module_3 from "@fncts/io/Push/Sink";
5
+ import { PSynchronizedInternal } from "@fncts/io/Ref";
6
+ import { PRefSubject } from "./RefSubject.mjs";
7
+ export class Derived extends PRefSubject {
8
+ constructor(use) {
9
+ super();
10
+ this.use = use;
11
+ this.subscribers = this.use(({
12
+ ref
13
+ }) => ref.subscribers);
14
+ this.interrupt = this.use(({
15
+ ref
16
+ }) => ref.interrupt);
17
+ }
18
+ onSuccess(value) {
19
+ return this.use(({
20
+ ref,
21
+ mapSetErrorInput,
22
+ mapSet
23
+ }) => tsplus_module_2.matchCauseIO(cause => ref.onFailure(tsplus_module_1.map(mapSetErrorInput)(cause)), a0 => ref.onSuccess(a0, fileName_1 + ":46:30"), fileName_1 + ":44:33")(mapSet(value)));
24
+ }
25
+ onFailure(cause) {
26
+ return this.use(({
27
+ ref,
28
+ mapErrorInput
29
+ }) => ref.onFailure(tsplus_module_1.map(mapErrorInput)(cause)));
30
+ }
31
+ get get() {
32
+ return this.use(({
33
+ ref,
34
+ mapGetError,
35
+ mapGet
36
+ }) => tsplus_module_2.matchIO(e => tsplus_module_2.failNow(mapGetError(e), fileName_1 + ":56:88"), mapGet, fileName_1 + ":56:70")(ref.get));
37
+ }
38
+ set(a, __tsplusTrace) {
39
+ return this.use(({
40
+ ref,
41
+ mapSet
42
+ }) => tsplus_module_2.flatMap(a0 => ref.set(a0, fileName_1 + ":60:75"), fileName_1 + ":60:59")(mapSet(a)));
43
+ }
44
+ modify(f, __tsplusTrace) {
45
+ return this.modifyIO(out => tsplus_module_2.succeedNow(f(out), fileName_1 + ":64:48"), fileName_1 + ":64:25");
46
+ }
47
+ modifyIO(f, __tsplusTrace) {
48
+ return this.use(({
49
+ ref,
50
+ mapGetError,
51
+ mapSet,
52
+ mapGet
53
+ }) => tsplus_module_2.flatMap(a0 => tsplus_module_2.flatMap(([c, a]) => tsplus_module_2.as(() => c, fileName_1 + ":78:18")(tsplus_module_2.flatMap(a0 => ref.set(a0, fileName_1 + ":77:39"), fileName_1 + ":77:23")(mapSet(a))), fileName_1 + ":75:19")(tsplus_module_2.flatMap(f, fileName_1 + ":74:19")(mapGet(a0))), fileName_1 + ":72:44")(tsplus_module_2.mapError(mapGetError, fileName_1 + ":72:23")(ref.get)));
54
+ }
55
+ match(ea, eb, ca, bd, __tsplusTrace) {
56
+ return this.matchIO(ea, eb, ca, bd, fileName_1 + ":91:24");
57
+ }
58
+ matchAll(ea, eb, ec, ca, bd, __tsplusTrace) {
59
+ return this.matchAllIO(ea, eb, ec, ca, bd, fileName_1 + ":102:27");
60
+ }
61
+ matchIO(mapSetError, mapGetError, mapSet, mapGet, __tsplusTrace) {
62
+ return this.use(({
63
+ ref
64
+ }) => new PSynchronizedInternal(ref.semaphore, tsplus_module_2.matchIO(e => tsplus_module_2.failNow(mapGetError(e), fileName_1 + ":116:45"), mapGet, fileName_1 + ":116:27")(this.get), c => tsplus_module_2.flatMap(a => tsplus_module_2.mapError(mapSetError, fileName_1 + ":117:63")(this.set(a, fileName_1 + ":117:51")), fileName_1 + ":117:35")(mapSet(c))));
65
+ }
66
+ matchAllIO(mapSetError, mapGetError, mapSetGetError, mapSet, mapGet, __tsplusTrace) {
67
+ return this.use(({
68
+ ref
69
+ }) => new PSynchronizedInternal(ref.semaphore, tsplus_module_2.matchIO(e => tsplus_module_2.failNow(mapGetError(e), fileName_1 + ":134:45"), mapGet, fileName_1 + ":134:27")(this.get), c => tsplus_module_2.matchIO(e => tsplus_module_2.failNow(mapSetGetError(e), fileName_1 + ":137:32"), b => tsplus_module_2.flatMap(a => tsplus_module_2.mapError(mapSetError, fileName_1 + ":138:70")(this.set(a, fileName_1 + ":138:58")), fileName_1 + ":138:42")(mapSet(c)(b)), fileName_1 + ":136:29")(this.get)));
70
+ }
71
+ matchIOSubject(mapSetError, mapGetError, mapErrorInput, mapSetErrorInput, mapSet, mapGet, __tsplusTrace) {
72
+ return this.use(r => new Derived(f => f({
73
+ ref: r.ref,
74
+ mapSetError: e0 => mapSetError(r.mapSetError(e0)),
75
+ mapGetError: e0 => mapGetError(r.mapGetError(e0)),
76
+ mapErrorInput: ei => r.mapErrorInput(mapErrorInput(ei)),
77
+ mapSetErrorInput: ec => r.mapSetErrorInput(mapSetErrorInput(ec)),
78
+ mapSet: c => tsplus_module_2.flatMap(inp => tsplus_module_2.mapError(mapSetError, fileName_1 + ":162:77")(r.mapSet(inp)), fileName_1 + ":162:45")(mapSet(c)),
79
+ mapGet: a0 => tsplus_module_2.flatMap(mapGet, fileName_1 + ":163:71")(tsplus_module_2.mapError(mapGetError, fileName_1 + ":163:50")(r.mapGet(a0)))
80
+ })));
81
+ }
82
+ run(sink) {
83
+ return this.use(({
84
+ ref,
85
+ mapGet,
86
+ mapGetError
87
+ }) => ref.run(tsplus_module_3.unsafeMakeSink(a0 => tsplus_module_2.matchCauseIO(sink.onFailure, sink.onSuccess, fileName_1 + ":173:42")(mapGet(a0)), cause => sink.onFailure(tsplus_module_1.map(mapGetError)(cause)))));
88
+ }
89
+ }
90
+ //# sourceMappingURL=Derived.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Derived.mjs","names":["PSynchronizedInternal","PRefSubject","Derived","constructor","use","subscribers","ref","interrupt","onSuccess","value","mapSetErrorInput","mapSet","tsplus_module_2","matchCauseIO","cause","onFailure","tsplus_module_1","map","a0","fileName_1","mapErrorInput","get","mapGetError","mapGet","matchIO","e","failNow","set","a","__tsplusTrace","flatMap","modify","f","modifyIO","out","succeedNow","c","as","mapError","match","ea","eb","ca","bd","matchAll","ec","matchAllIO","mapSetError","semaphore","mapSetGetError","b","matchIOSubject","r","e0","ei","inp","run","sink","tsplus_module_3","unsafeMakeSink"],"sources":["../../../_src/Subject/RefSubject/Derived.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ var _a, _b;
2
+ import { RefTypeId, RefVariance, SynchronizedTypeId } from "../../Ref.mjs";
3
+ import { PSubject } from "../definition.mjs";
4
+ export class PRefSubject extends PSubject {
5
+ constructor() {
6
+ super(...arguments);
7
+ this[_a] = SynchronizedTypeId;
8
+ this[_b] = RefTypeId;
9
+ }
10
+ }
11
+ _a = SynchronizedTypeId, _b = RefTypeId;
12
+ //# sourceMappingURL=RefSubject.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefSubject.mjs","names":["RefTypeId","RefVariance","SynchronizedTypeId","PSubject","PRefSubject","constructor","_a","_b"],"sources":["../../../_src/Subject/RefSubject/RefSubject.ts"],"sourcesContent":[null],"mappings":";AAWA,SAASA,SAAS,EAAEC,WAAW,EAAEC,kBAAkB,QAAQ,eAAc;AACzE,SAASC,QAAQ,QAAQ,mBAAkB;AAE3C,OAAM,MAAgBC,WACpB,SAAQD,QAA+C;EADzDE,YAAA;;IAYW,KAAAC,EAAA,CAAoB,GAAuBJ,kBAAkB;IAC7D,KAAAK,EAAA,CAAW,GAAgCP,SAAS;EA8D/D;;KA/DYE,kBAAkB,EAAAK,EAAA,GAClBP,SAAS","ignoreList":[]}
@@ -1,3 +1,17 @@
1
+ var _a, _b;
2
+ import { Push, PushTypeId } from "../Push.mjs";
1
3
  export const SubjectTypeId = /*#__PURE__*/Symbol.for("fncts.io.Push.Subject");
4
+ /**
5
+ * @tsplus type fncts.io.Push.Subject
6
+ */
7
+ export class PSubject extends Push {
8
+ constructor() {
9
+ super(...arguments);
10
+ this._pushOpCode = null;
11
+ this[_a] = PushTypeId;
12
+ this[_b] = SubjectTypeId;
13
+ }
14
+ }
15
+ _a = PushTypeId, _b = SubjectTypeId;
2
16
  export const Subject = {};
3
17
  //# sourceMappingURL=definition.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"definition.mjs","names":["SubjectTypeId","Symbol","for","Subject"],"sources":["../../_src/Subject/definition.ts"],"sourcesContent":[null],"mappings":"AAEA,OAAO,MAAMA,aAAa,gBAAGC,MAAM,CAACC,GAAG,CAAC,uBAAuB,CAAC;AAehE,OAAO,MAAMC,OAAO,GAAe,EAAE","ignoreList":[]}
1
+ {"version":3,"file":"definition.mjs","names":["Push","PushTypeId","SubjectTypeId","Symbol","for","PSubject","constructor","_pushOpCode","_a","_b","Subject"],"sources":["../../_src/Subject/definition.ts"],"sourcesContent":[null],"mappings":";AAIA,SAASA,IAAI,EAAEC,UAAU,QAAQ,aAAY;AAE7C,OAAO,MAAMC,aAAa,gBAAGC,MAAM,CAACC,GAAG,CAAC,uBAAuB,CAAC;AAGhE;;;AAGA,OAAM,MAAgBC,QACpB,SAAQL,IAAiC;EAD3CM,YAAA;;IAIW,KAAAC,WAAW,GAAsB,IAAI;IACrC,KAAAC,EAAA,CAAY,GAAqBP,UAAU;IAC3C,KAAAQ,EAAA,CAAe,GAAkBP,aAAa;EAQzD;;KATYD,UAAU,EAAAQ,EAAA,GACVP,aAAa;AAiBzB,OAAO,MAAMQ,OAAO,GAAe,EAAE","ignoreList":[]}
package/_mjs/Subject.mjs CHANGED
@@ -1,5 +1,7 @@
1
1
  // codegen:start { preset: barrel, include: ./Subject/*.ts }
2
2
  export * from "./Subject/api.mjs";
3
3
  export * from "./Subject/Atomic.mjs";
4
+ export * from "./Subject/DeferredRef.mjs";
4
5
  export * from "./Subject/definition.mjs";
6
+ export * from "./Subject/Hold.mjs";
5
7
  //# sourceMappingURL=Subject.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Subject.mjs","names":[],"sources":["../_src/Subject.ts"],"sourcesContent":[null],"mappings":"AAAA;AACA,cAAc,mBAAkB;AAChC,cAAc,sBAAqB;AACnC,cAAc,0BAAyB","ignoreList":[]}
1
+ {"version":3,"file":"Subject.mjs","names":[],"sources":["../_src/Subject.ts"],"sourcesContent":[null],"mappings":"AAAA;AACA,cAAc,mBAAkB;AAChC,cAAc,sBAAqB;AACnC,cAAc,2BAA0B;AACxC,cAAc,0BAAyB;AACvC,cAAc,oBAAmB","ignoreList":[]}
@@ -12,7 +12,6 @@ export const SubscriptionRefTypeId = /*#__PURE__*/Symbol.for("fncts.io.Subscript
12
12
  export class SubscriptionRefInternal extends PSynchronizedInternal {
13
13
  constructor(semaphore, hub, ref) {
14
14
  super(semaphore, tsplus_module_1.get(ref, fileName_1 + ":14:25"), a => tsplus_module_2.set(a, fileName_1 + ":14:45")(ref));
15
- this.semaphore = semaphore;
16
15
  this.hub = hub;
17
16
  this.ref = ref;
18
17
  this[_a] = SubscriptionRefTypeId;
@@ -1 +1 @@
1
- {"version":3,"file":"SubscriptionRef.mjs","names":["PSynchronizedInternal","SubscriptionRefTypeId","Symbol","for","SubscriptionRefInternal","constructor","semaphore","hub","ref","tsplus_module_1","get","fileName_1","a","tsplus_module_2","set","_a","changes","tsplus_module_3","unwrapScoped","withPermit","tsplus_module_4","flatMap","map","stream","concat","succeedNow","fromHubScoped","unsafeGet","__tsplusTrace","zipLeft","tsplus_module_5","publish","unsafeSet","modifyIO","f","b","as","SubscriptionRef","concrete","_","make","value","tsplus_module_6","makeUnbounded","tsplus_module_7","makeSemaphore"],"sources":["../_src/SubscriptionRef.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;AAAA,SAASA,qBAAqB,QAAQ,eAAe;AAGrD,OAAO,MAAMC,qBAAqB,gBAAGC,MAAM,CAACC,GAAG,CAAC,0BAA0B,CAAC;AAG3E,OAAM,MAAOC,uBAA2B,SAAQJ,qBAAuD;EAErGK,YACWC,SAAoB,EACpBC,GAAW,EACXC,GAAW;IAEpB,KAAK,CAACF,SAAS,EAAAG,eAAA,CAAAC,GAAA,CAAEF,GAAG,EAAAG,UAAA,cAAOC,CAAC,IAAKC,eAAA,CAAAC,GAAA,CAAQF,CAAC,EAAAD,UAAA,aAATH,GAAG,CAAO,CAAC;IAJnC,KAAAF,SAAS,GAATA,SAAS;IACT,KAAAC,GAAG,GAAHA,GAAG;IACH,KAAAC,GAAG,GAAHA,GAAG;IAJL,KAAAO,EAAA,CAAuB,GAA0Bd,qBAAqB;IAQ/E,KAAAe,OAAO,GAA4BC,eAAA,CAAAC,YAAA,CACjC,IAAI,CAACC,UAAU,CACbC,eAAA,CAAAC,OAAA,CAAwBT,CAAC,IACvBQ,eAAA,CAAAE,GAAA,CAAoCC,MAAM,IAAKN,eAAA,CAAAO,MAAA,CAA4BD,MAAM,EAAAZ,UAAA,aAAlCM,eAAA,CAAAQ,UAAA,CAAkBb,CAAC,EAAAD,UAAA,YAAC,CAAe,EAAAA,UAAA,aAAlFM,eAAA,CAAAS,aAAA,OAAqB,IAAI,CAACnB,GAAG,CAAC,CAAqD,EAAAI,UAAA,aADrF,IAAI,CAACgB,SAAS,CAEb,EAAAhB,UAAA,YACF,EAAAA,UAAA,YACF;EAPD;EAQAG,GAAGA,CAACF,CAAI,EAAEgB,aAAsB;IAC9B,OAAO,IAAI,CAACT,UAAU,CAAAC,eAAA,CAAAS,OAAA,CAAqBC,eAAA,CAAAC,OAAA,CAAiBnB,CAAC,EAAAD,UAAA,aAAlB,IAAI,CAACJ,GAAG,CAAW,EAAAI,UAAA,aAAvC,IAAI,CAACqB,SAAS,CAACpB,CAAC,CAAC,GAAAD,UAAA,YAAuB;EACjE;EACAsB,QAAQA,CAAYC,CAAwC,EAAEN,aAAsB;IAClF,OAAO,IAAI,CAACT,UAAU,CACpBC,eAAA,CAAAC,OAAA,CAAkC,CAAC,CAACc,CAAC,EAAEvB,CAAC,CAAC,KAAIQ,eAAA,CAAAS,OAAA,CAA2BC,eAAA,CAAAC,OAAA,CAAiBnB,CAAC,EAAAD,UAAA,aAAlB,IAAI,CAACJ,GAAG,CAAW,EAAAI,UAAA,aAA7CS,eAAA,CAAAgB,EAAA,OAAqBD,CAAC,EAAAxB,UAAA,aAAtB,IAAI,CAACqB,SAAS,CAACpB,CAAC,CAAC,CAAM,CAAsB,EAAAD,UAAA,aAA3FS,eAAA,CAAAC,OAAA,CAAuBa,CAAC,EAAAvB,UAAA,aAAxB,IAAI,CAACgB,SAAS,CAAW,CAAmE,EAAAhB,UAAA,YAC7F;EACH;;KAtBUV,qBAAqB;AAqCjC,OAAO,MAAMoC,eAAe,GAAuB,EAAE;AAErD,OAAM,SAAUC,QAAQA,CAAIC,CAAqB;EAC/C;AAAA;AAGF;;;;AAIA,OAAM,SAAUC,IAAIA,CAAIC,KAAc;EACpC,OAAArB,eAAA,CAAAC,OAAA,CACQf,SAAS,IAAAc,eAAA,CAAAC,OAAA,CACTd,GAAG,IAAAa,eAAA,CAAAE,GAAA,CACHd,GAAG,IACF,IAAIJ,uBAAuB,CAACE,SAAS,EAAEC,GAAG,EAAEC,GAAG,CAAC,EAAAG,UAAA,aADnC+B,eAAA,CAAAF,IAAA,CAASC,KAAK,EAAA9B,UAAA,YAAC,GAAAA,UAAA,aADfmB,eAAA,CAAAa,aAAA,CAAAhC,UAAA,YAAsB,GAAAA,UAAA,aADtBiC,eAAA,CAAAC,aAAA,CAAU,CAAC,EAAAlC,UAAA,YAAC;AAKpC","ignoreList":[]}
1
+ {"version":3,"file":"SubscriptionRef.mjs","names":["PSynchronizedInternal","SubscriptionRefTypeId","Symbol","for","SubscriptionRefInternal","constructor","semaphore","hub","ref","tsplus_module_1","get","fileName_1","a","tsplus_module_2","set","_a","changes","tsplus_module_3","unwrapScoped","withPermit","tsplus_module_4","flatMap","map","stream","concat","succeedNow","fromHubScoped","unsafeGet","__tsplusTrace","zipLeft","tsplus_module_5","publish","unsafeSet","modifyIO","f","b","as","SubscriptionRef","concrete","_","make","value","tsplus_module_6","makeUnbounded","tsplus_module_7","makeSemaphore"],"sources":["../_src/SubscriptionRef.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;AAAA,SAASA,qBAAqB,QAAQ,eAAe;AAGrD,OAAO,MAAMC,qBAAqB,gBAAGC,MAAM,CAACC,GAAG,CAAC,0BAA0B,CAAC;AAG3E,OAAM,MAAOC,uBAA2B,SAAQJ,qBAAuD;EAErGK,YACEC,SAAoB,EACXC,GAAW,EACXC,GAAW;IAEpB,KAAK,CAACF,SAAS,EAAAG,eAAA,CAAAC,GAAA,CAAEF,GAAG,EAAAG,UAAA,cAAOC,CAAC,IAAKC,eAAA,CAAAC,GAAA,CAAQF,CAAC,EAAAD,UAAA,aAATH,GAAG,CAAO,CAAC;IAHnC,KAAAD,GAAG,GAAHA,GAAG;IACH,KAAAC,GAAG,GAAHA,GAAG;IAJL,KAAAO,EAAA,CAAuB,GAA0Bd,qBAAqB;IAQ/E,KAAAe,OAAO,GAA4BC,eAAA,CAAAC,YAAA,CACjC,IAAI,CAACC,UAAU,CACbC,eAAA,CAAAC,OAAA,CAAwBT,CAAC,IACvBQ,eAAA,CAAAE,GAAA,CAAoCC,MAAM,IAAKN,eAAA,CAAAO,MAAA,CAA4BD,MAAM,EAAAZ,UAAA,aAAlCM,eAAA,CAAAQ,UAAA,CAAkBb,CAAC,EAAAD,UAAA,YAAC,CAAe,EAAAA,UAAA,aAAlFM,eAAA,CAAAS,aAAA,OAAqB,IAAI,CAACnB,GAAG,CAAC,CAAqD,EAAAI,UAAA,aADrF,IAAI,CAACgB,SAAS,CAEb,EAAAhB,UAAA,YACF,EAAAA,UAAA,YACF;EAPD;EAQAG,GAAGA,CAACF,CAAI,EAAEgB,aAAsB;IAC9B,OAAO,IAAI,CAACT,UAAU,CAAAC,eAAA,CAAAS,OAAA,CAAqBC,eAAA,CAAAC,OAAA,CAAiBnB,CAAC,EAAAD,UAAA,aAAlB,IAAI,CAACJ,GAAG,CAAW,EAAAI,UAAA,aAAvC,IAAI,CAACqB,SAAS,CAACpB,CAAC,CAAC,GAAAD,UAAA,YAAuB;EACjE;EACAsB,QAAQA,CAAYC,CAAwC,EAAEN,aAAsB;IAClF,OAAO,IAAI,CAACT,UAAU,CACpBC,eAAA,CAAAC,OAAA,CAAkC,CAAC,CAACc,CAAC,EAAEvB,CAAC,CAAC,KAAIQ,eAAA,CAAAS,OAAA,CAA2BC,eAAA,CAAAC,OAAA,CAAiBnB,CAAC,EAAAD,UAAA,aAAlB,IAAI,CAACJ,GAAG,CAAW,EAAAI,UAAA,aAA7CS,eAAA,CAAAgB,EAAA,OAAqBD,CAAC,EAAAxB,UAAA,aAAtB,IAAI,CAACqB,SAAS,CAACpB,CAAC,CAAC,CAAM,CAAsB,EAAAD,UAAA,aAA3FS,eAAA,CAAAC,OAAA,CAAuBa,CAAC,EAAAvB,UAAA,aAAxB,IAAI,CAACgB,SAAS,CAAW,CAAmE,EAAAhB,UAAA,YAC7F;EACH;;KAtBUV,qBAAqB;AAqCjC,OAAO,MAAMoC,eAAe,GAAuB,EAAE;AAErD,OAAM,SAAUC,QAAQA,CAAIC,CAAqB;EAC/C;AAAA;AAGF;;;;AAIA,OAAM,SAAUC,IAAIA,CAAIC,KAAc;EACpC,OAAArB,eAAA,CAAAC,OAAA,CACQf,SAAS,IAAAc,eAAA,CAAAC,OAAA,CACTd,GAAG,IAAAa,eAAA,CAAAE,GAAA,CACHd,GAAG,IACF,IAAIJ,uBAAuB,CAACE,SAAS,EAAEC,GAAG,EAAEC,GAAG,CAAC,EAAAG,UAAA,aADnC+B,eAAA,CAAAF,IAAA,CAASC,KAAK,EAAA9B,UAAA,YAAC,GAAAA,UAAA,aADfmB,eAAA,CAAAa,aAAA,CAAAhC,UAAA,YAAsB,GAAAA,UAAA,aADtBiC,eAAA,CAAAC,aAAA,CAAU,CAAC,EAAAlC,UAAA,YAAC;AAKpC","ignoreList":[]}
@@ -1,3 +1,28 @@
1
+ /**
2
+ * Applies the function `f` to each element of the `Iterable<A>` in parallel,
3
+ * and returns the results in a new `Conc<B>`.
4
+ *
5
+ * For a sequential version of this method, see `foreach`.
6
+ *
7
+ * @tsplus static fncts.io.IOOps foreachWithIndexDiscardExec
8
+ */
9
+ export function foreachWithIndexDiscardExec<R, E, A, B>(
10
+ as: Iterable<A>,
11
+ es: ExecutionStrategy,
12
+ f: (index: number, a: A) => IO<R, E, B>,
13
+ __tsplusTrace?: string,
14
+ ): IO<R, E, void> {
15
+ return es.match(
16
+ () => IO.foreachWithIndexDiscard(as, f),
17
+ () =>
18
+ IO.withConcurrencyUnboundedMask((restore) => IO.foreachConcurrent(as.zipWithIndex, ([i, a]) => restore(f(i, a)))),
19
+ (fiberBound) =>
20
+ IO.withConcurrencyMask(fiberBound, (restore) =>
21
+ IO.foreachConcurrent(as.zipWithIndex, ([i, a]) => restore(f(i, a))),
22
+ ),
23
+ );
24
+ }
25
+
1
26
  /**
2
27
  * Applies the function `f` to each element of the `Iterable<A>` in parallel,
3
28
  * and returns the results in a new `Conc<B>`.
@@ -18,3 +43,25 @@ export function foreachExec<R, E, A, B>(
18
43
  (fiberBound) => IO.withConcurrencyMask(fiberBound, (restore) => IO.foreachConcurrent(as, (a) => restore(f(a)))),
19
44
  );
20
45
  }
46
+
47
+ /**
48
+ * Applies the function `f` to each element of the `Iterable<A>` in parallel,
49
+ * and returns the results in a new `Conc<B>`.
50
+ *
51
+ * For a sequential version of this method, see `foreach`.
52
+ *
53
+ * @tsplus static fncts.io.IOOps foreachExecDiscard
54
+ */
55
+ export function foreachDiscardExec<R, E, A, B>(
56
+ as: Iterable<A>,
57
+ es: ExecutionStrategy,
58
+ f: (a: A) => IO<R, E, B>,
59
+ __tsplusTrace?: string,
60
+ ): IO<R, E, void> {
61
+ return es.match(
62
+ () => IO.foreachDiscard(as, f),
63
+ () => IO.withConcurrencyUnboundedMask((restore) => IO.foreachConcurrentDiscard(as, (a) => restore(f(a)))),
64
+ (fiberBound) =>
65
+ IO.withConcurrencyMask(fiberBound, (restore) => IO.foreachConcurrentDiscard(as, (a) => restore(f(a)))),
66
+ );
67
+ }
@@ -0,0 +1,4 @@
1
+ export interface Bounds {
2
+ readonly min: number;
3
+ readonly max: number;
4
+ }