rubico 2.11.0 → 2.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/README.md +16 -20
  2. package/Transducer.js +37 -58
  3. package/__.js +3 -3
  4. package/always.js +4 -4
  5. package/and.js +34 -26
  6. package/assign.js +2 -2
  7. package/compose.js +1 -0
  8. package/curry.js +48 -28
  9. package/dist/Transducer.es.js +1 -1
  10. package/dist/Transducer.es.min.js +1 -1
  11. package/dist/Transducer.js +1 -1
  12. package/dist/Transducer.min.js +1 -1
  13. package/dist/Transducer.mjs +1 -1
  14. package/dist/__.es.js +1 -1
  15. package/dist/__.es.min.js +1 -1
  16. package/dist/__.js +1 -1
  17. package/dist/__.min.js +1 -1
  18. package/dist/__.mjs +1 -1
  19. package/dist/all.es.js +1 -1
  20. package/dist/all.es.min.js +1 -1
  21. package/dist/all.js +1 -1
  22. package/dist/all.min.js +1 -1
  23. package/dist/all.mjs +1 -1
  24. package/dist/always.es.js +1 -1
  25. package/dist/always.es.min.js +1 -1
  26. package/dist/always.js +1 -1
  27. package/dist/always.min.js +1 -1
  28. package/dist/always.mjs +1 -1
  29. package/dist/and.es.js +1 -1
  30. package/dist/and.es.min.js +1 -1
  31. package/dist/and.js +1 -1
  32. package/dist/and.min.js +1 -1
  33. package/dist/and.mjs +1 -1
  34. package/dist/assign.es.js +1 -1
  35. package/dist/assign.es.min.js +1 -1
  36. package/dist/assign.js +1 -1
  37. package/dist/assign.min.js +1 -1
  38. package/dist/assign.mjs +1 -1
  39. package/dist/compose.es.js +1 -1
  40. package/dist/compose.es.min.js +1 -1
  41. package/dist/compose.js +1 -1
  42. package/dist/compose.min.js +1 -1
  43. package/dist/compose.mjs +1 -1
  44. package/dist/curry.es.js +1 -1
  45. package/dist/curry.es.min.js +1 -1
  46. package/dist/curry.js +1 -1
  47. package/dist/curry.min.js +1 -1
  48. package/dist/curry.mjs +1 -1
  49. package/dist/eq.es.js +1 -1
  50. package/dist/eq.es.min.js +1 -1
  51. package/dist/eq.js +1 -1
  52. package/dist/eq.min.js +1 -1
  53. package/dist/eq.mjs +1 -1
  54. package/dist/every.es.js +1 -1
  55. package/dist/every.es.min.js +1 -1
  56. package/dist/every.js +1 -1
  57. package/dist/every.min.js +1 -1
  58. package/dist/every.mjs +1 -1
  59. package/dist/filter.es.js +113 -19
  60. package/dist/filter.es.min.js +2 -2
  61. package/dist/filter.js +113 -19
  62. package/dist/filter.min.js +2 -2
  63. package/dist/filter.mjs +113 -19
  64. package/dist/flatMap.es.js +1 -1
  65. package/dist/flatMap.es.min.js +1 -1
  66. package/dist/flatMap.js +1 -1
  67. package/dist/flatMap.min.js +1 -1
  68. package/dist/flatMap.mjs +1 -1
  69. package/dist/forEach.es.js +1 -1
  70. package/dist/forEach.es.min.js +1 -1
  71. package/dist/forEach.js +1 -1
  72. package/dist/forEach.min.js +1 -1
  73. package/dist/forEach.mjs +1 -1
  74. package/dist/get.es.js +1 -1
  75. package/dist/get.es.min.js +1 -1
  76. package/dist/get.js +1 -1
  77. package/dist/get.min.js +1 -1
  78. package/dist/get.mjs +1 -1
  79. package/dist/gt.es.js +1 -1
  80. package/dist/gt.es.min.js +1 -1
  81. package/dist/gt.js +1 -1
  82. package/dist/gt.min.js +1 -1
  83. package/dist/gt.mjs +1 -1
  84. package/dist/gte.es.js +1 -1
  85. package/dist/gte.es.min.js +1 -1
  86. package/dist/gte.js +1 -1
  87. package/dist/gte.min.js +1 -1
  88. package/dist/gte.mjs +1 -1
  89. package/dist/lt.es.js +1 -1
  90. package/dist/lt.es.min.js +1 -1
  91. package/dist/lt.js +1 -1
  92. package/dist/lt.min.js +1 -1
  93. package/dist/lt.mjs +1 -1
  94. package/dist/lte.es.js +1 -1
  95. package/dist/lte.es.min.js +1 -1
  96. package/dist/lte.js +1 -1
  97. package/dist/lte.min.js +1 -1
  98. package/dist/lte.mjs +1 -1
  99. package/dist/map.es.js +1 -1
  100. package/dist/map.es.min.js +1 -1
  101. package/dist/map.js +1 -1
  102. package/dist/map.min.js +1 -1
  103. package/dist/map.mjs +1 -1
  104. package/dist/not.es.js +1 -1
  105. package/dist/not.es.min.js +1 -1
  106. package/dist/not.js +1 -1
  107. package/dist/not.min.js +1 -1
  108. package/dist/not.mjs +1 -1
  109. package/dist/omit.es.js +1 -1
  110. package/dist/omit.es.min.js +1 -1
  111. package/dist/omit.js +1 -1
  112. package/dist/omit.min.js +1 -1
  113. package/dist/omit.mjs +1 -1
  114. package/dist/or.es.js +1 -1
  115. package/dist/or.es.min.js +1 -1
  116. package/dist/or.js +1 -1
  117. package/dist/or.min.js +1 -1
  118. package/dist/or.mjs +1 -1
  119. package/dist/pick.es.js +1 -1
  120. package/dist/pick.es.min.js +1 -1
  121. package/dist/pick.js +1 -1
  122. package/dist/pick.min.js +1 -1
  123. package/dist/pick.mjs +1 -1
  124. package/dist/pipe.es.js +1 -1
  125. package/dist/pipe.es.min.js +1 -1
  126. package/dist/pipe.js +1 -1
  127. package/dist/pipe.min.js +1 -1
  128. package/dist/pipe.mjs +1 -1
  129. package/dist/reduce.es.js +1 -1
  130. package/dist/reduce.es.min.js +1 -1
  131. package/dist/reduce.js +1 -1
  132. package/dist/reduce.min.js +1 -1
  133. package/dist/reduce.mjs +1 -1
  134. package/dist/rubico.es.js +57 -19
  135. package/dist/rubico.es.min.js +2 -2
  136. package/dist/rubico.global.js +57 -19
  137. package/dist/rubico.global.min.js +2 -2
  138. package/dist/rubico.js +57 -19
  139. package/dist/rubico.min.js +2 -2
  140. package/dist/rubico.mjs +57 -19
  141. package/dist/set.es.js +1 -1
  142. package/dist/set.es.min.js +1 -1
  143. package/dist/set.js +1 -1
  144. package/dist/set.min.js +1 -1
  145. package/dist/set.mjs +1 -1
  146. package/dist/some.es.js +1 -1
  147. package/dist/some.es.min.js +1 -1
  148. package/dist/some.js +1 -1
  149. package/dist/some.min.js +1 -1
  150. package/dist/some.mjs +1 -1
  151. package/dist/switchCase.es.js +1 -1
  152. package/dist/switchCase.es.min.js +1 -1
  153. package/dist/switchCase.js +1 -1
  154. package/dist/switchCase.min.js +1 -1
  155. package/dist/switchCase.mjs +1 -1
  156. package/dist/tap.es.js +1 -1
  157. package/dist/tap.es.min.js +1 -1
  158. package/dist/tap.js +1 -1
  159. package/dist/tap.min.js +1 -1
  160. package/dist/tap.mjs +1 -1
  161. package/dist/thunkify.es.js +1 -1
  162. package/dist/thunkify.es.min.js +1 -1
  163. package/dist/thunkify.js +1 -1
  164. package/dist/thunkify.min.js +1 -1
  165. package/dist/thunkify.mjs +1 -1
  166. package/dist/transform.es.js +1 -1
  167. package/dist/transform.es.min.js +1 -1
  168. package/dist/transform.js +1 -1
  169. package/dist/transform.min.js +1 -1
  170. package/dist/transform.mjs +1 -1
  171. package/dist/tryCatch.es.js +1 -1
  172. package/dist/tryCatch.es.min.js +1 -1
  173. package/dist/tryCatch.js +1 -1
  174. package/dist/tryCatch.min.js +1 -1
  175. package/dist/tryCatch.mjs +1 -1
  176. package/dist/x/append.es.js +1 -1
  177. package/dist/x/append.es.min.js +1 -1
  178. package/dist/x/append.js +1 -1
  179. package/dist/x/append.min.js +1 -1
  180. package/dist/x/append.mjs +1 -1
  181. package/dist/x/callProp.es.js +1 -1
  182. package/dist/x/callProp.es.min.js +1 -1
  183. package/dist/x/callProp.js +1 -1
  184. package/dist/x/callProp.min.js +1 -1
  185. package/dist/x/callProp.mjs +1 -1
  186. package/dist/x/defaultsDeep.es.js +1 -1
  187. package/dist/x/defaultsDeep.es.min.js +1 -1
  188. package/dist/x/defaultsDeep.js +1 -1
  189. package/dist/x/defaultsDeep.min.js +1 -1
  190. package/dist/x/defaultsDeep.mjs +1 -1
  191. package/dist/x/differenceWith.es.js +1 -1
  192. package/dist/x/differenceWith.es.min.js +1 -1
  193. package/dist/x/differenceWith.js +1 -1
  194. package/dist/x/differenceWith.min.js +1 -1
  195. package/dist/x/differenceWith.mjs +1 -1
  196. package/dist/x/filterOut.es.js +113 -19
  197. package/dist/x/filterOut.es.min.js +2 -2
  198. package/dist/x/filterOut.js +113 -19
  199. package/dist/x/filterOut.min.js +2 -2
  200. package/dist/x/filterOut.mjs +113 -19
  201. package/dist/x/find.es.js +1 -1
  202. package/dist/x/find.es.min.js +1 -1
  203. package/dist/x/find.js +1 -1
  204. package/dist/x/find.min.js +1 -1
  205. package/dist/x/find.mjs +1 -1
  206. package/dist/x/findIndex.es.js +1 -1
  207. package/dist/x/findIndex.es.min.js +1 -1
  208. package/dist/x/findIndex.js +1 -1
  209. package/dist/x/findIndex.min.js +1 -1
  210. package/dist/x/findIndex.mjs +1 -1
  211. package/dist/x/first.es.js +1 -1
  212. package/dist/x/first.es.min.js +1 -1
  213. package/dist/x/first.js +1 -1
  214. package/dist/x/first.min.js +1 -1
  215. package/dist/x/first.mjs +1 -1
  216. package/dist/x/flatten.es.js +1 -1
  217. package/dist/x/flatten.es.min.js +1 -1
  218. package/dist/x/flatten.js +1 -1
  219. package/dist/x/flatten.min.js +1 -1
  220. package/dist/x/flatten.mjs +1 -1
  221. package/dist/x/groupBy.es.js +1 -1
  222. package/dist/x/groupBy.es.min.js +1 -1
  223. package/dist/x/groupBy.js +1 -1
  224. package/dist/x/groupBy.min.js +1 -1
  225. package/dist/x/groupBy.mjs +1 -1
  226. package/dist/x/has.es.js +1 -1
  227. package/dist/x/has.es.min.js +1 -1
  228. package/dist/x/has.js +1 -1
  229. package/dist/x/has.min.js +1 -1
  230. package/dist/x/has.mjs +1 -1
  231. package/dist/x/identity.es.js +1 -1
  232. package/dist/x/identity.es.min.js +1 -1
  233. package/dist/x/identity.js +1 -1
  234. package/dist/x/identity.min.js +1 -1
  235. package/dist/x/identity.mjs +1 -1
  236. package/dist/x/includes.es.js +1 -1
  237. package/dist/x/includes.es.min.js +1 -1
  238. package/dist/x/includes.js +1 -1
  239. package/dist/x/includes.min.js +1 -1
  240. package/dist/x/includes.mjs +1 -1
  241. package/dist/x/isDeepEqual.es.js +1 -1
  242. package/dist/x/isDeepEqual.es.min.js +1 -1
  243. package/dist/x/isDeepEqual.js +1 -1
  244. package/dist/x/isDeepEqual.min.js +1 -1
  245. package/dist/x/isDeepEqual.mjs +1 -1
  246. package/dist/x/isEmpty.es.js +1 -1
  247. package/dist/x/isEmpty.es.min.js +1 -1
  248. package/dist/x/isEmpty.js +1 -1
  249. package/dist/x/isEmpty.min.js +1 -1
  250. package/dist/x/isEmpty.mjs +1 -1
  251. package/dist/x/isEqual.es.js +1 -1
  252. package/dist/x/isEqual.es.min.js +1 -1
  253. package/dist/x/isEqual.js +1 -1
  254. package/dist/x/isEqual.min.js +1 -1
  255. package/dist/x/isEqual.mjs +1 -1
  256. package/dist/x/isFunction.es.js +1 -1
  257. package/dist/x/isFunction.es.min.js +1 -1
  258. package/dist/x/isFunction.js +1 -1
  259. package/dist/x/isFunction.min.js +1 -1
  260. package/dist/x/isFunction.mjs +1 -1
  261. package/dist/x/isIn.es.js +1 -1
  262. package/dist/x/isIn.es.min.js +1 -1
  263. package/dist/x/isIn.js +1 -1
  264. package/dist/x/isIn.min.js +1 -1
  265. package/dist/x/isIn.mjs +1 -1
  266. package/dist/x/isObject.es.js +1 -1
  267. package/dist/x/isObject.es.min.js +1 -1
  268. package/dist/x/isObject.js +1 -1
  269. package/dist/x/isObject.min.js +1 -1
  270. package/dist/x/isObject.mjs +1 -1
  271. package/dist/x/isString.es.js +1 -1
  272. package/dist/x/isString.es.min.js +1 -1
  273. package/dist/x/isString.js +1 -1
  274. package/dist/x/isString.min.js +1 -1
  275. package/dist/x/isString.mjs +1 -1
  276. package/dist/x/keys.es.js +1 -1
  277. package/dist/x/keys.es.min.js +1 -1
  278. package/dist/x/keys.js +1 -1
  279. package/dist/x/keys.min.js +1 -1
  280. package/dist/x/keys.mjs +1 -1
  281. package/dist/x/last.es.js +1 -1
  282. package/dist/x/last.es.min.js +1 -1
  283. package/dist/x/last.js +1 -1
  284. package/dist/x/last.min.js +1 -1
  285. package/dist/x/last.mjs +1 -1
  286. package/dist/x/maxBy.es.js +1 -1
  287. package/dist/x/maxBy.es.min.js +1 -1
  288. package/dist/x/maxBy.js +1 -1
  289. package/dist/x/maxBy.min.js +1 -1
  290. package/dist/x/maxBy.mjs +1 -1
  291. package/dist/x/noop.es.js +1 -1
  292. package/dist/x/noop.es.min.js +1 -1
  293. package/dist/x/noop.js +1 -1
  294. package/dist/x/noop.min.js +1 -1
  295. package/dist/x/noop.mjs +1 -1
  296. package/dist/x/pluck.es.js +1 -1
  297. package/dist/x/pluck.es.min.js +1 -1
  298. package/dist/x/pluck.js +1 -1
  299. package/dist/x/pluck.min.js +1 -1
  300. package/dist/x/pluck.mjs +1 -1
  301. package/dist/x/prepend.es.js +1 -1
  302. package/dist/x/prepend.es.min.js +1 -1
  303. package/dist/x/prepend.js +1 -1
  304. package/dist/x/prepend.min.js +1 -1
  305. package/dist/x/prepend.mjs +1 -1
  306. package/dist/x/size.es.js +1 -1
  307. package/dist/x/size.es.min.js +1 -1
  308. package/dist/x/size.js +1 -1
  309. package/dist/x/size.min.js +1 -1
  310. package/dist/x/size.mjs +1 -1
  311. package/dist/x/trace.es.js +1 -1
  312. package/dist/x/trace.es.min.js +1 -1
  313. package/dist/x/trace.js +1 -1
  314. package/dist/x/trace.min.js +1 -1
  315. package/dist/x/trace.mjs +1 -1
  316. package/dist/x/unionWith.es.js +1 -1
  317. package/dist/x/unionWith.es.min.js +1 -1
  318. package/dist/x/unionWith.js +1 -1
  319. package/dist/x/unionWith.min.js +1 -1
  320. package/dist/x/unionWith.mjs +1 -1
  321. package/dist/x/uniq.es.js +1 -1
  322. package/dist/x/uniq.es.min.js +1 -1
  323. package/dist/x/uniq.js +1 -1
  324. package/dist/x/uniq.min.js +1 -1
  325. package/dist/x/uniq.mjs +1 -1
  326. package/dist/x/unless.es.js +1 -1
  327. package/dist/x/unless.es.min.js +1 -1
  328. package/dist/x/unless.js +1 -1
  329. package/dist/x/unless.min.js +1 -1
  330. package/dist/x/unless.mjs +1 -1
  331. package/dist/x/values.es.js +1 -1
  332. package/dist/x/values.es.min.js +1 -1
  333. package/dist/x/values.js +1 -1
  334. package/dist/x/values.min.js +1 -1
  335. package/dist/x/values.mjs +1 -1
  336. package/dist/x/when.es.js +1 -1
  337. package/dist/x/when.es.min.js +1 -1
  338. package/dist/x/when.js +1 -1
  339. package/dist/x/when.min.js +1 -1
  340. package/dist/x/when.mjs +1 -1
  341. package/eq.js +29 -30
  342. package/es.js +57 -19
  343. package/every.js +14 -20
  344. package/filter.js +38 -75
  345. package/flatMap.js +13 -13
  346. package/forEach.js +8 -8
  347. package/get.js +3 -3
  348. package/gt.js +18 -25
  349. package/gte.js +22 -29
  350. package/index.js +57 -19
  351. package/lt.js +33 -31
  352. package/lte.js +24 -31
  353. package/map.js +32 -35
  354. package/not.js +12 -17
  355. package/or.js +34 -26
  356. package/package.json +1 -1
  357. package/reduce.js +60 -67
  358. package/some.js +11 -34
  359. package/switchCase.js +3 -3
  360. package/thunkify.js +42 -12
  361. package/transform.js +57 -56
