@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
@@ -6,11 +6,11 @@ export type ListOptions = Omit<ListObjectsV2CommandInput, 'Bucket' | 'Prefix' |
6
6
  * Lists all direct‑child object keys under a given directory prefix in an S3
7
7
  * bucket (AWS SDK v3). The listing is **non‑recursive**.
8
8
  *
9
- * @param {S3Client} client - The v3 S3 client used to list objects.
10
- * @param {string} bucketName - The name of the S3 bucket.
11
- * @param {string} directoryPath - The directory prefix to list.
12
- * @param {ListOptions} [options] - Additional parameters for `ListObjectsV2`.
13
- * @returns {Promise<Outcome.Either<string[], string>>}
9
+ * @param client - The v3 S3 client used to list objects.
10
+ * @param bucketName - The name of the S3 bucket.
11
+ * @param directoryPath - The directory prefix to list.
12
+ * @param [options] - Additional parameters for `ListObjectsV2`.
13
+ * @returns
14
14
  * - Success: `Outcome.makeSuccess(keys)` where `keys` is an array of object keys.
15
15
  * - Failure: `Outcome.makeFailure(errStr)` if the list operation fails.
16
16
  */
@@ -5,11 +5,11 @@ import { unknownToString } from '../../../../../agnostic/errors/unknown-to-strin
5
5
  * Lists all direct‑child object keys under a given directory prefix in an S3
6
6
  * bucket (AWS SDK v3). The listing is **non‑recursive**.
7
7
  *
8
- * @param {S3Client} client - The v3 S3 client used to list objects.
9
- * @param {string} bucketName - The name of the S3 bucket.
10
- * @param {string} directoryPath - The directory prefix to list.
11
- * @param {ListOptions} [options] - Additional parameters for `ListObjectsV2`.
12
- * @returns {Promise<Outcome.Either<string[], string>>}
8
+ * @param client - The v3 S3 client used to list objects.
9
+ * @param bucketName - The name of the S3 bucket.
10
+ * @param directoryPath - The directory prefix to list.
11
+ * @param [options] - Additional parameters for `ListObjectsV2`.
12
+ * @returns
13
13
  * - Success: `Outcome.makeSuccess(keys)` where `keys` is an array of object keys.
14
14
  * - Failure: `Outcome.makeFailure(errStr)` if the list operation fails.
15
15
  */
@@ -21,12 +21,12 @@ export type MoveDirOptions = {
21
21
  * Behaviour when `overwrite` is **false** (default): abort if *any* destination
22
22
  * key already exists.
23
23
  *
24
- * @param {S3Client} client - The v3 S3 client instance.
25
- * @param {string} bucketName - The name of the S3 bucket.
26
- * @param {string} sourceDir - The source directory prefix to move from.
27
- * @param {string} targetDir - The target directory prefix to move to.
28
- * @param {MoveDirOptions} [options] - Optional configuration.
29
- * @returns {Promise<Outcome.Either<true, string>>}
24
+ * @param client - The v3 S3 client instance.
25
+ * @param bucketName - The name of the S3 bucket.
26
+ * @param sourceDir - The source directory prefix to move from.
27
+ * @param targetDir - The target directory prefix to move to.
28
+ * @param [options] - Optional configuration.
29
+ * @returns
30
30
  * - On success: `Outcome.makeSuccess(true)`.
31
31
  * - On failure: `Outcome.makeFailure(errStr)`.
32
32
  */
@@ -1,6 +1,7 @@
1
1
  import { ListObjectsV2Command, CopyObjectCommand, DeleteObjectCommand, HeadObjectCommand } from '@aws-sdk/client-s3';
2
2
  import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
3
  import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
4
+ import { deepGetProperty } from '../../../../../agnostic/objects/deep-get-property/index.js';
4
5
  /**
5
6
  * Recursively moves every object under `sourceDir` to the corresponding path
6
7
  * under `targetDir` within the same S3 bucket (AWS SDK v3).
@@ -8,12 +9,12 @@ import { unknownToString } from '../../../../../agnostic/errors/unknown-to-strin
8
9
  * Behaviour when `overwrite` is **false** (default): abort if *any* destination
9
10
  * key already exists.
10
11
  *
11
- * @param {S3Client} client - The v3 S3 client instance.
12
- * @param {string} bucketName - The name of the S3 bucket.
13
- * @param {string} sourceDir - The source directory prefix to move from.
14
- * @param {string} targetDir - The target directory prefix to move to.
15
- * @param {MoveDirOptions} [options] - Optional configuration.
16
- * @returns {Promise<Outcome.Either<true, string>>}
12
+ * @param client - The v3 S3 client instance.
13
+ * @param bucketName - The name of the S3 bucket.
14
+ * @param sourceDir - The source directory prefix to move from.
15
+ * @param targetDir - The target directory prefix to move to.
16
+ * @param [options] - Optional configuration.
17
+ * @returns
17
18
  * - On success: `Outcome.makeSuccess(true)`.
18
19
  * - On failure: `Outcome.makeFailure(errStr)`.
19
20
  */
@@ -41,7 +42,10 @@ export async function moveDir(client, bucketName, sourceDir, targetDir, options)
41
42
  throw new Error(`Object already exists at ${dest}.`);
42
43
  }
