@design-edito/tools 0.4.22 → 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 (505) 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 +1 -1
  22. package/agnostic/colors/index.js +1 -1
  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 +11 -11
  87. package/agnostic/html/hyper-json/smart-tags/coalesced/index.js +11 -11
  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 +1 -1
  139. package/agnostic/html/hyper-json/smart-tags/isolated/index.js +1 -1
  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 +1 -1
  154. package/agnostic/html/index.js +1 -1
  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 +3 -3
  179. package/agnostic/misc/index.js +3 -3
  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 +1 -1
  215. package/agnostic/objects/index.js +1 -1
  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/path/index.d.ts +2 -2
  244. package/agnostic/sanitization/path/index.js +2 -2
  245. package/agnostic/sanitization/user-input/index.js +1 -0
  246. package/agnostic/strings/char-codes/index.js +2 -6
  247. package/agnostic/strings/index.d.ts +1 -1
  248. package/agnostic/strings/index.js +1 -1
  249. package/agnostic/strings/normalize-indent/index.js +2 -2
  250. package/agnostic/strings/parse-table/index.d.ts +13 -13
  251. package/agnostic/strings/parse-table/index.js +31 -16
  252. package/agnostic/strings/replace-all/index.d.ts +1 -1
  253. package/agnostic/strings/replace-all/index.js +1 -0
  254. package/agnostic/strings/to-alphanum/index.js +2 -2
  255. package/agnostic/strings/trim/index.js +2 -2
  256. package/agnostic/time/dates/format-date/index.js +3 -1
  257. package/agnostic/time/dates/index.d.ts +1 -0
  258. package/agnostic/time/dates/index.js +1 -0
  259. package/agnostic/time/dates/to-french-republican/index.d.ts +16 -0
  260. package/agnostic/time/dates/to-french-republican/index.js +82 -0
  261. package/agnostic/time/dates/to-french-republican/index.test.d.ts +1 -0
  262. package/agnostic/time/dates/to-french-republican/index.test.js +112 -0
  263. package/agnostic/time/dates/to-french-republican/types.d.ts +91 -0
  264. package/agnostic/time/dates/to-french-republican/types.js +47 -0
  265. package/agnostic/time/dates/to-french-republican/utils.d.ts +32 -0
  266. package/agnostic/time/dates/to-french-republican/utils.js +155 -0
  267. package/agnostic/time/duration/index.js +2 -0
  268. package/agnostic/time/index.d.ts +2 -2
  269. package/agnostic/time/index.js +2 -2
  270. package/agnostic/time/timeout/index.js +9 -9
  271. package/agnostic/time/transitions/index.js +8 -7
  272. package/components/BeforeAfter/index.controlled.js +1 -0
  273. package/components/BeforeAfter/index.js +4 -0
  274. package/components/Button/index.d.ts +2 -7
  275. package/components/Button/index.js +2 -2
  276. package/components/Clippable/index.js +1 -0
  277. package/components/Drawer/index.js +1 -1
  278. package/components/Gallery/index.js +2 -1
  279. package/components/Gallery/utils.js +5 -1
  280. package/components/Iframe/index.d.ts +16 -34
  281. package/components/Iframe/index.js +70 -27
  282. package/components/Image/index.js +2 -0
  283. package/components/Input/index.controlled.d.ts +42 -0
  284. package/components/Input/index.controlled.js +54 -0
  285. package/components/Input/index.d.ts +21 -17
  286. package/components/Input/index.js +27 -18
  287. package/components/IntersectionObserver/index.js +5 -2
  288. package/components/JsonEditor/index.js +1 -1
  289. package/components/Overlayer/index.d.ts +1 -1
  290. package/components/ScrollListener/utils.d.ts +29 -0
  291. package/components/Select/index.controlled.d.ts +43 -0
  292. package/components/Select/index.controlled.js +54 -0
  293. package/components/Select/index.d.ts +22 -18
  294. package/components/Select/index.js +27 -18
  295. package/components/Sequencer/index.controlled.js +1 -1
  296. package/components/Subtitles/index.js +3 -1
  297. package/components/Subtitles/types.d.ts +14 -0
  298. package/components/Subtitles/utils.d.ts +19 -15
  299. package/components/Subtitles/utils.js +29 -24
  300. package/components/Textarea/index.controlled.d.ts +50 -0
  301. package/components/Textarea/index.controlled.js +75 -0
  302. package/components/Textarea/index.d.ts +22 -17
  303. package/components/Textarea/index.js +27 -18
  304. package/components/UIModule/index.js +3 -1
  305. package/components/Video/index.controlled.d.ts +1 -1
  306. package/components/Video/index.controlled.js +11 -10
  307. package/components/Video/index.js +27 -20
  308. package/components/Video/utils.d.ts +1 -1
  309. package/components/Video/utils.js +11 -2
  310. package/components/index.d.ts +1 -1
  311. package/components/index.js +1 -1
  312. package/components/utils/types.d.ts +5 -0
  313. package/node/@aws-s3/storage/directory/copy-dir/index.d.ts +9 -9
  314. package/node/@aws-s3/storage/directory/copy-dir/index.js +15 -12
  315. package/node/@aws-s3/storage/directory/index.d.ts +1 -1
  316. package/node/@aws-s3/storage/directory/index.js +1 -1
  317. package/node/@aws-s3/storage/directory/list/index.d.ts +5 -5
  318. package/node/@aws-s3/storage/directory/list/index.js +5 -5
  319. package/node/@aws-s3/storage/directory/move-dir/index.d.ts +6 -6
  320. package/node/@aws-s3/storage/directory/move-dir/index.js +11 -7
  321. package/node/@aws-s3/storage/directory/remove-dir/index.d.ts +5 -5
  322. package/node/@aws-s3/storage/directory/remove-dir/index.js +5 -5
  323. package/node/@aws-s3/storage/file/copy/index.d.ts +8 -8
  324. package/node/@aws-s3/storage/file/copy/index.js +12 -9
  325. package/node/@aws-s3/storage/file/download/index.d.ts +6 -6
  326. package/node/@aws-s3/storage/file/download/index.js +6 -5
  327. package/node/@aws-s3/storage/file/exists/index.d.ts +6 -6
  328. package/node/@aws-s3/storage/file/exists/index.js +15 -12
  329. package/node/@aws-s3/storage/file/index.d.ts +1 -1
  330. package/node/@aws-s3/storage/file/index.js +1 -1
  331. package/node/@aws-s3/storage/file/move/index.d.ts +9 -9
  332. package/node/@aws-s3/storage/file/move/index.js +18 -15
  333. package/node/@aws-s3/storage/file/remove/index.d.ts +5 -5
  334. package/node/@aws-s3/storage/file/remove/index.js +16 -11
  335. package/node/@aws-s3/storage/file/stat/index.d.ts +5 -5
  336. package/node/@aws-s3/storage/file/stat/index.js +10 -7
  337. package/node/@aws-s3/storage/file/upload/index.d.ts +7 -7
  338. package/node/@aws-s3/storage/file/upload/index.js +11 -9
  339. package/node/@express/@multer/index.d.ts +12 -12
  340. package/node/@express/@multer/index.js +27 -25
  341. package/node/@google-cloud/storage/bucket/get-metadata/index.d.ts +4 -4
  342. package/node/@google-cloud/storage/bucket/get-metadata/index.js +3 -3
  343. package/node/@google-cloud/storage/directory/copy-dir/index.d.ts +7 -7
  344. package/node/@google-cloud/storage/directory/copy-dir/index.js +6 -6
  345. package/node/@google-cloud/storage/directory/index.d.ts +1 -1
  346. package/node/@google-cloud/storage/directory/index.js +1 -1
  347. package/node/@google-cloud/storage/directory/list/index.d.ts +6 -6
  348. package/node/@google-cloud/storage/directory/list/index.js +5 -5
  349. package/node/@google-cloud/storage/directory/move-dir/index.d.ts +6 -6
  350. package/node/@google-cloud/storage/directory/move-dir/index.js +5 -5
  351. package/node/@google-cloud/storage/directory/remove-dir/index.d.ts +7 -7
  352. package/node/@google-cloud/storage/directory/remove-dir/index.js +6 -6
  353. package/node/@google-cloud/storage/file/copy/index.d.ts +9 -9
  354. package/node/@google-cloud/storage/file/copy/index.js +8 -8
  355. package/node/@google-cloud/storage/file/download/index.d.ts +7 -7
  356. package/node/@google-cloud/storage/file/download/index.js +5 -5
  357. package/node/@google-cloud/storage/file/exists/index.d.ts +7 -7
  358. package/node/@google-cloud/storage/file/exists/index.js +6 -6
  359. package/node/@google-cloud/storage/file/generate-signed-url/index.d.ts +7 -7
  360. package/node/@google-cloud/storage/file/generate-signed-url/index.js +6 -6
  361. package/node/@google-cloud/storage/file/get-metadata/index.d.ts +5 -5
  362. package/node/@google-cloud/storage/file/get-metadata/index.js +4 -4
  363. package/node/@google-cloud/storage/file/get-permissions/index.d.ts +6 -6
  364. package/node/@google-cloud/storage/file/get-permissions/index.js +4 -4
  365. package/node/@google-cloud/storage/file/index.d.ts +1 -1
  366. package/node/@google-cloud/storage/file/index.js +1 -1
  367. package/node/@google-cloud/storage/file/move/index.d.ts +10 -10
  368. package/node/@google-cloud/storage/file/move/index.js +9 -9
  369. package/node/@google-cloud/storage/file/remove/index.d.ts +5 -5
  370. package/node/@google-cloud/storage/file/remove/index.js +4 -4
  371. package/node/@google-cloud/storage/file/revoke-signed-urls/index.d.ts +5 -5
  372. package/node/@google-cloud/storage/file/revoke-signed-urls/index.js +5 -5
  373. package/node/@google-cloud/storage/file/stat/index.d.ts +5 -5
  374. package/node/@google-cloud/storage/file/stat/index.js +4 -4
  375. package/node/@google-cloud/storage/file/update-metadata/index.d.ts +7 -7
  376. package/node/@google-cloud/storage/file/update-metadata/index.js +5 -5
  377. package/node/@google-cloud/storage/file/upload/index.d.ts +7 -7
  378. package/node/@google-cloud/storage/file/upload/index.js +5 -5
  379. package/node/@google-cloud/storage/index.d.ts +1 -1
  380. package/node/@google-cloud/storage/index.js +1 -1
  381. package/node/cloud-storage/clients/index.d.ts +8 -8
  382. package/node/cloud-storage/clients/index.js +8 -8
  383. package/node/cloud-storage/operations/copy-dir/index.d.ts +22 -22
  384. package/node/cloud-storage/operations/copy-dir/index.js +5 -5
  385. package/node/cloud-storage/operations/copy-file/index.d.ts +22 -22
  386. package/node/cloud-storage/operations/copy-file/index.js +5 -5
  387. package/node/cloud-storage/operations/download-file/index.d.ts +19 -19
  388. package/node/cloud-storage/operations/download-file/index.js +6 -6
  389. package/node/cloud-storage/operations/exists-file/index.d.ts +15 -26
  390. package/node/cloud-storage/operations/exists-file/index.js +4 -4
  391. package/node/cloud-storage/operations/index.d.ts +1 -1
  392. package/node/cloud-storage/operations/index.js +1 -1
  393. package/node/cloud-storage/operations/list-dir/index.d.ts +15 -25
  394. package/node/cloud-storage/operations/list-dir/index.js +4 -4
  395. package/node/cloud-storage/operations/move-dir/index.d.ts +22 -22
  396. package/node/cloud-storage/operations/move-dir/index.js +5 -5
  397. package/node/cloud-storage/operations/move-file/index.d.ts +22 -22
  398. package/node/cloud-storage/operations/move-file/index.js +5 -5
  399. package/node/cloud-storage/operations/remove-dir/index.d.ts +18 -18
  400. package/node/cloud-storage/operations/remove-dir/index.js +4 -4
  401. package/node/cloud-storage/operations/remove-file/index.d.ts +18 -18
  402. package/node/cloud-storage/operations/remove-file/index.js +4 -4
  403. package/node/cloud-storage/operations/stat-file/index.d.ts +16 -16
  404. package/node/cloud-storage/operations/stat-file/index.js +4 -4
  405. package/node/cloud-storage/operations/upload-file/index.d.ts +23 -23
  406. package/node/cloud-storage/operations/upload-file/index.js +5 -5
  407. package/node/encryption/@aes-256-gcm/buffer/index.d.ts +6 -6
  408. package/node/encryption/@aes-256-gcm/buffer/index.js +6 -6
  409. package/node/encryption/@aes-256-gcm/uint8-array/index.d.ts +8 -8
  410. package/node/encryption/@aes-256-gcm/uint8-array/index.js +8 -8
  411. package/node/encryption/key/index.d.ts +6 -6
  412. package/node/encryption/key/index.js +6 -6
  413. package/node/files/read-write/index.d.ts +16 -16
  414. package/node/files/subpaths/index.d.ts +8 -8
  415. package/node/files/subpaths/index.js +11 -13
  416. package/node/ftps/directory/copy-dir/index.d.ts +6 -6
  417. package/node/ftps/directory/copy-dir/index.js +6 -6
  418. package/node/ftps/directory/list/index.d.ts +4 -4
  419. package/node/ftps/directory/list/index.js +3 -3
  420. package/node/ftps/directory/move-dir/index.d.ts +6 -6
  421. package/node/ftps/directory/move-dir/index.js +5 -5
  422. package/node/ftps/directory/remove-dir/index.d.ts +6 -6
  423. package/node/ftps/directory/remove-dir/index.js +8 -7
  424. package/node/ftps/file/copy/index.d.ts +6 -6
  425. package/node/ftps/file/copy/index.js +5 -5
  426. package/node/ftps/file/download/index.d.ts +6 -6
  427. package/node/ftps/file/download/index.js +5 -5
  428. package/node/ftps/file/exists/index.d.ts +3 -3
  429. package/node/ftps/file/exists/index.js +3 -3
  430. package/node/ftps/file/move/index.d.ts +8 -8
  431. package/node/ftps/file/move/index.js +11 -9
  432. package/node/ftps/file/remove/index.d.ts +5 -5
  433. package/node/ftps/file/remove/index.js +4 -4
  434. package/node/ftps/file/stat/index.d.ts +4 -4
  435. package/node/ftps/file/stat/index.js +4 -4
  436. package/node/ftps/file/upload/index.d.ts +7 -7
  437. package/node/ftps/file/upload/index.js +5 -5
  438. package/node/images/create/index.d.ts +2 -2
  439. package/node/images/create/index.js +1 -1
  440. package/node/images/format/index.d.ts +8 -8
  441. package/node/images/metadata/index.d.ts +2 -2
  442. package/node/images/transform/index.d.ts +2 -2
  443. package/node/images/transform/index.js +12 -2
  444. package/node/images/transform/operations/blur/index.d.ts +2 -2
  445. package/node/images/transform/operations/blur/index.js +1 -0
  446. package/node/images/transform/operations/brighten/index.d.ts +2 -2
  447. package/node/images/transform/operations/brighten/index.js +1 -0
  448. package/node/images/transform/operations/extend/index.d.ts +2 -2
  449. package/node/images/transform/operations/extend/index.js +1 -0
  450. package/node/images/transform/operations/extract/index.d.ts +2 -2
  451. package/node/images/transform/operations/extract/index.js +1 -0
  452. package/node/images/transform/operations/flatten/index.d.ts +2 -2
  453. package/node/images/transform/operations/flatten/index.js +1 -0
  454. package/node/images/transform/operations/flip/index.d.ts +2 -2
  455. package/node/images/transform/operations/flip/index.js +1 -0
  456. package/node/images/transform/operations/flop/index.d.ts +2 -2
  457. package/node/images/transform/operations/flop/index.js +1 -0
  458. package/node/images/transform/operations/hue/index.d.ts +2 -2
  459. package/node/images/transform/operations/hue/index.js +1 -0
  460. package/node/images/transform/operations/index.d.ts +1 -1
  461. package/node/images/transform/operations/index.js +1 -1
  462. package/node/images/transform/operations/level/index.d.ts +2 -2
  463. package/node/images/transform/operations/level/index.js +1 -0
  464. package/node/images/transform/operations/lighten/index.d.ts +2 -2
  465. package/node/images/transform/operations/lighten/index.js +1 -0
  466. package/node/images/transform/operations/normalize/index.d.ts +2 -2
  467. package/node/images/transform/operations/normalize/index.js +1 -0
  468. package/node/images/transform/operations/overlay/index.d.ts +2 -2
  469. package/node/images/transform/operations/resize/index.d.ts +2 -2
  470. package/node/images/transform/operations/resize/index.js +1 -0
  471. package/node/images/transform/operations/rotate/index.d.ts +2 -2
  472. package/node/images/transform/operations/rotate/index.js +1 -0
  473. package/node/images/transform/operations/saturate/index.d.ts +2 -2
  474. package/node/images/transform/operations/saturate/index.js +1 -0
  475. package/node/images/types.d.ts +41 -2
  476. package/node/images/utils/index.d.ts +10 -5
  477. package/node/index.d.ts +1 -1
  478. package/node/index.js +1 -1
  479. package/node/process/on-exit/index.js +2 -4
  480. package/node/process/prompt-continue/index.d.ts +3 -3
  481. package/node/process/prompt-continue/index.js +4 -3
  482. package/node/process/spawner/index.js +7 -6
  483. package/node/sftp/directory/copy-dir/index.d.ts +6 -6
  484. package/node/sftp/directory/copy-dir/index.js +6 -6
  485. package/node/sftp/directory/list/index.d.ts +3 -3
  486. package/node/sftp/directory/list/index.js +4 -4
  487. package/node/sftp/directory/move-dir/index.d.ts +7 -7
  488. package/node/sftp/directory/move-dir/index.js +7 -7
  489. package/node/sftp/directory/remove-dir/index.d.ts +5 -5
  490. package/node/sftp/directory/remove-dir/index.js +8 -7
  491. package/node/sftp/file/copy/index.d.ts +6 -6
  492. package/node/sftp/file/copy/index.js +5 -5
  493. package/node/sftp/file/download/index.d.ts +7 -7
  494. package/node/sftp/file/download/index.js +5 -5
  495. package/node/sftp/file/exists/index.d.ts +3 -3
  496. package/node/sftp/file/exists/index.js +3 -3
  497. package/node/sftp/file/move/index.d.ts +7 -7
  498. package/node/sftp/file/move/index.js +7 -7
  499. package/node/sftp/file/remove/index.d.ts +4 -4
  500. package/node/sftp/file/remove/index.js +4 -4
  501. package/node/sftp/file/stat/index.d.ts +3 -3
  502. package/node/sftp/file/stat/index.js +6 -5
  503. package/node/sftp/file/upload/index.d.ts +6 -6
  504. package/node/sftp/file/upload/index.js +5 -5
  505. package/package.json +40 -39