package/README.md CHANGED
@@ -23,7 +23,7 @@ const numbers = [1, 2, 3, 4, 5]
23
23
  pipe(numbers, [
24
24
  filter(isOdd),
25
25
  map(asyncSquare),
26
- console.log, // [1, 9, 25]
26
+ console.log,
27
27
  ])
28
28
  ```
29
29
 
@@ -94,32 +94,37 @@ Rubico is a library for [A]synchronous Functional Programming in JavaScript. The
94
94
 
95
95
  ```javascript
96
96
  const {
97
- // compose functions
97
+
98
+ // function composition
98
99
  pipe, compose, tap,
99
100
 
100
- // control flow
101
+ // conditional operators
101
102
  switchCase,
102
103
 
103
- // handle errors
104
+ // error handling
104
105
  tryCatch,
105
106
 
106
- // compose data
107
+ // data construction
107
108
  all, assign, get, set, pick, omit,
108
109
 
109
- // iterate
110
+ // iteration
110
111
  forEach,
111
112
 
112
- // transform data
113
+ // transformation
113
114
  map, filter, reduce, transform, flatMap,
114
115
 
115
- // compose predicates
116
- and, or, not, some, every,
116
+ // data testing
117
+ some, every,
118
+
119
+ // logical operators
120
+ and, or, not,
117
121
 
118
122
  // comparison operators
119
123
  eq, gt, lt, gte, lte,
120
124
 
121
125
  // partial application
122
126
  thunkify, always, curry, __,
127
+
123
128
  } = rubico
