@design-edito/tools 0.4.23 → 0.5.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 (490) hide show
  1. package/agnostic/arrays/find-duplicates/index.d.ts +1 -1
  2. package/agnostic/arrays/find-duplicates/index.js +3 -2
  3. package/agnostic/arrays/is-array-of/index.d.ts +1 -1
  4. package/agnostic/arrays/is-array-of/index.js +3 -1
  5. package/agnostic/arrays/make/index.d.ts +1 -1
  6. package/agnostic/arrays/random-pick/index.js +2 -1
  7. package/agnostic/arrays/shuffle/index.js +1 -1
  8. package/agnostic/booleans/is-falsy/index.d.ts +3 -3
  9. package/agnostic/booleans/is-falsy/index.js +2 -3
  10. package/agnostic/colors/channels/index.d.ts +16 -16
  11. package/agnostic/colors/channels/index.js +15 -15
  12. package/agnostic/colors/contrast/index.d.ts +6 -6
  13. package/agnostic/colors/contrast/index.js +6 -8
  14. package/agnostic/colors/contrast/index.test.js +1 -1
  15. package/agnostic/colors/convert/index.d.ts +43 -43
  16. package/agnostic/colors/convert/index.js +60 -55
  17. package/agnostic/colors/distance/index.d.ts +5 -5
  18. package/agnostic/colors/distance/index.js +5 -4
  19. package/agnostic/colors/grayscale/index.d.ts +3 -3
  20. package/agnostic/colors/grayscale/index.js +3 -3
  21. package/agnostic/colors/index.d.ts +3 -3
  22. package/agnostic/colors/index.js +3 -3
  23. package/agnostic/colors/invert/index.d.ts +4 -4
  24. package/agnostic/colors/invert/index.js +3 -3
  25. package/agnostic/colors/lerp/index.d.ts +6 -7
  26. package/agnostic/colors/lerp/index.js +5 -6
  27. package/agnostic/colors/luminance/index.d.ts +4 -4
  28. package/agnostic/colors/luminance/index.js +3 -3
  29. package/agnostic/colors/palette/index.d.ts +3 -3
  30. package/agnostic/colors/palette/index.js +4 -3
  31. package/agnostic/colors/rotate/index.d.ts +4 -4
  32. package/agnostic/colors/rotate/index.js +4 -4
  33. package/agnostic/colors/tidy/index.d.ts +2 -2
  34. package/agnostic/colors/tidy/index.js +2 -2
  35. package/agnostic/colors/typechecks/index.d.ts +21 -21
  36. package/agnostic/colors/typechecks/index.js +22 -21
  37. package/agnostic/colors/types.d.ts +33 -33
  38. package/agnostic/css/bem/index.d.ts +11 -11
  39. package/agnostic/css/bem/index.js +9 -8
  40. package/agnostic/css/clss/index.d.ts +1 -1
  41. package/agnostic/css/clss/index.js +1 -1
  42. package/agnostic/css/index.d.ts +1 -1
  43. package/agnostic/css/index.js +1 -1
  44. package/agnostic/css/is-valid-css-class-name/index.d.ts +2 -2
  45. package/agnostic/css/is-valid-css-class-name/index.js +3 -3
  46. package/agnostic/css/scale/index.d.ts +18 -18
  47. package/agnostic/css/scale/index.js +18 -18
  48. package/agnostic/css/styles-set/index.d.ts +1 -1
  49. package/agnostic/css/styles-set/index.js +0 -2
  50. package/agnostic/errors/register/index.d.ts +1 -1
  51. package/agnostic/errors/register/index.js +3 -0
  52. package/agnostic/errors/unknown-to-string/index.d.ts +2 -2
  53. package/agnostic/errors/unknown-to-string/index.js +2 -3
  54. package/agnostic/html/deep-select/index.d.ts +3 -3
  55. package/agnostic/html/deep-select/index.js +11 -7
  56. package/agnostic/html/get-node-ancestors/index.d.ts +3 -3
  57. package/agnostic/html/get-node-ancestors/index.js +3 -3
  58. package/agnostic/html/get-position-inside-parent/index.d.ts +2 -2
  59. package/agnostic/html/get-position-inside-parent/index.js +2 -2
  60. package/agnostic/html/hyper-json/cast/index.d.ts +1 -1
  61. package/agnostic/html/hyper-json/cast/index.js +6 -5
  62. package/agnostic/html/hyper-json/method/index.d.ts +2 -2
  63. package/agnostic/html/hyper-json/serialize/index.d.ts +1 -1
  64. package/agnostic/html/hyper-json/serialize/index.js +9 -5
  65. package/agnostic/html/hyper-json/smart-tags/coalesced/addclass/index.js +1 -0
  66. package/agnostic/html/hyper-json/smart-tags/coalesced/and/index.d.ts +1 -1
  67. package/agnostic/html/hyper-json/smart-tags/coalesced/append/index.d.ts +1 -1
  68. package/agnostic/html/hyper-json/smart-tags/coalesced/append/index.js +1 -0
  69. package/agnostic/html/hyper-json/smart-tags/coalesced/at/index.d.ts +1 -1
  70. package/agnostic/html/hyper-json/smart-tags/coalesced/at/index.js +1 -0
  71. package/agnostic/html/hyper-json/smart-tags/coalesced/call/index.d.ts +1 -1
  72. package/agnostic/html/hyper-json/smart-tags/coalesced/call/index.js +1 -1
  73. package/agnostic/html/hyper-json/smart-tags/coalesced/clone/index.d.ts +1 -1
  74. package/agnostic/html/hyper-json/smart-tags/coalesced/deleteproperties/index.d.ts +1 -1
  75. package/agnostic/html/hyper-json/smart-tags/coalesced/deleteproperties/index.js +0 -1
  76. package/agnostic/html/hyper-json/smart-tags/coalesced/equals/index.d.ts +1 -1
  77. package/agnostic/html/hyper-json/smart-tags/coalesced/getattribute/index.js +1 -0
  78. package/agnostic/html/hyper-json/smart-tags/coalesced/getproperties/index.d.ts +1 -1
  79. package/agnostic/html/hyper-json/smart-tags/coalesced/getproperty/index.d.ts +1 -1
  80. package/agnostic/html/hyper-json/smart-tags/coalesced/getproperty/index.js +1 -2
  81. package/agnostic/html/hyper-json/smart-tags/coalesced/hjparse/index.d.ts +1 -1
  82. package/agnostic/html/hyper-json/smart-tags/coalesced/hjstringify/index.d.ts +1 -1
  83. package/agnostic/html/hyper-json/smart-tags/coalesced/hjstringify/index.js +4 -0
  84. package/agnostic/html/hyper-json/smart-tags/coalesced/if/index.d.ts +1 -1
  85. package/agnostic/html/hyper-json/smart-tags/coalesced/if/index.js +1 -0
  86. package/agnostic/html/hyper-json/smart-tags/coalesced/index.d.ts +6 -6
  87. package/agnostic/html/hyper-json/smart-tags/coalesced/index.js +6 -6
  88. package/agnostic/html/hyper-json/smart-tags/coalesced/initialize/index.d.ts +1 -1
  89. package/agnostic/html/hyper-json/smart-tags/coalesced/initialize/index.js +1 -0
  90. package/agnostic/html/hyper-json/smart-tags/coalesced/join/index.d.ts +1 -1
  91. package/agnostic/html/hyper-json/smart-tags/coalesced/length/index.d.ts +1 -1
  92. package/agnostic/html/hyper-json/smart-tags/coalesced/map/index.d.ts +1 -1
  93. package/agnostic/html/hyper-json/smart-tags/coalesced/or/index.d.ts +1 -1
  94. package/agnostic/html/hyper-json/smart-tags/coalesced/pickrandom/index.d.ts +1 -1
  95. package/agnostic/html/hyper-json/smart-tags/coalesced/populate/index.d.ts +1 -1
  96. package/agnostic/html/hyper-json/smart-tags/coalesced/populate/index.js +1 -0
  97. package/agnostic/html/hyper-json/smart-tags/coalesced/print/index.d.ts +1 -1
  98. package/agnostic/html/hyper-json/smart-tags/coalesced/print/index.js +2 -0
  99. package/agnostic/html/hyper-json/smart-tags/coalesced/push/index.d.ts +1 -1
  100. package/agnostic/html/hyper-json/smart-tags/coalesced/pusheach/index.d.ts +1 -1
  101. package/agnostic/html/hyper-json/smart-tags/coalesced/pusheach/index.js +1 -0
  102. package/agnostic/html/hyper-json/smart-tags/coalesced/recordtoarray/index.d.ts +1 -1
  103. package/agnostic/html/hyper-json/smart-tags/coalesced/removeattribute/index.js +3 -0
  104. package/agnostic/html/hyper-json/smart-tags/coalesced/removeclass/index.js +1 -0
  105. package/agnostic/html/hyper-json/smart-tags/coalesced/renameproperty/index.d.ts +1 -1
  106. package/agnostic/html/hyper-json/smart-tags/coalesced/renameproperty/index.js +1 -0
  107. package/agnostic/html/hyper-json/smart-tags/coalesced/replace/index.d.ts +1 -1
  108. package/agnostic/html/hyper-json/smart-tags/coalesced/replace/index.js +1 -0
  109. package/agnostic/html/hyper-json/smart-tags/coalesced/select/index.js +1 -0
  110. package/agnostic/html/hyper-json/smart-tags/coalesced/set/index.d.ts +1 -1
  111. package/agnostic/html/hyper-json/smart-tags/coalesced/set/index.js +1 -0
  112. package/agnostic/html/hyper-json/smart-tags/coalesced/setattribute/index.js +3 -0
  113. package/agnostic/html/hyper-json/smart-tags/coalesced/setproperty/index.d.ts +1 -1
  114. package/agnostic/html/hyper-json/smart-tags/coalesced/setproperty/index.js +4 -2
  115. package/agnostic/html/hyper-json/smart-tags/coalesced/sorton/index.d.ts +1 -1
  116. package/agnostic/html/hyper-json/smart-tags/coalesced/sorton/index.js +5 -0
  117. package/agnostic/html/hyper-json/smart-tags/coalesced/spread/index.d.ts +1 -1
  118. package/agnostic/html/hyper-json/smart-tags/coalesced/spread/index.js +1 -0
  119. package/agnostic/html/hyper-json/smart-tags/coalesced/toarray/index.d.ts +1 -1
  120. package/agnostic/html/hyper-json/smart-tags/coalesced/toboolean/index.d.ts +1 -1
  121. package/agnostic/html/hyper-json/smart-tags/coalesced/toelement/index.d.ts +1 -1
  122. package/agnostic/html/hyper-json/smart-tags/coalesced/toggleclass/index.js +3 -2
  123. package/agnostic/html/hyper-json/smart-tags/coalesced/tonodelist/index.d.ts +1 -1
  124. package/agnostic/html/hyper-json/smart-tags/coalesced/tonull/index.d.ts +1 -1
  125. package/agnostic/html/hyper-json/smart-tags/coalesced/tonumber/index.d.ts +1 -1
  126. package/agnostic/html/hyper-json/smart-tags/coalesced/torecord/index.d.ts +1 -1
  127. package/agnostic/html/hyper-json/smart-tags/coalesced/toref/index.d.ts +1 -1
  128. package/agnostic/html/hyper-json/smart-tags/coalesced/tostring/index.d.ts +1 -1
  129. package/agnostic/html/hyper-json/smart-tags/coalesced/totext/index.d.ts +1 -1
  130. package/agnostic/html/hyper-json/smart-tags/coalesced/transformselected/index.d.ts +1 -1
  131. package/agnostic/html/hyper-json/smart-tags/coalesced/trim/index.js +1 -1
  132. package/agnostic/html/hyper-json/smart-tags/index.d.ts +1 -1
  133. package/agnostic/html/hyper-json/smart-tags/isolated/any/index.d.ts +1 -1
  134. package/agnostic/html/hyper-json/smart-tags/isolated/array/index.d.ts +1 -1
  135. package/agnostic/html/hyper-json/smart-tags/isolated/get/index.d.ts +1 -1
  136. package/agnostic/html/hyper-json/smart-tags/isolated/guess/index.d.ts +1 -1
  137. package/agnostic/html/hyper-json/smart-tags/isolated/guess/index.js +3 -1
  138. package/agnostic/html/hyper-json/smart-tags/isolated/index.d.ts +2 -2
  139. package/agnostic/html/hyper-json/smart-tags/isolated/index.js +2 -2
  140. package/agnostic/html/hyper-json/smart-tags/isolated/nodelist/index.d.ts +1 -1
  141. package/agnostic/html/hyper-json/smart-tags/isolated/nodelist/index.js +1 -0
  142. package/agnostic/html/hyper-json/smart-tags/isolated/null/index.d.ts +1 -1
  143. package/agnostic/html/hyper-json/smart-tags/isolated/record/index.d.ts +1 -1
  144. package/agnostic/html/hyper-json/smart-tags/isolated/ref/index.d.ts +1 -1
  145. package/agnostic/html/hyper-json/smart-tags/isolated/ref/index.js +3 -1
  146. package/agnostic/html/hyper-json/smart-tags/isolated/text/index.js +2 -2
  147. package/agnostic/html/hyper-json/transformer/index.d.ts +5 -5
  148. package/agnostic/html/hyper-json/tree/index.d.ts +1 -1
  149. package/agnostic/html/hyper-json/tree/index.js +14 -8
  150. package/agnostic/html/hyper-json/types/index.d.ts +11 -11
  151. package/agnostic/html/hyper-json/utils/index.d.ts +3 -3
  152. package/agnostic/html/hyper-json/utils/index.js +8 -3
  153. package/agnostic/html/index.d.ts +4 -4
  154. package/agnostic/html/index.js +4 -4
  155. package/agnostic/html/insert-node/index.d.ts +4 -4
  156. package/agnostic/html/insert-node/index.js +4 -4
  157. package/agnostic/html/replace-in-element/index.d.ts +3 -3
  158. package/agnostic/html/replace-in-element/index.js +4 -4
  159. package/agnostic/html/selector-to-element/index.d.ts +2 -2
  160. package/agnostic/html/selector-to-element/index.js +11 -11
  161. package/agnostic/html/string-to-nodes/index.d.ts +3 -3
  162. package/agnostic/html/string-to-nodes/index.js +3 -3
  163. package/agnostic/html/watch-selection/index.d.ts +4 -5
  164. package/agnostic/html/watch-selection/index.js +5 -6
  165. package/agnostic/misc/assert/index.js +3 -1
  166. package/agnostic/misc/cast/index.d.ts +16 -16
  167. package/agnostic/misc/cast/index.js +18 -18
  168. package/agnostic/misc/connection/index.d.ts +5 -5
  169. package/agnostic/misc/connection/index.js +4 -2
  170. package/agnostic/misc/crawler/index.d.ts +18 -18
  171. package/agnostic/misc/crawler/index.js +10 -9
  172. package/agnostic/misc/crawler/index.test.js +2 -2
  173. package/agnostic/misc/crossenv/detect-runtime/index.d.ts +1 -1
  174. package/agnostic/misc/crossenv/detect-runtime/index.js +10 -11
  175. package/agnostic/misc/crossenv/window/index.d.ts +6 -6
  176. package/agnostic/misc/crossenv/window/index.js +6 -5
  177. package/agnostic/misc/data-size/index.js +2 -0
  178. package/agnostic/misc/index.d.ts +2 -2
  179. package/agnostic/misc/index.js +2 -2
  180. package/agnostic/misc/is-constructor-function/index.d.ts +2 -2
  181. package/agnostic/misc/is-constructor-function/index.js +3 -2
  182. package/agnostic/misc/is-constructor-function/index.test.js +2 -2
  183. package/agnostic/misc/is-nullish/index.d.ts +5 -5
  184. package/agnostic/misc/is-nullish/index.js +5 -4
  185. package/agnostic/misc/logs/index.d.ts +1 -1
  186. package/agnostic/misc/logs/index.js +1 -1
  187. package/agnostic/misc/logs/logger/index.js +2 -2
  188. package/agnostic/misc/lorem-ipsum/index.js +4 -4
  189. package/agnostic/misc/normalize-extension/index.d.ts +3 -3
  190. package/agnostic/misc/normalize-extension/index.js +4 -4
  191. package/agnostic/misc/outcome/index.d.ts +14 -14
  192. package/agnostic/misc/outcome/index.js +6 -4
  193. package/agnostic/numbers/absolute-modulo/index.d.ts +3 -3
  194. package/agnostic/numbers/absolute-modulo/index.js +3 -3
  195. package/agnostic/numbers/approximate-rational/index.d.ts +6 -6
  196. package/agnostic/numbers/approximate-rational/index.js +9 -9
  197. package/agnostic/numbers/clamp/index.d.ts +4 -4
  198. package/agnostic/numbers/clamp/index.js +4 -4
  199. package/agnostic/numbers/geometric-progressions/index.d.ts +5 -5
  200. package/agnostic/numbers/geometric-progressions/index.js +7 -5
  201. package/agnostic/numbers/geometric-progressions/index.test.js +2 -2
  202. package/agnostic/numbers/index.d.ts +1 -1
  203. package/agnostic/numbers/index.js +1 -1
  204. package/agnostic/numbers/interpolate/index.d.ts +8 -8
  205. package/agnostic/numbers/interpolate/index.js +8 -8
  206. package/agnostic/numbers/round/index.d.ts +9 -9
  207. package/agnostic/numbers/round/index.js +9 -9
  208. package/agnostic/objects/deep-get-property/index.d.ts +4 -4
  209. package/agnostic/objects/deep-get-property/index.js +3 -3
  210. package/agnostic/objects/enums/is-in-enum/index.d.ts +3 -3
  211. package/agnostic/objects/enums/is-in-enum/index.js +3 -3
  212. package/agnostic/objects/flatten-getters/index.d.ts +2 -2
  213. package/agnostic/objects/flatten-getters/index.js +3 -2
  214. package/agnostic/objects/index.d.ts +2 -2
  215. package/agnostic/objects/index.js +2 -2
  216. package/agnostic/objects/is-object/index.d.ts +4 -4
  217. package/agnostic/objects/is-object/index.js +4 -4
  218. package/agnostic/objects/is-record/index.d.ts +2 -2
  219. package/agnostic/objects/is-record/index.js +2 -2
  220. package/agnostic/objects/record-format/index.d.ts +9 -9
  221. package/agnostic/objects/record-format/index.js +8 -3
  222. package/agnostic/objects/record-map/index.d.ts +4 -4
  223. package/agnostic/objects/record-map/index.js +5 -3
  224. package/agnostic/objects/sort-keys/index.d.ts +3 -3
  225. package/agnostic/objects/sort-keys/index.js +4 -3
  226. package/agnostic/objects/validation/index.d.ts +3 -3
  227. package/agnostic/objects/validation/index.js +4 -3
  228. package/agnostic/optim/memoize/index.d.ts +2 -2
  229. package/agnostic/optim/memoize/index.js +4 -2
  230. package/agnostic/optim/throttle-debounce/index.d.ts +2 -2
  231. package/agnostic/optim/throttle-debounce/index.js +7 -6
  232. package/agnostic/optim/throttle-debounce/types.d.ts +2 -1
  233. package/agnostic/random/random/index.d.ts +7 -8
  234. package/agnostic/random/random/index.js +3 -3
  235. package/agnostic/random/uuid/index.d.ts +6 -6
  236. package/agnostic/random/uuid/index.js +6 -6
  237. package/agnostic/regexps/index.d.ts +30 -60
  238. package/agnostic/regexps/index.js +27 -26
  239. package/agnostic/sanitization/file-name/index.d.ts +3 -3
  240. package/agnostic/sanitization/file-name/index.js +10 -10
  241. package/agnostic/sanitization/html/index.d.ts +6 -6
  242. package/agnostic/sanitization/html/index.js +9 -6
  243. package/agnostic/sanitization/index.d.ts +1 -1
  244. package/agnostic/sanitization/index.js +1 -1
  245. package/agnostic/sanitization/path/index.d.ts +2 -2
  246. package/agnostic/sanitization/path/index.js +2 -2
  247. package/agnostic/sanitization/user-input/index.js +1 -0
  248. package/agnostic/strings/char-codes/index.js +2 -6
  249. package/agnostic/strings/index.d.ts +1 -1
  250. package/agnostic/strings/index.js +1 -1
  251. package/agnostic/strings/normalize-indent/index.js +2 -2
  252. package/agnostic/strings/parse-table/index.d.ts +13 -13
  253. package/agnostic/strings/parse-table/index.js +31 -16
  254. package/agnostic/strings/replace-all/index.d.ts +1 -1
  255. package/agnostic/strings/replace-all/index.js +1 -0
  256. package/agnostic/strings/to-alphanum/index.js +2 -2
  257. package/agnostic/strings/trim/index.js +2 -2
  258. package/agnostic/time/dates/format-date/index.js +3 -1
  259. package/agnostic/time/dates/index.d.ts +1 -0
  260. package/agnostic/time/dates/index.js +1 -0
  261. package/agnostic/time/dates/to-french-republican/index.d.ts +16 -0
  262. package/agnostic/time/dates/to-french-republican/index.js +82 -0
  263. package/agnostic/time/dates/to-french-republican/index.test.d.ts +1 -0
  264. package/agnostic/time/dates/to-french-republican/index.test.js +112 -0
  265. package/agnostic/time/dates/to-french-republican/types.d.ts +91 -0
  266. package/agnostic/time/dates/to-french-republican/types.js +47 -0
  267. package/agnostic/time/dates/to-french-republican/utils.d.ts +32 -0
  268. package/agnostic/time/dates/to-french-republican/utils.js +155 -0
  269. package/agnostic/time/duration/index.js +2 -0
  270. package/agnostic/time/index.d.ts +2 -2
  271. package/agnostic/time/index.js +2 -2
  272. package/agnostic/time/timeout/index.js +9 -9
  273. package/agnostic/time/transitions/index.js +8 -7
  274. package/components/BeforeAfter/index.controlled.js +1 -0
  275. package/components/BeforeAfter/index.js +4 -0
  276. package/components/Button/index.d.ts +1 -1
  277. package/components/Clippable/index.js +1 -0
  278. package/components/Drawer/index.js +1 -1
  279. package/components/Gallery/index.js +2 -1
  280. package/components/Gallery/utils.js +5 -1
  281. package/components/Iframe/index.js +3 -0
  282. package/components/Image/index.js +2 -0
  283. package/components/Input/index.controlled.js +3 -2
  284. package/components/IntersectionObserver/index.js +5 -2
  285. package/components/JsonEditor/index.js +1 -1
  286. package/components/Overlayer/index.d.ts +1 -1
  287. package/components/ScrollListener/utils.d.ts +29 -0
  288. package/components/Select/index.controlled.js +3 -2
  289. package/components/Sequencer/index.controlled.js +1 -1
  290. package/components/Subtitles/index.js +3 -1
  291. package/components/Subtitles/types.d.ts +14 -0
  292. package/components/Subtitles/utils.d.ts +19 -15
  293. package/components/Subtitles/utils.js +29 -24
  294. package/components/Textarea/index.controlled.js +3 -2
  295. package/components/UIModule/index.js +3 -1
  296. package/components/Video/index.controlled.d.ts +1 -1
  297. package/components/Video/index.controlled.js +11 -10
  298. package/components/Video/index.js +27 -20
  299. package/components/Video/utils.d.ts +1 -1
  300. package/components/Video/utils.js +11 -2
  301. package/components/index.d.ts +2 -2
  302. package/components/index.js +2 -2
  303. package/components/utils/types.d.ts +5 -0
  304. package/node/@aws-s3/storage/directory/copy-dir/index.d.ts +9 -9
  305. package/node/@aws-s3/storage/directory/copy-dir/index.js +15 -12
  306. package/node/@aws-s3/storage/directory/list/index.d.ts +5 -5
  307. package/node/@aws-s3/storage/directory/list/index.js +5 -5
  308. package/node/@aws-s3/storage/directory/move-dir/index.d.ts +6 -6
  309. package/node/@aws-s3/storage/directory/move-dir/index.js +11 -7
  310. package/node/@aws-s3/storage/directory/remove-dir/index.d.ts +5 -5
  311. package/node/@aws-s3/storage/directory/remove-dir/index.js +5 -5
  312. package/node/@aws-s3/storage/file/copy/index.d.ts +8 -8
  313. package/node/@aws-s3/storage/file/copy/index.js +12 -9
  314. package/node/@aws-s3/storage/file/download/index.d.ts +6 -6
  315. package/node/@aws-s3/storage/file/download/index.js +6 -5
  316. package/node/@aws-s3/storage/file/exists/index.d.ts +6 -6
  317. package/node/@aws-s3/storage/file/exists/index.js +15 -12
  318. package/node/@aws-s3/storage/file/move/index.d.ts +9 -9
  319. package/node/@aws-s3/storage/file/move/index.js +18 -15
  320. package/node/@aws-s3/storage/file/remove/index.d.ts +5 -5
  321. package/node/@aws-s3/storage/file/remove/index.js +16 -11
  322. package/node/@aws-s3/storage/file/stat/index.d.ts +5 -5
  323. package/node/@aws-s3/storage/file/stat/index.js +10 -7
  324. package/node/@aws-s3/storage/file/upload/index.d.ts +7 -7
  325. package/node/@aws-s3/storage/file/upload/index.js +11 -9
  326. package/node/@express/@multer/index.d.ts +12 -12
  327. package/node/@express/@multer/index.js +27 -25
  328. package/node/@google-cloud/storage/bucket/get-metadata/index.d.ts +4 -4
  329. package/node/@google-cloud/storage/bucket/get-metadata/index.js +3 -3
  330. package/node/@google-cloud/storage/directory/copy-dir/index.d.ts +7 -7
  331. package/node/@google-cloud/storage/directory/copy-dir/index.js +6 -6
  332. package/node/@google-cloud/storage/directory/index.d.ts +1 -1
  333. package/node/@google-cloud/storage/directory/index.js +1 -1
  334. package/node/@google-cloud/storage/directory/list/index.d.ts +6 -6
  335. package/node/@google-cloud/storage/directory/list/index.js +5 -5
  336. package/node/@google-cloud/storage/directory/move-dir/index.d.ts +6 -6
  337. package/node/@google-cloud/storage/directory/move-dir/index.js +5 -5
  338. package/node/@google-cloud/storage/directory/remove-dir/index.d.ts +7 -7
  339. package/node/@google-cloud/storage/directory/remove-dir/index.js +6 -6
  340. package/node/@google-cloud/storage/file/copy/index.d.ts +9 -9
  341. package/node/@google-cloud/storage/file/copy/index.js +8 -8
  342. package/node/@google-cloud/storage/file/download/index.d.ts +7 -7
  343. package/node/@google-cloud/storage/file/download/index.js +5 -5
  344. package/node/@google-cloud/storage/file/exists/index.d.ts +7 -7
  345. package/node/@google-cloud/storage/file/exists/index.js +6 -6
  346. package/node/@google-cloud/storage/file/generate-signed-url/index.d.ts +7 -7
  347. package/node/@google-cloud/storage/file/generate-signed-url/index.js +6 -6
  348. package/node/@google-cloud/storage/file/get-metadata/index.d.ts +5 -5
  349. package/node/@google-cloud/storage/file/get-metadata/index.js +4 -4
  350. package/node/@google-cloud/storage/file/get-permissions/index.d.ts +6 -6
  351. package/node/@google-cloud/storage/file/get-permissions/index.js +4 -4
  352. package/node/@google-cloud/storage/file/index.d.ts +1 -1
  353. package/node/@google-cloud/storage/file/index.js +1 -1
  354. package/node/@google-cloud/storage/file/move/index.d.ts +10 -10
  355. package/node/@google-cloud/storage/file/move/index.js +9 -9
  356. package/node/@google-cloud/storage/file/remove/index.d.ts +5 -5
  357. package/node/@google-cloud/storage/file/remove/index.js +4 -4
  358. package/node/@google-cloud/storage/file/revoke-signed-urls/index.d.ts +5 -5
  359. package/node/@google-cloud/storage/file/revoke-signed-urls/index.js +5 -5
  360. package/node/@google-cloud/storage/file/stat/index.d.ts +5 -5
  361. package/node/@google-cloud/storage/file/stat/index.js +4 -4
  362. package/node/@google-cloud/storage/file/update-metadata/index.d.ts +7 -7
  363. package/node/@google-cloud/storage/file/update-metadata/index.js +5 -5
  364. package/node/@google-cloud/storage/file/upload/index.d.ts +7 -7
  365. package/node/@google-cloud/storage/file/upload/index.js +5 -5
  366. package/node/cloud-storage/clients/index.d.ts +8 -8
  367. package/node/cloud-storage/clients/index.js +8 -8
  368. package/node/cloud-storage/operations/copy-dir/index.d.ts +22 -22
  369. package/node/cloud-storage/operations/copy-dir/index.js +5 -5
  370. package/node/cloud-storage/operations/copy-file/index.d.ts +22 -22
  371. package/node/cloud-storage/operations/copy-file/index.js +5 -5
  372. package/node/cloud-storage/operations/download-file/index.d.ts +19 -19
  373. package/node/cloud-storage/operations/download-file/index.js +6 -6
  374. package/node/cloud-storage/operations/exists-file/index.d.ts +15 -26
  375. package/node/cloud-storage/operations/exists-file/index.js +4 -4
  376. package/node/cloud-storage/operations/list-dir/index.d.ts +15 -25
  377. package/node/cloud-storage/operations/list-dir/index.js +4 -4
  378. package/node/cloud-storage/operations/move-dir/index.d.ts +22 -22
  379. package/node/cloud-storage/operations/move-dir/index.js +5 -5
  380. package/node/cloud-storage/operations/move-file/index.d.ts +22 -22
  381. package/node/cloud-storage/operations/move-file/index.js +5 -5
  382. package/node/cloud-storage/operations/remove-dir/index.d.ts +18 -18
  383. package/node/cloud-storage/operations/remove-dir/index.js +4 -4
  384. package/node/cloud-storage/operations/remove-file/index.d.ts +18 -18
  385. package/node/cloud-storage/operations/remove-file/index.js +4 -4
  386. package/node/cloud-storage/operations/stat-file/index.d.ts +16 -16
  387. package/node/cloud-storage/operations/stat-file/index.js +4 -4
  388. package/node/cloud-storage/operations/upload-file/index.d.ts +23 -23
  389. package/node/cloud-storage/operations/upload-file/index.js +5 -5
  390. package/node/encryption/@aes-256-gcm/buffer/index.d.ts +6 -6
  391. package/node/encryption/@aes-256-gcm/buffer/index.js +6 -6
  392. package/node/encryption/@aes-256-gcm/uint8-array/index.d.ts +8 -8
  393. package/node/encryption/@aes-256-gcm/uint8-array/index.js +8 -8
  394. package/node/encryption/key/index.d.ts +6 -6
  395. package/node/encryption/key/index.js +6 -6
  396. package/node/files/read-write/index.d.ts +16 -16
  397. package/node/files/subpaths/index.d.ts +8 -8
  398. package/node/files/subpaths/index.js +11 -13
  399. package/node/ftps/directory/copy-dir/index.d.ts +6 -6
  400. package/node/ftps/directory/copy-dir/index.js +6 -6
  401. package/node/ftps/directory/list/index.d.ts +4 -4
  402. package/node/ftps/directory/list/index.js +3 -3
  403. package/node/ftps/directory/move-dir/index.d.ts +6 -6
  404. package/node/ftps/directory/move-dir/index.js +5 -5
  405. package/node/ftps/directory/remove-dir/index.d.ts +6 -6
  406. package/node/ftps/directory/remove-dir/index.js +8 -7
  407. package/node/ftps/file/copy/index.d.ts +6 -6
  408. package/node/ftps/file/copy/index.js +5 -5
  409. package/node/ftps/file/download/index.d.ts +6 -6
  410. package/node/ftps/file/download/index.js +5 -5
  411. package/node/ftps/file/exists/index.d.ts +3 -3
  412. package/node/ftps/file/exists/index.js +3 -3
  413. package/node/ftps/file/move/index.d.ts +8 -8
  414. package/node/ftps/file/move/index.js +11 -9
  415. package/node/ftps/file/remove/index.d.ts +5 -5
  416. package/node/ftps/file/remove/index.js +4 -4
  417. package/node/ftps/file/stat/index.d.ts +4 -4
  418. package/node/ftps/file/stat/index.js +4 -4
  419. package/node/ftps/file/upload/index.d.ts +7 -7
  420. package/node/ftps/file/upload/index.js +5 -5
  421. package/node/images/create/index.d.ts +2 -2
  422. package/node/images/create/index.js +1 -1
  423. package/node/images/format/index.d.ts +8 -8
  424. package/node/images/metadata/index.d.ts +2 -2
  425. package/node/images/transform/index.d.ts +2 -2
  426. package/node/images/transform/index.js +12 -2
  427. package/node/images/transform/operations/blur/index.d.ts +2 -2
  428. package/node/images/transform/operations/blur/index.js +1 -0
  429. package/node/images/transform/operations/brighten/index.d.ts +2 -2
  430. package/node/images/transform/operations/brighten/index.js +1 -0
  431. package/node/images/transform/operations/extend/index.d.ts +2 -2
  432. package/node/images/transform/operations/extend/index.js +1 -0
  433. package/node/images/transform/operations/extract/index.d.ts +2 -2
  434. package/node/images/transform/operations/extract/index.js +1 -0
  435. package/node/images/transform/operations/flatten/index.d.ts +2 -2
  436. package/node/images/transform/operations/flatten/index.js +1 -0
  437. package/node/images/transform/operations/flip/index.d.ts +2 -2
  438. package/node/images/transform/operations/flip/index.js +1 -0
  439. package/node/images/transform/operations/flop/index.d.ts +2 -2
  440. package/node/images/transform/operations/flop/index.js +1 -0
  441. package/node/images/transform/operations/hue/index.d.ts +2 -2
  442. package/node/images/transform/operations/hue/index.js +1 -0
  443. package/node/images/transform/operations/index.d.ts +2 -2
  444. package/node/images/transform/operations/index.js +2 -2
  445. package/node/images/transform/operations/level/index.d.ts +2 -2
  446. package/node/images/transform/operations/level/index.js +1 -0
  447. package/node/images/transform/operations/lighten/index.d.ts +2 -2
  448. package/node/images/transform/operations/lighten/index.js +1 -0
  449. package/node/images/transform/operations/normalize/index.d.ts +2 -2
  450. package/node/images/transform/operations/normalize/index.js +1 -0
  451. package/node/images/transform/operations/overlay/index.d.ts +2 -2
  452. package/node/images/transform/operations/resize/index.d.ts +2 -2
  453. package/node/images/transform/operations/resize/index.js +1 -0
  454. package/node/images/transform/operations/rotate/index.d.ts +2 -2
  455. package/node/images/transform/operations/rotate/index.js +1 -0
  456. package/node/images/transform/operations/saturate/index.d.ts +2 -2
  457. package/node/images/transform/operations/saturate/index.js +1 -0
  458. package/node/images/types.d.ts +41 -2
  459. package/node/images/utils/index.d.ts +10 -5
  460. package/node/process/index.d.ts +1 -1
  461. package/node/process/index.js +1 -1
  462. package/node/process/on-exit/index.js +2 -4
  463. package/node/process/prompt-continue/index.d.ts +3 -3
  464. package/node/process/prompt-continue/index.js +4 -3
  465. package/node/process/spawner/index.js +7 -6
  466. package/node/sftp/directory/copy-dir/index.d.ts +6 -6
  467. package/node/sftp/directory/copy-dir/index.js +6 -6
  468. package/node/sftp/directory/list/index.d.ts +3 -3
  469. package/node/sftp/directory/list/index.js +4 -4
  470. package/node/sftp/directory/move-dir/index.d.ts +7 -7
  471. package/node/sftp/directory/move-dir/index.js +7 -7
  472. package/node/sftp/directory/remove-dir/index.d.ts +5 -5
  473. package/node/sftp/directory/remove-dir/index.js +8 -7
  474. package/node/sftp/file/copy/index.d.ts +6 -6
  475. package/node/sftp/file/copy/index.js +5 -5
  476. package/node/sftp/file/download/index.d.ts +7 -7
  477. package/node/sftp/file/download/index.js +5 -5
  478. package/node/sftp/file/exists/index.d.ts +3 -3
  479. package/node/sftp/file/exists/index.js +3 -3
  480. package/node/sftp/file/index.d.ts +1 -1
  481. package/node/sftp/file/index.js +1 -1
  482. package/node/sftp/file/move/index.d.ts +7 -7
  483. package/node/sftp/file/move/index.js +7 -7
  484. package/node/sftp/file/remove/index.d.ts +4 -4
  485. package/node/sftp/file/remove/index.js +4 -4
  486. package/node/sftp/file/stat/index.d.ts +3 -3
  487. package/node/sftp/file/stat/index.js +6 -5
  488. package/node/sftp/file/upload/index.d.ts +6 -6
  489. package/node/sftp/file/upload/index.js +5 -5
  490. package/package.json +40 -39
