effect 4.0.0-beta.17 → 4.0.0-beta.19

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 (164) hide show
  1. package/dist/Array.d.ts +127 -299
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +102 -62
  4. package/dist/Array.js.map +1 -1
  5. package/dist/Cache.d.ts.map +1 -1
  6. package/dist/Cache.js +5 -4
  7. package/dist/Cache.js.map +1 -1
  8. package/dist/Channel.d.ts +97 -11
  9. package/dist/Channel.d.ts.map +1 -1
  10. package/dist/Channel.js +72 -29
  11. package/dist/Channel.js.map +1 -1
  12. package/dist/Chunk.d.ts +54 -247
  13. package/dist/Chunk.d.ts.map +1 -1
  14. package/dist/Chunk.js +36 -67
  15. package/dist/Chunk.js.map +1 -1
  16. package/dist/Effect.d.ts +337 -437
  17. package/dist/Effect.d.ts.map +1 -1
  18. package/dist/Effect.js +118 -134
  19. package/dist/Effect.js.map +1 -1
  20. package/dist/Filter.d.ts +0 -33
  21. package/dist/Filter.d.ts.map +1 -1
  22. package/dist/Filter.js +0 -13
  23. package/dist/Filter.js.map +1 -1
  24. package/dist/HashMap.d.ts +15 -14
  25. package/dist/HashMap.d.ts.map +1 -1
  26. package/dist/HashMap.js +4 -4
  27. package/dist/HashMap.js.map +1 -1
  28. package/dist/Iterable.d.ts +40 -39
  29. package/dist/Iterable.d.ts.map +1 -1
  30. package/dist/Iterable.js +94 -22
  31. package/dist/Iterable.js.map +1 -1
  32. package/dist/Option.d.ts +22 -15
  33. package/dist/Option.d.ts.map +1 -1
  34. package/dist/Option.js +14 -7
  35. package/dist/Option.js.map +1 -1
  36. package/dist/Pull.d.ts.map +1 -1
  37. package/dist/Pull.js +1 -1
  38. package/dist/Pull.js.map +1 -1
  39. package/dist/Record.d.ts +24 -120
  40. package/dist/Record.d.ts.map +1 -1
  41. package/dist/Record.js +21 -41
  42. package/dist/Record.js.map +1 -1
  43. package/dist/Sink.d.ts +11 -11
  44. package/dist/Sink.d.ts.map +1 -1
  45. package/dist/Sink.js +53 -6
  46. package/dist/Sink.js.map +1 -1
  47. package/dist/Stream.d.ts +198 -386
  48. package/dist/Stream.d.ts.map +1 -1
  49. package/dist/Stream.js +103 -59
  50. package/dist/Stream.js.map +1 -1
  51. package/dist/Trie.d.ts +18 -17
  52. package/dist/Trie.d.ts.map +1 -1
  53. package/dist/Trie.js +5 -5
  54. package/dist/Trie.js.map +1 -1
  55. package/dist/TxChunk.d.ts +37 -37
  56. package/dist/TxChunk.d.ts.map +1 -1
  57. package/dist/TxChunk.js +3 -3
  58. package/dist/TxChunk.js.map +1 -1
  59. package/dist/TxDeferred.d.ts +328 -0
  60. package/dist/TxDeferred.d.ts.map +1 -0
  61. package/dist/TxDeferred.js +196 -0
  62. package/dist/TxDeferred.js.map +1 -0
  63. package/dist/TxHashMap.d.ts +84 -83
  64. package/dist/TxHashMap.d.ts.map +1 -1
  65. package/dist/TxHashMap.js +24 -24
  66. package/dist/TxHashMap.js.map +1 -1
  67. package/dist/TxHashSet.d.ts +35 -35
  68. package/dist/TxHashSet.d.ts.map +1 -1
  69. package/dist/TxHashSet.js +14 -14
  70. package/dist/TxHashSet.js.map +1 -1
  71. package/dist/TxPriorityQueue.d.ts +609 -0
  72. package/dist/TxPriorityQueue.d.ts.map +1 -0
  73. package/dist/TxPriorityQueue.js +415 -0
  74. package/dist/TxPriorityQueue.js.map +1 -0
  75. package/dist/TxPubSub.d.ts +585 -0
  76. package/dist/TxPubSub.d.ts.map +1 -0
  77. package/dist/TxPubSub.js +521 -0
  78. package/dist/TxPubSub.js.map +1 -0
  79. package/dist/TxQueue.d.ts +32 -32
  80. package/dist/TxQueue.d.ts.map +1 -1
  81. package/dist/TxQueue.js +26 -26
  82. package/dist/TxQueue.js.map +1 -1
  83. package/dist/TxReentrantLock.d.ts +523 -0
  84. package/dist/TxReentrantLock.d.ts.map +1 -0
  85. package/dist/TxReentrantLock.js +504 -0
  86. package/dist/TxReentrantLock.js.map +1 -0
  87. package/dist/TxRef.d.ts +34 -34
  88. package/dist/TxRef.d.ts.map +1 -1
  89. package/dist/TxRef.js +21 -14
  90. package/dist/TxRef.js.map +1 -1
  91. package/dist/TxSemaphore.d.ts +8 -8
  92. package/dist/TxSemaphore.d.ts.map +1 -1
  93. package/dist/TxSemaphore.js +7 -7
  94. package/dist/TxSemaphore.js.map +1 -1
  95. package/dist/TxSubscriptionRef.d.ts +508 -0
  96. package/dist/TxSubscriptionRef.d.ts.map +1 -0
  97. package/dist/TxSubscriptionRef.js +293 -0
  98. package/dist/TxSubscriptionRef.js.map +1 -0
  99. package/dist/index.d.ts +40 -0
  100. package/dist/index.d.ts.map +1 -1
  101. package/dist/index.js +40 -0
  102. package/dist/index.js.map +1 -1
  103. package/dist/internal/effect.js +99 -42
  104. package/dist/internal/effect.js.map +1 -1
  105. package/dist/internal/hashMap.js +3 -2
  106. package/dist/internal/hashMap.js.map +1 -1
  107. package/dist/internal/trie.js +5 -4
  108. package/dist/internal/trie.js.map +1 -1
  109. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  110. package/dist/unstable/ai/Tool.js +0 -9
  111. package/dist/unstable/ai/Tool.js.map +1 -1
  112. package/dist/unstable/cli/Command.d.ts +1 -1
  113. package/dist/unstable/cli/Command.d.ts.map +1 -1
  114. package/dist/unstable/cli/Command.js +1 -1
  115. package/dist/unstable/cli/Command.js.map +1 -1
  116. package/dist/unstable/cluster/K8sHttpClient.js +4 -4
  117. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  118. package/dist/unstable/cluster/Sharding.js +1 -1
  119. package/dist/unstable/cluster/Sharding.js.map +1 -1
  120. package/dist/unstable/encoding/Sse.js +1 -1
  121. package/dist/unstable/encoding/Sse.js.map +1 -1
  122. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  123. package/dist/unstable/rpc/RpcServer.js +1 -2
  124. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  125. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  126. package/dist/unstable/socket/Socket.js +3 -3
  127. package/dist/unstable/socket/Socket.js.map +1 -1
  128. package/package.json +1 -1
  129. package/src/Array.ts +190 -342
  130. package/src/Cache.ts +6 -5
  131. package/src/Channel.ts +506 -102
  132. package/src/Chunk.ts +81 -268
  133. package/src/Effect.ts +437 -518
  134. package/src/Filter.ts +0 -57
  135. package/src/HashMap.ts +15 -14
  136. package/src/Iterable.ts +105 -50
  137. package/src/Option.ts +30 -20
  138. package/src/Pull.ts +1 -1
  139. package/src/Record.ts +43 -152
  140. package/src/Sink.ts +75 -23
  141. package/src/Stream.ts +442 -502
  142. package/src/Trie.ts +18 -17
  143. package/src/TxChunk.ts +72 -53
  144. package/src/TxDeferred.ts +394 -0
  145. package/src/TxHashMap.ts +332 -285
  146. package/src/TxHashSet.ts +111 -116
  147. package/src/TxPriorityQueue.ts +767 -0
  148. package/src/TxPubSub.ts +789 -0
  149. package/src/TxQueue.ts +241 -251
  150. package/src/TxReentrantLock.ts +753 -0
  151. package/src/TxRef.ts +50 -38
  152. package/src/TxSemaphore.ts +29 -32
  153. package/src/TxSubscriptionRef.ts +639 -0
  154. package/src/index.ts +45 -0
  155. package/src/internal/effect.ts +368 -163
  156. package/src/internal/hashMap.ts +7 -5
  157. package/src/internal/trie.ts +16 -9
  158. package/src/unstable/ai/Tool.ts +0 -9
  159. package/src/unstable/cli/Command.ts +6 -4
  160. package/src/unstable/cluster/K8sHttpClient.ts +4 -4
  161. package/src/unstable/cluster/Sharding.ts +1 -1
  162. package/src/unstable/encoding/Sse.ts +1 -1
  163. package/src/unstable/rpc/RpcServer.ts +1 -7
  164. package/src/unstable/socket/Socket.ts +9 -11