124
129
  ```
125
130
 
@@ -133,7 +138,7 @@ pipe(helloPromise, [ // helloPromise is resolved for 'hello'
133
138
  // the Promise returned from the async function is resolved
134
139
  // and the resolved value is passed to console.log
135
140
 
136
- console.log, // hello world
141
+ console.log,
137
142
  ])
138
143
  ```
139
144
 
@@ -151,7 +156,6 @@ const myDuplicatedSquaredObject = map(myObj, pipe([
151
156
  ]))
152
157
 
153
158
  console.log(myDuplicatedSquaredObject)
154
- // { a: [1, 1], b: [4, 4], c: [9, 9] }
155
159
  ```
156
160
 
157
161
  The Rubico operators are versatile and act on a wide range of vanilla JavaScript types to create declarative, extensible, and async-enabled function compositions. The same operator `map` can act on an array and also a `Map` data structure.
@@ -172,11 +176,6 @@ pipe(todoIDs, [
172
176
  response => response.json(),
173
177
 
174
178
  tap(console.log),
175
- // { userId: 1, id: 4, title: 'et porro tempora', completed: true }
176
- // { userId: 1, id: 1, title: 'delectus aut autem', completed: false }
177
- // { userId: 1, id: 3, title: 'fugiat veniam minus', completed: false }
178
- // { userId: 1, id: 2, title: 'quis ut nam facilis...', completed: false }
179
- // { userId: 1, id: 5, title: 'laboriosam mollitia...', completed: false }
180
179
  ])),
181
180
 
182
181
  // group the todos by userId in a new Map
@@ -201,9 +200,6 @@ pipe(todoIDs, [
201
200
  })),
202
201
 
203
202
  tap(console.log),
204
- // Map(1) {
205
- // 1 => [ { userId: 1, id: 4, title: 'et porro tempora', completed: true } ]
206
- // }
207
203
  ])
208
204
  ```