@@ -5,11 +5,11 @@ import { unknownToString } from '../../../../agnostic/errors/unknown-to-string/i
5
5
  * Recursively copies every file under `sourceDir` to the same relative path
6
6
  * beneath `targetDir` on an FTP server, streaming data to avoid buffering.
7
7
  *
8
- * @param {Client} ftpClient - The FTP client instance.
9
- * @param {string} sourceDir - The source directory path to copy from.
10
- * @param {string} targetDir - The target directory path to copy to.
11
- * @param {CopyDirOptions} [options] - Optional parameters for the operation.
12
- * @returns {Promise<Outcome.Either<true, string>>}
8
+ * @param ftpClient - The FTP client instance.
9
+ * @param sourceDir - The source directory path to copy from.
10
+ * @param targetDir - The target directory path to copy to.
11
+ * @param [options] - Optional parameters for the operation.
12
+ * @returns
13
13
  * - Success: `Outcome.makeSuccess(true)` if the copy succeeds.
14
14
  * - Failure: `Outcome.makeFailure(errStr)` if an error occurs.
15
15
  */
@@ -18,7 +18,7 @@ export async function copyDir(ftpClient, sourceDir, targetDir, options) {
18
18
  async function recurse(dir) {
19
19
  const list = await ftpClient.list(dir);
20
20
  for (const entry of list) {
21
- const src = dir.endsWith('/') ? dir + entry.name : dir + '/' + entry.name;
21
+ const src = dir.endsWith('/') ? `${dir}${entry.name}` : `${dir}/${entry.name}`;
22
22
  const rel = src.substring(sourceDir.length + (sourceDir.endsWith('/') ? 0 : 1));
23
23
  const dst = targetDir.endsWith('/') ? targetDir + rel : `${targetDir}/${rel}`;
24
24
  if (entry.isDirectory) {
@@ -1,12 +1,12 @@
1
- import { type Client } from 'basic-ftp';
1
+ import type { Client } from 'basic-ftp';
2
2
  import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
3
3
  /**
4
4
  * Lists all direct children files under a given directory on an FTP server.
5
5
  *
6
6
  * This function returns only the immediate files (not recursive) under the specified directory.
7
7
  *
8
- * @param {Client} ftpClient - The basic-ftp client instance used to interact with the FTP server.
9
- * @param {string} directoryPath - The directory path to list files under.
10
- * @returns {Promise<Outcome.Either<string[], string>>} Returns either a success with an array of file paths, or a failure with an error message.
8
+ * @param ftpClient - The basic-ftp client instance used to interact with the FTP server.
9
+ * @param directoryPath - The directory path to list files under.
10
+ * @returns Returns either a success with an array of file paths, or a failure with an error message.
11
11
  */
12
12
  export declare function list(ftpClient: Client, directoryPath: string): Promise<Outcome.Either<string[], string>>;
@@ -5,9 +5,9 @@ import { unknownToString } from '../../../../agnostic/errors/unknown-to-string/i
5
5
  *
6
6
  * This function returns only the immediate files (not recursive) under the specified directory.
7
7
  *
8
- * @param {Client} ftpClient - The basic-ftp client instance used to interact with the FTP server.
9
- * @param {string} directoryPath - The directory path to list files under.
10
- * @returns {Promise<Outcome.Either<string[], string>>} Returns either a success with an array of file paths, or a failure with an error message.
8
+ * @param ftpClient - The basic-ftp client instance used to interact with the FTP server.
9
+ * @param directoryPath - The directory path to list files under.
10
+ * @returns Returns either a success with an array of file paths, or a failure with an error message.
11
11
  */
12
12
  export async function list(ftpClient, directoryPath) {
13
13
  try {
@@ -1,4 +1,4 @@
1
- import { type Client } from 'basic-ftp';
1
+ import type { Client } from 'basic-ftp';
2
2
  import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
3
3
  export type MoveDirOptions = {
4
4
  /** If false and `targetDir` exists, the operation is aborted. Defaults to false. */
@@ -15,11 +15,11 @@ export type MoveDirOptions = {
15
15
  * If `ensureDir` is true (default), the parent directory of `targetDir` is
16
16
  * created if it does not exist.
17
17
  *
18
- * @param {Client} ftpClient - The FTP client instance.
19
- * @param {string} sourceDir - The source directory path to move from.
20
- * @param {string} targetDir - The target directory path to move to.
21
- * @param {MoveDirOptions} [options] - Optional parameters for the operation.
22
- * @returns {Promise<Outcome.Either<true, string>>} A promise that resolves to an `Outcome.Either`:
18
+ * @param ftpClient - The FTP client instance.
19
+ * @param sourceDir - The source directory path to move from.
20
+ * @param targetDir - The target directory path to move to.
21
+ * @param [options] - Optional parameters for the operation.
22
+ * @returns A promise that resolves to an `Outcome.Either`:
23
23
  * - On success: `Outcome.makeSuccess(true)` indicating the move was successful.
24
24
  * - On failure: `Outcome.makeFailure(errStr)` with an error message if the move fails.
25
25
  */
@@ -9,11 +9,11 @@ import { unknownToString } from '../../../../agnostic/errors/unknown-to-string/i
9
9
  * If `ensureDir` is true (default), the parent directory of `targetDir` is
10
10
  * created if it does not exist.
11
11
  *
12
- * @param {Client} ftpClient - The FTP client instance.
13
- * @param {string} sourceDir - The source directory path to move from.
14
- * @param {string} targetDir - The target directory path to move to.
15
- * @param {MoveDirOptions} [options] - Optional parameters for the operation.
16
- * @returns {Promise<Outcome.Either<true, string>>} A promise that resolves to an `Outcome.Either`:
12
+ * @param ftpClient - The FTP client instance.
13
+ * @param sourceDir - The source directory path to move from.
14
+ * @param targetDir - The target directory path to move to.
15
+ * @param [options] - Optional parameters for the operation.
16
+ * @returns A promise that resolves to an `Outcome.Either`:
17
17
  * - On success: `Outcome.makeSuccess(true)` indicating the move was successful.
18
18
  * - On failure: `Outcome.makeFailure(errStr)` with an error message if the move fails.
19
19
  */
@@ -1,4 +1,4 @@
1
- import { type Client } from 'basic-ftp';
1
+ import type { Client } from 'basic-ftp';
2
2
  import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
3
3
  export type RemoveDirOptions = {
4
4
  /**
@@ -12,11 +12,11 @@ export type RemoveDirOptions = {
12
12
  /**
13
13
  * Recursively deletes a directory (and all contents) on an FTP server.
14
14
  *
15
- * @param {Client} ftpClient - The FTP client instance.
16
- * @param {string} directoryPath - The path of the directory to delete.
17
- * @param {RemoveDirOptions} [options] - Optional configuration.
18
- * @param {boolean} [options.ignoreMissing=true] - Whether to ignore a missing directory.
19
- * @returns {Promise<Outcome.Either<true, string>>}
15
+ * @param ftpClient - The FTP client instance.
16
+ * @param directoryPath - The path of the directory to delete.
17
+ * @param [options] - Optional configuration.
18
+ * @param [options.ignoreMissing=true] - Whether to ignore a missing directory.
19
+ * @returns
20
20
  * - On success: `Outcome.makeSuccess(true)` – deletion succeeded, or directory
21
21
  * was absent and `ignoreMissing` is true.
22
22
  * - On failure: `Outcome.makeFailure(errStr)` if deletion fails, or directory
@@ -1,13 +1,14 @@
1
1
  import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
2
2
  import { unknownToString } from '../../../../agnostic/errors/unknown-to-string/index.js';
3
+ import { deepGetProperty } from '../../../../agnostic/objects/deep-get-property/index.js';
3
4
  /**
4
5
  * Recursively deletes a directory (and all contents) on an FTP server.
5
6
  *
6
- * @param {Client} ftpClient - The FTP client instance.
7
- * @param {string} directoryPath - The path of the directory to delete.
8
- * @param {RemoveDirOptions} [options] - Optional configuration.
9
- * @param {boolean} [options.ignoreMissing=true] - Whether to ignore a missing directory.
10
- * @returns {Promise<Outcome.Either<true, string>>}
7
+ * @param ftpClient - The FTP client instance.
8
+ * @param directoryPath - The path of the directory to delete.
9
+ * @param [options] - Optional configuration.
10
+ * @param [options.ignoreMissing=true] - Whether to ignore a missing directory.
11
+ * @returns
11
12
  * - On success: `Outcome.makeSuccess(true)` – deletion succeeded, or directory
12
13
  * was absent and `ignoreMissing` is true.
13
14
  * - On failure: `Outcome.makeFailure(errStr)` if deletion fails, or directory
@@ -33,10 +34,10 @@ export async function removeDir(ftpClient, directoryPath, options) {
33
34
  return Outcome.makeSuccess(true);
34
35
  }
35
36
  catch (err) {
37
+ const code = deepGetProperty(err, 'code');
36
38
  // 550 (“No such file or directory”) when the path is missing
37
- if (ignoreMissing && err.code === 550) {
39
+ if (ignoreMissing && code === 550)
38
40
  return Outcome.makeSuccess(true);
39
- }
40
41
  return Outcome.makeFailure(unknownToString(err));
41
42
  }
42
43
  }
@@ -1,4 +1,4 @@
1
- import { type Client } from 'basic-ftp';
1
+ import type { Client } from 'basic-ftp';
2
2
  import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
3
3
  export type CopyOptions = {
4
4
  /**
@@ -17,11 +17,11 @@ export type CopyOptions = {
17
17
  * Copies a file from one path to another on the same FTP server, streaming the
18
18
  * data instead of buffering it in memory.
19
19
  *
20
- * @param {Client} ftpClient - The basic‑ftp client instance.
21
- * @param {string} sourcePath - The path of the source file.
22
- * @param {string} targetPath - The destination path.
23
- * @param {CopyOptions} [options] - Optional copy configuration.
24
- * @returns {Promise<Outcome.Either<true, string>>}
20
+ * @param ftpClient - The basic‑ftp client instance.
21
+ * @param sourcePath - The path of the source file.
22
+ * @param targetPath - The destination path.
23
+ * @param [options] - Optional copy configuration.
24
+ * @returns
25
25
  * - On success: `Outcome.makeSuccess(true)`.
26
26
  * - On failure: `Outcome.makeFailure(errStr)`.
27
27
  */
@@ -5,11 +5,11 @@ import { unknownToString } from '../../../../agnostic/errors/unknown-to-string/i
5
5
  * Copies a file from one path to another on the same FTP server, streaming the
6
6
  * data instead of buffering it in memory.
7
7
  *
8
- * @param {Client} ftpClient - The basic‑ftp client instance.
9
- * @param {string} sourcePath - The path of the source file.
10
- * @param {string} targetPath - The destination path.
11
- * @param {CopyOptions} [options] - Optional copy configuration.
12
- * @returns {Promise<Outcome.Either<true, string>>}
8
+ * @param ftpClient - The basic‑ftp client instance.
9
+ * @param sourcePath - The path of the source file.
10
+ * @param targetPath - The destination path.
11
+ * @param [options] - Optional copy configuration.
12
+ * @returns
13
13
  * - On success: `Outcome.makeSuccess(true)`.
14
14
  * - On failure: `Outcome.makeFailure(errStr)`.
15
15
  */
@@ -1,5 +1,5 @@
1
1
  import { type Readable } from 'node:stream';
2
- import { type Client } from 'basic-ftp';
2
+ import type { Client } from 'basic-ftp';
3
3
  import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
4
4
  export type DownloadOptions = {
5
5
  startAt?: number;
@@ -11,11 +11,11 @@ export type DownloadOptions = {
11
11
  * returning the file content as a Readable stream. The download process can be customized
12
12
  * using optional download options.
13
13
  *
14
- * @param {Client} ftpClient - The basic-ftp client instance used to interact with the FTP server.
15
- * @param {string} sourcePath - The path of the file to be downloaded from the FTP server.
16
- * @param {DownloadOptions} [options] - Optional settings for configuring the download process.
17
- * @param {number} [options.startAt] - The byte offset at which to start downloading the file.
18
- * @returns {Promise<Outcome.Either<Readable, string>>} A promise that resolves to an Outcome.Either.
14
+ * @param ftpClient - The basic-ftp client instance used to interact with the FTP server.
15
+ * @param sourcePath - The path of the file to be downloaded from the FTP server.
16
+ * @param [options] - Optional settings for configuring the download process.
17
+ * @param [options.startAt] - The byte offset at which to start downloading the file.
18
+ * @returns A promise that resolves to an Outcome.Either.
19
19
  * - On success: Outcome.makeSuccess(stream) containing the downloaded file's content as a Readable stream.
20
20
  * - On failure: Outcome.makeFailure(errStr) with an error message if the download fails.
21
21
  */
@@ -8,11 +8,11 @@ import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
8
8
  * returning the file content as a Readable stream. The download process can be customized
9
9
  * using optional download options.
10
10
  *
11
- * @param {Client} ftpClient - The basic-ftp client instance used to interact with the FTP server.
12
- * @param {string} sourcePath - The path of the file to be downloaded from the FTP server.
13
- * @param {DownloadOptions} [options] - Optional settings for configuring the download process.
14
- * @param {number} [options.startAt] - The byte offset at which to start downloading the file.
15
- * @returns {Promise<Outcome.Either<Readable, string>>} A promise that resolves to an Outcome.Either.
11
+ * @param ftpClient - The basic-ftp client instance used to interact with the FTP server.
12
+ * @param sourcePath - The path of the file to be downloaded from the FTP server.
13
+ * @param [options] - Optional settings for configuring the download process.
14
+ * @param [options.startAt] - The byte offset at which to start downloading the file.
15
+ * @returns A promise that resolves to an Outcome.Either.
16
16
  * - On success: Outcome.makeSuccess(stream) containing the downloaded file's content as a Readable stream.
17
17
  * - On failure: Outcome.makeFailure(errStr) with an error message if the download fails.
18
18
  */
@@ -12,9 +12,9 @@ import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
12
12
  * `FileType.SymbolicLink`, mirroring the SFTP behaviour where `'-'` and `'l'`
13
13
  * are considered files.
14
14
  *
15
- * @param {Client} ftpClient - The basic‑ftp client instance.
16
- * @param {string} sourcePath - The full path to check on the FTP server.
17
- * @returns {Promise<Outcome.Either<boolean, string>>}
15
+ * @param ftpClient - The basic‑ftp client instance.
16
+ * @param sourcePath - The full path to check on the FTP server.
17
+ * @returns
18
18
  * - Success: `Outcome.makeSuccess(true | false)` – true only if a file exists.
19
19
  * - Failure: `Outcome.makeFailure(errStr)` if an error occurs.
20
20
  */
@@ -13,9 +13,9 @@ import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
13
13
  * `FileType.SymbolicLink`, mirroring the SFTP behaviour where `'-'` and `'l'`
14
14
  * are considered files.
15
15
  *
16
- * @param {Client} ftpClient - The basic‑ftp client instance.
17
- * @param {string} sourcePath - The full path to check on the FTP server.
18
- * @returns {Promise<Outcome.Either<boolean, string>>}
16
+ * @param ftpClient - The basic‑ftp client instance.
17
+ * @param sourcePath - The full path to check on the FTP server.
18
+ * @returns
19
19
  * - Success: `Outcome.makeSuccess(true | false)` – true only if a file exists.
20
20
  * - Failure: `Outcome.makeFailure(errStr)` if an error occurs.
21
21
  */
@@ -1,4 +1,4 @@
1
- import { type Client } from 'basic-ftp';
1
+ import type { Client } from 'basic-ftp';
2
2
  import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
3
3
  export type MoveOptions = {
4
4
  /**
@@ -25,13 +25,13 @@ export type MoveOptions = {
25
25
  * 2. **overwrite** – If disabled (default) the function first checks whether
26
26
  * an object already exists at `targetPath`; if so, it aborts.
27
27
  *
28
- * @param {Client} ftpClient - The basic‑ftp client instance.
29
- * @param {string} sourcePath - The full path of the source file.
30
- * @param {string} targetPath - The full destination path.
31
- * @param {MoveOptions} [options] - Optional move configuration.
32
- * @param {boolean} [options.ensureDir=true] - Whether to create missing parent directories.
33
- * @param {boolean} [options.overwrite=false] - Whether to overwrite an existing destination.
34
- * @returns {Promise<Outcome.Either<true, string>>}
28
+ * @param ftpClient - The basic‑ftp client instance.
29
+ * @param sourcePath - The full path of the source file.
30
+ * @param targetPath - The full destination path.
31
+ * @param [options] - Optional move configuration.
32
+ * @param [options.ensureDir=true] - Whether to create missing parent directories.
33
+ * @param [options.overwrite=false] - Whether to overwrite an existing destination.
34
+ * @returns
35
35
  * - On success: `Outcome.makeSuccess(true)`.
36
36
  * - On failure: `Outcome.makeFailure(errStr)`.
37
37
  */
@@ -1,5 +1,6 @@
1
1
  import { unknownToString } from '../../../../agnostic/errors/unknown-to-string/index.js';
2
2
  import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
3
+ import { deepGetProperty } from '../../../../agnostic/objects/deep-get-property/index.js';
3
4
  /**
4
5
  * Moves (renames) a file on an FTP server.
5
6
  *
@@ -11,13 +12,13 @@ import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
11
12
  * 2. **overwrite** – If disabled (default) the function first checks whether
12
13
  * an object already exists at `targetPath`; if so, it aborts.
13
14
  *
14
- * @param {Client} ftpClient - The basic‑ftp client instance.
15
- * @param {string} sourcePath - The full path of the source file.
16
- * @param {string} targetPath - The full destination path.
17
- * @param {MoveOptions} [options] - Optional move configuration.
18
- * @param {boolean} [options.ensureDir=true] - Whether to create missing parent directories.
19
- * @param {boolean} [options.overwrite=false] - Whether to overwrite an existing destination.
20
- * @returns {Promise<Outcome.Either<true, string>>}
15
+ * @param ftpClient - The basic‑ftp client instance.
16
+ * @param sourcePath - The full path of the source file.
17
+ * @param targetPath - The full destination path.
18
+ * @param [options] - Optional move configuration.
19
+ * @param [options.ensureDir=true] - Whether to create missing parent directories.
20
+ * @param [options.overwrite=false] - Whether to overwrite an existing destination.
21
+ * @returns
21
22
  * - On success: `Outcome.makeSuccess(true)`.
22
23
  * - On failure: `Outcome.makeFailure(errStr)`.
23
24
  */
@@ -34,9 +35,10 @@ export async function move(ftpClient, sourcePath, targetPath, options) {
34
35
  return Outcome.makeFailure(`File already exists at ${targetPath}.`);
35
36
  }
36
37
  catch (err) {
37
- if (err.code !== 550) { // 550 = "not found"; any other error -> propagate
38
+ const code = deepGetProperty(err, 'code');
39
+ // 550 = "not found"; any other error -> propagate
40
+ if (code !== 550)
38
41
  return Outcome.makeFailure(unknownToString(err));
39
- }
40
42
  // 550 means destination does not exist – proceed
41
43
  }
42
44
  }
@@ -1,4 +1,4 @@
1
- import { type Client } from 'basic-ftp';
1
+ import type { Client } from 'basic-ftp';
2
2
  import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
3
3
  export type RemoveOptions = {
4
4
  ignoreMissing?: boolean;
@@ -10,10 +10,10 @@ export type RemoveOptions = {
10
10
  * The deletion process can be customized using optional delete options.
11
11
  * If the `ignoreMissing` option is true, it does not treat a missing file as an error.
12
12
  *
13
- * @param {Client} ftpClient - The basic-ftp client instance used to interact with the FTP server.
14
- * @param {string} targetPath - The path of the file to delete on the FTP server.
15
- * @param {RemoveOptions} [options] - Optional settings for configuring the deletion process.
16
- * @returns {Promise<Outcome.Either<true, string>>} A promise that resolves to an Outcome.Either.
13
+ * @param ftpClient - The basic-ftp client instance used to interact with the FTP server.
14
+ * @param targetPath - The path of the file to delete on the FTP server.
15
+ * @param [options] - Optional settings for configuring the deletion process.
16
+ * @returns A promise that resolves to an Outcome.Either.
17
17
  * - On success: Outcome.makeSuccess(true) indicating the deletion was successful.
18
18
  * - On failure: Outcome.makeFailure(errStr) with an error message if the deletion fails.
19
19
  */
@@ -7,10 +7,10 @@ import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
7
7
  * The deletion process can be customized using optional delete options.
8
8
  * If the `ignoreMissing` option is true, it does not treat a missing file as an error.
9
9
  *
10
- * @param {Client} ftpClient - The basic-ftp client instance used to interact with the FTP server.
11
- * @param {string} targetPath - The path of the file to delete on the FTP server.
12
- * @param {RemoveOptions} [options] - Optional settings for configuring the deletion process.
13
- * @returns {Promise<Outcome.Either<true, string>>} A promise that resolves to an Outcome.Either.
10
+ * @param ftpClient - The basic-ftp client instance used to interact with the FTP server.
11
+ * @param targetPath - The path of the file to delete on the FTP server.
12
+ * @param [options] - Optional settings for configuring the deletion process.
13
+ * @returns A promise that resolves to an Outcome.Either.
14
14
  * - On success: Outcome.makeSuccess(true) indicating the deletion was successful.
15
15
  * - On failure: Outcome.makeFailure(errStr) with an error message if the deletion fails.
16
16
  */
@@ -1,4 +1,4 @@
1
- import { type Client as FtpClient, type FileInfo } from 'basic-ftp';
1
+ import type { Client as FtpClient, FileInfo } from 'basic-ftp';
2
2
  import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
3
3
  export interface Stat {
4
4
  size?: number;
@@ -10,8 +10,8 @@ export interface Stat {
10
10
  * Retrieves metadata for a single file on an FTP server by listing its parent
11
11
  * directory and matching the entry.
12
12
  *
13
- * @param {FtpClient} ftp – basic‑ftp client.
14
- * @param {string} path – Remote file path.
15
- * @returns {Promise<Outcome.Either<Stat, string>>}
13
+ * @param ftp – basic‑ftp client.
14
+ * @param path – Remote file path.
15
+ * @returns
16
16
  */
17
17
  export declare function stat(ftp: FtpClient, path: string): Promise<Outcome.Either<Stat, string>>;
@@ -4,9 +4,9 @@ import { unknownToString } from '../../../../agnostic/errors/unknown-to-string/i
4
4
  * Retrieves metadata for a single file on an FTP server by listing its parent
5
5
  * directory and matching the entry.
6
6
  *
7
- * @param {FtpClient} ftp – basic‑ftp client.
8
- * @param {string} path – Remote file path.
9
- * @returns {Promise<Outcome.Either<Stat, string>>}
7
+ * @param ftp – basic‑ftp client.
8
+ * @param path – Remote file path.
9
+ * @returns
10
10
  */
11
11
  export async function stat(ftp, path) {
12
12
  try {
@@ -21,7 +21,7 @@ export async function stat(ftp, path) {
21
21
  return Outcome.makeSuccess({
22
22
  size: entry.size,
23
23
  modifiedAt: entry.modifiedAt ?? undefined,
24
- permissions: entry.rawModifiedAt.toString(),
24
+ permissions: entry.rawModifiedAt,
25
25
  raw: entry
26
26
  });
27
27
  }
@@ -1,5 +1,5 @@
1
- import { type Readable } from 'node:stream';
2
- import { type Client, type UploadOptions as BasicFtpUploadOptions } from 'basic-ftp';
1
+ import type { Readable } from 'node:stream';
2
+ import type { Client, UploadOptions as BasicFtpUploadOptions } from 'basic-ftp';
3
3
  import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
4
4
  export type UploadOptions = BasicFtpUploadOptions & {
5
5
  ensureDir?: boolean;
@@ -13,11 +13,11 @@ export type UploadOptions = BasicFtpUploadOptions & {
13
13
  * If the `ensureDir` option is true, it ensures that the target directory exists before uploading.
14
14
  * If the `overwrite` option is false, it prevents overwriting an existing file.
15
15
  *
16
- * @param {Client} ftpClient - The basic-ftp client instance used to interact with the FTP server.
17
- * @param {string} targetPath - The target path where the file will be stored on the FTP server.
18
- * @param {Readable} fileStream - The file content to be uploaded.
19
- * @param {UploadOptions} [options] - Optional settings for configuring the upload process.
20
- * @returns {Promise<Outcome.Either<true, string>>} A promise that resolves to an Outcome.Either.
16
+ * @param ftpClient - The basic-ftp client instance used to interact with the FTP server.
17
+ * @param targetPath - The target path where the file will be stored on the FTP server.
18
+ * @param fileStream - The file content to be uploaded.
19
+ * @param [options] - Optional settings for configuring the upload process.
20
+ * @returns A promise that resolves to an Outcome.Either.
21
21
  * - On success: Outcome.makeSuccess(true) indicating the upload was successful.
22
22
  * - On failure: Outcome.makeFailure(errStr) with an error message if the upload fails.
23
23
  */
@@ -8,11 +8,11 @@ import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
8
8
  * If the `ensureDir` option is true, it ensures that the target directory exists before uploading.
9
9
  * If the `overwrite` option is false, it prevents overwriting an existing file.
10
10
  *
11
- * @param {Client} ftpClient - The basic-ftp client instance used to interact with the FTP server.
12
- * @param {string} targetPath - The target path where the file will be stored on the FTP server.
13
- * @param {Readable} fileStream - The file content to be uploaded.
14
- * @param {UploadOptions} [options] - Optional settings for configuring the upload process.
15
- * @returns {Promise<Outcome.Either<true, string>>} A promise that resolves to an Outcome.Either.
11
+ * @param ftpClient - The basic-ftp client instance used to interact with the FTP server.
12
+ * @param targetPath - The target path where the file will be stored on the FTP server.
13
+ * @param fileStream - The file content to be uploaded.
14
+ * @param [options] - Optional settings for configuring the upload process.
15
+ * @returns A promise that resolves to an Outcome.Either.
16
16
  * - On success: Outcome.makeSuccess(true) indicating the upload was successful.
17
17
  * - On failure: Outcome.makeFailure(errStr) with an error message if the upload fails.
18
18
  */
@@ -1,4 +1,4 @@
1
- import sharp from 'sharp';
1
+ import type { Sharp } from 'sharp';
2
2
  import type { CreateOptions } from '../types.js';
3
3
  /**
4
4
  * Creates a new image using Sharp with the specified options.
@@ -6,4 +6,4 @@ import type { CreateOptions } from '../types.js';
6
6
  * @param options - Image creation options. See `CreateOptions` for details.
7
7
  * @returns A Sharp instance ready for further image operations.
8
8
  */
9
- export declare function create(options: CreateOptions): Promise<sharp.Sharp>;
9
+ export declare function create(options: CreateOptions): Sharp;
@@ -6,6 +6,6 @@ import { toCreateOptions } from '../utils/index.js';
6
6
  * @param options - Image creation options. See `CreateOptions` for details.
7
7
  * @returns A Sharp instance ready for further image operations.
8
8
  */
9
- export async function create(options) {
9
+ export function create(options) {
10
10
  return sharp({ create: toCreateOptions(options) });
11
11
  }
@@ -1,4 +1,4 @@
1
- import type sharp from 'sharp';
1
+ import type { ResizeOptions, JpegOptions, PngOptions, WebpOptions, AvifOptions, TiffOptions, HeifOptions } from 'sharp';
2
2
  import * as Outcome from '../../../agnostic/misc/outcome/index.js';
3
3
  import type { FormatCommonOptions, FormatJpgOptions, FormatPngOptions, FormatWebpOptions, FormatAvifOptions, FormatTiffOptions, FormatHeifOptions, FormatOptions, ImageLike } from '../types.js';
4
4
  /** Type guard to check if options match FormatCommonOptions. */
@@ -18,19 +18,19 @@ export declare const isFormatHeifOptions: (options: unknown) => options is Forma
18
18
  /** Type guard to check if options match FormatOptions. */
19
19
  export declare const isFormatOptions: (options: unknown) => options is FormatOptions;
20
20
  /** Converts FormatCommonOptions to Sharp resize options. */
21
- export declare const toSharpResizeOptions: (options: FormatCommonOptions) => sharp.ResizeOptions;
21
+ export declare const toSharpResizeOptions: (options: FormatCommonOptions) => ResizeOptions;
22
22
  /** Converts FormatJpgOptions to Sharp JPEG options. */
23
- export declare const toSharpJpegOptions: (options: FormatJpgOptions) => sharp.JpegOptions;
23
+ export declare const toSharpJpegOptions: (options: FormatJpgOptions) => JpegOptions;
24
24
  /** Converts FormatPngOptions to Sharp PNG options. */
25
- export declare const toSharpPngOptions: (options: FormatPngOptions) => sharp.PngOptions;
25
+ export declare const toSharpPngOptions: (options: FormatPngOptions) => PngOptions;
26
26
  /** Converts FormatWebpOptions to Sharp WebP options. */
27
- export declare const toSharpWebpOptions: (options: FormatWebpOptions) => sharp.WebpOptions;
27
+ export declare const toSharpWebpOptions: (options: FormatWebpOptions) => WebpOptions;
28
28
  /** Converts FormatAvifOptions to Sharp AVIF options. */
29
- export declare const toSharpAvifOptions: (options: FormatAvifOptions) => sharp.AvifOptions;
29
+ export declare const toSharpAvifOptions: (options: FormatAvifOptions) => AvifOptions;
30
30
  /** Converts FormatTiffOptions to Sharp TIFF options. */
31
- export declare const toSharpTiffOptions: (options: FormatTiffOptions) => sharp.TiffOptions;
31
+ export declare const toSharpTiffOptions: (options: FormatTiffOptions) => TiffOptions;
32
32
  /** Converts FormatHeifOptions to Sharp HEIF options. */
33
- export declare const toSharpHeifOptions: (options: FormatHeifOptions) => sharp.HeifOptions;
33
+ export declare const toSharpHeifOptions: (options: FormatHeifOptions) => HeifOptions;
34
34
  /**
35
35
  * Formats an image with the specified options.
36
36
  *
@@ -1,4 +1,4 @@
1
- import type sharp from 'sharp';
1
+ import type { Metadata } from 'sharp';
2
2
  import type { ImageLike } from '../types.js';
3
3
  /**
4
4
  * Retrieves metadata from an image.
@@ -6,4 +6,4 @@ import type { ImageLike } from '../types.js';
6
6
  * @param imageInput - The image to get metadata from. Can be a Sharp instance, Buffer, CreateOptions, or file path.
7
7
  * @returns Image metadata including dimensions, format, color space, and other properties.
8
8
  */
9
- export declare function metadata(imageInput: ImageLike): Promise<sharp.Metadata>;
9
+ export declare function metadata(imageInput: ImageLike): Promise<Metadata>;
@@ -1,4 +1,4 @@
1
- import type sharp from 'sharp';
1
+ import type { Sharp } from 'sharp';
2
2
  import * as Outcome from '../../../agnostic/misc/outcome/index.js';
3
3
  import { type OperationDescriptor, type TransformLimits, type TransformErr, type ImageLike } from '../types.js';
4
4
  /**
@@ -24,4 +24,4 @@ export declare function isOperationDescriptor(obj: unknown): Outcome.Either<Oper
24
24
  * - On success: `Outcome.makeSuccess(sharpInstance)` with the transformed Sharp instance.
25
25
  * - On failure: `Outcome.makeFailure(error)` with error code and details.
26
26
  */
27
- export declare function transform(input: ImageLike, operationsSequence: OperationDescriptor[], limits?: TransformLimits): Promise<Outcome.Either<sharp.Sharp, TransformErr>>;
27
+ export declare function transform(input: ImageLike, operationsSequence: OperationDescriptor[], limits?: TransformLimits): Promise<Outcome.Either<Sharp, TransformErr>>;
@@ -46,22 +46,28 @@ export function isOperationDescriptor(obj) {
46
46
  return Outcome.makeFailure('Invalid operation descriptor');
47
47
  if (!('name' in obj) || typeof obj.name !== 'string')
48
48
  return Outcome.makeFailure('Field named \'name\' in operation descriptor is required and must be a string');
49
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- not yet proven; verified below via Set.has(...)/object-key lookup, which are safe regardless of this type
49
50
  const name = obj.name;
50
51
  const validateOperation = (validatorFn) => {
51
52
  const result = validatorFn(obj);
53
+ // eslint-disable-next-line @typescript-eslint/consistent-type-assertions, @typescript-eslint/no-unsafe-type-assertion
52
54
  if (result.success)
53
55
  return Outcome.makeSuccess({
54
- name: obj.name,
56
+ name,
55
57
  ...result.payload
56
58
  });
57
59
  return Outcome.makeFailure(result.error);
58
60
  };
59
61
  const simpleOperations = new Set([OpName.FLIP, OpName.FLOP]);
62
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Set.has(...) performs the real runtime membership check regardless of this cast
60
63
  if (simpleOperations.has(name))
61
64
  return Outcome.makeSuccess({
65
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- membership was just confirmed by simpleOperations.has(...) above
62
66
  name: name
63
67
  });
68
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- the object-key lookup that follows returns undefined for any non-matching name, which is handled below
64
69
  const validator = validators[name];
70
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
65
71
  if (validator !== undefined)
66
72
  return validateOperation(validator);
67
73
  return Outcome.makeFailure('Invalid operation descriptor');
@@ -90,7 +96,9 @@ export async function transform(input, operationsSequence, limits) {
90
96
  const runWithOpTimeout = async (op) => {
91
97
  return limits?.opTimeoutMs === undefined
92
98
  ? await op()
93
- : await Promise.race([op(), new Promise(resolve => setTimeout(() => resolve(TransformErrCodes.OP_TIMEOUT), limits.opTimeoutMs))]);
99
+ : await Promise.race([op(), new Promise(resolve => {
100
+ setTimeout(() => resolve(TransformErrCodes.OP_TIMEOUT), limits.opTimeoutMs);
101
+ })]);
94
102
  };
95
103
  for (const operation of operationsSequence) {
96
104
  // Process timeout check
@@ -103,6 +111,7 @@ export async function transform(input, operationsSequence, limits) {
103
111
  // Apply transformation
104
112
  let result;
105
113
  try {
114
+ // eslint-disable-next-line no-loop-func
106
115
  result = await runWithOpTimeout(async () => {
107
116
  switch (operation.name) {
108
117
  case OpName.BLUR: return await blur(sharpInstance, operation);
@@ -120,6 +129,7 @@ export async function transform(input, operationsSequence, limits) {
120
129
  case OpName.RESIZE: return await resize(sharpInstance, operation);
121
130
  case OpName.ROTATE: return await rotate(sharpInstance, operation);
122
131
  case OpName.SATURATE: return await saturate(sharpInstance, operation);
132
+ // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
123
133
  default: return sharpInstance;
124
134
  }
125
135
  });
@@ -1,5 +1,5 @@
1
- import type sharp from 'sharp';
1
+ import type { Sharp } from 'sharp';
2
2
  import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
3
  import type { BlurOperationParams } from '../../../types.js';
4
4
  export declare function isBlurOperationParams(obj: unknown): Outcome.Either<BlurOperationParams, string>;
5
- export declare function blur(sharpInstance: sharp.Sharp, params: BlurOperationParams): Promise<sharp.Sharp>;
5
+ export declare function blur(sharpInstance: Sharp, params: BlurOperationParams): Promise<Sharp>;
@@ -7,6 +7,7 @@ export function isBlurOperationParams(obj) {
7
7
  return Outcome.makeFailure(result.error.message);
8
8
  return Outcome.makeSuccess(result.data);
9
9
  }
10
+ // eslint-disable-next-line @typescript-eslint/require-await
10
11
  export async function blur(sharpInstance, params) {
11
12
  return sharpInstance.blur(params.sigma);
12
13
  }