package/dist/TxRef.d.ts CHANGED
@@ -31,12 +31,12 @@ declare const TypeId = "~effect/transactions/TxRef";
31
31
  * const ref: TxRef.TxRef<number> = yield* TxRef.make(0)
32
32
  *
33
33
  * // Use within a transaction
34
- * yield* Effect.atomic(Effect.gen(function*() {
34
+ * yield* Effect.transaction(Effect.gen(function*() {
35
35
  * const current = yield* TxRef.get(ref)
36
36
  * yield* TxRef.set(ref, current + 1)
37
37
  * }))
38
38
  *
39
- * const final = yield* TxRef.get(ref)
39
+ * const final = yield* Effect.transaction(TxRef.get(ref))
40
40
  * console.log(final) // 1
41
41
  * })
42
42
  * ```
@@ -58,21 +58,21 @@ export interface TxRef<in out A> extends Pipeable {
58
58
  *
59
59
  * const program = Effect.gen(function*() {
60
60
  * // Create a transactional reference with initial value
61
- * const counter = yield* TxRef.make(0)
62
- * const name = yield* TxRef.make("Alice")
61
+ * const counter = yield* Effect.transaction(TxRef.make(0))
62
+ * const name = yield* Effect.transaction(TxRef.make("Alice"))
63
63
  *
64
64
  * // Use in transactions
65
- * yield* Effect.atomic(Effect.gen(function*() {
65
+ * yield* Effect.transaction(Effect.gen(function*() {
66
66
  * yield* TxRef.set(counter, 42)
67
67
  * yield* TxRef.set(name, "Bob")
68
68
  * }))
69
69
  *
70
- * console.log(yield* TxRef.get(counter)) // 42
71
- * console.log(yield* TxRef.get(name)) // "Bob"
70
+ * console.log(yield* Effect.transaction(TxRef.get(counter))) // 42
71
+ * console.log(yield* Effect.transaction(TxRef.get(name))) // "Bob"
72
72
  * })
73
73
  * ```
74
74
  */
75
- export declare const make: <A>(initial: A) => Effect.Effect<TxRef<A>, never, never>;
75
+ export declare const make: <A>(initial: A) => Effect.Effect<TxRef<A>, never, Effect.Transaction>;
76
76
  /**
77
77
  * Creates a new `TxRef` with the specified initial value.
78
78
  *
@@ -105,12 +105,12 @@ export declare const makeUnsafe: <A>(initial: A) => TxRef<A>;
105
105
  * const counter = yield* TxRef.make(0)
106
106
  *
107
107
  * // Modify and return both old and new value
108
- * const result = yield* Effect.atomic(
108
+ * const result = yield* Effect.transaction(
109
109
  * TxRef.modify(counter, (current) => [current * 2, current + 1])
110
110
  * )
111
111
  *
112
112
  * console.log(result) // 0 (the return value: current * 2)
113
- * console.log(yield* TxRef.get(counter)) // 1 (the new value: current + 1)
113
+ * console.log(yield* Effect.transaction(TxRef.get(counter))) // 1 (the new value: current + 1)
114
114
  * })
115
115
  * ```
116
116
  */
@@ -128,16 +128,16 @@ export declare const modify: {
128
128
  * const counter = yield* TxRef.make(0)
129
129
  *
130
130
  * // Modify and return both old and new value
131
- * const result = yield* Effect.atomic(
131
+ * const result = yield* Effect.transaction(
132
132
  * TxRef.modify(counter, (current) => [current * 2, current + 1])
133
133
  * )
134
134
  *
135
135
  * console.log(result) // 0 (the return value: current * 2)
136
- * console.log(yield* TxRef.get(counter)) // 1 (the new value: current + 1)
136
+ * console.log(yield* Effect.transaction(TxRef.get(counter))) // 1 (the new value: current + 1)
137
137
  * })
138
138
  * ```
139
139
  */
140
- <A, R>(f: (current: NoInfer<A>) => [returnValue: R, newValue: A]): (self: TxRef<A>) => Effect.Effect<R>;
140
+ <A, R>(f: (current: NoInfer<A>) => [returnValue: R, newValue: A]): (self: TxRef<A>) => Effect.Effect<R, never, Effect.Transaction>;
141
141
  /**
142
142
  * Modifies the value of the `TxRef` using the provided function.
143
143
  *
@@ -151,16 +151,16 @@ export declare const modify: {
151
151
  * const counter = yield* TxRef.make(0)
152
152
  *
153
153
  * // Modify and return both old and new value
154
- * const result = yield* Effect.atomic(
154
+ * const result = yield* Effect.transaction(
155
155
  * TxRef.modify(counter, (current) => [current * 2, current + 1])
156
156
  * )
157
157
  *
158
158
  * console.log(result) // 0 (the return value: current * 2)
159
- * console.log(yield* TxRef.get(counter)) // 1 (the new value: current + 1)
159
+ * console.log(yield* Effect.transaction(TxRef.get(counter))) // 1 (the new value: current + 1)
160
160
  * })
161
161
  * ```
162
162
  */
163
- <A, R>(self: TxRef<A>, f: (current: A) => [returnValue: R, newValue: A]): Effect.Effect<R>;
163
+ <A, R>(self: TxRef<A>, f: (current: A) => [returnValue: R, newValue: A]): Effect.Effect<R, never, Effect.Transaction>;
164
164
  };