209
205
 
@@ -227,7 +223,7 @@ pipe(generateNumbers(), [
227
223
  Transducer.filter(isOdd),
228
224
  Transducer.map(asyncSquare),
229
225
  ), []),
230
- console.log, // [1, 9, 25]
226
+ console.log,
231
227
  ])
232
228
  ```
233
229
 
package/Transducer.js CHANGED
@@ -23,20 +23,18 @@ const Transducer = {}
23
23
  * ```coffeescript [specscript]
24
24
  * type SyncOrAsyncReducer = (accumulator any, value any)=>(nextAccumulator Promise|any)
25
25
  * type Transducer = SyncOrAsyncReducer=>SyncOrAsyncReducer
26
- * type UnarySyncOrAsyncMapper = (element any)=>(resultElement Promise|any)
26
+ * type UnarySyncOrAsyncMapper = (item any)=>(mappedItem Promise|any)
27
27
  *
28
- * mapper UnarySyncOrAsyncMapper
29
- *
30
- * Transducer.map(mapper) -> mappingTransducer Transducer
28
+ * Transducer.map(mapper UnarySyncOrAsyncMapper) -> mappingTransducer Transducer
31
29
  * ```
32
30
  *
33
31
  * @description
34
- * Creates a mapping transducer. Elements of the transducer's reducing operation are transformed by the mapper function. It is possible to use an asynchronous mapper, however the reducing operation must support asynchronous execution. This library provides such implementations as [reduce](/docs/reduce) and [transform](/docs/transform).
32
+ * Creates a mapping [transducer](/blog/transducers-crash-course). Items of the transducer's reducing operation are transformed by the mapper function. It is possible to use an asynchronous mapper, however the reducing operation must support asynchronous execution. This library provides such implementations as [reduce](/docs/reduce) and [transform](/docs/transform).
35
33
  *
36
34
  * ```javascript [playground]
37
35
  * const square = number => number ** 2
38
36
  *
39
- * const concat = (array, element) => array.concat(element)
37
+ * const concat = (array, item) => array.concat(item)
40
38
  *
41
39
  * const mapSquare = Transducer.map(square)
42
40
  * // mapSquare is a transducer
@@ -45,23 +43,18 @@ const Transducer = {}
45
43
  * // now mapSquare is passed the reducer function concat; squareConcatReducer
46
44
  * // is a reducer with chained functionality square and concat
47
45
  *
48
- * console.log(
49
- * reduce([1, 2, 3, 4, 5], squareConcatReducer, [])
50
- * ) // [1, 4, 9, 16, 25]
46
+ * const squaredNumbersRubicoReduce = reduce([1, 2, 3, 4, 5], squareConcatReducer, [])
47
+ * console.log(squaredNumbersRubicoReduce)
51
48
  *
52
49
  * // the same squareConcatReducer is consumable with vanilla JavaScript
