effect 3.10.18 → 3.11.0

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 (448) hide show
  1. package/dist/cjs/Array.js +206 -0
  2. package/dist/cjs/Array.js.map +1 -1
  3. package/dist/cjs/BigDecimal.js +181 -24
  4. package/dist/cjs/BigDecimal.js.map +1 -1
  5. package/dist/cjs/BigInt.js +54 -0
  6. package/dist/cjs/BigInt.js.map +1 -1
  7. package/dist/cjs/Boolean.js +24 -0
  8. package/dist/cjs/Boolean.js.map +1 -1
  9. package/dist/cjs/Brand.js +4 -0
  10. package/dist/cjs/Brand.js.map +1 -1
  11. package/dist/cjs/Channel.js +44 -4
  12. package/dist/cjs/Channel.js.map +1 -1
  13. package/dist/cjs/Chunk.js +8 -0
  14. package/dist/cjs/Chunk.js.map +1 -1
  15. package/dist/cjs/Config.js +10 -1
  16. package/dist/cjs/Config.js.map +1 -1
  17. package/dist/cjs/Context.js +50 -1
  18. package/dist/cjs/Context.js.map +1 -1
  19. package/dist/cjs/Cron.js +81 -67
  20. package/dist/cjs/Cron.js.map +1 -1
  21. package/dist/cjs/Data.js +14 -0
  22. package/dist/cjs/Data.js.map +1 -1
  23. package/dist/cjs/DateTime.js +178 -664
  24. package/dist/cjs/DateTime.js.map +1 -1
  25. package/dist/cjs/Duration.js +2 -0
  26. package/dist/cjs/Duration.js.map +1 -1
  27. package/dist/cjs/Effect.js +296 -4
  28. package/dist/cjs/Effect.js.map +1 -1
  29. package/dist/cjs/Either.js +38 -2
  30. package/dist/cjs/Either.js.map +1 -1
  31. package/dist/cjs/FiberHandle.js +6 -0
  32. package/dist/cjs/FiberHandle.js.map +1 -1
  33. package/dist/cjs/FiberMap.js +6 -0
  34. package/dist/cjs/FiberMap.js.map +1 -1
  35. package/dist/cjs/FiberSet.js +6 -0
  36. package/dist/cjs/FiberSet.js.map +1 -1
  37. package/dist/cjs/Function.js +34 -0
  38. package/dist/cjs/Function.js.map +1 -1
  39. package/dist/cjs/GlobalValue.js +2 -0
  40. package/dist/cjs/GlobalValue.js.map +1 -1
  41. package/dist/cjs/HashMap.js.map +1 -1
  42. package/dist/cjs/Inspectable.js +8 -4
  43. package/dist/cjs/Inspectable.js.map +1 -1
  44. package/dist/cjs/Iterable.js +18 -0
  45. package/dist/cjs/Iterable.js.map +1 -1
  46. package/dist/cjs/JSONSchema.js.map +1 -1
  47. package/dist/cjs/List.js +4 -0
  48. package/dist/cjs/List.js.map +1 -1
  49. package/dist/cjs/Logger.js +26 -0
  50. package/dist/cjs/Logger.js.map +1 -1
  51. package/dist/cjs/Mailbox.js +2 -0
  52. package/dist/cjs/Mailbox.js.map +1 -1
  53. package/dist/cjs/ManagedRuntime.js +2 -0
  54. package/dist/cjs/ManagedRuntime.js.map +1 -1
  55. package/dist/cjs/Metric.js +10 -0
  56. package/dist/cjs/Metric.js.map +1 -1
  57. package/dist/cjs/Micro.js +1104 -1069
  58. package/dist/cjs/Micro.js.map +1 -1
  59. package/dist/cjs/Number.js +44 -0
  60. package/dist/cjs/Number.js.map +1 -1
  61. package/dist/cjs/Option.js +70 -0
  62. package/dist/cjs/Option.js.map +1 -1
  63. package/dist/cjs/Order.js +2 -0
  64. package/dist/cjs/Order.js.map +1 -1
  65. package/dist/cjs/Ordering.js +4 -0
  66. package/dist/cjs/Ordering.js.map +1 -1
  67. package/dist/cjs/Predicate.js +68 -0
  68. package/dist/cjs/Predicate.js.map +1 -1
  69. package/dist/cjs/Random.js +4 -0
  70. package/dist/cjs/Random.js.map +1 -1
  71. package/dist/cjs/RateLimiter.js +4 -0
  72. package/dist/cjs/RateLimiter.js.map +1 -1
  73. package/dist/cjs/RcMap.js +2 -0
  74. package/dist/cjs/RcMap.js.map +1 -1
  75. package/dist/cjs/RcRef.js +2 -0
  76. package/dist/cjs/RcRef.js.map +1 -1
  77. package/dist/cjs/Record.js +56 -0
  78. package/dist/cjs/Record.js.map +1 -1
  79. package/dist/cjs/Redacted.js +8 -0
  80. package/dist/cjs/Redacted.js.map +1 -1
  81. package/dist/cjs/RegExp.js +4 -0
  82. package/dist/cjs/RegExp.js.map +1 -1
  83. package/dist/cjs/Request.js +4 -0
  84. package/dist/cjs/Request.js.map +1 -1
  85. package/dist/cjs/RequestResolver.js +2 -0
  86. package/dist/cjs/RequestResolver.js.map +1 -1
  87. package/dist/cjs/Runtime.js +6 -0
  88. package/dist/cjs/Runtime.js.map +1 -1
  89. package/dist/cjs/STM.js.map +1 -1
  90. package/dist/cjs/Schema.js +91 -8
  91. package/dist/cjs/Schema.js.map +1 -1
  92. package/dist/cjs/Sink.js +9 -1
  93. package/dist/cjs/Sink.js.map +1 -1
  94. package/dist/cjs/Stream.js +179 -7
  95. package/dist/cjs/Stream.js.map +1 -1
  96. package/dist/cjs/String.js +62 -0
  97. package/dist/cjs/String.js.map +1 -1
  98. package/dist/cjs/Struct.js +12 -0
  99. package/dist/cjs/Struct.js.map +1 -1
  100. package/dist/cjs/Symbol.js +2 -0
  101. package/dist/cjs/Symbol.js.map +1 -1
  102. package/dist/cjs/Trie.js +56 -0
  103. package/dist/cjs/Trie.js.map +1 -1
  104. package/dist/cjs/Tuple.js +18 -0
  105. package/dist/cjs/Tuple.js.map +1 -1
  106. package/dist/cjs/Utils.js +7 -1
  107. package/dist/cjs/Utils.js.map +1 -1
  108. package/dist/cjs/internal/channel/channelExecutor.js +5 -9
  109. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  110. package/dist/cjs/internal/channel.js +156 -130
  111. package/dist/cjs/internal/channel.js.map +1 -1
  112. package/dist/cjs/internal/config.js +13 -4
  113. package/dist/cjs/internal/config.js.map +1 -1
  114. package/dist/cjs/internal/context.js +46 -3
  115. package/dist/cjs/internal/context.js.map +1 -1
  116. package/dist/cjs/internal/dateTime.js +747 -0
  117. package/dist/cjs/internal/dateTime.js.map +1 -0
  118. package/dist/cjs/internal/fiberRuntime.js +34 -11
  119. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  120. package/dist/cjs/internal/groupBy.js +9 -3
  121. package/dist/cjs/internal/groupBy.js.map +1 -1
  122. package/dist/cjs/internal/layer.js +1 -1
  123. package/dist/cjs/internal/layer.js.map +1 -1
  124. package/dist/cjs/internal/mailbox.js +1 -1
  125. package/dist/cjs/internal/mailbox.js.map +1 -1
  126. package/dist/cjs/internal/sink.js +25 -21
  127. package/dist/cjs/internal/sink.js.map +1 -1
  128. package/dist/cjs/internal/stream.js +70 -71
  129. package/dist/cjs/internal/stream.js.map +1 -1
  130. package/dist/cjs/internal/version.js +1 -1
  131. package/dist/cjs/internal/version.js.map +1 -1
  132. package/dist/dts/Array.d.ts +534 -0
  133. package/dist/dts/Array.d.ts.map +1 -1
  134. package/dist/dts/BigDecimal.d.ts +172 -1
  135. package/dist/dts/BigDecimal.d.ts.map +1 -1
  136. package/dist/dts/BigInt.d.ts +114 -0
  137. package/dist/dts/BigInt.d.ts.map +1 -1
  138. package/dist/dts/Boolean.d.ts +56 -0
  139. package/dist/dts/Boolean.d.ts.map +1 -1
  140. package/dist/dts/Brand.d.ts +6 -0
  141. package/dist/dts/Brand.d.ts.map +1 -1
  142. package/dist/dts/Channel.d.ts +66 -5
  143. package/dist/dts/Channel.d.ts.map +1 -1
  144. package/dist/dts/Chunk.d.ts +30 -0
  145. package/dist/dts/Chunk.d.ts.map +1 -1
  146. package/dist/dts/Config.d.ts +25 -1
  147. package/dist/dts/Config.d.ts.map +1 -1
  148. package/dist/dts/Context.d.ts +155 -0
  149. package/dist/dts/Context.d.ts.map +1 -1
  150. package/dist/dts/Cron.d.ts +21 -6
  151. package/dist/dts/Cron.d.ts.map +1 -1
  152. package/dist/dts/Data.d.ts +26 -0
  153. package/dist/dts/Data.d.ts.map +1 -1
  154. package/dist/dts/DateTime.d.ts +192 -49
  155. package/dist/dts/DateTime.d.ts.map +1 -1
  156. package/dist/dts/Duration.d.ts +2 -0
  157. package/dist/dts/Duration.d.ts.map +1 -1
  158. package/dist/dts/Effect.d.ts +658 -1
  159. package/dist/dts/Effect.d.ts.map +1 -1
  160. package/dist/dts/Either.d.ts +84 -2
  161. package/dist/dts/Either.d.ts.map +1 -1
  162. package/dist/dts/FiberHandle.d.ts +6 -0
  163. package/dist/dts/FiberHandle.d.ts.map +1 -1
  164. package/dist/dts/FiberMap.d.ts +6 -0
  165. package/dist/dts/FiberMap.d.ts.map +1 -1
  166. package/dist/dts/FiberSet.d.ts +6 -0
  167. package/dist/dts/FiberSet.d.ts.map +1 -1
  168. package/dist/dts/Function.d.ts +50 -0
  169. package/dist/dts/Function.d.ts.map +1 -1
  170. package/dist/dts/GlobalValue.d.ts +2 -0
  171. package/dist/dts/GlobalValue.d.ts.map +1 -1
  172. package/dist/dts/HashMap.d.ts +6 -0
  173. package/dist/dts/HashMap.d.ts.map +1 -1
  174. package/dist/dts/Inspectable.d.ts.map +1 -1
  175. package/dist/dts/Iterable.d.ts +26 -0
  176. package/dist/dts/Iterable.d.ts.map +1 -1
  177. package/dist/dts/JSONSchema.d.ts +1 -0
  178. package/dist/dts/JSONSchema.d.ts.map +1 -1
  179. package/dist/dts/List.d.ts +20 -0
  180. package/dist/dts/List.d.ts.map +1 -1
  181. package/dist/dts/Logger.d.ts +34 -0
  182. package/dist/dts/Logger.d.ts.map +1 -1
  183. package/dist/dts/Mailbox.d.ts +2 -0
  184. package/dist/dts/Mailbox.d.ts.map +1 -1
  185. package/dist/dts/ManagedRuntime.d.ts +2 -0
  186. package/dist/dts/ManagedRuntime.d.ts.map +1 -1
  187. package/dist/dts/Metric.d.ts +18 -0
  188. package/dist/dts/Metric.d.ts.map +1 -1
  189. package/dist/dts/Micro.d.ts +880 -863
  190. package/dist/dts/Micro.d.ts.map +1 -1
  191. package/dist/dts/Number.d.ts +104 -0
  192. package/dist/dts/Number.d.ts.map +1 -1
  193. package/dist/dts/Option.d.ts +142 -0
  194. package/dist/dts/Option.d.ts.map +1 -1
  195. package/dist/dts/Order.d.ts +2 -0
  196. package/dist/dts/Order.d.ts.map +1 -1
  197. package/dist/dts/Ordering.d.ts +8 -0
  198. package/dist/dts/Ordering.d.ts.map +1 -1
  199. package/dist/dts/Predicate.d.ts +104 -0
  200. package/dist/dts/Predicate.d.ts.map +1 -1
  201. package/dist/dts/Random.d.ts +4 -0
  202. package/dist/dts/Random.d.ts.map +1 -1
  203. package/dist/dts/RateLimiter.d.ts +4 -0
  204. package/dist/dts/RateLimiter.d.ts.map +1 -1
  205. package/dist/dts/RcMap.d.ts +6 -0
  206. package/dist/dts/RcMap.d.ts.map +1 -1
  207. package/dist/dts/RcRef.d.ts +2 -0
  208. package/dist/dts/RcRef.d.ts.map +1 -1
  209. package/dist/dts/Record.d.ts +136 -0
  210. package/dist/dts/Record.d.ts.map +1 -1
  211. package/dist/dts/Redacted.d.ts +8 -0
  212. package/dist/dts/Redacted.d.ts.map +1 -1
  213. package/dist/dts/RegExp.d.ts +4 -0
  214. package/dist/dts/RegExp.d.ts.map +1 -1
  215. package/dist/dts/Request.d.ts +4 -0
  216. package/dist/dts/Request.d.ts.map +1 -1
  217. package/dist/dts/RequestResolver.d.ts +6 -0
  218. package/dist/dts/RequestResolver.d.ts.map +1 -1
  219. package/dist/dts/Runtime.d.ts +18 -0
  220. package/dist/dts/Runtime.d.ts.map +1 -1
  221. package/dist/dts/STM.d.ts +2 -0
  222. package/dist/dts/STM.d.ts.map +1 -1
  223. package/dist/dts/Schema.d.ts +90 -0
  224. package/dist/dts/Schema.d.ts.map +1 -1
  225. package/dist/dts/Sink.d.ts +8 -0
  226. package/dist/dts/Sink.d.ts.map +1 -1
  227. package/dist/dts/Stream.d.ts +394 -32
  228. package/dist/dts/Stream.d.ts.map +1 -1
  229. package/dist/dts/String.d.ts +94 -0
  230. package/dist/dts/String.d.ts.map +1 -1
  231. package/dist/dts/Struct.d.ts +24 -0
  232. package/dist/dts/Struct.d.ts.map +1 -1
  233. package/dist/dts/Symbol.d.ts +2 -0
  234. package/dist/dts/Symbol.d.ts.map +1 -1
  235. package/dist/dts/Trie.d.ts +132 -0
  236. package/dist/dts/Trie.d.ts.map +1 -1
  237. package/dist/dts/Tuple.d.ts +42 -0
  238. package/dist/dts/Tuple.d.ts.map +1 -1
  239. package/dist/dts/Types.d.ts +24 -0
  240. package/dist/dts/Types.d.ts.map +1 -1
  241. package/dist/dts/Utils.d.ts +4 -0
  242. package/dist/dts/Utils.d.ts.map +1 -1
  243. package/dist/dts/internal/context.d.ts +1 -1
  244. package/dist/dts/internal/context.d.ts.map +1 -1
  245. package/dist/dts/internal/dateTime.d.ts +2 -0
  246. package/dist/dts/internal/dateTime.d.ts.map +1 -0
  247. package/dist/dts/internal/fiberRuntime.d.ts.map +1 -1
  248. package/dist/dts/internal/stream.d.ts.map +1 -1
  249. package/dist/esm/Array.js +208 -0
  250. package/dist/esm/Array.js.map +1 -1
  251. package/dist/esm/BigDecimal.js +175 -20
  252. package/dist/esm/BigDecimal.js.map +1 -1
  253. package/dist/esm/BigInt.js +54 -0
  254. package/dist/esm/BigInt.js.map +1 -1
  255. package/dist/esm/Boolean.js +24 -0
  256. package/dist/esm/Boolean.js.map +1 -1
  257. package/dist/esm/Brand.js +4 -0
  258. package/dist/esm/Brand.js.map +1 -1
  259. package/dist/esm/Channel.js +42 -2
  260. package/dist/esm/Channel.js.map +1 -1
  261. package/dist/esm/Chunk.js +8 -0
  262. package/dist/esm/Chunk.js.map +1 -1
  263. package/dist/esm/Config.js +9 -0
  264. package/dist/esm/Config.js.map +1 -1
  265. package/dist/esm/Context.js +49 -0
  266. package/dist/esm/Context.js.map +1 -1
  267. package/dist/esm/Cron.js +81 -67
  268. package/dist/esm/Cron.js.map +1 -1
  269. package/dist/esm/Data.js +16 -0
  270. package/dist/esm/Data.js.map +1 -1
  271. package/dist/esm/DateTime.js +176 -627
  272. package/dist/esm/DateTime.js.map +1 -1
  273. package/dist/esm/Duration.js +2 -0
  274. package/dist/esm/Duration.js.map +1 -1
  275. package/dist/esm/Effect.js +297 -0
  276. package/dist/esm/Effect.js.map +1 -1
  277. package/dist/esm/Either.js +40 -2
  278. package/dist/esm/Either.js.map +1 -1
  279. package/dist/esm/FiberHandle.js +6 -0
  280. package/dist/esm/FiberHandle.js.map +1 -1
  281. package/dist/esm/FiberMap.js +6 -0
  282. package/dist/esm/FiberMap.js.map +1 -1
  283. package/dist/esm/FiberSet.js +6 -0
  284. package/dist/esm/FiberSet.js.map +1 -1
  285. package/dist/esm/Function.js +34 -0
  286. package/dist/esm/Function.js.map +1 -1
  287. package/dist/esm/GlobalValue.js +2 -0
  288. package/dist/esm/GlobalValue.js.map +1 -1
  289. package/dist/esm/HashMap.js.map +1 -1
  290. package/dist/esm/Inspectable.js +8 -4
  291. package/dist/esm/Inspectable.js.map +1 -1
  292. package/dist/esm/Iterable.js +18 -0
  293. package/dist/esm/Iterable.js.map +1 -1
  294. package/dist/esm/JSONSchema.js.map +1 -1
  295. package/dist/esm/List.js +4 -0
  296. package/dist/esm/List.js.map +1 -1
  297. package/dist/esm/Logger.js +26 -0
  298. package/dist/esm/Logger.js.map +1 -1
  299. package/dist/esm/Mailbox.js +2 -0
  300. package/dist/esm/Mailbox.js.map +1 -1
  301. package/dist/esm/ManagedRuntime.js +2 -0
  302. package/dist/esm/ManagedRuntime.js.map +1 -1
  303. package/dist/esm/Metric.js +10 -0
  304. package/dist/esm/Metric.js.map +1 -1
  305. package/dist/esm/Micro.js +1077 -1037
  306. package/dist/esm/Micro.js.map +1 -1
  307. package/dist/esm/Number.js +44 -0
  308. package/dist/esm/Number.js.map +1 -1
  309. package/dist/esm/Option.js +72 -0
  310. package/dist/esm/Option.js.map +1 -1
  311. package/dist/esm/Order.js +2 -0
  312. package/dist/esm/Order.js.map +1 -1
  313. package/dist/esm/Ordering.js +4 -0
  314. package/dist/esm/Ordering.js.map +1 -1
  315. package/dist/esm/Predicate.js +68 -0
  316. package/dist/esm/Predicate.js.map +1 -1
  317. package/dist/esm/Random.js +4 -0
  318. package/dist/esm/Random.js.map +1 -1
  319. package/dist/esm/RateLimiter.js +4 -0
  320. package/dist/esm/RateLimiter.js.map +1 -1
  321. package/dist/esm/RcMap.js +2 -0
  322. package/dist/esm/RcMap.js.map +1 -1
  323. package/dist/esm/RcRef.js +2 -0
  324. package/dist/esm/RcRef.js.map +1 -1
  325. package/dist/esm/Record.js +56 -0
  326. package/dist/esm/Record.js.map +1 -1
  327. package/dist/esm/Redacted.js +8 -0
  328. package/dist/esm/Redacted.js.map +1 -1
  329. package/dist/esm/RegExp.js +4 -0
  330. package/dist/esm/RegExp.js.map +1 -1
  331. package/dist/esm/Request.js +4 -0
  332. package/dist/esm/Request.js.map +1 -1
  333. package/dist/esm/RequestResolver.js +2 -0
  334. package/dist/esm/RequestResolver.js.map +1 -1
  335. package/dist/esm/Runtime.js +6 -0
  336. package/dist/esm/Runtime.js.map +1 -1
  337. package/dist/esm/STM.js.map +1 -1
  338. package/dist/esm/Schema.js +88 -0
  339. package/dist/esm/Schema.js.map +1 -1
  340. package/dist/esm/Sink.js +8 -0
  341. package/dist/esm/Sink.js.map +1 -1
  342. package/dist/esm/Stream.js +183 -5
  343. package/dist/esm/Stream.js.map +1 -1
  344. package/dist/esm/String.js +62 -0
  345. package/dist/esm/String.js.map +1 -1
  346. package/dist/esm/Struct.js +12 -0
  347. package/dist/esm/Struct.js.map +1 -1
  348. package/dist/esm/Symbol.js +2 -0
  349. package/dist/esm/Symbol.js.map +1 -1
  350. package/dist/esm/Trie.js +56 -0
  351. package/dist/esm/Trie.js.map +1 -1
  352. package/dist/esm/Tuple.js +22 -0
  353. package/dist/esm/Tuple.js.map +1 -1
  354. package/dist/esm/Utils.js +5 -0
  355. package/dist/esm/Utils.js.map +1 -1
  356. package/dist/esm/internal/channel/channelExecutor.js +5 -7
  357. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  358. package/dist/esm/internal/channel.js +152 -129
  359. package/dist/esm/internal/channel.js.map +1 -1
  360. package/dist/esm/internal/config.js +11 -3
  361. package/dist/esm/internal/config.js.map +1 -1
  362. package/dist/esm/internal/context.js +42 -2
  363. package/dist/esm/internal/context.js.map +1 -1
  364. package/dist/esm/internal/dateTime.js +704 -0
  365. package/dist/esm/internal/dateTime.js.map +1 -0
  366. package/dist/esm/internal/fiberRuntime.js +31 -9
  367. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  368. package/dist/esm/internal/groupBy.js +9 -3
  369. package/dist/esm/internal/groupBy.js.map +1 -1
  370. package/dist/esm/internal/layer.js +1 -1
  371. package/dist/esm/internal/layer.js.map +1 -1
  372. package/dist/esm/internal/mailbox.js +1 -1
  373. package/dist/esm/internal/mailbox.js.map +1 -1
  374. package/dist/esm/internal/sink.js +23 -20
  375. package/dist/esm/internal/sink.js.map +1 -1
  376. package/dist/esm/internal/stream.js +66 -69
  377. package/dist/esm/internal/stream.js.map +1 -1
  378. package/dist/esm/internal/version.js +1 -1
  379. package/dist/esm/internal/version.js.map +1 -1
  380. package/package.json +1 -1
  381. package/src/Array.ts +534 -0
  382. package/src/BigDecimal.ts +247 -21
  383. package/src/BigInt.ts +114 -0
  384. package/src/Boolean.ts +56 -0
  385. package/src/Brand.ts +6 -0
  386. package/src/Channel.ts +81 -5
  387. package/src/Chunk.ts +32 -0
  388. package/src/Config.ts +26 -1
  389. package/src/Context.ts +163 -0
  390. package/src/Cron.ts +91 -68
  391. package/src/Data.ts +26 -0
  392. package/src/DateTime.ts +307 -757
  393. package/src/Duration.ts +2 -0
  394. package/src/Effect.ts +910 -1
  395. package/src/Either.ts +84 -2
  396. package/src/FiberHandle.ts +6 -0
  397. package/src/FiberMap.ts +6 -0
  398. package/src/FiberSet.ts +6 -0
  399. package/src/Function.ts +50 -0
  400. package/src/GlobalValue.ts +2 -0
  401. package/src/HashMap.ts +6 -0
  402. package/src/Inspectable.ts +11 -7
  403. package/src/Iterable.ts +26 -0
  404. package/src/JSONSchema.ts +1 -0
  405. package/src/List.ts +24 -0
  406. package/src/Logger.ts +34 -0
  407. package/src/Mailbox.ts +2 -0
  408. package/src/ManagedRuntime.ts +2 -0
  409. package/src/Metric.ts +18 -0
  410. package/src/Micro.ts +2007 -1745
  411. package/src/Number.ts +104 -0
  412. package/src/Option.ts +142 -0
  413. package/src/Order.ts +2 -0
  414. package/src/Ordering.ts +8 -0
  415. package/src/Predicate.ts +104 -0
  416. package/src/Random.ts +4 -0
  417. package/src/RateLimiter.ts +4 -0
  418. package/src/RcMap.ts +6 -0
  419. package/src/RcRef.ts +2 -0
  420. package/src/Record.ts +136 -0
  421. package/src/Redacted.ts +8 -0
  422. package/src/RegExp.ts +4 -0
  423. package/src/Request.ts +4 -0
  424. package/src/RequestResolver.ts +6 -0
  425. package/src/Runtime.ts +18 -0
  426. package/src/STM.ts +2 -0
  427. package/src/Schema.ts +124 -0
  428. package/src/Sink.ts +11 -0
  429. package/src/Stream.ts +399 -44
  430. package/src/String.ts +94 -0
  431. package/src/Struct.ts +24 -0
  432. package/src/Symbol.ts +2 -0
  433. package/src/Trie.ts +132 -0
  434. package/src/Tuple.ts +42 -0
  435. package/src/Types.ts +24 -0
  436. package/src/Utils.ts +8 -0
  437. package/src/internal/channel/channelExecutor.ts +37 -33
  438. package/src/internal/channel.ts +504 -467
  439. package/src/internal/config.ts +18 -6
  440. package/src/internal/context.ts +56 -4
  441. package/src/internal/dateTime.ts +1126 -0
  442. package/src/internal/fiberRuntime.ts +35 -16
  443. package/src/internal/groupBy.ts +13 -22
  444. package/src/internal/layer.ts +5 -8
  445. package/src/internal/mailbox.ts +6 -4
  446. package/src/internal/sink.ts +55 -35
  447. package/src/internal/stream.ts +299 -299
  448. package/src/internal/version.ts +1 -1