165
165
  /**
166
166
  * Updates the value of the `TxRef` using the provided function.
@@ -175,11 +175,11 @@ export declare const modify: {
175
175
  * const counter = yield* TxRef.make(10)
176
176
  *
177
177
  * // Update the value using a function
178
- * yield* Effect.atomic(
178
+ * yield* Effect.transaction(
179
179
  * TxRef.update(counter, (current) => current * 2)
180
180
  * )
181
181
  *
182
- * console.log(yield* TxRef.get(counter)) // 20
182
+ * console.log(yield* Effect.transaction(TxRef.get(counter))) // 20
183
183
  * })
184
184
  * ```
185
185
  */
@@ -197,15 +197,15 @@ export declare const update: {
197
197
  * const counter = yield* TxRef.make(10)
198
198
  *
199
199
  * // Update the value using a function
200
- * yield* Effect.atomic(
200
+ * yield* Effect.transaction(
201
201
  * TxRef.update(counter, (current) => current * 2)
202
202
  * )
203
203
  *
204
- * console.log(yield* TxRef.get(counter)) // 20
204
+ * console.log(yield* Effect.transaction(TxRef.get(counter))) // 20
205
205
  * })
206
206
  * ```
207
207
  */
208
- <A>(f: (current: NoInfer<A>) => A): (self: TxRef<A>) => Effect.Effect<void>;
208
+ <A>(f: (current: NoInfer<A>) => A): (self: TxRef<A>) => Effect.Effect<void, never, Effect.Transaction>;
209
209
  /**
210
210
  * Updates the value of the `TxRef` using the provided function.
211
211
  *
@@ -219,15 +219,15 @@ export declare const update: {
219
219
  * const counter = yield* TxRef.make(10)
220
220
  *
221
221
  * // Update the value using a function
222
- * yield* Effect.atomic(
222
+ * yield* Effect.transaction(
223
223
  * TxRef.update(counter, (current) => current * 2)
224
224
  * )
225
225
  *
226
- * console.log(yield* TxRef.get(counter)) // 20
226
+ * console.log(yield* Effect.transaction(TxRef.get(counter))) // 20
227
227
  * })
228
228
  * ```
229
229
  */
230
- <A>(self: TxRef<A>, f: (current: A) => A): Effect.Effect<void>;
230
+ <A>(self: TxRef<A>, f: (current: A) => A): Effect.Effect<void, never, Effect.Transaction>;
231
231
  };
232
232
  /**
233
233
  * Reads the current value of the `TxRef`.
@@ -242,7 +242,7 @@ export declare const update: {
242
242
  * const counter = yield* TxRef.make(42)
243
243
  *
244
244
  * // Read the value within a transaction
245
- * const value = yield* Effect.atomic(
245
+ * const value = yield* Effect.transaction(
246
246
  * TxRef.get(counter)
247
247
  * )
248
248
  *
@@ -250,7 +250,7 @@ export declare const update: {
250
250
  * })
251
251
  * ```
252
252
  */
253
- export declare const get: <A>(self: TxRef<A>) => Effect.Effect<A>;
253
+ export declare const get: <A>(self: TxRef<A>) => Effect.Effect<A, never, Effect.Transaction>;
254
254
  /**
255
255
  * Sets the value of the `TxRef`.
256
256
  *
@@ -264,11 +264,11 @@ export declare const get: <A>(self: TxRef<A>) => Effect.Effect<A>;
264
264
  * const counter = yield* TxRef.make(0)
265
265
  *
266
266
  * // Set a new value within a transaction
267
- * yield* Effect.atomic(
267
+ * yield* Effect.transaction(
268
268
  * TxRef.set(counter, 100)
269
269
  * )
270
270
  *
271
- * console.log(yield* TxRef.get(counter)) // 100
271
+ * console.log(yield* Effect.transaction(TxRef.get(counter))) // 100
272
272
  * })
273
273
  * ```
274
274
  */
@@ -286,15 +286,15 @@ export declare const set: {
286
286
  * const counter = yield* TxRef.make(0)
287
287
  *
288
288
  * // Set a new value within a transaction
289
- * yield* Effect.atomic(
289
+ * yield* Effect.transaction(
290
290
  * TxRef.set(counter, 100)
291
291
  * )
292
292
  *
293
- * console.log(yield* TxRef.get(counter)) // 100
293
+ * console.log(yield* Effect.transaction(TxRef.get(counter))) // 100
294
294
  * })