53
- * console.log(
54
- * [1, 2, 3, 4, 5].reduce(squareConcatReducer, [])
55
- * ) // [1, 4, 9, 16, 25]
50
+ * const squaredNumbersVanillaReduce = [1, 2, 3, 4, 5].reduce(squareConcatReducer, [])
51
+ * console.log(squaredNumbersVanillaReduce)
56
52
  *
57
53
  * // concat is implicit when transforming into arrays
58
- * console.log(
59
- * transform([1, 2, 3, 4, 5], Transducer.map(square), [])
60
- * ) // [1, 4, 9, 16, 25]
54
+ * const squaredNumbersTransform = transform([1, 2, 3, 4, 5], Transducer.map(square), [])
55
+ * console.log(squaredNumbersTransform)
61
56
  * ```
62
57
  *
63
- * Read more on [transducers](/blog/transducers-crash-course-rubico-v2).
64
- *
65
58
  * See also:
66
59
  * * [thunkify](/docs/thunkify)
67
60
  * * [Transducer.filter](/docs/Transducer.filter)
@@ -84,31 +77,27 @@ Transducer.map = function transducerMap(mapper) {
84
77
  * type Transducer = SyncOrAsyncReducer=>SyncOrAsyncReducer
85
78
  * type UnarySyncOrAsyncPredicate = any=>Promise|boolean|any
86
79
  *
87
- * predicate UnarySyncOrAsyncPredicate
88
- *
89
- * Transducer.filter(predicate) -> filteringTransducer Transducer
80
+ * Transducer.filter(predicate UnarySyncOrAsyncPredicate) -> filteringTransducer Transducer
90
81
  * ```
91
82
  *
92
83
  * @description
93
- * Creates a filtering transducer. A filtering transducer filters out elements of its reducing operation if they test false by the predicate. It is possible to use an asynchronous predicate, however the reducing operation must support asynchronous execution. This library provides such implementations as [reduce](/docs/reduce) and [transform](/docs/transform).
84
+ * Creates a filtering [transducer](/blog/transducers-crash-course). A filtering transducer filters out items of its reducing operation if they test false by the predicate. It is possible to use an asynchronous predicate, however the reducing operation must support asynchronous execution. This library provides such implementations as [reduce](/docs/reduce) and [transform](/docs/transform).
94
85
  *
95
86
  * ```javascript [playground]
96
87
  * const isOdd = number => number % 2 == 1
97
88
  *
98
- * const concat = (array, element) => array.concat(element)
89
+ * const concat = (array, item) => array.concat(item)
99
90
  *
100
91
  * const concatOddNumbers = Transducer.filter(isOdd)(concat)
101
92
  *
102
93
  * const array = [1, 2, 3, 4, 5]
103
94
  *
104
95
  * const oddNumbers1 = array.reduce(concatOddNumbers, [])
105
- * console.log(oddNumbers1) // [1, 3, 5]
106
- *
107
96
  * const oddNumbers2 = transform(array, Transducer.filter(isOdd), [])
108
- * console.log(oddNumbers2) // [1, 3, 5]
109
- * ```
110
97
  *
111
- * Read more on [transducers](/blog/transducers-crash-course-rubico-v2).
98
+ * console.log(oddNumbers1)
99
+ * console.log(oddNumbers2)
100
+ * ```
112
101
  *
113
102
  * See also:
114
103
  * * [thunkify](/docs/thunkify)
@@ -131,27 +120,23 @@ Transducer.filter = function transducerFilter(predicate) {
131
120
  * type SyncOrAsyncReducer = (accumulator any, value any)=>(nextAccumulator Promise|any)
132
121
  * type Transducer = SyncOrAsyncReducer=>SyncOrAsyncReducer
133
122
  * type Monad = Array|String|Set|Generator|AsyncGenerator|{ flatMap: string }|{ chain: string }|Object
134
- * type UnarySyncOrAsyncFlatMapper = (element any)=>(monad Promise|Monad|any)
123
+ * type UnarySyncOrAsyncFlatMapper = (item any)=>(monad Promise|Monad|any)
135
124
  *
136
- * flatMapper UnarySyncOrAsyncFlatMapper
137
- *
138
- * Transducer.flatMap(flatMapper) -> flatMappingTransducer Transducer
125
+ * Transducer.flatMap(flatMapper UnarySyncOrAsyncFlatMapper) -> flatMappingTransducer Transducer
139
126
  * ```
140
127
  *
141
128
  * @description
142
- * Creates a flatMapping transducer. A flatMapping transducer applies the flatMapper function to each element of its reducing operation, concatenating the results of the flatMapper execution onto the accumulator. It is possible to use an asynchronous flatMapper, however the reducing operation must support asynchronous execution. This library provides such implementations as [reduce](/docs/reduce) and [transform](/docs/transform).
129
+ * Creates a flatMapping [transducer](/blog/transducers-crash-course). A flatMapping transducer applies the flatMapper function to each item of its reducing operation, concatenating the results of the flatMapper execution onto the accumulator. It is possible to use an asynchronous flatMapper, however the reducing operation must support asynchronous execution. This library provides such implementations as [reduce](/docs/reduce) and [transform](/docs/transform).
143
130
  *
144
131
  * ```javascript [playground]
145
132
  * const powers = number => [number, number ** 2, number ** 3]
146
133
  *
147
134
  * const numbers = [1, 2, 3, 4, 5]
148
135
  *
149
- * console.log(
150
- * transform(numbers, Transducer.flatMap(powers), [])
151
- * ) // [1, 1, 1, 2, 4, 8, 3, 9, 27, 4, 16, 64, 5, 25, 125]
152
- * ```
136
+ * const result = transform(numbers, Transducer.flatMap(powers), [])
153
137
  *
154
- * Read more on [transducers](/blog/transducers-crash-course-rubico-v2).
138
+ * console.log(result)
139
+ * ```
155
140
  *
156
141
  * See also:
157
142
  * * [thunkify](/docs/thunkify)
@@ -173,26 +158,23 @@ Transducer.flatMap = function transducerFlatMap(flatMapper) {
173
158
  * ```coffeescript [specscript]
174
159
  * type SyncOrAsyncReducer = (accumulator any, value any)=>(nextAccumulator Promise|any)
175
160
  * type Transducer = SyncOrAsyncReducer=>SyncOrAsyncReducer
176
- * type UnarySyncOrAsyncCallback = (element any)=>Promise|undefined
177
- *
178
- * callback UnarySyncOrAsyncCallback
161
+ * type UnarySyncOrAsyncCallback = (item any)=>Promise|undefined
179
162
  *