@@ -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
  }
@@ -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 { BrightenOperationParams } from '../../../types.js';
4
4
  export declare function isBrightenOperationParams(obj: unknown): Outcome.Either<BrightenOperationParams, string>;
5
- export declare function brighten(sharpInstance: sharp.Sharp, params: BrightenOperationParams): Promise<sharp.Sharp>;
5
+ export declare function brighten(sharpInstance: Sharp, params: BrightenOperationParams): Promise<Sharp>;
@@ -7,6 +7,7 @@ export function isBrightenOperationParams(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 brighten(sharpInstance, params) {
11
12
  return sharpInstance.modulate({ brightness: params.factor });
12
13
  }
@@ -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 { ExtendOperationParams } from '../../../types.js';
4
4
  export declare function isExtendOperationParams(obj: unknown): Outcome.Either<ExtendOperationParams, string>;
5
- export declare function extend(sharpInstance: sharp.Sharp, params: ExtendOperationParams): Promise<sharp.Sharp>;
5
+ export declare function extend(sharpInstance: Sharp, params: ExtendOperationParams): Promise<Sharp>;
@@ -16,6 +16,7 @@ export function isExtendOperationParams(obj) {
16
16
  return Outcome.makeFailure(result.error.message);
17
17
  return Outcome.makeSuccess(result.data);
18
18
  }
19
+ // eslint-disable-next-line @typescript-eslint/require-await
19
20
  export async function extend(sharpInstance, params) {
20
21
  return sharpInstance.extend({
21
22
  ...params,
@@ -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 { ExtractOperationParams } from '../../../types.js';
4
4
  export declare function isExtractOperationParams(obj: unknown): Outcome.Either<ExtractOperationParams, string>;
5
- export declare function extract(sharpInstance: sharp.Sharp, params: ExtractOperationParams): Promise<sharp.Sharp>;
5
+ export declare function extract(sharpInstance: Sharp, params: ExtractOperationParams): Promise<Sharp>;
@@ -12,6 +12,7 @@ export function isExtractOperationParams(obj) {
12
12
  return Outcome.makeFailure(result.error.message);
13
13
  return Outcome.makeSuccess(result.data);
14
14
  }
15
+ // eslint-disable-next-line @typescript-eslint/require-await
15
16
  export async function extract(sharpInstance, params) {
16
17
  return sharpInstance.extract(params);
17
18
  }
@@ -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 { FlattenOperationParams } from '../../../types.js';
4
4
  export declare function isFlattenOperationParams(obj: unknown): Outcome.Either<FlattenOperationParams, string>;
5
- export declare function flatten(sharpInstance: sharp.Sharp, params: FlattenOperationParams): Promise<sharp.Sharp>;
5
+ export declare function flatten(sharpInstance: Sharp, params: FlattenOperationParams): Promise<Sharp>;
@@ -11,6 +11,7 @@ export function isFlattenOperationParams(obj) {
11
11
  return Outcome.makeFailure(result.error.message);
12
12
  return Outcome.makeSuccess(result.data);
13
13
  }
14
+ // eslint-disable-next-line @typescript-eslint/require-await
14
15
  export async function flatten(sharpInstance, params) {
15
16
  const inputBg = params.background;
16
17
  const rgbBackground = inputBg !== undefined
@@ -1,2 +1,2 @@
1
- import type sharp from 'sharp';
2
- export declare function flip(sharpInstance: sharp.Sharp): Promise<sharp.Sharp>;
1
+ import type { Sharp } from 'sharp';
2
+ export declare function flip(sharpInstance: Sharp): Promise<Sharp>;
@@ -1,3 +1,4 @@
1
+ // eslint-disable-next-line @typescript-eslint/require-await
1
2
  export async function flip(sharpInstance) {
2
3
  return sharpInstance.flip();
3
4
  }
@@ -1,2 +1,2 @@
1
- import type sharp from 'sharp';
2
- export declare function flop(sharpInstance: sharp.Sharp): Promise<sharp.Sharp>;
1
+ import type { Sharp } from 'sharp';
2
+ export declare function flop(sharpInstance: Sharp): Promise<Sharp>;
@@ -1,3 +1,4 @@
1
+ // eslint-disable-next-line @typescript-eslint/require-await
1
2
  export async function flop(sharpInstance) {
2
3
  return sharpInstance.flop();
3
4
  }
@@ -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 { HueOperationParams } from '../../../types.js';
4
4
  export declare function isHueOperationParams(obj: unknown): Outcome.Either<HueOperationParams, string>;
5
- export declare function hue(sharpInstance: sharp.Sharp, params: HueOperationParams): Promise<sharp.Sharp>;
5
+ export declare function hue(sharpInstance: Sharp, params: HueOperationParams): Promise<Sharp>;
@@ -9,6 +9,7 @@ export function isHueOperationParams(obj) {
9
9
  return Outcome.makeFailure(result.error.message);
10
10
  return Outcome.makeSuccess(result.data);
11
11
  }
12
+ // eslint-disable-next-line @typescript-eslint/require-await
12
13
  export async function hue(sharpInstance, params) {
13
14
  return sharpInstance.modulate({ hue: params.rotateDeg });
14
15
  }
@@ -11,5 +11,5 @@ export * as lighten from './lighten/index.js'
11
11
  export * as normalize from './normalize/index.js'
12
12
  export * as overlay from './overlay/index.js'
13
13
  export * as resize from './resize/index.js'
14
- export * as rotate from './rotate/index.js'
15
14
  export * as saturate from './saturate/index.js'
15
+ export * as rotate from './rotate/index.js'
@@ -11,5 +11,5 @@ export * as lighten from './lighten/index.js'
11
11
  export * as normalize from './normalize/index.js'
12
12
  export * as overlay from './overlay/index.js'
13
13
  export * as resize from './resize/index.js'
14
- export * as rotate from './rotate/index.js'
15
14
  export * as saturate from './saturate/index.js'
15
+ export * as rotate from './rotate/index.js'
@@ -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 { LevelOperationParams } from '../../../types.js';
4
4
  export declare function isLevelOperationParams(obj: unknown): Outcome.Either<LevelOperationParams, string>;
5
- export declare function level(sharpInstance: sharp.Sharp, params: LevelOperationParams): Promise<sharp.Sharp>;
5
+ export declare function level(sharpInstance: Sharp, params: LevelOperationParams): Promise<Sharp>;
@@ -10,6 +10,7 @@ export function isLevelOperationParams(obj) {
10
10
  return Outcome.makeFailure(result.error.message);
11
11
  return Outcome.makeSuccess(result.data);
12
12
  }
13
+ // eslint-disable-next-line @typescript-eslint/require-await
13
14
  export async function level(sharpInstance, params) {
14
15
  return sharpInstance.linear(params.multiplier, params.offset);
15
16
  }
@@ -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 { LightenOperationParams } from '../../../types.js';
4
4
  export declare function isLightenOperationParams(obj: unknown): Outcome.Either<LightenOperationParams, string>;
5
- export declare function lighten(sharpInstance: sharp.Sharp, params: LightenOperationParams): Promise<sharp.Sharp>;
5
+ export declare function lighten(sharpInstance: Sharp, params: LightenOperationParams): Promise<Sharp>;
@@ -9,6 +9,7 @@ export function isLightenOperationParams(obj) {
9
9
  return Outcome.makeFailure(result.error.message);
10
10
  return Outcome.makeSuccess(result.data);
11
11
  }
12
+ // eslint-disable-next-line @typescript-eslint/require-await
12
13
  export async function lighten(sharpInstance, params) {
13
14
  return sharpInstance.modulate({ lightness: params.amount });
14
15
  }