effect 4.0.0-beta.4 → 4.0.0-beta.6

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 (310) hide show
  1. package/dist/Cause.d.ts +1 -1
  2. package/dist/Cause.d.ts.map +1 -1
  3. package/dist/Channel.d.ts.map +1 -1
  4. package/dist/Channel.js +6 -4
  5. package/dist/Channel.js.map +1 -1
  6. package/dist/Config.d.ts +1 -1
  7. package/dist/Data.d.ts +3 -2
  8. package/dist/Data.d.ts.map +1 -1
  9. package/dist/Data.js +9 -8
  10. package/dist/Data.js.map +1 -1
  11. package/dist/Effect.d.ts +0 -226
  12. package/dist/Effect.d.ts.map +1 -1
  13. package/dist/Effect.js +0 -118
  14. package/dist/Effect.js.map +1 -1
  15. package/dist/Encoding.d.ts +194 -0
  16. package/dist/Encoding.d.ts.map +1 -0
  17. package/dist/Encoding.js +352 -0
  18. package/dist/Encoding.js.map +1 -0
  19. package/dist/Equal.js.map +1 -1
  20. package/dist/FileSystem.d.ts +1 -1
  21. package/dist/FileSystem.d.ts.map +1 -1
  22. package/dist/FileSystem.js +5 -5
  23. package/dist/FileSystem.js.map +1 -1
  24. package/dist/Filter.d.ts +30 -1
  25. package/dist/Filter.d.ts.map +1 -1
  26. package/dist/Filter.js +15 -0
  27. package/dist/Filter.js.map +1 -1
  28. package/dist/Formatter.js +1 -1
  29. package/dist/Formatter.js.map +1 -1
  30. package/dist/Graph.d.ts.map +1 -1
  31. package/dist/Graph.js +2 -2
  32. package/dist/Graph.js.map +1 -1
  33. package/dist/Latch.d.ts +109 -0
  34. package/dist/Latch.d.ts.map +1 -0
  35. package/dist/Latch.js +72 -0
  36. package/dist/Latch.js.map +1 -0
  37. package/dist/Pipeable.d.ts +17 -0
  38. package/dist/Pipeable.d.ts.map +1 -1
  39. package/dist/Pipeable.js +19 -1
  40. package/dist/Pipeable.js.map +1 -1
  41. package/dist/PlatformError.d.ts +8 -7
  42. package/dist/PlatformError.d.ts.map +1 -1
  43. package/dist/PlatformError.js +2 -2
  44. package/dist/PlatformError.js.map +1 -1
  45. package/dist/Pool.d.ts +5 -3
  46. package/dist/Pool.d.ts.map +1 -1
  47. package/dist/Pool.js +6 -4
  48. package/dist/Pool.js.map +1 -1
  49. package/dist/PubSub.d.ts +3 -2
  50. package/dist/PubSub.d.ts.map +1 -1
  51. package/dist/PubSub.js +3 -2
  52. package/dist/PubSub.js.map +1 -1
  53. package/dist/Request.d.ts +1 -1
  54. package/dist/Request.d.ts.map +1 -1
  55. package/dist/Request.js +2 -1
  56. package/dist/Request.js.map +1 -1
  57. package/dist/RequestResolver.d.ts +0 -20
  58. package/dist/RequestResolver.d.ts.map +1 -1
  59. package/dist/RequestResolver.js +0 -20
  60. package/dist/RequestResolver.js.map +1 -1
  61. package/dist/Schedule.d.ts +2 -2
  62. package/dist/Schedule.d.ts.map +1 -1
  63. package/dist/Schedule.js +30 -16
  64. package/dist/Schedule.js.map +1 -1
  65. package/dist/Schema.d.ts +192 -42
  66. package/dist/Schema.d.ts.map +1 -1
  67. package/dist/Schema.js +385 -71
  68. package/dist/Schema.js.map +1 -1
  69. package/dist/SchemaGetter.d.ts +2 -2
  70. package/dist/SchemaGetter.d.ts.map +1 -1
  71. package/dist/SchemaGetter.js +12 -14
  72. package/dist/SchemaGetter.js.map +1 -1
  73. package/dist/SchemaRepresentation.d.ts +44 -43
  74. package/dist/SchemaRepresentation.d.ts.map +1 -1
  75. package/dist/SchemaRepresentation.js +5 -2
  76. package/dist/SchemaRepresentation.js.map +1 -1
  77. package/dist/SchemaTransformation.d.ts +37 -0
  78. package/dist/SchemaTransformation.d.ts.map +1 -1
  79. package/dist/SchemaTransformation.js +80 -0
  80. package/dist/SchemaTransformation.js.map +1 -1
  81. package/dist/Semaphore.d.ts +211 -0
  82. package/dist/Semaphore.d.ts.map +1 -0
  83. package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
  84. package/dist/Semaphore.js.map +1 -0
  85. package/dist/Stream.d.ts.map +1 -1
  86. package/dist/Stream.js +9 -8
  87. package/dist/Stream.js.map +1 -1
  88. package/dist/Struct.d.ts +16 -0
  89. package/dist/Struct.d.ts.map +1 -1
  90. package/dist/Struct.js +22 -0
  91. package/dist/Struct.js.map +1 -1
  92. package/dist/SubscriptionRef.d.ts +2 -1
  93. package/dist/SubscriptionRef.d.ts.map +1 -1
  94. package/dist/SubscriptionRef.js +2 -1
  95. package/dist/SubscriptionRef.js.map +1 -1
  96. package/dist/SynchronizedRef.d.ts +2 -1
  97. package/dist/SynchronizedRef.d.ts.map +1 -1
  98. package/dist/SynchronizedRef.js +2 -1
  99. package/dist/SynchronizedRef.js.map +1 -1
  100. package/dist/Types.d.ts +14 -6
  101. package/dist/Types.d.ts.map +1 -1
  102. package/dist/index.d.ts +14 -5
  103. package/dist/index.d.ts.map +1 -1
  104. package/dist/index.js +14 -5
  105. package/dist/index.js.map +1 -1
  106. package/dist/internal/core.js +11 -3
  107. package/dist/internal/core.js.map +1 -1
  108. package/dist/internal/effect.js.map +1 -1
  109. package/dist/internal/rcRef.js +2 -1
  110. package/dist/internal/rcRef.js.map +1 -1
  111. package/dist/testing/TestClock.d.ts +3 -2
  112. package/dist/testing/TestClock.d.ts.map +1 -1
  113. package/dist/testing/TestClock.js +5 -3
  114. package/dist/testing/TestClock.js.map +1 -1
  115. package/dist/unstable/ai/AiError.d.ts +39 -39
  116. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  117. package/dist/unstable/ai/Chat.js +2 -1
  118. package/dist/unstable/ai/Chat.js.map +1 -1
  119. package/dist/unstable/ai/McpSchema.d.ts +51 -51
  120. package/dist/unstable/ai/Prompt.d.ts +20 -20
  121. package/dist/unstable/ai/Response.d.ts +25 -25
  122. package/dist/unstable/cli/CliError.d.ts +5 -5
  123. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  124. package/dist/unstable/cluster/ClusterWorkflowEngine.js +2 -1
  125. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  126. package/dist/unstable/cluster/Entity.d.ts +2 -1
  127. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  128. package/dist/unstable/cluster/Entity.js.map +1 -1
  129. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  130. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  131. package/dist/unstable/cluster/Message.d.ts +5 -5
  132. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  133. package/dist/unstable/cluster/MessageStorage.js +2 -1
  134. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  135. package/dist/unstable/cluster/Reply.d.ts +3 -3
  136. package/dist/unstable/cluster/Runner.d.ts +1 -1
  137. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  138. package/dist/unstable/cluster/Runners.js +4 -3
  139. package/dist/unstable/cluster/Runners.js.map +1 -1
  140. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  141. package/dist/unstable/cluster/Sharding.js +7 -5
  142. package/dist/unstable/cluster/Sharding.js.map +1 -1
  143. package/dist/unstable/cluster/internal/entityManager.js +4 -3
  144. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  145. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  146. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  147. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  148. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  149. package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
  150. package/dist/unstable/encoding/Sse.d.ts +1 -1
  151. package/dist/unstable/eventlog/EventJournal.d.ts +1 -1
  152. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  153. package/dist/unstable/eventlog/EventLog.js +2 -1
  154. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  155. package/dist/unstable/eventlog/EventLogRemote.d.ts +5 -5
  156. package/dist/unstable/http/Cookies.d.ts +1 -1
  157. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  158. package/dist/unstable/http/HttpEffect.js +18 -26
  159. package/dist/unstable/http/HttpEffect.js.map +1 -1
  160. package/dist/unstable/http/Multipart.d.ts +2 -2
  161. package/dist/unstable/http/UrlParams.d.ts +1 -1
  162. package/dist/unstable/httpapi/HttpApiBuilder.js +2 -2
  163. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  164. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  165. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  166. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  167. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  168. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  169. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  170. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  171. package/dist/unstable/persistence/PersistedCache.js +2 -1
  172. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  173. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  174. package/dist/unstable/persistence/PersistedQueue.js +6 -5
  175. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  176. package/dist/unstable/process/ChildProcessSpawner.d.ts +6 -0
  177. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  178. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  179. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  180. package/dist/unstable/reactivity/Atom.js +12 -9
  181. package/dist/unstable/reactivity/Atom.js.map +1 -1
  182. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  183. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  184. package/dist/unstable/reactivity/Hydration.js +76 -0
  185. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  186. package/dist/unstable/reactivity/index.d.ts +4 -0
  187. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  188. package/dist/unstable/reactivity/index.js +4 -0
  189. package/dist/unstable/reactivity/index.js.map +1 -1
  190. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  191. package/dist/unstable/rpc/RpcClient.js +3 -2
  192. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  193. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  194. package/dist/unstable/rpc/RpcServer.js +5 -3
  195. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  196. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  197. package/dist/unstable/rpc/Utils.js +2 -1
  198. package/dist/unstable/rpc/Utils.js.map +1 -1
  199. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  200. package/dist/unstable/socket/Socket.js +3 -2
  201. package/dist/unstable/socket/Socket.js.map +1 -1
  202. package/dist/unstable/sql/Statement.js +0 -1
  203. package/dist/unstable/sql/Statement.js.map +1 -1
  204. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  205. package/dist/unstable/workers/Worker.js +2 -1
  206. package/dist/unstable/workers/Worker.js.map +1 -1
  207. package/dist/unstable/workflow/DurableDeferred.js +2 -2
  208. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  209. package/dist/unstable/workflow/Workflow.d.ts +1 -1
  210. package/dist/unstable/workflow/WorkflowEngine.d.ts +2 -1
  211. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  212. package/dist/unstable/workflow/WorkflowEngine.js +2 -1
  213. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  214. package/package.json +1 -2
  215. package/src/Cause.ts +1 -1
  216. package/src/Channel.ts +6 -4
  217. package/src/Data.ts +10 -9
  218. package/src/Effect.ts +0 -246
  219. package/src/Encoding.ts +879 -0
  220. package/src/Equal.ts +2 -2
  221. package/src/FileSystem.ts +7 -8
  222. package/src/Filter.ts +48 -1
  223. package/src/Formatter.ts +1 -1
  224. package/src/Graph.ts +8 -5
  225. package/src/Latch.ts +112 -0
  226. package/src/Pipeable.ts +32 -1
  227. package/src/PlatformError.ts +5 -5
  228. package/src/Pool.ts +9 -7
  229. package/src/PubSub.ts +10 -9
  230. package/src/Request.ts +3 -2
  231. package/src/RequestResolver.ts +0 -20
  232. package/src/Schedule.ts +217 -115
  233. package/src/Schema.ts +567 -105
  234. package/src/SchemaGetter.ts +12 -14
  235. package/src/SchemaRepresentation.ts +5 -2
  236. package/src/SchemaTransformation.ts +104 -0
  237. package/src/Semaphore.ts +356 -0
  238. package/src/Stream.ts +9 -8
  239. package/src/Struct.ts +26 -0
  240. package/src/SubscriptionRef.ts +3 -2
  241. package/src/SynchronizedRef.ts +3 -2
  242. package/src/Types.ts +12 -2
  243. package/src/index.ts +17 -6
  244. package/src/internal/core.ts +10 -2
  245. package/src/internal/effect.ts +3 -2
  246. package/src/internal/rcRef.ts +2 -1
  247. package/src/testing/TestClock.ts +8 -6
  248. package/src/unstable/ai/AiError.ts +1 -1
  249. package/src/unstable/ai/Chat.ts +2 -1
  250. package/src/unstable/ai/Prompt.ts +20 -20
  251. package/src/unstable/ai/Response.ts +22 -22
  252. package/src/unstable/cluster/ClusterWorkflowEngine.ts +3 -2
  253. package/src/unstable/cluster/Entity.ts +2 -1
  254. package/src/unstable/cluster/Envelope.ts +1 -1
  255. package/src/unstable/cluster/MessageStorage.ts +2 -1
  256. package/src/unstable/cluster/Runners.ts +6 -5
  257. package/src/unstable/cluster/Sharding.ts +8 -6
  258. package/src/unstable/cluster/internal/entityManager.ts +6 -5
  259. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  260. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  261. package/src/unstable/eventlog/EventLog.ts +2 -1
  262. package/src/unstable/http/HttpEffect.ts +17 -25
  263. package/src/unstable/http/Multipart.ts +2 -2
  264. package/src/unstable/http/UrlParams.ts +1 -1
  265. package/src/unstable/httpapi/HttpApiBuilder.ts +2 -2
  266. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  267. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  268. package/src/unstable/persistence/PersistedCache.ts +20 -9
  269. package/src/unstable/persistence/PersistedQueue.ts +7 -6
  270. package/src/unstable/process/ChildProcessSpawner.ts +6 -0
  271. package/src/unstable/reactivity/Atom.ts +7 -5
  272. package/src/unstable/reactivity/Hydration.ts +112 -0
  273. package/src/unstable/reactivity/index.ts +5 -0
  274. package/src/unstable/rpc/RpcClient.ts +4 -3
  275. package/src/unstable/rpc/RpcServer.ts +6 -4
  276. package/src/unstable/rpc/Utils.ts +2 -1
  277. package/src/unstable/socket/Socket.ts +3 -2
  278. package/src/unstable/sql/Statement.ts +0 -1
  279. package/src/unstable/workers/Worker.ts +2 -1
  280. package/src/unstable/workflow/DurableDeferred.ts +2 -2
  281. package/src/unstable/workflow/WorkflowEngine.ts +3 -2
  282. package/dist/PartitionedSemaphore.d.ts +0 -52
  283. package/dist/PartitionedSemaphore.d.ts.map +0 -1
  284. package/dist/PartitionedSemaphore.js.map +0 -1
  285. package/dist/encoding/Base64.d.ts +0 -67
  286. package/dist/encoding/Base64.d.ts.map +0 -1
  287. package/dist/encoding/Base64.js +0 -146
  288. package/dist/encoding/Base64.js.map +0 -1
  289. package/dist/encoding/Base64Url.d.ts +0 -60
  290. package/dist/encoding/Base64Url.d.ts.map +0 -1
  291. package/dist/encoding/Base64Url.js +0 -89
  292. package/dist/encoding/Base64Url.js.map +0 -1
  293. package/dist/encoding/EncodingError.d.ts +0 -31
  294. package/dist/encoding/EncodingError.d.ts.map +0 -1
  295. package/dist/encoding/EncodingError.js +0 -22
  296. package/dist/encoding/EncodingError.js.map +0 -1
  297. package/dist/encoding/Hex.d.ts +0 -61
  298. package/dist/encoding/Hex.d.ts.map +0 -1
  299. package/dist/encoding/Hex.js +0 -115
  300. package/dist/encoding/Hex.js.map +0 -1
  301. package/dist/encoding/index.d.ts +0 -26
  302. package/dist/encoding/index.d.ts.map +0 -1
  303. package/dist/encoding/index.js +0 -27
  304. package/dist/encoding/index.js.map +0 -1
  305. package/src/PartitionedSemaphore.ts +0 -182
  306. package/src/encoding/Base64.ts +0 -366
  307. package/src/encoding/Base64Url.ts +0 -104
  308. package/src/encoding/EncodingError.ts +0 -35
  309. package/src/encoding/Hex.ts +0 -390
  310. package/src/encoding/index.ts +0 -31