180
- * Transducer.forEach(callback) -> forEachTransducer Transducer
163
+ * Transducer.forEach(callback UnarySyncOrAsyncCallback) -> forEachTransducer Transducer
181
164
  * ```
182
165
  *
183
166
  * @description
184
- * Executes a callback function for each element of a reducing operation, leaving the reducing operation unmodified. It is possible to use an asynchronous callback function, however the reducing operation must support asynchronous execution. This library provides such implementations as [reduce](/docs/reduce) and [transform](/docs/transform).
167
+ * Creates an iterative [transducer](/blog/transducers-crash-course). Executes a callback function for each item of a reducing operation, leaving each item unmodified. It is possible to use an asynchronous callback function, however the reducing operation must support asynchronous execution. This library provides such implementations as [reduce](/docs/reduce) and [transform](/docs/transform).
185
168
  *
186
169
  * ```javascript [playground]
187
170
  * const numbers = [1, 2, 3, 4, 5]
171
+ *
188
172
  * transform(numbers, compose(
189
173
  * Transducer.map(number => number ** 2),
190
- * Transducer.forEach(console.log), // 1 4 9 16 25
174
+ * Transducer.forEach(console.log),
191
175
  * ), null)
192
176
  * ```
193
177
  *
194
- * Read more on [transducers](/blog/transducers-crash-course-rubico-v2).
195
- *
196
178
  * See also:
197
179
  * * [thunkify](/docs/thunkify)
198
180
  * * [Transducer.map](/docs/Transducer.map)
@@ -214,11 +196,11 @@ Transducer.forEach = function transducerForEach(func) {
214
196
  * type SyncOrAsyncReducer = (accumulator any, value any)=>(nextAccumulator Promise|any)
215
197
  * type Transducer = SyncOrAsyncReducer=>SyncOrAsyncReducer
216
198
  *
217
- * Transducer.passthrough Transducer
199
+ * Transducer.passthrough -> Transducer
218
200
  * ```
219
201
  *
220
202
  * @description
221
- * Creates a pasthrough transducer. The passthrough transducer simply passes each element of the reducing operation through to the next downstream operation, leaving the reducing operation unmodified.
203
+ * Creates a pasthrough [transducer](/blog/transducers-crash-course). The passthrough transducer simply passes each item of the reducing operation through to the next downstream transducer, leaving each item unmodified.
222
204
  *
223
205
  * ```javascript [playground]
224
206
  * const createAsyncNumbers = async function* () {
@@ -229,11 +211,10 @@ Transducer.forEach = function transducerForEach(func) {
229
211
  * }
230
212
  * }
231
213
  *
232
- * transform(createAsyncNumbers(), Transducer.passthrough, [])
233
- * .then(console.log) // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
234
- * ```
214
+ * const numbers = await transform(createAsyncNumbers(), Transducer.passthrough, [])
235
215
  *
236
- * Read more on [transducers](/blog/transducers-crash-course-rubico-v2).
216
+ * console.log(numbers)
217
+ * ```
237
218
  *
238
219
  * See also:
239
220
  * * [thunkify](/docs/thunkify)
@@ -256,14 +237,14 @@ Transducer.passthrough = function transducerPassthrough(reducer) {
256
237
  * type SyncOrAsyncReducer = (accumulator any, value any)=>(nextAccumulator Promise|any)
257
238
  * type Transducer = SyncOrAsyncReducer=>SyncOrAsyncReducer
258
239
  *
259
- * transducerTryer Transducer
260
- * catcher (error Error, element any)=>Promise|any
261
- *
262
- * Transducer.tryCatch(transducerTryer, catcher) -> tryCatchTransducer Transducer
240
+ * Transducer.tryCatch(
241
+ * transducerTryer Transducer,
242
+ * catcher (error Error, item any)=>(Promise|any)
243
+ * ) -> tryCatchTransducer Transducer
263
244
  * ```
264
245
  *
265
246
  * @description
266
- * Creates an error handling transducer. The error handling transducer wraps a transducer and catches any errors thrown by the transducer with the catcher function. The catcher function is provided the error as well as the element for which the error was thrown. It is possible for either the transducer or the catcher to be asynchronous, however the reducing operation must support asynchronous execution. This library provides such implementations as [reduce](/docs/reduce) and [transform](/docs/transform).
247
+ * Creates an error handling [transducer](/blog/transducers-crash-course). The error handling transducer wraps a transducer and catches any errors thrown by the transducer with the catcher function. The catcher function is provided the error and the item for which the error was thrown. It is possible for either the transducer or the catcher to be asynchronous, however the reducing operation must support asynchronous execution. This library provides such implementations as [reduce](/docs/reduce) and [transform](/docs/transform).
267
248
  *
268
249
  * ```javascript [playground]
269
250
  * const db = new Map()
@@ -295,8 +276,6 @@ Transducer.passthrough = function transducerPassthrough(reducer) {
295
276
  * ), null)
296
277
  * ```
297
278
  *
298
- * Read more on [transducers](/blog/transducers-crash-course-rubico-v2).
299
- *
300
279
  * See also:
301
280
  * * [thunkify](/docs/thunkify)
302
281
  * * [Transducer.map](/docs/Transducer.map)
package/__.js CHANGED
@@ -12,9 +12,9 @@ const __ = require('./_internal/placeholder')
12
12
  * A special placeholder value `__` (two underscores) that denotes the position of an argument in a curried function.
13
13
  *
14
14
  * ```javascript [playground]
15
- * console.log(
16
- * curry.arity(3, Array.of, __, 2, 3)(1),
17
- * ) // [1, 2, 3]
15
+ * const curriedFunction = curry.arity(3, Array.of, __, 2, 3)
16
+ *
17
+ * console.log(curriedFunction(1))
18
18
  * ```
19
19
  *
20
20
  * See also:
package/always.js CHANGED
@@ -9,14 +9,14 @@ const always = require('./_internal/always')
9
9
  * ```
10
10
  *
11
11
  * @description
12
- * Creates a function from a value that always returns the provided value.
12
+ * Creates a function that always returns a value.
13
13
  *
14
14
  * ```javascript [playground]
15
15
  * const always5 = always(5)
16
16
  *