package/src/String.ts CHANGED
@@ -23,10 +23,12 @@ import * as predicate from "./Predicate.js"
23
23
  * @param input - The value to test.
24
24
  *
25
25
  * @example
26
+ * ```ts
26
27
  * import { String } from "effect"
27
28
  *
28
29
  * assert.deepStrictEqual(String.isString("a"), true)
29
30
  * assert.deepStrictEqual(String.isString(1), false)
31
+ * ```
30
32
  *
31
33
  * @category guards
32
34
  * @since 2.0.0
@@ -81,9 +83,11 @@ export const concat: {
81
83
 
82
84
  /**
83
85
  * @example
86
+ * ```ts
84
87
  * import { pipe, String } from "effect"
85
88
  *
86
89
  * assert.deepStrictEqual(pipe('a', String.toUpperCase), 'A')
90
+ * ```
87
91
  *
88
92
  * @since 2.0.0
89
93
  */
@@ -91,9 +95,11 @@ export const toUpperCase = <S extends string>(self: S): Uppercase<S> => self.toU
91
95
 
92
96
  /**
93
97
  * @example
98
+ * ```ts
94
99
  * import { pipe, String } from "effect"
95
100
  *
96
101
  * assert.deepStrictEqual(pipe('A', String.toLowerCase), 'a')
102
+ * ```
97
103
  *
98
104
  * @since 2.0.0
99
105
  */
@@ -101,9 +107,11 @@ export const toLowerCase = <T extends string>(self: T): Lowercase<T> => self.toL
101
107
 
102
108
  /**
103
109
  * @example
110
+ * ```ts
104
111
  * import { pipe, String } from "effect"
105
112
  *
106
113
  * assert.deepStrictEqual(pipe('abc', String.capitalize), 'Abc')
114
+ * ```
107
115
  *
108
116
  * @since 2.0.0
109
117
  */
@@ -115,9 +123,11 @@ export const capitalize = <T extends string>(self: T): Capitalize<T> => {
115
123
 
116
124
  /**
117
125
  * @example
126
+ * ```ts
118
127
  * import { pipe, String } from "effect"
119
128
  *
120
129
  * assert.deepStrictEqual(pipe('ABC', String.uncapitalize), 'aBC')
130
+ * ```
121
131
  *
122
132
  * @since 2.0.0
123
133
  */
@@ -129,9 +139,11 @@ export const uncapitalize = <T extends string>(self: T): Uncapitalize<T> => {
129
139
 
130
140
  /**
131
141
  * @example
142
+ * ```ts
132
143
  * import { pipe, String } from "effect"
133
144
  *
134
145
  * assert.deepStrictEqual(pipe('abc', String.replace('b', 'd')), 'adc')
146
+ * ```
135
147
  *
136
148
  * @since 2.0.0
137
149
  */
@@ -145,9 +157,11 @@ export type Trim<A extends string> = TrimEnd<TrimStart<A>>
145
157
 
146
158
  /**
147
159
  * @example
160
+ * ```ts
148
161
  * import { String } from "effect"
149
162
  *
150
163
  * assert.deepStrictEqual(String.trim(' a '), 'a')
164
+ * ```
151
165
  *
152
166
  * @since 2.0.0
153
167
  */
@@ -160,9 +174,11 @@ export type TrimStart<A extends string> = A extends `${" " | "\n" | "\t" | "\r"}
160
174
 
161
175
  /**
162
176
  * @example
177
+ * ```ts
163
178
  * import { String } from "effect"
164
179
  *
165
180
  * assert.deepStrictEqual(String.trimStart(' a '), 'a ')
181
+ * ```
166
182
  *
167
183
  * @since 2.0.0
168
184
  */
@@ -175,9 +191,11 @@ export type TrimEnd<A extends string> = A extends `${infer B}${" " | "\n" | "\t"
175
191
 
176
192
  /**
177
193
  * @example
194
+ * ```ts
178
195
  * import { String } from "effect"
179
196
  *
180
197
  * assert.deepStrictEqual(String.trimEnd(' a '), ' a')
198
+ * ```
181
199
  *
182
200
  * @since 2.0.0
183
201
  */
@@ -185,9 +203,11 @@ export const trimEnd = <A extends string>(self: A): TrimEnd<A> => self.trimEnd()
185
203
 
186
204
  /**
187
205
  * @example
206
+ * ```ts
188
207
  * import { pipe, String } from "effect"
189
208
  *
190
209
  * assert.deepStrictEqual(pipe('abcd', String.slice(1, 3)), 'bc')
210
+ * ```
191
211
  *
192
212
  * @since 2.0.0
193
213
  */
@@ -197,10 +217,12 @@ export const slice = (start?: number, end?: number) => (self: string): string =>
197
217
  * Test whether a `string` is empty.
198
218
  *
199
219
  * @example
220
+ * ```ts
200
221
  * import { String } from "effect"
201
222
  *
202
223
  * assert.deepStrictEqual(String.isEmpty(''), true)
203
224
  * assert.deepStrictEqual(String.isEmpty('a'), false)
225
+ * ```
204
226
  *
205
227
  * @since 2.0.0
206
228
  */
@@ -217,9 +239,11 @@ export const isNonEmpty = (self: string): boolean => self.length > 0
217
239
  * Calculate the number of characters in a `string`.
218
240
  *
219
241
  * @example
242
+ * ```ts
220
243
  * import { String } from "effect"
221
244
  *
222
245
  * assert.deepStrictEqual(String.length('abc'), 3)
246
+ * ```
223
247
  *
224
248
  * @since 2.0.0
225
249
  */
@@ -227,30 +251,36 @@ export const length = (self: string): number => self.length
227
251
 
228
252
  /**
229
253
  * @example
254
+ * ```ts
230
255
  * import { pipe, String } from "effect"
231
256
  *
232
257
  * assert.deepStrictEqual(pipe('abc', String.split('')), ['a', 'b', 'c'])
233
258
  * assert.deepStrictEqual(pipe('', String.split('')), [''])
259
+ * ```
234
260
  *
235
261
  * @since 2.0.0
236
262
  */
237
263
  export const split: {
238
264
  /**
239
265
  * @example
266
+ * ```ts
240
267
  * import { pipe, String } from "effect"
241
268
  *
242
269
  * assert.deepStrictEqual(pipe('abc', String.split('')), ['a', 'b', 'c'])
243
270
  * assert.deepStrictEqual(pipe('', String.split('')), [''])
271
+ * ```
244
272
  *
245
273
  * @since 2.0.0
246
274
  */
247
275
  (separator: string | RegExp): (self: string) => NonEmptyArray<string>
248
276
  /**
249
277
  * @example
278
+ * ```ts
250
279
  * import { pipe, String } from "effect"
251
280
  *
252
281
  * assert.deepStrictEqual(pipe('abc', String.split('')), ['a', 'b', 'c'])
253
282
  * assert.deepStrictEqual(pipe('', String.split('')), [''])
283
+ * ```
254
284
  *
255
285
  * @since 2.0.0
256
286
  */
@@ -283,30 +313,36 @@ export const endsWith = (searchString: string, position?: number) => (self: stri
283
313
 
284
314
  /**
285
315
  * @example
316
+ * ```ts
286
317
  * import { pipe, String, Option } from "effect"
287
318
  *
288
319
  * assert.deepStrictEqual(pipe("abc", String.charCodeAt(1)), Option.some(98))
289
320
  * assert.deepStrictEqual(pipe("abc", String.charCodeAt(4)), Option.none())
321
+ * ```
290
322
  *
291
323
  * @since 2.0.0
292
324
  */
293
325
  export const charCodeAt: {
294
326
  /**
295
327
  * @example
328
+ * ```ts
296
329
  * import { pipe, String, Option } from "effect"
297
330
  *
298
331
  * assert.deepStrictEqual(pipe("abc", String.charCodeAt(1)), Option.some(98))
299
332
  * assert.deepStrictEqual(pipe("abc", String.charCodeAt(4)), Option.none())
333
+ * ```
300
334
  *
301
335
  * @since 2.0.0
302
336
  */
303
337
  (index: number): (self: string) => Option.Option<number>
304
338
  /**
305
339
  * @example
340
+ * ```ts
306
341
  * import { pipe, String, Option } from "effect"
307
342
  *
308
343
  * assert.deepStrictEqual(pipe("abc", String.charCodeAt(1)), Option.some(98))
309
344
  * assert.deepStrictEqual(pipe("abc", String.charCodeAt(4)), Option.none())
345
+ * ```
310
346
  *
311
347
  * @since 2.0.0
312
348
  */
@@ -319,10 +355,12 @@ export const charCodeAt: {
319
355
 
320
356
  /**
321
357
  * @example
358
+ * ```ts
322
359
  * import { pipe, String, Option } from "effect"
323
360
  *
324
361
  * assert.deepStrictEqual(pipe("abcd", String.substring(1)), "bcd")
325
362
  * assert.deepStrictEqual(pipe("abcd", String.substring(1, 3)), "bc")
363
+ * ```
326
364
  *
327
365
  * @since 2.0.0
328
366
  */
@@ -330,30 +368,36 @@ export const substring = (start: number, end?: number) => (self: string): string
330
368
 
331
369
  /**
332
370
  * @example
371
+ * ```ts
333
372
  * import { pipe, String, Option } from "effect"
334
373
  *
335
374
  * assert.deepStrictEqual(pipe("abc", String.at(1)), Option.some("b"))
336
375
  * assert.deepStrictEqual(pipe("abc", String.at(4)), Option.none())
376
+ * ```
337
377
  *
338
378
  * @since 2.0.0
339
379
  */
340
380
  export const at: {
341
381
  /**
342
382
  * @example
383
+ * ```ts
343
384
  * import { pipe, String, Option } from "effect"
344
385
  *
345
386
  * assert.deepStrictEqual(pipe("abc", String.at(1)), Option.some("b"))
346
387
  * assert.deepStrictEqual(pipe("abc", String.at(4)), Option.none())
388
+ * ```
347
389
  *
348
390
  * @since 2.0.0
349
391
  */
350
392
  (index: number): (self: string) => Option.Option<string>
351
393
  /**
352
394
  * @example
395
+ * ```ts
353
396
  * import { pipe, String, Option } from "effect"
354
397
  *
355
398
  * assert.deepStrictEqual(pipe("abc", String.at(1)), Option.some("b"))
356
399
  * assert.deepStrictEqual(pipe("abc", String.at(4)), Option.none())
400
+ * ```
357
401
  *
358
402
  * @since 2.0.0
359
403
  */
@@ -362,30 +406,36 @@ export const at: {
362
406
 
363
407
  /**
364
408
  * @example
409
+ * ```ts
365
410
  * import { pipe, String, Option } from "effect"
366
411
  *
367
412
  * assert.deepStrictEqual(pipe("abc", String.charAt(1)), Option.some("b"))
368
413
  * assert.deepStrictEqual(pipe("abc", String.charAt(4)), Option.none())
414
+ * ```
369
415
  *
370
416
  * @since 2.0.0
371
417
  */
372
418
  export const charAt: {
373
419
  /**
374
420
  * @example
421
+ * ```ts
375
422
  * import { pipe, String, Option } from "effect"
376
423
  *
377
424
  * assert.deepStrictEqual(pipe("abc", String.charAt(1)), Option.some("b"))
378
425
  * assert.deepStrictEqual(pipe("abc", String.charAt(4)), Option.none())
426
+ * ```
379
427
  *
380
428
  * @since 2.0.0
381
429
  */
382
430
  (index: number): (self: string) => Option.Option<string>
383
431
  /**
384
432
  * @example
433
+ * ```ts
385
434
  * import { pipe, String, Option } from "effect"
386
435
  *
387
436
  * assert.deepStrictEqual(pipe("abc", String.charAt(1)), Option.some("b"))
388
437
  * assert.deepStrictEqual(pipe("abc", String.charAt(4)), Option.none())
438
+ * ```
389
439
  *
390
440
  * @since 2.0.0
391
441
  */
@@ -397,27 +447,33 @@ export const charAt: {
397
447
 
398
448
  /**
399
449
  * @example
450
+ * ```ts
400
451
  * import { pipe, String, Option } from "effect"
401
452
  *
402
453
  * assert.deepStrictEqual(pipe("abc", String.codePointAt(1)), Option.some(98))
454
+ * ```
403
455
  *
404
456
  * @since 2.0.0
405
457
  */
406
458
  export const codePointAt: {
407
459
  /**
408
460
  * @example
461
+ * ```ts
409
462
  * import { pipe, String, Option } from "effect"
410
463
  *
411
464
  * assert.deepStrictEqual(pipe("abc", String.codePointAt(1)), Option.some(98))
465
+ * ```
412
466
  *
413
467
  * @since 2.0.0
414
468
  */
415
469
  (index: number): (self: string) => Option.Option<number>
416
470
  /**
417
471
  * @example
472
+ * ```ts
418
473
  * import { pipe, String, Option } from "effect"
419
474
  *
420
475
  * assert.deepStrictEqual(pipe("abc", String.codePointAt(1)), Option.some(98))
476
+ * ```
421
477
  *
422
478
  * @since 2.0.0
423
479
  */
@@ -426,9 +482,11 @@ export const codePointAt: {
426
482
 
427
483
  /**
428
484
  * @example
485
+ * ```ts
429
486
  * import { pipe, String, Option } from "effect"
430
487
  *
431
488
  * assert.deepStrictEqual(pipe("abbbc", String.indexOf("b")), Option.some(1))
489
+ * ```
432
490
  *
433
491
  * @since 2.0.0
434
492
  */
@@ -437,10 +495,12 @@ export const indexOf = (searchString: string) => (self: string): Option.Option<n
437
495
 
438
496
  /**
439
497
  * @example
498
+ * ```ts
440
499
  * import { pipe, String, Option } from "effect"
441
500
  *
442
501
  * assert.deepStrictEqual(pipe("abbbc", String.lastIndexOf("b")), Option.some(3))
443
502
  * assert.deepStrictEqual(pipe("abbbc", String.lastIndexOf("d")), Option.none())
503
+ * ```
444
504
  *
445
505
  * @since 2.0.0
446
506
  */
@@ -449,11 +509,13 @@ export const lastIndexOf = (searchString: string) => (self: string): Option.Opti
449
509
 
450
510
  /**
451
511
  * @example
512
+ * ```ts
452
513
  * import { pipe, String } from "effect"
453
514
  *
454
515
  * assert.deepStrictEqual(pipe("a", String.localeCompare("b")), -1)
455
516
  * assert.deepStrictEqual(pipe("b", String.localeCompare("a")), 1)
456
517
  * assert.deepStrictEqual(pipe("a", String.localeCompare("a")), 0)
518
+ * ```
457
519
  *
458
520
  * @since 2.0.0
459
521
  */
@@ -478,6 +540,7 @@ export const matchAll = (regexp: RegExp) => (self: string): IterableIterator<Reg
478
540
 
479
541
  /**
480
542
  * @example
543
+ * ```ts
481
544
  * import { pipe, String } from "effect"
482
545
  *
483
546
  * const str = "\u1E9B\u0323";
@@ -486,6 +549,7 @@ export const matchAll = (regexp: RegExp) => (self: string): IterableIterator<Reg
486
549
  * assert.deepStrictEqual(pipe(str, String.normalize("NFD")), "\u017F\u0323\u0307")
487
550
  * assert.deepStrictEqual(pipe(str, String.normalize("NFKC")), "\u1E69")
488
551
  * assert.deepStrictEqual(pipe(str, String.normalize("NFKD")), "\u0073\u0323\u0307")
552
+ * ```
489
553
  *
490
554
  * @since 2.0.0
491
555
  */
@@ -493,10 +557,12 @@ export const normalize = (form?: "NFC" | "NFD" | "NFKC" | "NFKD") => (self: stri
493
557
 
494
558
  /**
495
559
  * @example
560
+ * ```ts
496
561
  * import { pipe, String } from "effect"
497
562
  *
498
563
  * assert.deepStrictEqual(pipe("a", String.padEnd(5)), "a ")
499
564
  * assert.deepStrictEqual(pipe("a", String.padEnd(5, "_")), "a____")
565
+ * ```
500
566
  *
501
567
  * @since 2.0.0
502
568
  */
@@ -505,10 +571,12 @@ export const padEnd = (maxLength: number, fillString?: string) => (self: string)
505
571
 
506
572
  /**
507
573
  * @example
574
+ * ```ts
508
575
  * import { pipe, String } from "effect"
509
576
  *
510
577
  * assert.deepStrictEqual(pipe("a", String.padStart(5)), " a")
511
578
  * assert.deepStrictEqual(pipe("a", String.padStart(5, "_")), "____a")
579
+ * ```
512
580
  *
513
581
  * @since 2.0.0
514
582
  */
@@ -517,9 +585,11 @@ export const padStart = (maxLength: number, fillString?: string) => (self: strin
517
585
 
518
586
  /**
519
587
  * @example
588
+ * ```ts
520
589
  * import { pipe, String } from "effect"
521
590
  *
522
591
  * assert.deepStrictEqual(pipe("a", String.repeat(5)), "aaaaa")
592
+ * ```
523
593
  *
524
594
  * @since 2.0.0
525
595
  */
@@ -527,10 +597,12 @@ export const repeat = (count: number) => (self: string): string => self.repeat(c
527
597
 
528
598
  /**
529
599
  * @example
600
+ * ```ts
530
601
  * import { pipe, String } from "effect"
531
602
  *
532
603
  * assert.deepStrictEqual(pipe("ababb", String.replaceAll("b", "c")), "acacc")
533
604
  * assert.deepStrictEqual(pipe("ababb", String.replaceAll(/ba/g, "cc")), "accbb")
605
+ * ```
534
606
  *
535
607
  * @since 2.0.0
536
608
  */
@@ -539,33 +611,39 @@ export const replaceAll = (searchValue: string | RegExp, replaceValue: string) =
539
611
 
540
612
  /**
541
613
  * @example
614
+ * ```ts
542
615
  * import { pipe, String, Option } from "effect"
543
616
  *
544
617
  * assert.deepStrictEqual(pipe("ababb", String.search("b")), Option.some(1))
545
618
  * assert.deepStrictEqual(pipe("ababb", String.search(/abb/)), Option.some(2))
546
619
  * assert.deepStrictEqual(pipe("ababb", String.search("d")), Option.none())
620
+ * ```
547
621
  *
548
622
  * @since 2.0.0
549
623
  */
550
624
  export const search: {
551
625
  /**
552
626
  * @example
627
+ * ```ts
553
628
  * import { pipe, String, Option } from "effect"
554
629
  *
555
630
  * assert.deepStrictEqual(pipe("ababb", String.search("b")), Option.some(1))
556
631
  * assert.deepStrictEqual(pipe("ababb", String.search(/abb/)), Option.some(2))
557
632
  * assert.deepStrictEqual(pipe("ababb", String.search("d")), Option.none())
633
+ * ```
558
634
  *
559
635
  * @since 2.0.0
560
636
  */
561
637
  (regexp: RegExp | string): (self: string) => Option.Option<number>
562
638
  /**
563
639
  * @example
640
+ * ```ts
564
641
  * import { pipe, String, Option } from "effect"
565
642
  *
566
643
  * assert.deepStrictEqual(pipe("ababb", String.search("b")), Option.some(1))
567
644
  * assert.deepStrictEqual(pipe("ababb", String.search(/abb/)), Option.some(2))
568
645
  * assert.deepStrictEqual(pipe("ababb", String.search("d")), Option.none())
646
+ * ```
569
647
  *
570
648
  * @since 2.0.0
571
649
  */
@@ -578,10 +656,12 @@ export const search: {
578
656
 
579
657
  /**
580
658
  * @example
659
+ * ```ts
581
660
  * import { pipe, String } from "effect"
582
661
  *
583
662
  * const str = "\u0130"
584
663
  * assert.deepStrictEqual(pipe(str, String.toLocaleLowerCase("tr")), "i")
664
+ * ```
585
665
  *
586
666
  * @since 2.0.0
587
667
  */
@@ -590,10 +670,12 @@ export const toLocaleLowerCase = (locale?: string | Array<string>) => (self: str
590
670
 
591
671
  /**
592
672
  * @example
673
+ * ```ts
593
674
  * import { pipe, String } from "effect"
594
675
  *
595
676
  * const str = "i\u0307"
596
677
  * assert.deepStrictEqual(pipe(str, String.toLocaleUpperCase("lt-LT")), "I")
678
+ * ```
597
679
  *
598
680
  * @since 2.0.0
599
681
  */
@@ -611,9 +693,11 @@ export const toLocaleUpperCase = (locale?: string | Array<string>) => (self: str
611
693
  * If `n` is a float, it will be rounded down to the nearest integer.
612
694
  *
613
695
  * @example
696
+ * ```ts
614
697
  * import { String } from "effect"
615
698
  *
616
699
  * assert.deepStrictEqual(String.takeLeft("Hello World", 5), "Hello")
700
+ * ```
617
701
  *
618
702
  * @since 2.0.0
619
703
  */
@@ -629,9 +713,11 @@ export const takeLeft: {
629
713
  * If `n` is a float, it will be rounded down to the nearest integer.
630
714
  *
631
715
  * @example
716
+ * ```ts
632
717
  * import { String } from "effect"
633
718
  *
634
719
  * assert.deepStrictEqual(String.takeLeft("Hello World", 5), "Hello")
720
+ * ```
635
721
  *
636
722
  * @since 2.0.0
637
723
  */
@@ -647,9 +733,11 @@ export const takeLeft: {
647
733
  * If `n` is a float, it will be rounded down to the nearest integer.
648
734
  *
649
735
  * @example
736
+ * ```ts
650
737
  * import { String } from "effect"
651
738
  *
652
739
  * assert.deepStrictEqual(String.takeLeft("Hello World", 5), "Hello")
740
+ * ```
653
741
  *
654
742
  * @since 2.0.0
655
743
  */
@@ -667,9 +755,11 @@ export const takeLeft: {
667
755
  * If `n` is a float, it will be rounded down to the nearest integer.
668
756
  *
669
757
  * @example
758
+ * ```ts
670
759
  * import { String } from "effect"
671
760
  *
672
761
  * assert.deepStrictEqual(String.takeRight("Hello World", 5), "World")
762
+ * ```
673
763
  *
674
764
  * @since 2.0.0
675
765
  */
@@ -685,9 +775,11 @@ export const takeRight: {
685
775
  * If `n` is a float, it will be rounded down to the nearest integer.
686
776
  *
687
777
  * @example
778
+ * ```ts
688
779
  * import { String } from "effect"
689
780
  *
690
781
  * assert.deepStrictEqual(String.takeRight("Hello World", 5), "World")
782
+ * ```
691
783
  *
692
784
  * @since 2.0.0
693
785
  */
@@ -703,9 +795,11 @@ export const takeRight: {
703
795
  * If `n` is a float, it will be rounded down to the nearest integer.
704
796
  *
705
797
  * @example
798
+ * ```ts
706
799
  * import { String } from "effect"
707
800
  *
708
801
  * assert.deepStrictEqual(String.takeRight("Hello World", 5), "World")
802
+ * ```
709
803
  *
710
804
  * @since 2.0.0
711
805
  */