43
44
  catch (err) {
44
- if (err.$metadata?.httpStatusCode !== 404 && err.name !== 'NotFound')
45
+ const name = deepGetProperty(err, 'name');
46
+ const httpStatusCode = deepGetProperty(err, '$metadata.httpStatusCode');
47
+ // eslint-disable-next-line max-depth
48
+ if (httpStatusCode !== 404 && name !== 'NotFound')
45
49
  throw err;
46
50
  }
47
51
  }
@@ -18,11 +18,11 @@ export type RemoveDirOptions = {
18
18
  * using the AWS SDK v3 client. Handles pagination and the 1 000‑key limit of
19
19
  * `DeleteObjects`.
20
20
  *
21
- * @param {S3Client} client - The v3 S3 client instance.
22
- * @param {string} bucketName - The name of the S3 bucket.
23
- * @param {string} directoryPath - The “directory” prefix to delete.
24
- * @param {RemoveDirOptions} [options] - Optional listing/deletion configuration.
25
- * @returns {Promise<Outcome.Either<true, string>>}
21
+ * @param client - The v3 S3 client instance.
22
+ * @param bucketName - The name of the S3 bucket.
23
+ * @param directoryPath - The “directory” prefix to delete.
24
+ * @param [options] - Optional listing/deletion configuration.
25
+ * @returns
26
26
  * - On success: `Outcome.makeSuccess(true)` – deletion succeeded, or prefix
27
27
  * absent and `ignoreMissing` is true.
28
28
  * - On failure: `Outcome.makeFailure(errStr)` if deletion fails, or prefix
@@ -6,11 +6,11 @@ import { unknownToString } from '../../../../../agnostic/errors/unknown-to-strin
6
6
  * using the AWS SDK v3 client. Handles pagination and the 1 000‑key limit of
7
7
  * `DeleteObjects`.
8
8
  *
9
- * @param {S3Client} client - The v3 S3 client instance.
10
- * @param {string} bucketName - The name of the S3 bucket.
11
- * @param {string} directoryPath - The “directory” prefix to delete.
12
- * @param {RemoveDirOptions} [options] - Optional listing/deletion configuration.
13
- * @returns {Promise<Outcome.Either<true, string>>}
9
+ * @param client - The v3 S3 client instance.
10
+ * @param bucketName - The name of the S3 bucket.
11
+ * @param directoryPath - The “directory” prefix to delete.
12
+ * @param [options] - Optional listing/deletion configuration.
13
+ * @returns
14
14
  * - On success: `Outcome.makeSuccess(true)` – deletion succeeded, or prefix
15
15
  * absent and `ignoreMissing` is true.
16
16
  * - On failure: `Outcome.makeFailure(errStr)` if deletion fails, or prefix
@@ -16,14 +16,14 @@ export type CopyOptions = {
16
16
  /**
17
17
  * Copies an object from one key to another within the same S3 bucket.
18
18
  *
19
- * @param {S3Client} client - The v3 S3 client instance.
20
- * @param {string} bucketName - The name of the S3 bucket.
21
- * @param {string} sourcePath - The key of the source object.
22
- * @param {string} targetPath - The key where the object will be copied.
23
- * @param {CopyOptions} [options] - Optional copy configuration.
24
- * @param {Omit<CopyObjectCommandInput,'Bucket'|'Key'|'CopySource'>} [options.copyOptions] - Extra copy params.
25
- * @param {boolean} [options.overwrite=false] - Whether to overwrite an existing object.
26
- * @returns {Promise<Outcome.Either<true, string>>}
19
+ * @param client - The v3 S3 client instance.
20
+ * @param bucketName - The name of the S3 bucket.
21
+ * @param sourcePath - The key of the source object.
22
+ * @param targetPath - The key where the object will be copied.
23
+ * @param [options] - Optional copy configuration.
24
+ * @param [options.copyOptions] - Extra copy params.
25
+ * @param [options.overwrite=false] - Whether to overwrite an existing object.
26
+ * @returns
27
27
  * - On success: `Outcome.makeSuccess(true)`.
28
28
  * - On failure: `Outcome.makeFailure(errStr)`.
29
29
  */
@@ -1,17 +1,18 @@
1
1
  import { CopyObjectCommand, HeadObjectCommand } from '@aws-sdk/client-s3';
2
2
  import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
3
  import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
4
+ import { deepGetProperty } from '../../../../../agnostic/objects/deep-get-property/index.js';
4
5
  /**
5
6
  * Copies an object from one key to another within the same S3 bucket.
6
7
  *
7
- * @param {S3Client} client - The v3 S3 client instance.
8
- * @param {string} bucketName - The name of the S3 bucket.
9
- * @param {string} sourcePath - The key of the source object.
10
- * @param {string} targetPath - The key where the object will be copied.
11
- * @param {CopyOptions} [options] - Optional copy configuration.
12
- * @param {Omit<CopyObjectCommandInput,'Bucket'|'Key'|'CopySource'>} [options.copyOptions] - Extra copy params.
13
- * @param {boolean} [options.overwrite=false] - Whether to overwrite an existing object.
14
- * @returns {Promise<Outcome.Either<true, string>>}
8
+ * @param client - The v3 S3 client instance.
9
+ * @param bucketName - The name of the S3 bucket.
10
+ * @param sourcePath - The key of the source object.
11
+ * @param targetPath - The key where the object will be copied.
12
+ * @param [options] - Optional copy configuration.
13
+ * @param [options.copyOptions] - Extra copy params.
14
+ * @param [options.overwrite=false] - Whether to overwrite an existing object.
15
+ * @returns
15
16
  * - On success: `Outcome.makeSuccess(true)`.
16
17
  * - On failure: `Outcome.makeFailure(errStr)`.
17
18
  */
@@ -24,7 +25,9 @@ export async function copy(client, bucketName, sourcePath, targetPath, options)
24
25
  return Outcome.makeFailure(`Object already exists at ${targetPath}.`);
25
26
  }
26
27
  catch (err) {
27
- const notFound = err.$metadata?.httpStatusCode === 404 || err.name === 'NotFound';
28
+ const name = deepGetProperty(err, 'name');
29
+ const httpStatusCode = deepGetProperty(err, '$metadata.httpStatusCode');
30
+ const notFound = httpStatusCode === 404 || name === 'NotFound';
28
31
  if (!notFound)
29
32
  throw err; // propagate unexpected errors
30
33
  }
@@ -1,4 +1,4 @@
1
- import { type Readable } from 'node:stream';
1
+ import type { Readable } from 'node:stream';
2
2
  import { type S3Client, type GetObjectCommandInput } from '@aws-sdk/client-s3';
3
3
  import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
4
4
  /**
@@ -11,11 +11,11 @@ export type DownloadOptions = Omit<GetObjectCommandInput, 'Bucket' | 'Key'>;
11
11
  *
12
12
  * The function streams the object’s content back as a Node `Readable`.
13
13
  *
14
- * @param {S3Client} client - The v3 S3 client instance.
15
- * @param {string} bucketName - The name of the S3 bucket.
16
- * @param {string} sourcePath - The key of the object to download.
17
- * @param {DownloadOptions} [options] - Extra parameters for the download.
18
- * @returns {Promise<Outcome.Either<Readable, string>>}
14
+ * @param client - The v3 S3 client instance.
15
+ * @param bucketName - The name of the S3 bucket.
16
+ * @param sourcePath - The key of the object to download.
17
+ * @param [options] - Extra parameters for the download.
18
+ * @returns
19
19
  * - On success: `Outcome.makeSuccess(stream)` containing the file content.
20
20
  * - On failure: `Outcome.makeFailure(errStr)`.
21
21
  */
@@ -6,11 +6,11 @@ import { unknownToString } from '../../../../../agnostic/errors/unknown-to-strin
6
6
  *
7
7
  * The function streams the object’s content back as a Node `Readable`.
8
8
  *
9
- * @param {S3Client} client - The v3 S3 client instance.
10
- * @param {string} bucketName - The name of the S3 bucket.
11
- * @param {string} sourcePath - The key of the object to download.
12
- * @param {DownloadOptions} [options] - Extra parameters for the download.
13
- * @returns {Promise<Outcome.Either<Readable, string>>}
9
+ * @param client - The v3 S3 client instance.
10
+ * @param bucketName - The name of the S3 bucket.
11
+ * @param sourcePath - The key of the object to download.
12
+ * @param [options] - Extra parameters for the download.
13
+ * @returns
14
14
  * - On success: `Outcome.makeSuccess(stream)` containing the file content.
15
15
  * - On failure: `Outcome.makeFailure(errStr)`.
16
16
  */
@@ -21,6 +21,7 @@ export async function download(client, bucketName, sourcePath, options) {
21
21
  Key: sourcePath,
22
22
  ...options
23
23
  }));