17
- * console.log(always5()) // 5
18
- * console.log(always5()) // 5
19
- * console.log(always5()) // 5
17
+ * console.log(always5())
18
+ * console.log(always5())
19
+ * console.log(always5())
20
20
  * ```
21
21
  *
22
22
  * See also:
package/and.js CHANGED
@@ -97,37 +97,28 @@ const areAllPredicatesTruthy = function (args, predicates) {
97
97
  *
98
98
  * @synopsis
99
99
  * ```coffeescript [specscript]
100
- * args Array<any>
101
- * argsOrPromises Array<Promise|any>
100
+ * type SyncOrAsyncPredicate = (...arguments)=>Promise|boolean|any
102
101
  *
103
- * type SyncOrAsyncPredicate = (...args)=>Promise|boolean|any
104
- *
105
- * predicatesOrValues Array<SyncOrAsyncPredicate|boolean|any>
106
- *
107
- * and(values Array<boolean|any>) -> result boolean
108
- * and(...argsOrPromises, predicatesOrValues) -> Promise|boolean
109
- * and(predicatesOrValues)(...args) -> Promise|boolean
102
+ * and(values Array<boolean|any>) -> testResult boolean
103
+ * and(...arguments, predicatesOrValues Array<SyncOrAsyncPredicate|boolean|any>) -> testResult Promise|boolean
104
+ * and(predicatesOrValues Array<SyncOrAsyncPredicate|boolean|any>)(...arguments) -> testResult Promise|boolean
110
105
  * ```
111
106
  *
112
107
  * @description
113
- * Function equivalent to the [Logical AND](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_AND) operator. Tests an array of predicate functions, promises, values, or a mix thereof.
114
- *
115
- * If provided an array of boolean values, `and` returns true if all boolean values are true.
108
+ * Logical operator. Tests an array of predicate functions, promises, or values, returning true if all predicates test true and all values are truthy.
116
109
  *
117
110
  * ```javascript [playground]
118
- * const oneIsLessThanThree = 1 < 3
119
- * const twoIsGreaterThanOne = 2 > 1
120
- * const threeIsEqualToThree = 3 === 3
121
- *
122
- * const condition = and([
123
- * oneIsLessThanThree,
124
- * twoIsGreaterThanOne,
125
- * threeIsEqualToThree
111
+ * const isOddAndGreaterThan3 = and([
112
+ * n => n % 2 == 1,
113
+ * n => n > 3,
126
114
  * ])
127
- * console.log(condition) // true
115
+ *
116
+ * console.log(isOddAndGreaterThan3(5))
117
+ * console.log(isOddAndGreaterThan3(3))
118
+ * console.log(isOddAndGreaterThan3(6))
128
119
  * ```
129
120
  *
130
- * If any predicate functions are provided in the array, `and` returns an aggregate predicate function that returns true for a given set of arguments if all provided predicate functions test true. If any provided predicate functions are asynchronous, the aggregate predicate function becomes asynchronous.
121
+ * If the array contains predicate functions, `and` returns an aggregate predicate function that returns true if all predicate functions test true. If any predicate function is asynchronous, the aggregate predicate function is asynchronous.
131
122
  *
132
123
  * ```javascript [playground]
133
124
  * const isOdd = number => number % 2 == 1
@@ -141,17 +132,34 @@ const areAllPredicatesTruthy = function (args, predicates) {
141
132
  * asyncIsLessThan3,
142
133
  * ])
143
134
  *
144
- * const condition = await aggregatePredicate(1)
145
- * console.log(condition) // true
135
+ * const booleanResult = await aggregatePredicate(1)
136
+ *
137
+ * console.log(booleanResult)
138
+ * ```
139
+ *
140
+ * If the array contains only values, `and` returns a boolean value.
141
+ *
142
+ * ```javascript [playground]
143
+ * const oneIsLessThanThree = 1 < 3
144
+ * const twoIsGreaterThanOne = 2 > 1
145
+ * const threeIsEqualToThree = 3 === 3
146
+ *
147
+ * const booleanResult = and([
148
+ * oneIsLessThanThree,
149
+ * twoIsGreaterThanOne,
150
+ * threeIsEqualToThree
151
+ * ])
152
+ *
153
+ * console.log(booleanResult)
146
154
  * ```
147
155
  *
148
- * Any promises passed in data argument position are resolved for their values before further execution.
156
+ * Any promises in the array are resolved for their values before further execution.
149
157
  *
150
158
  * ```javascript [playground]
151
159
  * and(Promise.resolve(5), [
152
160
  * n => n > 0,
153
161
  * n => n < 10,
154
- * ]).then(console.log) // true
162
+ * ]).then(console.log)
155
163
  * ```
156
164
  *
157
165
  * See also:
package/assign.js CHANGED
@@ -56,9 +56,9 @@ const _assign = function (object, funcs) {
56
56
  * },
57
57
  * })
58
58
  *
59
- * const promise = asyncAssignTotal({ numbers: [1, 2, 3, 4, 5] })
59
+ * const result = await asyncAssignTotal({ numbers: [1, 2, 3, 4, 5] })
60
60
  *
61
- * promise.then(console.log)
61
+ * console.log(result)
62
62
  * ```
63
63
  *
64
64
  * If the argument object is a promise, it is resolved for its value before further execution for the eager interface only.
package/compose.js CHANGED
@@ -30,6 +30,7 @@ const funcConcat = require('./_internal/funcConcat')
30
30
  * const g = x => x + 3
31
31
  *
32
32
  * const result = compose(5, [f, g])
33
+ *
33
34
  * console.log(result)
34
35
  * ```
35
36
  *
package/curry.js CHANGED
@@ -10,18 +10,15 @@ const curryArity = require('./_internal/curryArity')
10
10
  * @synopsis
11
11
  * ```coffeescript [specscript]
12
12
  * __ Symbol(placeholder)
13
+ * argumentsWithPlaceholder Array<__|any>
13
14
  *