@@ -81,6 +81,8 @@
81
81
  *
82
82
  * @since 4.0.0
83
83
  */
84
+ import * as BigDecimal from "./BigDecimal.js";
85
+ import * as DateTime from "./DateTime.js";
84
86
  import * as Duration from "./Duration.js";
85
87
  import * as Effect from "./Effect.js";
86
88
  import * as Option from "./Option.js";
@@ -932,6 +934,29 @@ export const urlFromString = /*#__PURE__*/transformOrFail({
932
934
  }),
933
935
  encode: url => Effect.succeed(url.href)
934
936
  });
937
+ /**
938
+ * Decodes a `string` into a `BigDecimal` and encodes a `BigDecimal` back to
939
+ * its string representation.
940
+ *
941
+ * When to use this:
942
+ * - Parsing decimal number strings from APIs or user input.
943
+ *
944
+ * Behavior:
945
+ * - Decode: calls `BigDecimal.fromString(s)`. Fails with `InvalidValue` if the
946
+ * string is not a valid BigDecimal representation.
947
+ * - Encode: returns `BigDecimal.format(bd)`.
948
+ *
949
+ * @since 4.0.0
950
+ */
951
+ export const bigDecimalFromString = /*#__PURE__*/transformOrFail({
952
+ decode: s => {
953
+ const result = BigDecimal.fromString(s);
954
+ return result === undefined ? Effect.fail(new Issue.InvalidValue(Option.some(s), {
955
+ message: `Invalid BigDecimal string: ${s}`
956
+ })) : Effect.succeed(result);
957
+ },
958
+ encode: bd => Effect.succeed(BigDecimal.format(bd))
959
+ });
935
960
  /**
936
961
  * Decodes a Base64-encoded `string` into a `Uint8Array` and encodes a
937
962
  * `Uint8Array` back to a Base64 string.
@@ -1045,4 +1070,59 @@ export const fromFormData = /*#__PURE__*/new Transformation(/*#__PURE__*/Getter.
1045
1070
  * @since 4.0.0
1046
1071
  */
1047
1072
  export const fromURLSearchParams = /*#__PURE__*/new Transformation(/*#__PURE__*/Getter.decodeURLSearchParams(), /*#__PURE__*/Getter.encodeURLSearchParams());
1073
+ /**
1074
+ * @since 4.0.0
1075
+ */
1076
+ export const timeZoneOffsetFromNumber = /*#__PURE__*/transform({
1077
+ decode: n => DateTime.zoneMakeOffset(n),
1078
+ encode: tz => tz.offset
1079
+ });
1080
+ /**
1081
+ * @since 4.0.0
1082
+ */
1083
+ export const timeZoneNamedFromString = /*#__PURE__*/transformOrFail({
1084
+ decode: s => {
1085
+ const result = DateTime.zoneMakeNamed(s);
1086
+ return result === undefined ? Effect.fail(new Issue.InvalidValue(Option.some(s), {
1087
+ message: `Invalid IANA time zone: ${s}`
1088
+ })) : Effect.succeed(result);
1089
+ },
1090
+ encode: tz => Effect.succeed(tz.id)
1091
+ });
1092
+ /**
1093
+ * @since 4.0.0
1094
+ */
1095
+ export const timeZoneFromString = /*#__PURE__*/transformOrFail({
1096
+ decode: s => {
1097
+ const result = DateTime.zoneFromString(s);
1098
+ return result === undefined ? Effect.fail(new Issue.InvalidValue(Option.some(s), {
1099
+ message: `Invalid time zone: ${s}`
1100
+ })) : Effect.succeed(result);
1101
+ },
1102
+ encode: tz => Effect.succeed(DateTime.zoneToString(tz))
1103
+ });
1104
+ /**
1105
+ * @since 4.0.0
1106
+ */
1107
+ export const dateTimeUtcFromString = /*#__PURE__*/transformOrFail({
1108
+ decode: s => {
1109
+ const result = DateTime.make(s);
1110
+ return result === undefined ? Effect.fail(new Issue.InvalidValue(Option.some(s), {
1111
+ message: "Invalid DateTime input"
1112
+ })) : Effect.succeed(DateTime.toUtc(result));
1113
+ },
1114
+ encode: utc => Effect.succeed(DateTime.formatIso(utc))
1115
+ });
1116
+ /**
1117
+ * @since 4.0.0
1118
+ */
1119
+ export const dateTimeZonedFromString = /*#__PURE__*/transformOrFail({
1120
+ decode: s => {
1121
+ const result = DateTime.makeZonedFromString(s);
1122
+ return result === undefined ? Effect.fail(new Issue.InvalidValue(Option.some(s), {
1123
+ message: `Invalid zoned DateTime string: ${s}`
1124
+ })) : Effect.succeed(result);
1125
+ },
1126
+ encode: zoned => Effect.succeed(DateTime.formatIsoZoned(zoned))
1127
+ });
1048
1128
  //# sourceMappingURL=SchemaTransformation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SchemaTransformation.js","names":["Duration","Effect","Option","Predicate","Getter","Issue","Middleware","_tag","decode","encode","constructor","flip","TypeId","Transformation","compose","other","isTransformation","u","hasProperty","make","options","transformOrFail","transform","transformOptional","trim","passthrough","snakeToCamel","camelToSnake","toLowerCase","toUpperCase","capitalize","uncapitalize","splitKeyValue","joinKeyValue","passthrough_","passthroughSupertype","passthroughSubtype","numberFromString","Number","String","bigintFromString","BigInt","durationFromNanos","i","succeed","nanos","a","toNanos","isUndefined","fail","InvalidValue","some","message","durationFromMillis","millis","toMillis","errorFromErrorJsonEncoded","err","Error","name","stack","e","includeStack","optionFromNullOr","fromNullOr","getOrNull","optionFromOptionalKey","flatten","optionFromOptional","ot","pipe","filter","isNotUndefined","urlFromString","s","try","URL","catch","globalThis","url","href","uint8ArrayFromBase64String","decodeBase64","encodeBase64","fromJsonString","parseJson","stringifyJson","fromFormData","decodeFormData","encodeFormData","fromURLSearchParams","decodeURLSearchParams","encodeURLSearchParams"],"sources":["../src/SchemaTransformation.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"SchemaTransformation.js","names":["BigDecimal","DateTime","Duration","Effect","Option","Predicate","Getter","Issue","Middleware","_tag","decode","encode","constructor","flip","TypeId","Transformation","compose","other","isTransformation","u","hasProperty","make","options","transformOrFail","transform","transformOptional","trim","passthrough","snakeToCamel","camelToSnake","toLowerCase","toUpperCase","capitalize","uncapitalize","splitKeyValue","joinKeyValue","passthrough_","passthroughSupertype","passthroughSubtype","numberFromString","Number","String","bigintFromString","BigInt","durationFromNanos","i","succeed","nanos","a","toNanos","isUndefined","fail","InvalidValue","some","message","durationFromMillis","millis","toMillis","errorFromErrorJsonEncoded","err","Error","name","stack","e","includeStack","optionFromNullOr","fromNullOr","getOrNull","optionFromOptionalKey","flatten","optionFromOptional","ot","pipe","filter","isNotUndefined","urlFromString","s","try","URL","catch","globalThis","url","href","bigDecimalFromString","result","fromString","undefined","bd","format","uint8ArrayFromBase64String","decodeBase64","encodeBase64","fromJsonString","parseJson","stringifyJson","fromFormData","decodeFormData","encodeFormData","fromURLSearchParams","decodeURLSearchParams","encodeURLSearchParams","timeZoneOffsetFromNumber","n","zoneMakeOffset","tz","offset","timeZoneNamedFromString","zoneMakeNamed","id","timeZoneFromString","zoneFromString","zoneToString","dateTimeUtcFromString","toUtc","utc","formatIso","dateTimeZonedFromString","makeZonedFromString","zoned","formatIsoZoned"],"sources":["../src/SchemaTransformation.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,211 @@
1
+ /**
2
+ * @since 2.0.0
3
+ */
4
+ import * as Effect from "./Effect.ts";
5
+ import * as Option from "./Option.ts";
6
+ /**
7
+ * @category models
8
+ * @since 2.0.0
9
+ * @example
10
+ * ```ts
11
+ * import { Effect, Semaphore } from "effect"
12
+ *
13
+ * // Create and use a semaphore for controlling concurrent access
14
+ * const program = Effect.gen(function*() {
15
+ * const semaphore = yield* Semaphore.make(2)
16
+ *
17
+ * return yield* semaphore.withPermits(1)(
18
+ * Effect.succeed("Resource accessed")
19
+ * )
20
+ * })
21
+ * ```
22
+ */
23
+ export interface Semaphore {
24
+ /**
25
+ * Adjusts the number of permits available in the semaphore.
26
+ */
27
+ resize(permits: number): Effect.Effect<void>;
28
+ /**
29
+ * Runs an effect with the given number of permits and releases the permits
30
+ * when the effect completes.
31
+ *
32
+ * **Details**
33
+ *
34
+ * This function acquires the specified number of permits before executing
35
+ * the provided effect. Once the effect finishes, the permits are released.
36
+ * If insufficient permits are available, the function will wait until they
37
+ * are released by other tasks.
38
+ */
39
+ withPermits(permits: number): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
40
+ /**
41
+ * Runs an effect with the given number of permits and releases the permits
42
+ * when the effect completes.
43
+ *
44
+ * **Details**
45
+ *
46
+ * This function acquires the specified number of permits before executing
47
+ * the provided effect. Once the effect finishes, the permits are released.
48
+ * If insufficient permits are available, the function will wait until they
49
+ * are released by other tasks.
50
+ */
51
+ withPermit<A, E, R>(self: Effect.Effect<A, E, R>): Effect.Effect<A, E, R>;
52
+ /**
53
+ * Runs an effect only if the specified number of permits are immediately
54
+ * available.
55
+ *
56
+ * **Details**
57
+ *
58
+ * This function attempts to acquire the specified number of permits. If they
59
+ * are available, it runs the effect and releases the permits after the effect
60
+ * completes. If permits are not available, the effect does not execute, and
61
+ * the result is `Option.none`.
62
+ */
63
+ withPermitsIfAvailable(permits: number): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Option.Option<A>, E, R>;
64
+ /**
65
+ * Acquires the specified number of permits and returns the resulting
66
+ * available permits, suspending the task if they are not yet available.
67
+ * Concurrent pending `take` calls are processed in a first-in, first-out manner.
68
+ */
69
+ take(permits: number): Effect.Effect<number>;
70
+ /**
71
+ * Releases the specified number of permits and returns the resulting
72
+ * available permits.
73
+ */
74
+ release(permits: number): Effect.Effect<number>;
75
+ /**
76
+ * Releases all permits held by this semaphore and returns the resulting available permits.
77
+ */
78
+ releaseAll: Effect.Effect<number>;
79
+ }
80
+ /**
81
+ * Unsafely creates a new Semaphore.
82
+ *
83
+ * **Previously Known As**
84
+ *
85
+ * This API replaces the following from Effect 3.x:
86
+ *
87
+ * - `Effect.makeSemaphoreUnsafe`
88
+ *
89
+ * @example
90
+ * ```ts
91
+ * import { Effect, Semaphore } from "effect"
92
+ *
93
+ * const semaphore = Semaphore.makeUnsafe(3)
94
+ *
95
+ * const task = (id: number) =>
96
+ * semaphore.withPermits(1)(
97
+ * Effect.gen(function*() {
98
+ * yield* Effect.log(`Task ${id} started`)
99
+ * yield* Effect.sleep("1 second")
100
+ * yield* Effect.log(`Task ${id} completed`)
101
+ * })
102
+ * )
103
+ *
104
+ * // Only 3 tasks can run concurrently
105
+ * const program = Effect.all([
106
+ * task(1),
107
+ * task(2),
108
+ * task(3),
109
+ * task(4),
110
+ * task(5)
111
+ * ], { concurrency: "unbounded" })
112
+ * ```
113
+ *
114
+ * @since 2.0.0
115
+ * @category constructors
116
+ */
117
+ export declare const makeUnsafe: (permits: number) => Semaphore;
118
+ /**
119
+ * Creates a new Semaphore.
120
+ *
121
+ * **Previously Known As**
122
+ *
123
+ * This API replaces the following from Effect 3.x:
124
+ *
125
+ * - `Effect.makeSemaphore`
126
+ *
127
+ * @example
128
+ * ```ts
129
+ * import { Effect, Semaphore } from "effect"
130
+ *
131
+ * const program = Effect.gen(function*() {
132
+ * const semaphore = yield* Semaphore.make(2)
133
+ *
134
+ * const task = (id: number) =>
135
+ * semaphore.withPermits(1)(
136
+ * Effect.gen(function*() {
137
+ * yield* Effect.log(`Task ${id} acquired permit`)
138
+ * yield* Effect.sleep("1 second")
139
+ * yield* Effect.log(`Task ${id} releasing permit`)
140
+ * })
141
+ * )
142
+ *
143
+ * // Run 4 tasks, but only 2 can run concurrently
144
+ * yield* Effect.all([task(1), task(2), task(3), task(4)])
145
+ * })
146
+ * ```
147
+ *
148
+ * @since 2.0.0
149
+ * @category constructors
150
+ */
151
+ export declare const make: (permits: number) => Effect.Effect<Semaphore>;
152
+ /**
153
+ * @since 3.19.4
154
+ * @category models
155
+ */
156
+ export declare const PartitionedTypeId: PartitionedTypeId;
157
+ /**
158
+ * @since 3.19.4
159
+ * @category models
160
+ */
161
+ export type PartitionedTypeId = "~effect/PartitionedSemaphore";
162
+ /**
163
+ * A `Partitioned` semaphore controls access to a shared permit pool while
164
+ * tracking waiters by partition key.
165
+ *
166
+ * Waiting permits are distributed across partitions in round-robin order.
167
+ *
168
+ * **Previously Known As**
169
+ *
170
+ * This API replaces the following from Effect 3.x:
171
+ *
172
+ * - `PartitionedSemaphore.PartitionedSemaphore`
173
+ *
174
+ * @since 3.19.4
175
+ * @category models
176
+ */
177
+ export interface Partitioned<in K> {
178
+ readonly [PartitionedTypeId]: PartitionedTypeId;
179
+ readonly withPermits: (key: K, permits: number) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>;
180
+ }
181
+ /**
182
+ * Creates a `Partitioned` semaphore unsafely.
183
+ *
184
+ * **Previously Known As**
185
+ *
186
+ * This API replaces the following from Effect 3.x:
187
+ *
188
+ * - `PartitionedSemaphore.makeUnsafe`
189
+ *
190
+ * @since 3.19.4
191
+ * @category constructors
192
+ */
193
+ export declare const makePartitionedUnsafe: <K = unknown>(options: {
194
+ readonly permits: number;
195
+ }) => Partitioned<K>;
196
+ /**
197
+ * Creates a `Partitioned` semaphore.
198
+ *
199
+ * **Previously Known As**
200
+ *
201
+ * This API replaces the following from Effect 3.x:
202
+ *
203
+ * - `PartitionedSemaphore.make`
204
+ *
205
+ * @since 3.19.4
206
+ * @category constructors
207
+ */
208
+ export declare const makePartitioned: <K = unknown>(options: {
209
+ readonly permits: number;
210
+ }) => Effect.Effect<Partitioned<K>>;
211
+ //# sourceMappingURL=Semaphore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Semaphore.d.ts","sourceRoot":"","sources":["../src/Semaphore.ts"],"names":[],"mappings":"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"}
@@ -1,28 +1,107 @@
1
1
  /**
2
- * @since 3.19.4
3
- * @experimental
2
+ * @since 2.0.0
4
3
  */
5
4
  import * as Effect from "./Effect.js";
5
+ import * as internal from "./internal/effect.js";
6
6
  import * as MutableHashMap from "./MutableHashMap.js";
7
7
  import * as Option from "./Option.js";
8
+ /**
9
+ * Unsafely creates a new Semaphore.
10
+ *
11
+ * **Previously Known As**
12
+ *
13
+ * This API replaces the following from Effect 3.x:
14
+ *
15
+ * - `Effect.makeSemaphoreUnsafe`
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * import { Effect, Semaphore } from "effect"
20
+ *
21
+ * const semaphore = Semaphore.makeUnsafe(3)
22
+ *
23
+ * const task = (id: number) =>
24
+ * semaphore.withPermits(1)(
25
+ * Effect.gen(function*() {
26
+ * yield* Effect.log(`Task ${id} started`)
27
+ * yield* Effect.sleep("1 second")
28
+ * yield* Effect.log(`Task ${id} completed`)
29
+ * })
30
+ * )
31
+ *
32
+ * // Only 3 tasks can run concurrently
33
+ * const program = Effect.all([
34
+ * task(1),
35
+ * task(2),
36
+ * task(3),
37
+ * task(4),
38
+ * task(5)
39
+ * ], { concurrency: "unbounded" })
40
+ * ```
41
+ *
42
+ * @since 2.0.0
43
+ * @category constructors
44
+ */
45
+ export const makeUnsafe = internal.makeSemaphoreUnsafe;
46
+ /**
47
+ * Creates a new Semaphore.
48
+ *
49
+ * **Previously Known As**
50
+ *
51
+ * This API replaces the following from Effect 3.x:
52
+ *
53
+ * - `Effect.makeSemaphore`
54
+ *
55
+ * @example
56
+ * ```ts
57
+ * import { Effect, Semaphore } from "effect"
58
+ *
59
+ * const program = Effect.gen(function*() {
60
+ * const semaphore = yield* Semaphore.make(2)
61
+ *
62
+ * const task = (id: number) =>
63
+ * semaphore.withPermits(1)(
64
+ * Effect.gen(function*() {
65
+ * yield* Effect.log(`Task ${id} acquired permit`)
66
+ * yield* Effect.sleep("1 second")
67
+ * yield* Effect.log(`Task ${id} releasing permit`)
68
+ * })
69
+ * )
70
+ *
71
+ * // Run 4 tasks, but only 2 can run concurrently
72
+ * yield* Effect.all([task(1), task(2), task(3), task(4)])
73
+ * })
74
+ * ```
75
+ *
76
+ * @since 2.0.0
77
+ * @category constructors
78
+ */
79
+ export const make = internal.makeSemaphore;
80
+ // -----------------------------------------------------------------------------
81
+ // Partitioned
82
+ // -----------------------------------------------------------------------------
8
83
  /**
9
84
  * @since 3.19.4
10
85
  * @category models
11
- * @experimental
12
86
  */
13
- export const TypeId = "~effect/PartitionedSemaphore";
87
+ export const PartitionedTypeId = "~effect/PartitionedSemaphore";
14
88
  /**
15
- * Creates a `PartitionedSemaphore` unsafely.
89
+ * Creates a `Partitioned` semaphore unsafely.
90
+ *
91
+ * **Previously Known As**
92
+ *
93
+ * This API replaces the following from Effect 3.x:
94
+ *
95
+ * - `PartitionedSemaphore.makeUnsafe`
16
96
  *
17
97
  * @since 3.19.4
18
98
  * @category constructors
19
- * @experimental
20
99
  */
21
- export const makeUnsafe = options => {
100
+ export const makePartitionedUnsafe = options => {
22
101
  const maxPermits = Math.max(0, options.permits);
23
102
  if (!Number.isFinite(maxPermits)) {
24
103
  return {
25
- [TypeId]: TypeId,
104
+ [PartitionedTypeId]: PartitionedTypeId,
26
105
  withPermits: () => effect => effect
27
106
  };
28
107
  }
@@ -100,7 +179,7 @@ export const makeUnsafe = options => {
100
179
  }
101
180
  };
102
181
  return {
103
- [TypeId]: TypeId,
182
+ [PartitionedTypeId]: PartitionedTypeId,
104
183
  withPermits: (key, permits) => {
105
184
  const takePermits = take(key, permits);
106
185
  return effect => Effect.uninterruptibleMask(restore => Effect.flatMap(restore(takePermits), () => Effect.ensuring(restore(effect), Effect.sync(() => releaseUnsafe(permits)))));
@@ -108,11 +187,16 @@ export const makeUnsafe = options => {
108
187
  };
109
188
  };
110
189
  /**
111
- * Creates a `PartitionedSemaphore`.
190
+ * Creates a `Partitioned` semaphore.
191
+ *
192
+ * **Previously Known As**
193
+ *
194
+ * This API replaces the following from Effect 3.x:
195
+ *
196
+ * - `PartitionedSemaphore.make`
112
197
  *
113
198
  * @since 3.19.4
114
199
  * @category constructors
115
- * @experimental
116
200
  */
117
- export const make = options => Effect.sync(() => makeUnsafe(options));
118
- //# sourceMappingURL=PartitionedSemaphore.js.map
201
+ export const makePartitioned = options => Effect.sync(() => makePartitionedUnsafe(options));
202
+ //# sourceMappingURL=Semaphore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Semaphore.js","names":["Effect","internal","MutableHashMap","Option","makeUnsafe","makeSemaphoreUnsafe","make","makeSemaphore","PartitionedTypeId","makePartitionedUnsafe","options","maxPermits","Math","max","permits","Number","isFinite","withPermits","effect","totalPermits","waitingPermits","partitions","empty","take","key","callback","resume","never","void","needed","taken","waiters","getOrElse","get","set","Set","entry","cleanup","delete","size","remove","add","sync","releaseUnsafe","iterator","Symbol","state","next","done","waiter","value","values","undefined","takePermits","uninterruptibleMask","restore","flatMap","ensuring","makePartitioned"],"sources":["../src/Semaphore.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}