24
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- GetObjectCommand's response.Body is always a Readable stream in Node.js
24
25
  const stream = response.Body;
25
26
  return Outcome.makeSuccess(stream);
26
27
  }
@@ -10,12 +10,12 @@ export type ExistsOptions = {
10
10
  /**
11
11
  * Checks whether an object exists in a specified S3 bucket (AWS SDK v3).
12
12
  *
13
- * @param {S3Client} client - The v3 S3 client instance.
14
- * @param {string} bucketName - The name of the S3 bucket.
15
- * @param {string} sourcePath - The key of the object to test.
16
- * @param {ExistsOptions} [options] - Optional configuration.
17
- * @param {Omit<HeadObjectCommandInput,'Bucket'|'Key'>} [options.headObjectOptions] - Extra `HeadObject` params.
18
- * @returns {Promise<Outcome.Either<boolean, string>>}
13
+ * @param client - The v3 S3 client instance.
14
+ * @param bucketName - The name of the S3 bucket.
15
+ * @param sourcePath - The key of the object to test.
16
+ * @param [options] - Optional configuration.
17
+ * @param [options.headObjectOptions] - Extra `HeadObject` params.
18
+ * @returns
19
19
  * - Success: `Outcome.makeSuccess(true)` if the object exists,
20
20
  * `Outcome.makeSuccess(false)` if it does not.
21
21
  * - Failure: `Outcome.makeFailure(errStr)` for unexpected errors.
@@ -1,15 +1,16 @@
1
1
  import { HeadObjectCommand } from '@aws-sdk/client-s3';
2
2
  import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
3
  import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
4
+ import { deepGetProperty } from '../../../../../agnostic/objects/deep-get-property/index.js';
4
5
  /**
5
6
  * Checks whether an object exists in a specified S3 bucket (AWS SDK v3).
6
7
  *
7
- * @param {S3Client} client - The v3 S3 client instance.
8
- * @param {string} bucketName - The name of the S3 bucket.
9
- * @param {string} sourcePath - The key of the object to test.
10
- * @param {ExistsOptions} [options] - Optional configuration.
11
- * @param {Omit<HeadObjectCommandInput,'Bucket'|'Key'>} [options.headObjectOptions] - Extra `HeadObject` params.
12
- * @returns {Promise<Outcome.Either<boolean, string>>}
8
+ * @param client - The v3 S3 client instance.
9
+ * @param bucketName - The name of the S3 bucket.
10
+ * @param sourcePath - The key of the object to test.
11
+ * @param [options] - Optional configuration.
12
+ * @param [options.headObjectOptions] - Extra `HeadObject` params.
13
+ * @returns
13
14
  * - Success: `Outcome.makeSuccess(true)` if the object exists,
14
15
  * `Outcome.makeSuccess(false)` if it does not.
15
16
  * - Failure: `Outcome.makeFailure(errStr)` for unexpected errors.
@@ -25,13 +26,15 @@ export async function exists(client, bucketName, sourcePath, options) {
25
26
  return Outcome.makeSuccess(true);
26
27
  }
27
28
  catch (err) {
28
- const notFound = err.$metadata?.httpStatusCode === 404
29
- || err.name === 'NotFound'
30
- || err.Code === 'NotFound' // some SDKs emit Code
31
- || err.Code === 'NoSuchKey';
32
- if (notFound) {
29
+ const name = deepGetProperty(err, 'name');
30
+ const Code = deepGetProperty(err, 'Code');
31
+ const httpStatusCode = deepGetProperty(err, '$metadata.httpStatusCode');
32
+ const notFound = httpStatusCode === 404
33
+ || name === 'NotFound'
34
+ || Code === 'NotFound' // some SDKs emit Code
35
+ || Code === 'NoSuchKey';
36
+ if (notFound)
33
37
  return Outcome.makeSuccess(false);
34
- }
35
38
  return Outcome.makeFailure(unknownToString(err));
36
39
  }
37
40
  }
@@ -1,6 +1,6 @@
1
1
  export * as copy from './copy/index.js'
2
- export * as exists from './exists/index.js'
3
2
  export * as download from './download/index.js'
3
+ export * as exists from './exists/index.js'
4
4
  export * as move from './move/index.js'
5
5
  export * as remove from './remove/index.js'
6
6
  export * as stat from './stat/index.js'
@@ -1,6 +1,6 @@
1
1
  export * as copy from './copy/index.js'
2
- export * as exists from './exists/index.js'
3
2
  export * as download from './download/index.js'
3
+ export * as exists from './exists/index.js'
4
4
  export * as move from './move/index.js'
5
5
  export * as remove from './remove/index.js'
6
6
  export * as stat from './stat/index.js'
@@ -18,15 +18,15 @@ export type MoveOptions = {
18
18
  * The function copies the object from `sourcePath` to `targetPath` and, upon
19
19
  * successful copy, deletes the original object.
20
20
  *
21
- * @param {S3Client} client - The S3 client instance.
22
- * @param {string} bucketName - The name of the bucket.
23
- * @param {string} sourcePath - The source object's key.
24
- * @param {string} targetPath - The destination object's key.
25
- * @param {MoveOptions} [options] - Optional copy/delete behaviour.
26
- * @param {Omit<CopyObjectCommandInput,'Bucket'|'Key'|'CopySource'>} [options.copyOptions] - Extra copy params.
27
- * @param {Omit<DeleteObjectCommandInput,'Bucket'|'Key'>} [options.deleteOptions] - Extra delete params.
28
- * @param {boolean} [options.overwrite=false] - Whether to overwrite an existing `targetPath`.
29
- * @returns {Promise<Outcome.Either<true, string>>}
21
+ * @param client - The S3 client instance.
22
+ * @param bucketName - The name of the bucket.
23
+ * @param sourcePath - The source object's key.
24
+ * @param targetPath - The destination object's key.
25
+ * @param [options] - Optional copy/delete behaviour.
26
+ * @param [options.copyOptions] - Extra copy params.
27
+ * @param [options.deleteOptions] - Extra delete params.
28
+ * @param [options.overwrite=false] - Whether to overwrite an existing `targetPath`.
29
+ * @returns
30
30
  * - Success: `Outcome.makeSuccess(true)`
31
31
  * - Failure: `Outcome.makeFailure(errStr)`
32
32
  */
@@ -1,21 +1,22 @@
1
1
  import { HeadObjectCommand, CopyObjectCommand, DeleteObjectCommand } from '@aws-sdk/client-s3';
2
2
  import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
3
  import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
4
+ import { deepGetProperty } from '../../../../../agnostic/objects/deep-get-property/index.js';
4
5
  /**
5
6
  * Moves an object from one key to another within the same S3 bucket (AWS SDK v3).
6
7
  *
7
8
  * The function copies the object from `sourcePath` to `targetPath` and, upon
8
9
  * successful copy, deletes the original object.
9
10
  *
10
- * @param {S3Client} client - The S3 client instance.
11
- * @param {string} bucketName - The name of the bucket.
12
- * @param {string} sourcePath - The source object's key.
13
- * @param {string} targetPath - The destination object's key.
14
- * @param {MoveOptions} [options] - Optional copy/delete behaviour.
15
- * @param {Omit<CopyObjectCommandInput,'Bucket'|'Key'|'CopySource'>} [options.copyOptions] - Extra copy params.
16
- * @param {Omit<DeleteObjectCommandInput,'Bucket'|'Key'>} [options.deleteOptions] - Extra delete params.
17
- * @param {boolean} [options.overwrite=false] - Whether to overwrite an existing `targetPath`.
18
- * @returns {Promise<Outcome.Either<true, string>>}
11
+ * @param client - The S3 client instance.
12
+ * @param bucketName - The name of the bucket.
13
+ * @param sourcePath - The source object's key.
14
+ * @param targetPath - The destination object's key.
15
+ * @param [options] - Optional copy/delete behaviour.
16
+ * @param [options.copyOptions] - Extra copy params.
17
+ * @param [options.deleteOptions] - Extra delete params.
18
+ * @param [options.overwrite=false] - Whether to overwrite an existing `targetPath`.
19
+ * @returns
19
20
  * - Success: `Outcome.makeSuccess(true)`
20
21
  * - Failure: `Outcome.makeFailure(errStr)`
21
22
  */
@@ -29,13 +30,15 @@ export async function move(client, bucketName, sourcePath, targetPath, options)
29
30
  return Outcome.makeFailure(`Object already exists at ${targetPath}.`);
30
31
  }