14
- * type ArgsWithPlaceholder = Array<__|any>
15
- *
16
- * args ArgsWithPlaceholder
17
- * moreArgs ArgsWithPlaceholder
18
- *
19
- * curry(func function, ...args) -> curriedFuncOrResult function|any
20
- * curriedFuncOrResult(...moreArgs) -> anotherCurriedFuncOrResult function|any
15
+ * curry(func function, ...arguments) -> result any
16
+ * curry(func function, ...argumentsWithPlaceholder) -> result any
17
+ * curry(func function, ...argumentsWithPlaceholder) -> curriedFunction function
21
18
  * ```
22
19
  *
23
20
  * @description
24
- * Enables partial application of a function's arguments in any order. Provide the placeholder value `__` to specify an argument to be resolved in the partially applied function.
21
+ * Enables partial application of a function's arguments in any order. The placeholder value [__](/docs/__) specifies an argument to be resolved in the partially applied function.
25
22
  *
26
23
  * ```javascript [playground]
27
24
  * const add = (a, b, c) => a + b + c
@@ -31,13 +28,12 @@ const curryArity = require('./_internal/curryArity')
31
28
  * console.log(curry(add, 'a')('b', 'c'))
32
29
  * console.log(curry(add, 'a', 'b')('c'))
33
30
  * console.log(curry(add)('a')('b')('c'))
34
- *
35
31
  * console.log(curry(add, __, 'b', 'c')('a'))
36
32
  * console.log(curry(add, __, __, 'c')('a', 'b'))
37
33
  * console.log(curry(add, __, __, 'c')(__, 'b')('a'))
38
34
  * ```
39
35
  *
40
- * Any promises passed in data argument position are resolved for their values before further execution.
36
+ * Any promises in `arguments` or `argumentsWithPlaceholder` are resolved for their values before further execution.
41
37
  *
42
38
  * ```javascript [playground]
43
39
  * const add = (a, b, c) => a + b + c
@@ -71,24 +67,29 @@ const curry = (func, ...args) => {
71
67
  *
72
68
  * @synopsis
73
69
  * ```coffeescript [specscript]
74
- * type __ = Symbol(placeholder)
75
- * type ArgsWithPlaceholder = Array<__|any>
76
- *
77
- * n number
78
- * args ArgsWithPlaceholder
79
- * moreArgs ArgsWithPlaceholder
70
+ * __ Symbol(placeholder)
71
+ * argumentsWithPlaceholder Array<__|any>
80
72
  *
81
- * curry.arity(n number, func function, ...args) -> curriedFuncOrResult function|any
82
- * curriedFuncOrResult(...moreArgs) -> anotherCurriedFuncOrResult function|any
73
+ * curry.arity(n number, func function, ...arguments) -> result any
74
+ * curry.arity(n number, func function, ...argumentsWithPlaceholder) -> result any
75
+ * curry.arity(n number, func function, ...argumentsWithPlaceholder) -> curriedFunction function
83
76
  * ```
84
77
  *
85
78
  * @description
86
- * [curry](/docs/curry) with specified arity (number of arguments taken by the function) as the first parameter.
79
+ * [curry](/docs/curry) with specified arity (number of arguments taken by the function).
80
+ *
81
+ * ```javascript [playground]
82
+ * const add = (a, b, c = 0) => a + b + c
83
+ *
84
+ * console.log(curry.arity(2, add, 1, 2))
85
+ * ```
86
+ *
87
+ * Any promises in `arguments` or `argumentsWithPlaceholder` are resolved for their values before further execution.
87
88
  *
88
89
  * ```javascript [playground]
89
90
  * const add = (a, b, c = 0) => a + b + c
90
91
  *
91
- * console.log(curry.arity(2, add, 1, 2)) // 3
92
+ * console.log(await curry.arity(2, add, Promise.resolve(1), 2))
92
93
  * ```
93
94
  *
94
95
  * See also:
@@ -113,15 +114,12 @@ curry.arity = function curryArity_(arity, func, ...args) {
113
114
  *
114
115
  * @synopsis
115
116
  * ```coffeescript [specscript]
116
- * type __ = Symbol(placeholder)
117
- * type ArgsWithPlaceholder = Array<__|any>
118
- *
119
- * n number
120
- * args ArgsWithPlaceholder
121
- * moreArgs ArgsWithPlaceholder
117
+ * __ Symbol(placeholder)
118
+ * argumentsWithPlaceholder Array<__|any>
122
119
  *
123
- * curry.call(func function, context object, ...args) -> curriedFuncOrResult function|any
124
- * curriedFuncOrResult(...moreArgs) -> anotherCurriedFuncOrResult function|any
120
+ * curry.call(func function, context object, ...arguments) -> result any
121
+ * curry.call(func function, context object, ...argumentsWithPlaceholder) -> result any
122
+ * curry.call(func function, context object, ...argumentsWithPlaceholder) -> curriedFunction function
125
123
  * ```
126
124
  *
127
125
  * @description
@@ -147,6 +145,28 @@ curry.arity = function curryArity_(arity, func, ...args) {
147
145
  * console.log(curry.call(point.toString, box))
148
146
  * ```
149
147
  *
148
+ * Any promises in `arguments` are resolved for their values during thunk creation.
149
+ *
150
+ * ```javascript [playground]
151
+ * class Point {
152
+ * constructor(x, y) {
153
+ * this.x = x
154
+ * this.y = y
155
+ * }
156
+ *
157
+ * distanceTo(point) {
158
+ * const x2 = (point.x - this.x) ** 2
159
+ * const y2 = (point.y - this.y) ** 2
160
+ * return (x2 + y2) ** 0.5
161
+ * }
162
+ * }
163
+ *
164
+ * const point1 = new Point(100, 100)
165
+ * const point2 = new Point(200, 200)
166
+ *
167
+ * console.log(await curry.call(point1.distanceTo, point1, Promise.resolve(point2)))
168
+ * ```
169
+ *
150
170
  * See also:
151
171
  * * [eq](/docs/eq)
152
172
  * * [thunkify](/docs/thunkify)
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.10.0
2
+ * Rubico v2.12.1
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.10.0
2
+ * Rubico v2.12.1
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.10.0
2
+ * Rubico v2.12.1
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.10.0
2
+ * Rubico v2.12.1
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.10.0
2
+ * Rubico v2.12.1
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/__.es.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.10.0
2
+ * Rubico v2.12.1
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/__.es.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.10.0
2
+ * Rubico v2.12.1
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/__.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.10.0
2
+ * Rubico v2.12.1
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software
package/dist/__.min.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Rubico v2.10.0
2
+ * Rubico v2.12.1
3
3
  * https://rubico.land/
4
4
  *
5
5
  * © Richard Yufei Tong, King of Software