295
295
  * ```
296
296
  */
297
- <A>(value: A): (self: TxRef<A>) => Effect.Effect<void>;
297
+ <A>(value: A): (self: TxRef<A>) => Effect.Effect<void, never, Effect.Transaction>;
298
298
  /**
299
299
  * Sets the value of the `TxRef`.
300
300
  *
@@ -308,15 +308,15 @@ export declare const set: {
308
308
  * const counter = yield* TxRef.make(0)
309
309
  *
310
310
  * // Set a new value within a transaction
311
- * yield* Effect.atomic(
311
+ * yield* Effect.transaction(
312
312
  * TxRef.set(counter, 100)
313
313
  * )
314
314
  *
315
- * console.log(yield* TxRef.get(counter)) // 100
315
+ * console.log(yield* Effect.transaction(TxRef.get(counter))) // 100
316
316
  * })
317
317
  * ```
318
318
  */
319
- <A>(self: TxRef<A>, value: A): Effect.Effect<void>;
319
+ <A>(self: TxRef<A>, value: A): Effect.Effect<void, never, Effect.Transaction>;
320
320
  };
321
321
  export {};
322
322
  //# sourceMappingURL=TxRef.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TxRef.d.ts","sourceRoot":"","sources":["../src/TxRef.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TxRef.d.ts","sourceRoot":"","sources":["../src/TxRef.ts"],"names":[],"mappings":"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"}
package/dist/TxRef.js CHANGED
@@ -23,21 +23,28 @@ const TypeId = "~effect/transactions/TxRef";
23
23
  *