31
32
  catch (err) {
32
- const notFound = err.$metadata?.httpStatusCode === 404
33
- || err.name === 'NotFound'
34
- || err.Code === 'NotFound'
35
- || err.Code === 'NoSuchKey';
36
- if (!notFound) {
33
+ const name = deepGetProperty(err, 'name');
34
+ const Code = deepGetProperty(err, 'Code');
35
+ const httpStatusCode = deepGetProperty(err, '$metadata.httpStatusCode');
36
+ const notFound = httpStatusCode === 404
37
+ || name === 'NotFound'
38
+ || Code === 'NotFound'
39
+ || Code === 'NoSuchKey';
40
+ if (!notFound)
37
41
  return Outcome.makeFailure(unknownToString(err));
38
- }
39
42
  // If not found, proceed with copy
40
43
  }
41
44
  }
@@ -8,10 +8,10 @@ export type RemoveOptions = {
8
8
  *
9
9
  * If `ignoreMissing` is true (default), a missing object is considered success.
10
10
  *
11
- * @param {S3Client} s3 - The AWS S3 client instance.
12
- * @param {string} bucketName - The name of the bucket.
13
- * @param {string} targetPath - The key of the object to delete.
14
- * @param {RemoveOptions} [options] - Optional settings.
15
- * @returns {Promise<Outcome.Either<true, string>>}
11
+ * @param s3 - The AWS S3 client instance.
12
+ * @param bucketName - The name of the bucket.
13
+ * @param targetPath - The key of the object to delete.
14
+ * @param [options] - Optional settings.
15
+ * @returns
16
16
  */
17
17
  export declare function remove(s3: S3Client, bucketName: string, targetPath: string, options?: RemoveOptions): Promise<Outcome.Either<true, string>>;
@@ -1,16 +1,17 @@
1
1
  import { HeadObjectCommand, DeleteObjectCommand } from '@aws-sdk/client-s3';
2
2
  import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
3
  import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
4
+ import { deepGetProperty } from '../../../../../agnostic/objects/deep-get-property/index.js';
4
5
  /**
5
6
  * Removes a file from a specified Amazon S3 bucket (AWS SDK v3).
6
7
  *
7
8
  * If `ignoreMissing` is true (default), a missing object is considered success.
8
9
  *
9
- * @param {S3Client} s3 - The AWS S3 client instance.
10
- * @param {string} bucketName - The name of the bucket.
11
- * @param {string} targetPath - The key of the object to delete.
12
- * @param {RemoveOptions} [options] - Optional settings.
13
- * @returns {Promise<Outcome.Either<true, string>>}
10
+ * @param s3 - The AWS S3 client instance.
11
+ * @param bucketName - The name of the bucket.
12
+ * @param targetPath - The key of the object to delete.
13
+ * @param [options] - Optional settings.
14
+ * @returns
14
15
  */
15
16
  export async function remove(s3, bucketName, targetPath, options) {
16
17
  const { ignoreMissing = true } = options ?? {};
@@ -20,12 +21,16 @@ export async function remove(s3, bucketName, targetPath, options) {
20
21
  await s3.send(new HeadObjectCommand({ Bucket: bucketName, Key: targetPath }));
21
22
  }
22
23
  catch (err) {
23
- const code = err?.name ?? err?.Code ?? err?.code;
24
- if (code === 'NotFound' || code === 'NoSuchKey' || code === 'NotFoundException') {
25
- if (ignoreMissing)
26
- return Outcome.makeSuccess(true);
27
- return Outcome.makeFailure(`File not found at ${targetPath}.`);
28
- }
24
+ const name = deepGetProperty(err, 'name');
25
+ const Code = deepGetProperty(err, 'Code');
26
+ const _code = deepGetProperty(err, 'code');
27
+ const code = name ?? Code ?? _code;
28
+ if (code === 'NotFound'
29
+ || code === 'NoSuchKey'
30
+ || code === 'NotFoundException')
31
+ return ignoreMissing
32
+ ? Outcome.makeSuccess(true)
33
+ : Outcome.makeFailure(`File not found at ${targetPath}.`);
29
34
  return Outcome.makeFailure(unknownToString(err));
30
35
  }
31
36
  // Delete the object
@@ -15,10 +15,10 @@ export type StatOptions = {
15
15
  /**
16
16
  * Retrieves metadata for a single S3 object.
17
17
  *
18
- * @param {S3Client} client – v3 S3 client.
19
- * @param {string} bucket – Bucket name.
20
- * @param {string} key – Object key.
21
- * @param {StatOptions} [options] – Extra HeadObject params.
22
- * @returns {Promise<Outcome.Either<Stat, string>>}
18
+ * @param client – v3 S3 client.
19
+ * @param bucket – Bucket name.
20
+ * @param key – Object key.
21
+ * @param [options] – Extra HeadObject params.
22
+ * @returns
23
23
  */
24
24
  export declare function stat(client: S3Client, bucket: string, key: string, options?: StatOptions): Promise<Outcome.Either<Stat, string>>;
@@ -1,14 +1,15 @@
1
1
  import { HeadObjectCommand } from '@aws-sdk/client-s3';
2
2
  import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
3
  import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
4
+ import { deepGetProperty } from '../../../../../agnostic/objects/deep-get-property/index.js';
4
5
  /**
5
6
  * Retrieves metadata for a single S3 object.
6
7
  *
7
- * @param {S3Client} client – v3 S3 client.
8
- * @param {string} bucket – Bucket name.
9
- * @param {string} key – Object key.
10
- * @param {StatOptions} [options] – Extra HeadObject params.
11
- * @returns {Promise<Outcome.Either<Stat, string>>}
8
+ * @param client – v3 S3 client.
9
+ * @param bucket – Bucket name.
10
+ * @param key – Object key.
11
+ * @param [options] – Extra HeadObject params.
12
+ * @returns
12
13
  */
13
14
  export async function stat(client, bucket, key, options) {
14
15
  const { headObjectOptions } = options ?? {};
@@ -17,7 +18,7 @@ export async function stat(client, bucket, key, options) {
17
18
  const stat = {
18
19
  size: res.ContentLength,
19
20
  modifiedAt: res.LastModified,
20
- checksum: res.ETag?.replace(/"/g, ''),
21
+ checksum: res.ETag?.replace(/"/gv, ''),
21
22
  contentType: res.ContentType,
22
23
  metadata: res.Metadata,
23
24
  storageClass: res.StorageClass,
@@ -26,7 +27,9 @@ export async function stat(client, bucket, key, options) {
26
27
  return Outcome.makeSuccess(stat);
27
28
  }
28
29
  catch (err) {
29
- const notFound = err.$metadata?.httpStatusCode === 404 || err.name === 'NotFound';
30
+ const name = deepGetProperty(err, 'name');
31
+ const httpStatusCode = deepGetProperty(err, '$metadata.httpStatusCode');
32
+ const notFound = httpStatusCode === 404 || name === 'NotFound';
30
33
  if (notFound)
31
34
  return Outcome.makeFailure(`Object not found: ${key}`);
32
35
  return Outcome.makeFailure(unknownToString(err));
@@ -1,4 +1,4 @@
1
- import { type Readable } from 'node:stream';
1
+ import type { Readable } from 'node:stream';
2
2
  import { type S3Client, type PutObjectCommandInput } from '@aws-sdk/client-s3';
3
3
  import { Upload } from '@aws-sdk/lib-storage';
4
4
  import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
@@ -12,11 +12,11 @@ export type UploadOptions = {
12
12
  *
13
13
  * If `overwrite` is false and the target file exists, upload is aborted.
14
14
  *
15
- * @param {S3Client} s3 - The AWS S3 v3 client instance.
16
- * @param {string} bucketName - The S3 bucket name.
17
- * @param {string} targetPath - The key to upload the file to.
18
- * @param {Readable} fileStream - The file content as a stream.
19
- * @param {UploadOptions} [options] - Optional configuration.
20
- * @returns {Promise<Outcome.Either<true, string>>}
15
+ * @param s3 - The AWS S3 v3 client instance.
16
+ * @param bucketName - The S3 bucket name.
17
+ * @param targetPath - The key to upload the file to.
18
+ * @param fileStream - The file content as a stream.
19
+ * @param [options] - Optional configuration.
20
+ * @returns
21
21
  */
22
22
  export declare function upload(s3: S3Client, bucketName: string, targetPath: string, fileStream: Readable, options?: UploadOptions): Promise<Outcome.Either<true, string>>;
@@ -2,17 +2,18 @@ import { HeadObjectCommand } from '@aws-sdk/client-s3';
2
2
  import { Upload } from '@aws-sdk/lib-storage';
3
3
  import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
4
4
  import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
5
+ import { deepGetProperty } from '../../../../../agnostic/objects/deep-get-property/index.js';
5
6
  /**
6
7
  * Uploads a file stream to a specified Amazon S3 bucket using AWS SDK v3.
7
8
  *
8
9
  * If `overwrite` is false and the target file exists, upload is aborted.
9
10
  *
10
- * @param {S3Client} s3 - The AWS S3 v3 client instance.
11
- * @param {string} bucketName - The S3 bucket name.
12
- * @param {string} targetPath - The key to upload the file to.
13
- * @param {Readable} fileStream - The file content as a stream.
14
- * @param {UploadOptions} [options] - Optional configuration.
15
- * @returns {Promise<Outcome.Either<true, string>>}
11
+ * @param s3 - The AWS S3 v3 client instance.
12
+ * @param bucketName - The S3 bucket name.
13
+ * @param targetPath - The key to upload the file to.
14
+ * @param fileStream - The file content as a stream.
15
+ * @param [options] - Optional configuration.
16
+ * @returns
16
17
  */
17
18
  export async function upload(s3, bucketName, targetPath, fileStream, options) {
18
19
  const { uploadSettings, fileMetadata, overwrite = false } = options ?? {};
@@ -27,10 +28,11 @@ export async function upload(s3, bucketName, targetPath, fileStream, options) {
27
28
  return Outcome.makeFailure(`File already exists at ${targetPath}.`);
28
29
  }
29
30
  catch (err) {
30
- const code = err?.name ?? err?.$metadata?.httpStatusCode;
31
- if (code !== 'NotFound' && code !== 404) {
31
+ const name = deepGetProperty(err, 'name');
32
+ const httpStatusCode = deepGetProperty(err, '$metadata.httpStatusCode');
33
+ const code = name ?? httpStatusCode;
34
+ if (code !== 'NotFound' && code !== 404)
32
35
  return Outcome.makeFailure(unknownToString(err));
33
- }
34
36
  // Object not found, proceed with upload
35
37
  }
36
38
  }