24
24
  * const program = Effect.gen(function*() {
25
25
  * // Create a transactional reference with initial value
26
- * const counter = yield* TxRef.make(0)
27
- * const name = yield* TxRef.make("Alice")
26
+ * const counter = yield* Effect.transaction(TxRef.make(0))
27
+ * const name = yield* Effect.transaction(TxRef.make("Alice"))
28
28
  *
29
29
  * // Use in transactions
30
- * yield* Effect.atomic(Effect.gen(function*() {
30
+ * yield* Effect.transaction(Effect.gen(function*() {
31
31
  * yield* TxRef.set(counter, 42)
32
32
  * yield* TxRef.set(name, "Bob")
33
33
  * }))
34
34
  *
35
- * console.log(yield* TxRef.get(counter)) // 42
36
- * console.log(yield* TxRef.get(name)) // "Bob"
35
+ * console.log(yield* Effect.transaction(TxRef.get(counter))) // 42
36
+ * console.log(yield* Effect.transaction(TxRef.get(name))) // "Bob"
37
37
  * })
38
38
  * ```
39
39
  */
40
- export const make = initial => Effect.sync(() => makeUnsafe(initial));
40
+ export const make = initial => Effect.withTxState(state => Effect.sync(() => {
41
+ const ref = makeUnsafe(initial);
42
+ state.journal.set(ref, {
43
+ version: ref.version,
44
+ value: ref.value
45
+ });
46
+ return ref;
47
+ }));
41
48
  /**
42
49
  * Creates a new `TxRef` with the specified initial value.
43
50
  *
@@ -78,16 +85,16 @@ export const makeUnsafe = initial => ({
78
85
  * const counter = yield* TxRef.make(0)
79
86
  *
80
87
  * // Modify and return both old and new value
81
- * const result = yield* Effect.atomic(
88
+ * const result = yield* Effect.transaction(
82
89
  * TxRef.modify(counter, (current) => [current * 2, current + 1])
83
90
  * )
84
91
  *
85
92
  * console.log(result) // 0 (the return value: current * 2)
86
- * console.log(yield* TxRef.get(counter)) // 1 (the new value: current + 1)
93
+ * console.log(yield* Effect.transaction(TxRef.get(counter))) // 1 (the new value: current + 1)
87
94
  * })
88
95
  * ```
89
96
  */
90
- export const modify = /*#__PURE__*/dual(2, (self, f) => Effect.atomicWith(state => Effect.sync(() => {
97
+ export const modify = /*#__PURE__*/dual(2, (self, f) => Effect.withTxState(state => Effect.sync(() => {
91
98
  if (!state.journal.has(self)) {
92
99
  state.journal.set(self, {
93
100
  version: self.version,
@@ -112,11 +119,11 @@ export const modify = /*#__PURE__*/dual(2, (self, f) => Effect.atomicWith(state
112
119
  * const counter = yield* TxRef.make(10)
113
120
  *
114
121
  * // Update the value using a function
115
- * yield* Effect.atomic(
122
+ * yield* Effect.transaction(
116
123
  * TxRef.update(counter, (current) => current * 2)
117
124
  * )
118
125
  *
119
- * console.log(yield* TxRef.get(counter)) // 20
126
+ * console.log(yield* Effect.transaction(TxRef.get(counter))) // 20
120
127
  * })
121
128
  * ```
122
129
  */
@@ -134,7 +141,7 @@ export const update = /*#__PURE__*/dual(2, (self, f) => modify(self, current =>
134
141
  * const counter = yield* TxRef.make(42)
135
142
  *
136
143
  * // Read the value within a transaction
137
- * const value = yield* Effect.atomic(
144
+ * const value = yield* Effect.transaction(
138
145
  * TxRef.get(counter)
139
146
  * )
140
147
  *
@@ -156,11 +163,11 @@ export const get = self => modify(self, current => [current, current]);
156
163
  * const counter = yield* TxRef.make(0)
157
164
  *
158
165
  * // Set a new value within a transaction
159
- * yield* Effect.atomic(
166
+ * yield* Effect.transaction(
160
167
  * TxRef.set(counter, 100)
161
168
  * )
162
169
  *
163
- * console.log(yield* TxRef.get(counter)) // 100
170
+ * console.log(yield* Effect.transaction(TxRef.get(counter))) // 100
164
171
  * })
165
172
  * ```
166
173
  */
package/dist/TxRef.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"TxRef.js","names":["Effect","dual","pipeArguments","TypeId","make","initial","sync","makeUnsafe","pending","Map","pipe","arguments","version","value","modify","self","f","atomicWith","state","journal","has","set","current","get","returnValue","next","update"],"sources":["../src/TxRef.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;AAUA,OAAO,KAAKA,MAAM,MAAM,aAAa;AACrC,SAASC,IAAI,QAAQ,eAAe;AACpC,SAASC,aAAa,QAAQ,eAAe;AAI7C,MAAMC,MAAM,GAAG,4BAA4B;AAuC3C;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,OAAO,MAAMC,IAAI,GAAOC,OAAU,IAAKL,MAAM,CAACM,IAAI,CAAC,MAAMC,UAAU,CAACF,OAAO,CAAC,CAAC;AAE7E;;;;;;;;;;;;;;;;;;AAkBA,OAAO,MAAME,UAAU,GAAOF,OAAU,KAAgB;EACtD,CAACF,MAAM,GAAGA,MAAM;EAChBK,OAAO,EAAE,IAAIC,GAAG,EAAE;EAClBC,IAAIA,CAAA;IACF,OAAOR,aAAa,CAAC,IAAI,EAAES,SAAS,CAAC;EACvC,CAAC;EACDC,OAAO,EAAE,CAAC;EACVC,KAAK,EAAER;CACR,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;AAsBA,OAAO,MAAMS,MAAM,gBA+Cfb,IAAI,CACN,CAAC,EACD,CAAOc,IAAc,EAAEC,CAAgD,KACrEhB,MAAM,CAACiB,UAAU,CAAEC,KAAK,IACtBlB,MAAM,CAACM,IAAI,CAAC,MAAK;EACf,IAAI,CAACY,KAAK,CAACC,OAAO,CAACC,GAAG,CAACL,IAAI,CAAC,EAAE;IAC5BG,KAAK,CAACC,OAAO,CAACE,GAAG,CAACN,IAAI,EAAE;MAAEH,OAAO,EAAEG,IAAI,CAACH,OAAO;MAAEC,KAAK,EAAEE,IAAI,CAACF;IAAK,CAAE,CAAC;EACvE;EACA,MAAMS,OAAO,GAAGJ,KAAK,CAACC,OAAO,CAACI,GAAG,CAACR,IAAI,CAAE;EACxC,MAAM,CAACS,WAAW,EAAEC,IAAI,CAAC,GAAGT,CAAC,CAACM,OAAO,CAACT,KAAK,CAAC;EAC5CS,OAAO,CAACT,KAAK,GAAGY,IAAI;EACpB,OAAOD,WAAW;AACpB,CAAC,CAAC,CACH,CACJ;AAED;;;;;;;;;;;;;;;;;;;;;AAqBA,OAAO,MAAME,MAAM,gBA6CfzB,IAAI,CACN,CAAC,EACD,CAAIc,IAAc,EAAEC,CAAoB,KAA0BF,MAAM,CAACC,IAAI,EAAGO,OAAO,IAAK,CAAC,KAAK,CAAC,EAAEN,CAAC,CAACM,OAAO,CAAC,CAAC,CAAC,CAClH;AAED;;;;;;;;;;;;;;;;;;;;;AAqBA,OAAO,MAAMC,GAAG,GAAOR,IAAc,IAAuBD,MAAM,CAACC,IAAI,EAAGO,OAAO,IAAK,CAACA,OAAO,EAAEA,OAAO,CAAC,CAAC;AAEzG;;;;;;;;;;;;;;;;;;;;;AAqBA,OAAO,MAAMD,GAAG,gBA6CZpB,IAAI,CAAC,CAAC,EAAE,CAAIc,IAAc,EAAEF,KAAQ,KAA0Ba,MAAM,CAACX,IAAI,EAAE,MAAMF,KAAK,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"TxRef.js","names":["Effect","dual","pipeArguments","TypeId","make","initial","withTxState","state","sync","ref","makeUnsafe","journal","set","version","value","pending","Map","pipe","arguments","modify","self","f","has","current","get","returnValue","next","update"],"sources":["../src/TxRef.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;AAUA,OAAO,KAAKA,MAAM,MAAM,aAAa;AACrC,SAASC,IAAI,QAAQ,eAAe;AACpC,SAASC,aAAa,QAAQ,eAAe;AAI7C,MAAMC,MAAM,GAAG,4BAA4B;AAuC3C;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,OAAO,MAAMC,IAAI,GAAOC,OAAU,IAChCL,MAAM,CAACM,WAAW,CAAEC,KAAK,IACvBP,MAAM,CAACQ,IAAI,CAAC,MAAK;EACf,MAAMC,GAAG,GAAGC,UAAU,CAACL,OAAO,CAAC;EAC/BE,KAAK,CAACI,OAAO,CAACC,GAAG,CAACH,GAAG,EAAE;IAAEI,OAAO,EAAEJ,GAAG,CAACI,OAAO;IAAEC,KAAK,EAAEL,GAAG,CAACK;EAAK,CAAE,CAAC;EAClE,OAAOL,GAAG;AACZ,CAAC,CAAC,CACH;AAEH;;;;;;;;;;;;;;;;;;AAkBA,OAAO,MAAMC,UAAU,GAAOL,OAAU,KAAgB;EACtD,CAACF,MAAM,GAAGA,MAAM;EAChBY,OAAO,EAAE,IAAIC,GAAG,EAAE;EAClBC,IAAIA,CAAA;IACF,OAAOf,aAAa,CAAC,IAAI,EAAEgB,SAAS,CAAC;EACvC,CAAC;EACDL,OAAO,EAAE,CAAC;EACVC,KAAK,EAAET;CACR,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;AAsBA,OAAO,MAAMc,MAAM,gBA+CflB,IAAI,CACN,CAAC,EACD,CACEmB,IAAc,EACdC,CAAgD,KAEhDrB,MAAM,CAACM,WAAW,CAAEC,KAAK,IACvBP,MAAM,CAACQ,IAAI,CAAC,MAAK;EACf,IAAI,CAACD,KAAK,CAACI,OAAO,CAACW,GAAG,CAACF,IAAI,CAAC,EAAE;IAC5Bb,KAAK,CAACI,OAAO,CAACC,GAAG,CAACQ,IAAI,EAAE;MAAEP,OAAO,EAAEO,IAAI,CAACP,OAAO;MAAEC,KAAK,EAAEM,IAAI,CAACN;IAAK,CAAE,CAAC;EACvE;EACA,MAAMS,OAAO,GAAGhB,KAAK,CAACI,OAAO,CAACa,GAAG,CAACJ,IAAI,CAAE;EACxC,MAAM,CAACK,WAAW,EAAEC,IAAI,CAAC,GAAGL,CAAC,CAACE,OAAO,CAACT,KAAK,CAAC;EAC5CS,OAAO,CAACT,KAAK,GAAGY,IAAI;EACpB,OAAOD,WAAW;AACpB,CAAC,CAAC,CACH,CACJ;AAED;;;;;;;;;;;;;;;;;;;;;AAqBA,OAAO,MAAME,MAAM,gBA6Cf1B,IAAI,CACN,CAAC,EACD,CAAImB,IAAc,EAAEC,CAAoB,KACtCF,MAAM,CAACC,IAAI,EAAGG,OAAO,IAAK,CAAC,KAAK,CAAC,EAAEF,CAAC,CAACE,OAAO,CAAC,CAAC,CAAC,CAClD;AAED;;;;;;;;;;;;;;;;;;;;;AAqBA,OAAO,MAAMC,GAAG,GAAOJ,IAAc,IACnCD,MAAM,CAACC,IAAI,EAAGG,OAAO,IAAK,CAACA,OAAO,EAAEA,OAAO,CAAC,CAAC;AAE/C;;;;;;;;;;;;;;;;;;;;;AAqBA,OAAO,MAAMX,GAAG,gBA6CZX,IAAI,CAAC,CAAC,EAAE,CAAImB,IAAc,EAAEN,KAAQ,KAAqDa,MAAM,CAACP,IAAI,EAAE,MAAMN,KAAK,CAAC,CAAC","ignoreList":[]}
@@ -71,7 +71,7 @@ export interface TxSemaphore extends Inspectable, Pipeable {
71
71
  * @since 4.0.0
72
72
  * @category constructors
73
73
  */
74
- export declare const make: (permits: number) => Effect.Effect<TxSemaphore>;
74
+ export declare const make: (permits: number) => Effect.Effect<TxSemaphore, never, Effect.Transaction>;
75
75
  /**
76
76
  * Gets the current number of available permits in the semaphore.
77
77
  *
@@ -102,7 +102,7 @@ export declare const make: (permits: number) => Effect.Effect<TxSemaphore>;
102
102
  * @since 4.0.0
103
103
  * @category combinators
104
104
  */
105
- export declare const available: (self: TxSemaphore) => Effect.Effect<number>;
105
+ export declare const available: (self: TxSemaphore) => Effect.Effect<number, never, Effect.Transaction>;
106
106
  /**
107
107
  * Gets the maximum capacity (total permits) of the semaphore.
108
108
  *
@@ -160,7 +160,7 @@ export declare const capacity: (self: TxSemaphore) => Effect.Effect<number>;
160
160
  * @since 4.0.0
161
161
  * @category combinators
162
162
  */
163
- export declare const acquire: (self: TxSemaphore) => Effect.Effect<void>;
163
+ export declare const acquire: (self: TxSemaphore) => Effect.Effect<void, never, Effect.Transaction>;
164
164
  /**
165
165
  * Acquires the specified number of permits from the semaphore. If not enough
166
166
  * permits are available, the effect will block until they become available.
@@ -188,7 +188,7 @@ export declare const acquire: (self: TxSemaphore) => Effect.Effect<void>;
188
188
  * @since 4.0.0
189
189
  * @category combinators
190
190
  */
191
- export declare const acquireN: (self: TxSemaphore, n: number) => Effect.Effect<void>;
191
+ export declare const acquireN: (self: TxSemaphore, n: number) => Effect.Effect<void, never, Effect.Transaction>;
192
192
  /**
193
193
  * Tries to acquire a single permit from the semaphore without blocking.
194
194
  * Returns true if successful, false if no permits are available.
@@ -216,7 +216,7 @@ export declare const acquireN: (self: TxSemaphore, n: number) => Effect.Effect<v
216
216
  * @since 4.0.0
217
217
  * @category combinators
218
218
  */
219
- export declare const tryAcquire: (self: TxSemaphore) => Effect.Effect<boolean>;
219
+ export declare const tryAcquire: (self: TxSemaphore) => Effect.Effect<boolean, never, Effect.Transaction>;
220
220
  /**
221
221
  * Tries to acquire the specified number of permits from the semaphore without blocking.
222
222
  * Returns true if successful, false if not enough permits are available.
@@ -245,7 +245,7 @@ export declare const tryAcquire: (self: TxSemaphore) => Effect.Effect<boolean>;
245
245
  * @since 4.0.0
246
246
  * @category combinators
247
247
  */
248
- export declare const tryAcquireN: (self: TxSemaphore, n: number) => Effect.Effect<boolean>;
248
+ export declare const tryAcquireN: (self: TxSemaphore, n: number) => Effect.Effect<boolean, never, Effect.Transaction>;
249
249
  /**
250
250
  * Releases a single permit back to the semaphore, making it available for acquisition.
251
251
  *
@@ -274,7 +274,7 @@ export declare const tryAcquireN: (self: TxSemaphore, n: number) => Effect.Effec
274
274
  * @since 4.0.0
275
275
  * @category combinators
276
276
  */
277
- export declare const release: (self: TxSemaphore) => Effect.Effect<void>;
277
+ export declare const release: (self: TxSemaphore) => Effect.Effect<void, never, Effect.Transaction>;
278
278
  /**
279
279
  * Releases the specified number of permits back to the semaphore.
280
280
  *
@@ -304,7 +304,7 @@ export declare const release: (self: TxSemaphore) => Effect.Effect<void>;
304
304
  * @since 4.0.0
305
305
  * @category combinators
306
306
  */
307
- export declare const releaseN: (self: TxSemaphore, n: number) => Effect.Effect<void>;
307
+ export declare const releaseN: (self: TxSemaphore, n: number) => Effect.Effect<void, never, Effect.Transaction>;
308
308
  /**
309
309
  * Executes an effect with a single permit from the semaphore. The permit is
310
310
  * automatically acquired before execution and released afterwards, even if the
@@ -1 +1 @@
1
- {"version":3,"file":"TxSemaphore.d.ts","sourceRoot":"","sources":["../src/TxSemaphore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TxSemaphore.d.ts","sourceRoot":"","sources":["../src/TxSemaphore.ts"],"names":[],"mappings":"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"}
@@ -152,13 +152,13 @@ export const capacity = self => Effect.succeed(self.capacity);
152
152
  * @since 4.0.0
153
153
  * @category combinators
154
154
  */
155
- export const acquire = self => Effect.atomic(Effect.gen(function* () {
155
+ export const acquire = self => Effect.gen(function* () {
156
156
  const permits = yield* TxRef.get(self.permitsRef);
157
157
  if (permits <= 0) {
158
158
  return yield* Effect.retryTransaction;
159
159
  }
160
160
  yield* TxRef.set(self.permitsRef, permits - 1);
161
- }));
161
+ });
162
162
  /**
163
163
  * Acquires the specified number of permits from the semaphore. If not enough
164
164
  * permits are available, the effect will block until they become available.
@@ -190,13 +190,13 @@ export const acquireN = (self, n) => {
190
190
  if (n <= 0) {
191
191
  return Effect.die(new Error("Number of permits must be positive"));
192
192
  }
193
- return Effect.atomic(Effect.gen(function* () {
193
+ return Effect.gen(function* () {
194
194
  const permits = yield* TxRef.get(self.permitsRef);
195
195
  if (permits < n) {
196
196
  return yield* Effect.retryTransaction;
197
197
  }
198
198
  yield* TxRef.set(self.permitsRef, permits - n);
199
- }));
199
+ });
200
200
  };
201
201
  /**
202
202
  * Tries to acquire a single permit from the semaphore without blocking.
@@ -375,7 +375,7 @@ export const releaseN = (self, n) => {
375
375
  * @since 4.0.0
376
376
  * @category combinators
377
377
  */
378
- export const withPermit = (self, effect) => Effect.acquireUseRelease(acquire(self), () => effect, () => release(self));
378
+ export const withPermit = (self, effect) => Effect.acquireUseRelease(Effect.transaction(acquire(self)), () => effect, () => Effect.transaction(release(self)));
379
379
  /**
380
380
  * Executes an effect with the specified number of permits from the semaphore.
381
381
  * The permits are automatically acquired before execution and released afterwards,
@@ -415,7 +415,7 @@ export const withPermit = (self, effect) => Effect.acquireUseRelease(acquire(sel
415
415
  * @since 4.0.0
416
416
  * @category combinators
417
417
  */
418
- export const withPermits = (self, n, effect) => Effect.acquireUseRelease(acquireN(self, n), () => effect, () => releaseN(self, n));
418
+ export const withPermits = (self, n, effect) => Effect.acquireUseRelease(Effect.transaction(acquireN(self, n)), () => effect, () => Effect.transaction(releaseN(self, n)));
419
419
  /**
420
420
  * Acquires a single permit from the semaphore in a scoped manner. The permit
421
421
  * will be automatically released when the scope is closed, even if effects
@@ -455,7 +455,7 @@ export const withPermits = (self, n, effect) => Effect.acquireUseRelease(acquire
455
455
  * @since 4.0.0
456
456
  * @category combinators
457
457
  */
458
- export const withPermitScoped = self => Effect.acquireRelease(acquire(self), () => release(self));
458
+ export const withPermitScoped = self => Effect.acquireRelease(Effect.transaction(acquire(self)), () => Effect.transaction(release(self)));
459
459
  /**
460
460
  * Determines if the provided value is a TxSemaphore.
461
461
  *
@@ -1 +1 @@
1
- {"version":3,"file":"TxSemaphore.js","names":["Effect","NodeInspectSymbol","toJson","pipeArguments","TxRef","TypeId","TxSemaphoreProto","toJSON","_id","capacity","pipe","arguments","makeTxSemaphore","permitsRef","self","Object","create","make","permits","gen","die","Error","available","get","succeed","acquire","atomic","retryTransaction","set","acquireN","n","tryAcquire","modify","tryAcquireN","release","update","releaseN","newPermits","withPermit","effect","acquireUseRelease","withPermits","withPermitScoped","acquireRelease","isTxSemaphore","u"],"sources":["../src/TxSemaphore.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA,OAAO,KAAKA,MAAM,MAAM,aAAa;AAErC,SAASC,iBAAiB,EAAEC,MAAM,QAAQ,kBAAkB;AAE5D,SAASC,aAAa,QAAQ,eAAe;AAE7C,OAAO,KAAKC,KAAK,MAAM,YAAY;AAEnC,MAAMC,MAAM,GAAG,kCAAkC;AAqCjD,MAAMC,gBAAgB,GAAiE;EACrF,CAACL,iBAAiB,IAAC;IACjB,OAAOC,MAAM,CAAC,IAAI,CAAC;EACrB,CAAC;EACDK,MAAMA,CAAA;IACJ,OAAO;MACLC,GAAG,EAAE,aAAa;MAClBC,QAAQ,EAAE,IAAI,CAACA;KAChB;EACH,CAAC;EACDC,IAAIA,CAAA;IACF,OAAOP,aAAa,CAAC,IAAI,EAAEQ,SAAS,CAAC;EACvC;CACD;AAED,MAAMC,eAAe,GAAGA,CAACC,UAA+B,EAAEJ,QAAgB,KAAiB;EACzF,MAAMK,IAAI,GAAGC,MAAM,CAACC,MAAM,CAACV,gBAAgB,CAAC;EAC5CQ,IAAI,CAACT,MAAM,CAAC,GAAGA,MAAM;EACrBS,IAAI,CAACD,UAAU,GAAGA,UAAU;EAC5BC,IAAI,CAACL,QAAQ,GAAGA,QAAQ;EACxB,OAAOK,IAAI;AACb,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,OAAO,MAAMG,IAAI,GAAIC,OAAe,IAClClB,MAAM,CAACmB,GAAG,CAAC,aAAS;EAClB,IAAID,OAAO,GAAG,CAAC,EAAE;IACf,OAAO,OAAOlB,MAAM,CAACoB,GAAG,CAAC,IAAIC,KAAK,CAAC,8BAA8B,CAAC,CAAC;EACrE;EAEA,MAAMR,UAAU,GAAG,OAAOT,KAAK,CAACa,IAAI,CAACC,OAAO,CAAC;EAC7C,OAAON,eAAe,CAACC,UAAU,EAAEK,OAAO,CAAC;AAC7C,CAAC,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,OAAO,MAAMI,SAAS,GAAIR,IAAiB,IAA4BV,KAAK,CAACmB,GAAG,CAACT,IAAI,CAACD,UAAU,CAAC;AAEjG;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,OAAO,MAAMJ,QAAQ,GAAIK,IAAiB,IAA4Bd,MAAM,CAACwB,OAAO,CAACV,IAAI,CAACL,QAAQ,CAAC;AAEnG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,OAAO,MAAMgB,OAAO,GAAIX,IAAiB,IACvCd,MAAM,CAAC0B,MAAM,CACX1B,MAAM,CAACmB,GAAG,CAAC,aAAS;EAClB,MAAMD,OAAO,GAAG,OAAOd,KAAK,CAACmB,GAAG,CAACT,IAAI,CAACD,UAAU,CAAC;EACjD,IAAIK,OAAO,IAAI,CAAC,EAAE;IAChB,OAAO,OAAOlB,MAAM,CAAC2B,gBAAgB;EACvC;EACA,OAAOvB,KAAK,CAACwB,GAAG,CAACd,IAAI,CAACD,UAAU,EAAEK,OAAO,GAAG,CAAC,CAAC;AAChD,CAAC,CAAC,CACH;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,OAAO,MAAMW,QAAQ,GAAGA,CAACf,IAAiB,EAAEgB,CAAS,KAAyB;EAC5E,IAAIA,CAAC,IAAI,CAAC,EAAE;IACV,OAAO9B,MAAM,CAACoB,GAAG,CAAC,IAAIC,KAAK,CAAC,oCAAoC,CAAC,CAAC;EACpE;EACA,OAAOrB,MAAM,CAAC0B,MAAM,CAClB1B,MAAM,CAACmB,GAAG,CAAC,aAAS;IAClB,MAAMD,OAAO,GAAG,OAAOd,KAAK,CAACmB,GAAG,CAACT,IAAI,CAACD,UAAU,CAAC;IACjD,IAAIK,OAAO,GAAGY,CAAC,EAAE;MACf,OAAO,OAAO9B,MAAM,CAAC2B,gBAAgB;IACvC;IACA,OAAOvB,KAAK,CAACwB,GAAG,CAACd,IAAI,CAACD,UAAU,EAAEK,OAAO,GAAGY,CAAC,CAAC;EAChD,CAAC,CAAC,CACH;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,OAAO,MAAMC,UAAU,GAAIjB,IAAiB,IAC1CV,KAAK,CAAC4B,MAAM,CAAClB,IAAI,CAACD,UAAU,EAAGK,OAAe,IAAI;EAChD,IAAIA,OAAO,GAAG,CAAC,EAAE;IACf,OAAO,CAAC,IAAI,EAAEA,OAAO,GAAG,CAAC,CAAC;EAC5B;EACA,OAAO,CAAC,KAAK,EAAEA,OAAO,CAAC;AACzB,CAAC,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,OAAO,MAAMe,WAAW,GAAGA,CAACnB,IAAiB,EAAEgB,CAAS,KAA4B;EAClF,IAAIA,CAAC,IAAI,CAAC,EAAE;IACV,OAAO9B,MAAM,CAACoB,GAAG,CAAC,IAAIC,KAAK,CAAC,oCAAoC,CAAC,CAAC;EACpE;EACA,OAAOjB,KAAK,CAAC4B,MAAM,CAAClB,IAAI,CAACD,UAAU,EAAGK,OAAe,IAAI;IACvD,IAAIA,OAAO,IAAIY,CAAC,EAAE;MAChB,OAAO,CAAC,IAAI,EAAEZ,OAAO,GAAGY,CAAC,CAAC;IAC5B;IACA,OAAO,CAAC,KAAK,EAAEZ,OAAO,CAAC;EACzB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,OAAO,MAAMgB,OAAO,GAAIpB,IAAiB,IACvCV,KAAK,CAAC+B,MAAM,CAACrB,IAAI,CAACD,UAAU,EAAGK,OAAe,IAAKA,OAAO,IAAIJ,IAAI,CAACL,QAAQ,GAAGS,OAAO,GAAGA,OAAO,GAAG,CAAC,CAAC;AAEtG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,OAAO,MAAMkB,QAAQ,GAAGA,CAACtB,IAAiB,EAAEgB,CAAS,KAAyB;EAC5E,IAAIA,CAAC,IAAI,CAAC,EAAE;IACV,OAAO9B,MAAM,CAACoB,GAAG,CAAC,IAAIC,KAAK,CAAC,oCAAoC,CAAC,CAAC;EACpE;EACA,OAAOjB,KAAK,CAAC+B,MAAM,CAACrB,IAAI,CAACD,UAAU,EAAGK,OAAe,IAAI;IACvD,MAAMmB,UAAU,GAAGnB,OAAO,GAAGY,CAAC;IAC9B,OAAOO,UAAU,GAAGvB,IAAI,CAACL,QAAQ,GAAGK,IAAI,CAACL,QAAQ,GAAG4B,UAAU;EAChE,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsCA,OAAO,MAAMC,UAAU,GAAGA,CACxBxB,IAAiB,EACjByB,MAA8B,KAE9BvC,MAAM,CAACwC,iBAAiB,CACtBf,OAAO,CAACX,IAAI,CAAC,EACb,MAAMyB,MAAM,EACZ,MAAML,OAAO,CAACpB,IAAI,CAAC,CACpB;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,OAAO,MAAM2B,WAAW,GAAGA,CACzB3B,IAAiB,EACjBgB,CAAS,EACTS,MAA8B,KAE9BvC,MAAM,CAACwC,iBAAiB,CACtBX,QAAQ,CAACf,IAAI,EAAEgB,CAAC,CAAC,EACjB,MAAMS,MAAM,EACZ,MAAMH,QAAQ,CAACtB,IAAI,EAAEgB,CAAC,CAAC,CACxB;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,OAAO,MAAMY,gBAAgB,GAAI5B,IAAiB,IAChDd,MAAM,CAAC2C,cAAc,CACnBlB,OAAO,CAACX,IAAI,CAAC,EACb,MAAMoB,OAAO,CAACpB,IAAI,CAAC,CACpB;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,OAAO,MAAM8B,aAAa,GAAIC,CAAU,IAAuB,OAAOA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,IAAIxC,MAAM,IAAIwC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"TxSemaphore.js","names":["Effect","NodeInspectSymbol","toJson","pipeArguments","TxRef","TypeId","TxSemaphoreProto","toJSON","_id","capacity","pipe","arguments","makeTxSemaphore","permitsRef","self","Object","create","make","permits","gen","die","Error","available","get","succeed","acquire","retryTransaction","set","acquireN","n","tryAcquire","modify","tryAcquireN","release","update","releaseN","newPermits","withPermit","effect","acquireUseRelease","transaction","withPermits","withPermitScoped","acquireRelease","isTxSemaphore","u"],"sources":["../src/TxSemaphore.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}