@design-edito/tools 0.4.23 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) 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/index.d.ts +1 -1
  4. package/agnostic/arrays/index.js +1 -1
  5. package/agnostic/arrays/is-array-of/index.d.ts +1 -1
  6. package/agnostic/arrays/is-array-of/index.js +3 -1
  7. package/agnostic/arrays/make/index.d.ts +1 -1
  8. package/agnostic/arrays/random-pick/index.js +2 -1
  9. package/agnostic/arrays/shuffle/index.js +1 -1
  10. package/agnostic/booleans/is-falsy/index.d.ts +3 -3
  11. package/agnostic/booleans/is-falsy/index.js +2 -3
  12. package/agnostic/colors/channels/index.d.ts +16 -16
  13. package/agnostic/colors/channels/index.js +15 -15
  14. package/agnostic/colors/contrast/index.d.ts +6 -6
  15. package/agnostic/colors/contrast/index.js +6 -8
  16. package/agnostic/colors/contrast/index.test.js +1 -1
  17. package/agnostic/colors/convert/index.d.ts +43 -43
  18. package/agnostic/colors/convert/index.js +60 -55
  19. package/agnostic/colors/distance/index.d.ts +5 -5
  20. package/agnostic/colors/distance/index.js +5 -4
  21. package/agnostic/colors/grayscale/index.d.ts +3 -3
  22. package/agnostic/colors/grayscale/index.js +3 -3
  23. package/agnostic/colors/index.d.ts +3 -3
  24. package/agnostic/colors/index.js +3 -3
  25. package/agnostic/colors/invert/index.d.ts +4 -4
  26. package/agnostic/colors/invert/index.js +3 -3
  27. package/agnostic/colors/lerp/index.d.ts +6 -7
  28. package/agnostic/colors/lerp/index.js +5 -6
  29. package/agnostic/colors/luminance/index.d.ts +4 -4
  30. package/agnostic/colors/luminance/index.js +3 -3
  31. package/agnostic/colors/palette/index.d.ts +3 -3
  32. package/agnostic/colors/palette/index.js +4 -3
  33. package/agnostic/colors/rotate/index.d.ts +4 -4
  34. package/agnostic/colors/rotate/index.js +4 -4
  35. package/agnostic/colors/tidy/index.d.ts +2 -2
  36. package/agnostic/colors/tidy/index.js +2 -2
  37. package/agnostic/colors/typechecks/index.d.ts +21 -21
  38. package/agnostic/colors/typechecks/index.js +22 -21
  39. package/agnostic/colors/types.d.ts +33 -33
  40. package/agnostic/css/bem/index.d.ts +11 -11
  41. package/agnostic/css/bem/index.js +9 -8
  42. package/agnostic/css/clss/index.d.ts +1 -1
  43. package/agnostic/css/clss/index.js +1 -1
  44. package/agnostic/css/index.d.ts +2 -2
  45. package/agnostic/css/index.js +2 -2
  46. package/agnostic/css/is-valid-css-class-name/index.d.ts +2 -2
  47. package/agnostic/css/is-valid-css-class-name/index.js +3 -3
  48. package/agnostic/css/scale/index.d.ts +18 -18
  49. package/agnostic/css/scale/index.js +18 -18
  50. package/agnostic/css/styles-set/index.d.ts +1 -1
  51. package/agnostic/css/styles-set/index.js +0 -2
  52. package/agnostic/errors/register/index.d.ts +1 -1
  53. package/agnostic/errors/register/index.js +3 -0
  54. package/agnostic/errors/unknown-to-string/index.d.ts +2 -2
  55. package/agnostic/errors/unknown-to-string/index.js +2 -3
  56. package/agnostic/html/deep-select/index.d.ts +3 -3
  57. package/agnostic/html/deep-select/index.js +11 -7
  58. package/agnostic/html/get-node-ancestors/index.d.ts +3 -3
  59. package/agnostic/html/get-node-ancestors/index.js +3 -3
  60. package/agnostic/html/get-position-inside-parent/index.d.ts +2 -2
  61. package/agnostic/html/get-position-inside-parent/index.js +2 -2
  62. package/agnostic/html/hyper-json/cast/index.d.ts +1 -1
  63. package/agnostic/html/hyper-json/cast/index.js +6 -5
  64. package/agnostic/html/hyper-json/method/index.d.ts +2 -2
  65. package/agnostic/html/hyper-json/serialize/index.d.ts +1 -1
  66. package/agnostic/html/hyper-json/serialize/index.js +9 -5
  67. package/agnostic/html/hyper-json/smart-tags/coalesced/addclass/index.js +1 -0
  68. package/agnostic/html/hyper-json/smart-tags/coalesced/and/index.d.ts +1 -1
  69. package/agnostic/html/hyper-json/smart-tags/coalesced/append/index.d.ts +1 -1
  70. package/agnostic/html/hyper-json/smart-tags/coalesced/append/index.js +1 -0
  71. package/agnostic/html/hyper-json/smart-tags/coalesced/at/index.d.ts +1 -1
  72. package/agnostic/html/hyper-json/smart-tags/coalesced/at/index.js +1 -0
  73. package/agnostic/html/hyper-json/smart-tags/coalesced/call/index.d.ts +1 -1
  74. package/agnostic/html/hyper-json/smart-tags/coalesced/call/index.js +1 -1
  75. package/agnostic/html/hyper-json/smart-tags/coalesced/clone/index.d.ts +1 -1
  76. package/agnostic/html/hyper-json/smart-tags/coalesced/deleteproperties/index.d.ts +1 -1
  77. package/agnostic/html/hyper-json/smart-tags/coalesced/deleteproperties/index.js +0 -1
  78. package/agnostic/html/hyper-json/smart-tags/coalesced/equals/index.d.ts +1 -1
  79. package/agnostic/html/hyper-json/smart-tags/coalesced/getattribute/index.js +1 -0
  80. package/agnostic/html/hyper-json/smart-tags/coalesced/getproperties/index.d.ts +1 -1
  81. package/agnostic/html/hyper-json/smart-tags/coalesced/getproperty/index.d.ts +1 -1
  82. package/agnostic/html/hyper-json/smart-tags/coalesced/getproperty/index.js +1 -2
  83. package/agnostic/html/hyper-json/smart-tags/coalesced/hjparse/index.d.ts +1 -1
  84. package/agnostic/html/hyper-json/smart-tags/coalesced/hjstringify/index.d.ts +1 -1
  85. package/agnostic/html/hyper-json/smart-tags/coalesced/hjstringify/index.js +4 -0
  86. package/agnostic/html/hyper-json/smart-tags/coalesced/if/index.d.ts +1 -1
  87. package/agnostic/html/hyper-json/smart-tags/coalesced/if/index.js +1 -0
  88. package/agnostic/html/hyper-json/smart-tags/coalesced/index.d.ts +12 -12
  89. package/agnostic/html/hyper-json/smart-tags/coalesced/index.js +12 -12
  90. package/agnostic/html/hyper-json/smart-tags/coalesced/initialize/index.d.ts +1 -1
  91. package/agnostic/html/hyper-json/smart-tags/coalesced/initialize/index.js +1 -0
  92. package/agnostic/html/hyper-json/smart-tags/coalesced/join/index.d.ts +1 -1
  93. package/agnostic/html/hyper-json/smart-tags/coalesced/length/index.d.ts +1 -1
  94. package/agnostic/html/hyper-json/smart-tags/coalesced/map/index.d.ts +1 -1
  95. package/agnostic/html/hyper-json/smart-tags/coalesced/or/index.d.ts +1 -1
  96. package/agnostic/html/hyper-json/smart-tags/coalesced/pickrandom/index.d.ts +1 -1
  97. package/agnostic/html/hyper-json/smart-tags/coalesced/populate/index.d.ts +1 -1
  98. package/agnostic/html/hyper-json/smart-tags/coalesced/populate/index.js +1 -0
  99. package/agnostic/html/hyper-json/smart-tags/coalesced/print/index.d.ts +1 -1
  100. package/agnostic/html/hyper-json/smart-tags/coalesced/print/index.js +2 -0
  101. package/agnostic/html/hyper-json/smart-tags/coalesced/push/index.d.ts +1 -1
  102. package/agnostic/html/hyper-json/smart-tags/coalesced/pusheach/index.d.ts +1 -1
  103. package/agnostic/html/hyper-json/smart-tags/coalesced/pusheach/index.js +1 -0
  104. package/agnostic/html/hyper-json/smart-tags/coalesced/recordtoarray/index.d.ts +1 -1
  105. package/agnostic/html/hyper-json/smart-tags/coalesced/removeattribute/index.js +3 -0
  106. package/agnostic/html/hyper-json/smart-tags/coalesced/removeclass/index.js +1 -0
  107. package/agnostic/html/hyper-json/smart-tags/coalesced/renameproperty/index.d.ts +1 -1
  108. package/agnostic/html/hyper-json/smart-tags/coalesced/renameproperty/index.js +1 -0
  109. package/agnostic/html/hyper-json/smart-tags/coalesced/replace/index.d.ts +1 -1
  110. package/agnostic/html/hyper-json/smart-tags/coalesced/replace/index.js +1 -0
  111. package/agnostic/html/hyper-json/smart-tags/coalesced/select/index.js +1 -0
  112. package/agnostic/html/hyper-json/smart-tags/coalesced/set/index.d.ts +1 -1
  113. package/agnostic/html/hyper-json/smart-tags/coalesced/set/index.js +1 -0
  114. package/agnostic/html/hyper-json/smart-tags/coalesced/setattribute/index.js +3 -0
  115. package/agnostic/html/hyper-json/smart-tags/coalesced/setproperty/index.d.ts +1 -1
  116. package/agnostic/html/hyper-json/smart-tags/coalesced/setproperty/index.js +4 -2
  117. package/agnostic/html/hyper-json/smart-tags/coalesced/sorton/index.d.ts +1 -1
  118. package/agnostic/html/hyper-json/smart-tags/coalesced/sorton/index.js +5 -0
  119. package/agnostic/html/hyper-json/smart-tags/coalesced/spread/index.d.ts +1 -1
  120. package/agnostic/html/hyper-json/smart-tags/coalesced/spread/index.js +1 -0
  121. package/agnostic/html/hyper-json/smart-tags/coalesced/toarray/index.d.ts +1 -1
  122. package/agnostic/html/hyper-json/smart-tags/coalesced/toboolean/index.d.ts +1 -1
  123. package/agnostic/html/hyper-json/smart-tags/coalesced/toelement/index.d.ts +1 -1
  124. package/agnostic/html/hyper-json/smart-tags/coalesced/toggleclass/index.js +3 -2
  125. package/agnostic/html/hyper-json/smart-tags/coalesced/tonodelist/index.d.ts +1 -1
  126. package/agnostic/html/hyper-json/smart-tags/coalesced/tonull/index.d.ts +1 -1
  127. package/agnostic/html/hyper-json/smart-tags/coalesced/tonumber/index.d.ts +1 -1
  128. package/agnostic/html/hyper-json/smart-tags/coalesced/torecord/index.d.ts +1 -1
  129. package/agnostic/html/hyper-json/smart-tags/coalesced/toref/index.d.ts +1 -1
  130. package/agnostic/html/hyper-json/smart-tags/coalesced/tostring/index.d.ts +1 -1
  131. package/agnostic/html/hyper-json/smart-tags/coalesced/totext/index.d.ts +1 -1
  132. package/agnostic/html/hyper-json/smart-tags/coalesced/transformselected/index.d.ts +1 -1
  133. package/agnostic/html/hyper-json/smart-tags/coalesced/trim/index.js +1 -1
  134. package/agnostic/html/hyper-json/smart-tags/index.d.ts +1 -1
  135. package/agnostic/html/hyper-json/smart-tags/isolated/any/index.d.ts +1 -1
  136. package/agnostic/html/hyper-json/smart-tags/isolated/array/index.d.ts +1 -1
  137. package/agnostic/html/hyper-json/smart-tags/isolated/get/index.d.ts +1 -1
  138. package/agnostic/html/hyper-json/smart-tags/isolated/guess/index.d.ts +1 -1
  139. package/agnostic/html/hyper-json/smart-tags/isolated/guess/index.js +3 -1
  140. package/agnostic/html/hyper-json/smart-tags/isolated/index.d.ts +2 -2
  141. package/agnostic/html/hyper-json/smart-tags/isolated/index.js +2 -2
  142. package/agnostic/html/hyper-json/smart-tags/isolated/nodelist/index.d.ts +1 -1
  143. package/agnostic/html/hyper-json/smart-tags/isolated/nodelist/index.js +1 -0
  144. package/agnostic/html/hyper-json/smart-tags/isolated/null/index.d.ts +1 -1
  145. package/agnostic/html/hyper-json/smart-tags/isolated/record/index.d.ts +1 -1
  146. package/agnostic/html/hyper-json/smart-tags/isolated/ref/index.d.ts +1 -1
  147. package/agnostic/html/hyper-json/smart-tags/isolated/ref/index.js +3 -1
  148. package/agnostic/html/hyper-json/smart-tags/isolated/text/index.js +2 -2
  149. package/agnostic/html/hyper-json/transformer/index.d.ts +5 -5
  150. package/agnostic/html/hyper-json/tree/index.d.ts +1 -1
  151. package/agnostic/html/hyper-json/tree/index.js +14 -8
  152. package/agnostic/html/hyper-json/types/index.d.ts +11 -11
  153. package/agnostic/html/hyper-json/utils/index.d.ts +3 -3
  154. package/agnostic/html/hyper-json/utils/index.js +8 -3
  155. package/agnostic/html/index.d.ts +4 -4
  156. package/agnostic/html/index.js +4 -4
  157. package/agnostic/html/insert-node/index.d.ts +4 -4
  158. package/agnostic/html/insert-node/index.js +4 -4
  159. package/agnostic/html/replace-in-element/index.d.ts +3 -3
  160. package/agnostic/html/replace-in-element/index.js +4 -4
  161. package/agnostic/html/selector-to-element/index.d.ts +2 -2
  162. package/agnostic/html/selector-to-element/index.js +11 -11
  163. package/agnostic/html/string-to-nodes/index.d.ts +3 -3
  164. package/agnostic/html/string-to-nodes/index.js +3 -3
  165. package/agnostic/html/watch-selection/index.d.ts +4 -5
  166. package/agnostic/html/watch-selection/index.js +5 -6
  167. package/agnostic/index.d.ts +3 -3
  168. package/agnostic/index.js +3 -3
  169. package/agnostic/misc/assert/index.js +3 -1
  170. package/agnostic/misc/cast/index.d.ts +16 -16
  171. package/agnostic/misc/cast/index.js +18 -18
  172. package/agnostic/misc/connection/index.d.ts +5 -5
  173. package/agnostic/misc/connection/index.js +4 -2
  174. package/agnostic/misc/crawler/index.d.ts +18 -18
  175. package/agnostic/misc/crawler/index.js +10 -9
  176. package/agnostic/misc/crawler/index.test.js +2 -2
  177. package/agnostic/misc/crossenv/detect-runtime/index.d.ts +1 -1
  178. package/agnostic/misc/crossenv/detect-runtime/index.js +10 -11
  179. package/agnostic/misc/crossenv/window/index.d.ts +6 -6
  180. package/agnostic/misc/crossenv/window/index.js +6 -5
  181. package/agnostic/misc/data-size/index.js +2 -0
  182. package/agnostic/misc/index.d.ts +3 -3
  183. package/agnostic/misc/index.js +3 -3
  184. package/agnostic/misc/is-constructor-function/index.d.ts +2 -2
  185. package/agnostic/misc/is-constructor-function/index.js +3 -2
  186. package/agnostic/misc/is-constructor-function/index.test.js +2 -2
  187. package/agnostic/misc/is-nullish/index.d.ts +5 -5
  188. package/agnostic/misc/is-nullish/index.js +5 -4
  189. package/agnostic/misc/logs/index.d.ts +1 -1
  190. package/agnostic/misc/logs/index.js +1 -1
  191. package/agnostic/misc/logs/logger/index.js +2 -2
  192. package/agnostic/misc/lorem-ipsum/index.js +4 -4
  193. package/agnostic/misc/normalize-extension/index.d.ts +3 -3
  194. package/agnostic/misc/normalize-extension/index.js +4 -4
  195. package/agnostic/misc/outcome/index.d.ts +14 -14
  196. package/agnostic/misc/outcome/index.js +6 -4
  197. package/agnostic/numbers/absolute-modulo/index.d.ts +3 -3
  198. package/agnostic/numbers/absolute-modulo/index.js +3 -3
  199. package/agnostic/numbers/approximate-rational/index.d.ts +6 -6
  200. package/agnostic/numbers/approximate-rational/index.js +9 -9
  201. package/agnostic/numbers/clamp/index.d.ts +4 -4
  202. package/agnostic/numbers/clamp/index.js +4 -4
  203. package/agnostic/numbers/geometric-progressions/index.d.ts +5 -5
  204. package/agnostic/numbers/geometric-progressions/index.js +7 -5
  205. package/agnostic/numbers/geometric-progressions/index.test.js +2 -2
  206. package/agnostic/numbers/index.d.ts +3 -3
  207. package/agnostic/numbers/index.js +3 -3
  208. package/agnostic/numbers/interpolate/index.d.ts +8 -8
  209. package/agnostic/numbers/interpolate/index.js +8 -8
  210. package/agnostic/numbers/round/index.d.ts +9 -9
  211. package/agnostic/numbers/round/index.js +9 -9
  212. package/agnostic/objects/deep-get-property/index.d.ts +4 -4
  213. package/agnostic/objects/deep-get-property/index.js +3 -3
  214. package/agnostic/objects/enums/is-in-enum/index.d.ts +3 -3
  215. package/agnostic/objects/enums/is-in-enum/index.js +3 -3
  216. package/agnostic/objects/flatten-getters/index.d.ts +2 -2
  217. package/agnostic/objects/flatten-getters/index.js +3 -2
  218. package/agnostic/objects/index.d.ts +4 -4
  219. package/agnostic/objects/index.js +4 -4
  220. package/agnostic/objects/is-object/index.d.ts +4 -4
  221. package/agnostic/objects/is-object/index.js +4 -4
  222. package/agnostic/objects/is-record/index.d.ts +2 -2
  223. package/agnostic/objects/is-record/index.js +2 -2
  224. package/agnostic/objects/record-format/index.d.ts +9 -9
  225. package/agnostic/objects/record-format/index.js +8 -3
  226. package/agnostic/objects/record-map/index.d.ts +4 -4
  227. package/agnostic/objects/record-map/index.js +5 -3
  228. package/agnostic/objects/sort-keys/index.d.ts +3 -3
  229. package/agnostic/objects/sort-keys/index.js +4 -3
  230. package/agnostic/objects/validation/index.d.ts +3 -3
  231. package/agnostic/objects/validation/index.js +4 -3
  232. package/agnostic/optim/memoize/index.d.ts +2 -2
  233. package/agnostic/optim/memoize/index.js +4 -2
  234. package/agnostic/optim/throttle-debounce/index.d.ts +2 -2
  235. package/agnostic/optim/throttle-debounce/index.js +7 -6
  236. package/agnostic/optim/throttle-debounce/types.d.ts +2 -1
  237. package/agnostic/random/index.d.ts +1 -1
  238. package/agnostic/random/index.js +1 -1
  239. package/agnostic/random/random/index.d.ts +7 -8
  240. package/agnostic/random/random/index.js +3 -3
  241. package/agnostic/random/uuid/index.d.ts +6 -6
  242. package/agnostic/random/uuid/index.js +6 -6
  243. package/agnostic/regexps/index.d.ts +30 -60
  244. package/agnostic/regexps/index.js +27 -26
  245. package/agnostic/sanitization/file-name/index.d.ts +3 -3
  246. package/agnostic/sanitization/file-name/index.js +10 -10
  247. package/agnostic/sanitization/html/index.d.ts +6 -6
  248. package/agnostic/sanitization/html/index.js +9 -6
  249. package/agnostic/sanitization/index.d.ts +1 -1
  250. package/agnostic/sanitization/index.js +1 -1
  251. package/agnostic/sanitization/path/index.d.ts +2 -2
  252. package/agnostic/sanitization/path/index.js +2 -2
  253. package/agnostic/sanitization/user-input/index.js +1 -0
  254. package/agnostic/strings/char-codes/index.js +2 -6
  255. package/agnostic/strings/index.d.ts +3 -3
  256. package/agnostic/strings/index.js +3 -3
  257. package/agnostic/strings/normalize-indent/index.js +2 -2
  258. package/agnostic/strings/parse-table/index.d.ts +13 -13
  259. package/agnostic/strings/parse-table/index.js +31 -16
  260. package/agnostic/strings/replace-all/index.d.ts +1 -1
  261. package/agnostic/strings/replace-all/index.js +1 -0
  262. package/agnostic/strings/to-alphanum/index.js +2 -2
  263. package/agnostic/strings/trim/index.js +2 -2
  264. package/agnostic/time/dates/format-date/index.js +3 -1
  265. package/agnostic/time/dates/index.d.ts +1 -0
  266. package/agnostic/time/dates/index.js +1 -0
  267. package/agnostic/time/dates/to-french-republican/index.d.ts +16 -0
  268. package/agnostic/time/dates/to-french-republican/index.js +82 -0
  269. package/agnostic/time/dates/to-french-republican/index.test.d.ts +1 -0
  270. package/agnostic/time/dates/to-french-republican/index.test.js +112 -0
  271. package/agnostic/time/dates/to-french-republican/types.d.ts +91 -0
  272. package/agnostic/time/dates/to-french-republican/types.js +47 -0
  273. package/agnostic/time/dates/to-french-republican/utils.d.ts +32 -0
  274. package/agnostic/time/dates/to-french-republican/utils.js +155 -0
  275. package/agnostic/time/duration/index.js +2 -0
  276. package/agnostic/time/index.d.ts +2 -2
  277. package/agnostic/time/index.js +2 -2
  278. package/agnostic/time/timeout/index.js +9 -9
  279. package/agnostic/time/transitions/index.js +8 -7
  280. package/components/BeforeAfter/index.controlled.js +1 -0
  281. package/components/BeforeAfter/index.js +4 -0
  282. package/components/Button/index.d.ts +1 -1
  283. package/components/Clippable/index.js +1 -0
  284. package/components/Drawer/index.js +1 -1
  285. package/components/Gallery/index.js +2 -1
  286. package/components/Gallery/utils.js +5 -1
  287. package/components/Iframe/index.js +3 -0
  288. package/components/Image/index.js +2 -0
  289. package/components/Input/index.controlled.js +3 -2
  290. package/components/IntersectionObserver/index.js +5 -2
  291. package/components/JsonEditor/index.js +1 -1
  292. package/components/Overlayer/index.d.ts +1 -1
  293. package/components/ScrollListener/utils.d.ts +29 -0
  294. package/components/Select/index.controlled.js +3 -2
  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.js +3 -2
  301. package/components/UIModule/index.js +3 -1
  302. package/components/Video/index.controlled.d.ts +1 -1
  303. package/components/Video/index.controlled.js +11 -10
  304. package/components/Video/index.js +27 -20
  305. package/components/Video/utils.d.ts +1 -1
  306. package/components/Video/utils.js +11 -2
  307. package/components/index.d.ts +5 -5
  308. package/components/index.js +5 -5
  309. package/components/utils/types.d.ts +5 -0
  310. package/node/@aws-s3/storage/directory/copy-dir/index.d.ts +9 -9
  311. package/node/@aws-s3/storage/directory/copy-dir/index.js +15 -12
  312. package/node/@aws-s3/storage/directory/list/index.d.ts +5 -5
  313. package/node/@aws-s3/storage/directory/list/index.js +5 -5
  314. package/node/@aws-s3/storage/directory/move-dir/index.d.ts +6 -6
  315. package/node/@aws-s3/storage/directory/move-dir/index.js +11 -7
  316. package/node/@aws-s3/storage/directory/remove-dir/index.d.ts +5 -5
  317. package/node/@aws-s3/storage/directory/remove-dir/index.js +5 -5
  318. package/node/@aws-s3/storage/file/copy/index.d.ts +8 -8
  319. package/node/@aws-s3/storage/file/copy/index.js +12 -9
  320. package/node/@aws-s3/storage/file/download/index.d.ts +6 -6
  321. package/node/@aws-s3/storage/file/download/index.js +6 -5
  322. package/node/@aws-s3/storage/file/exists/index.d.ts +6 -6
  323. package/node/@aws-s3/storage/file/exists/index.js +15 -12
  324. package/node/@aws-s3/storage/file/move/index.d.ts +9 -9
  325. package/node/@aws-s3/storage/file/move/index.js +18 -15
  326. package/node/@aws-s3/storage/file/remove/index.d.ts +5 -5
  327. package/node/@aws-s3/storage/file/remove/index.js +16 -11
  328. package/node/@aws-s3/storage/file/stat/index.d.ts +5 -5
  329. package/node/@aws-s3/storage/file/stat/index.js +10 -7
  330. package/node/@aws-s3/storage/file/upload/index.d.ts +7 -7
  331. package/node/@aws-s3/storage/file/upload/index.js +11 -9
  332. package/node/@express/@multer/index.d.ts +12 -12
  333. package/node/@express/@multer/index.js +27 -25
  334. package/node/@google-cloud/storage/bucket/get-metadata/index.d.ts +4 -4
  335. package/node/@google-cloud/storage/bucket/get-metadata/index.js +3 -3
  336. package/node/@google-cloud/storage/directory/copy-dir/index.d.ts +7 -7
  337. package/node/@google-cloud/storage/directory/copy-dir/index.js +6 -6
  338. package/node/@google-cloud/storage/directory/index.d.ts +2 -2
  339. package/node/@google-cloud/storage/directory/index.js +2 -2
  340. package/node/@google-cloud/storage/directory/list/index.d.ts +6 -6
  341. package/node/@google-cloud/storage/directory/list/index.js +5 -5
  342. package/node/@google-cloud/storage/directory/move-dir/index.d.ts +6 -6
  343. package/node/@google-cloud/storage/directory/move-dir/index.js +5 -5
  344. package/node/@google-cloud/storage/directory/remove-dir/index.d.ts +7 -7
  345. package/node/@google-cloud/storage/directory/remove-dir/index.js +6 -6
  346. package/node/@google-cloud/storage/file/copy/index.d.ts +9 -9
  347. package/node/@google-cloud/storage/file/copy/index.js +8 -8
  348. package/node/@google-cloud/storage/file/download/index.d.ts +7 -7
  349. package/node/@google-cloud/storage/file/download/index.js +5 -5
  350. package/node/@google-cloud/storage/file/exists/index.d.ts +7 -7
  351. package/node/@google-cloud/storage/file/exists/index.js +6 -6
  352. package/node/@google-cloud/storage/file/generate-signed-url/index.d.ts +7 -7
  353. package/node/@google-cloud/storage/file/generate-signed-url/index.js +6 -6
  354. package/node/@google-cloud/storage/file/get-metadata/index.d.ts +5 -5
  355. package/node/@google-cloud/storage/file/get-metadata/index.js +4 -4
  356. package/node/@google-cloud/storage/file/get-permissions/index.d.ts +6 -6
  357. package/node/@google-cloud/storage/file/get-permissions/index.js +4 -4
  358. package/node/@google-cloud/storage/file/index.d.ts +3 -3
  359. package/node/@google-cloud/storage/file/index.js +3 -3
  360. package/node/@google-cloud/storage/file/move/index.d.ts +10 -10
  361. package/node/@google-cloud/storage/file/move/index.js +9 -9
  362. package/node/@google-cloud/storage/file/remove/index.d.ts +5 -5
  363. package/node/@google-cloud/storage/file/remove/index.js +4 -4
  364. package/node/@google-cloud/storage/file/revoke-signed-urls/index.d.ts +5 -5
  365. package/node/@google-cloud/storage/file/revoke-signed-urls/index.js +5 -5
  366. package/node/@google-cloud/storage/file/stat/index.d.ts +5 -5
  367. package/node/@google-cloud/storage/file/stat/index.js +4 -4
  368. package/node/@google-cloud/storage/file/update-metadata/index.d.ts +7 -7
  369. package/node/@google-cloud/storage/file/update-metadata/index.js +5 -5
  370. package/node/@google-cloud/storage/file/upload/index.d.ts +7 -7
  371. package/node/@google-cloud/storage/file/upload/index.js +5 -5
  372. package/node/@google-cloud/storage/index.d.ts +1 -1
  373. package/node/@google-cloud/storage/index.js +1 -1
  374. package/node/cloud-storage/clients/index.d.ts +8 -8
  375. package/node/cloud-storage/clients/index.js +8 -8
  376. package/node/cloud-storage/operations/copy-dir/index.d.ts +22 -22
  377. package/node/cloud-storage/operations/copy-dir/index.js +5 -5
  378. package/node/cloud-storage/operations/copy-file/index.d.ts +22 -22
  379. package/node/cloud-storage/operations/copy-file/index.js +5 -5
  380. package/node/cloud-storage/operations/download-file/index.d.ts +19 -19
  381. package/node/cloud-storage/operations/download-file/index.js +6 -6
  382. package/node/cloud-storage/operations/exists-file/index.d.ts +15 -26
  383. package/node/cloud-storage/operations/exists-file/index.js +4 -4
  384. package/node/cloud-storage/operations/index.d.ts +2 -2
  385. package/node/cloud-storage/operations/index.js +2 -2
  386. package/node/cloud-storage/operations/list-dir/index.d.ts +15 -25
  387. package/node/cloud-storage/operations/list-dir/index.js +4 -4
  388. package/node/cloud-storage/operations/move-dir/index.d.ts +22 -22
  389. package/node/cloud-storage/operations/move-dir/index.js +5 -5
  390. package/node/cloud-storage/operations/move-file/index.d.ts +22 -22
  391. package/node/cloud-storage/operations/move-file/index.js +5 -5
  392. package/node/cloud-storage/operations/remove-dir/index.d.ts +18 -18
  393. package/node/cloud-storage/operations/remove-dir/index.js +4 -4
  394. package/node/cloud-storage/operations/remove-file/index.d.ts +18 -18
  395. package/node/cloud-storage/operations/remove-file/index.js +4 -4
  396. package/node/cloud-storage/operations/stat-file/index.d.ts +16 -16
  397. package/node/cloud-storage/operations/stat-file/index.js +4 -4
  398. package/node/cloud-storage/operations/upload-file/index.d.ts +23 -23
  399. package/node/cloud-storage/operations/upload-file/index.js +5 -5
  400. package/node/encryption/@aes-256-gcm/buffer/index.d.ts +6 -6
  401. package/node/encryption/@aes-256-gcm/buffer/index.js +6 -6
  402. package/node/encryption/@aes-256-gcm/uint8-array/index.d.ts +8 -8
  403. package/node/encryption/@aes-256-gcm/uint8-array/index.js +8 -8
  404. package/node/encryption/key/index.d.ts +6 -6
  405. package/node/encryption/key/index.js +6 -6
  406. package/node/files/get-size/index.d.ts +56 -0
  407. package/node/files/get-size/index.js +167 -0
  408. package/node/files/get-size/index.test.d.ts +1 -0
  409. package/node/files/get-size/index.test.js +143 -0
  410. package/node/files/index.d.ts +1 -0
  411. package/node/files/index.js +1 -0
  412. package/node/files/read-write/index.d.ts +16 -16
  413. package/node/files/subpaths/index.d.ts +8 -8
  414. package/node/files/subpaths/index.js +11 -13
  415. package/node/ftps/directory/copy-dir/index.d.ts +6 -6
  416. package/node/ftps/directory/copy-dir/index.js +6 -6
  417. package/node/ftps/directory/index.d.ts +1 -1
  418. package/node/ftps/directory/index.js +1 -1
  419. package/node/ftps/directory/list/index.d.ts +4 -4
  420. package/node/ftps/directory/list/index.js +3 -3
  421. package/node/ftps/directory/move-dir/index.d.ts +6 -6
  422. package/node/ftps/directory/move-dir/index.js +5 -5
  423. package/node/ftps/directory/remove-dir/index.d.ts +6 -6
  424. package/node/ftps/directory/remove-dir/index.js +8 -7
  425. package/node/ftps/file/copy/index.d.ts +6 -6
  426. package/node/ftps/file/copy/index.js +5 -5
  427. package/node/ftps/file/download/index.d.ts +6 -6
  428. package/node/ftps/file/download/index.js +5 -5
  429. package/node/ftps/file/exists/index.d.ts +3 -3
  430. package/node/ftps/file/exists/index.js +3 -3
  431. package/node/ftps/file/index.d.ts +2 -2
  432. package/node/ftps/file/index.js +2 -2
  433. package/node/ftps/file/move/index.d.ts +8 -8
  434. package/node/ftps/file/move/index.js +11 -9
  435. package/node/ftps/file/remove/index.d.ts +5 -5
  436. package/node/ftps/file/remove/index.js +4 -4
  437. package/node/ftps/file/stat/index.d.ts +4 -4
  438. package/node/ftps/file/stat/index.js +4 -4
  439. package/node/ftps/file/upload/index.d.ts +7 -7
  440. package/node/ftps/file/upload/index.js +5 -5
  441. package/node/images/create/index.d.ts +2 -2
  442. package/node/images/create/index.js +1 -1
  443. package/node/images/format/index.d.ts +8 -8
  444. package/node/images/index.d.ts +1 -1
  445. package/node/images/index.js +1 -1
  446. package/node/images/metadata/index.d.ts +2 -2
  447. package/node/images/transform/index.d.ts +2 -2
  448. package/node/images/transform/index.js +12 -2
  449. package/node/images/transform/operations/blur/index.d.ts +2 -2
  450. package/node/images/transform/operations/blur/index.js +1 -0
  451. package/node/images/transform/operations/brighten/index.d.ts +2 -2
  452. package/node/images/transform/operations/brighten/index.js +1 -0
  453. package/node/images/transform/operations/extend/index.d.ts +2 -2
  454. package/node/images/transform/operations/extend/index.js +1 -0
  455. package/node/images/transform/operations/extract/index.d.ts +2 -2
  456. package/node/images/transform/operations/extract/index.js +1 -0
  457. package/node/images/transform/operations/flatten/index.d.ts +2 -2
  458. package/node/images/transform/operations/flatten/index.js +1 -0
  459. package/node/images/transform/operations/flip/index.d.ts +2 -2
  460. package/node/images/transform/operations/flip/index.js +1 -0
  461. package/node/images/transform/operations/flop/index.d.ts +2 -2
  462. package/node/images/transform/operations/flop/index.js +1 -0
  463. package/node/images/transform/operations/hue/index.d.ts +2 -2
  464. package/node/images/transform/operations/hue/index.js +1 -0
  465. package/node/images/transform/operations/index.d.ts +2 -2
  466. package/node/images/transform/operations/index.js +2 -2
  467. package/node/images/transform/operations/level/index.d.ts +2 -2
  468. package/node/images/transform/operations/level/index.js +1 -0
  469. package/node/images/transform/operations/lighten/index.d.ts +2 -2
  470. package/node/images/transform/operations/lighten/index.js +1 -0
  471. package/node/images/transform/operations/normalize/index.d.ts +2 -2
  472. package/node/images/transform/operations/normalize/index.js +1 -0
  473. package/node/images/transform/operations/overlay/index.d.ts +2 -2
  474. package/node/images/transform/operations/resize/index.d.ts +2 -2
  475. package/node/images/transform/operations/resize/index.js +1 -0
  476. package/node/images/transform/operations/rotate/index.d.ts +2 -2
  477. package/node/images/transform/operations/rotate/index.js +1 -0
  478. package/node/images/transform/operations/saturate/index.d.ts +2 -2
  479. package/node/images/transform/operations/saturate/index.js +1 -0
  480. package/node/images/types.d.ts +41 -2
  481. package/node/images/utils/index.d.ts +10 -5
  482. package/node/index.d.ts +2 -2
  483. package/node/index.js +2 -2
  484. package/node/process/on-exit/index.js +2 -4
  485. package/node/process/prompt-continue/index.d.ts +3 -3
  486. package/node/process/prompt-continue/index.js +4 -3
  487. package/node/process/spawner/index.js +7 -6
  488. package/node/sftp/directory/copy-dir/index.d.ts +6 -6
  489. package/node/sftp/directory/copy-dir/index.js +6 -6
  490. package/node/sftp/directory/index.d.ts +1 -1
  491. package/node/sftp/directory/index.js +1 -1
  492. package/node/sftp/directory/list/index.d.ts +3 -3
  493. package/node/sftp/directory/list/index.js +4 -4
  494. package/node/sftp/directory/move-dir/index.d.ts +7 -7
  495. package/node/sftp/directory/move-dir/index.js +7 -7
  496. package/node/sftp/directory/remove-dir/index.d.ts +5 -5
  497. package/node/sftp/directory/remove-dir/index.js +8 -7
  498. package/node/sftp/file/copy/index.d.ts +6 -6
  499. package/node/sftp/file/copy/index.js +5 -5
  500. package/node/sftp/file/download/index.d.ts +7 -7
  501. package/node/sftp/file/download/index.js +5 -5
  502. package/node/sftp/file/exists/index.d.ts +3 -3
  503. package/node/sftp/file/exists/index.js +3 -3
  504. package/node/sftp/file/index.d.ts +2 -2
  505. package/node/sftp/file/index.js +2 -2
  506. package/node/sftp/file/move/index.d.ts +7 -7
  507. package/node/sftp/file/move/index.js +7 -7
  508. package/node/sftp/file/remove/index.d.ts +4 -4
  509. package/node/sftp/file/remove/index.js +4 -4
  510. package/node/sftp/file/stat/index.d.ts +3 -3
  511. package/node/sftp/file/stat/index.js +6 -5
  512. package/node/sftp/file/upload/index.d.ts +6 -6
  513. package/node/sftp/file/upload/index.js +5 -5
  514. package/package.json +47 -39
@@ -13,21 +13,25 @@ export const muteAttributeWorkaround = (video, shouldMute) => {
13
13
  export const forceMute = (video) => {
14
14
  if (video === null)
15
15
  return;
16
+ // eslint-disable-next-line no-param-reassign
16
17
  video.muted = true;
17
18
  };
18
19
  export const forceLoud = (video) => {
19
20
  if (video === null)
20
21
  return;
22
+ // eslint-disable-next-line no-param-reassign
21
23
  video.muted = false;
22
24
  };
23
25
  export const forceVolume = (video, volume) => {
24
26
  if (video === null)
25
27
  return;
28
+ // eslint-disable-next-line no-param-reassign
26
29
  video.volume = volume;
27
30
  };
28
31
  export const forceCurrentTime = (video, time, setCurrentTime) => {
29
32
  if (video === null)
30
33
  return;
34
+ // eslint-disable-next-line no-param-reassign
31
35
  video.currentTime = time;
32
36
  setCurrentTime(time);
33
37
  };
@@ -41,11 +45,12 @@ export const forcePlay = async (video) => {
41
45
  return video.paused;
42
46
  }
43
47
  catch (e) {
48
+ // eslint-disable-next-line no-console
44
49
  console.error(e);
45
50
  }
46
51
  return false;
47
52
  };
48
- export const forcePause = async (video) => {
53
+ export const forcePause = (video) => {
49
54
  if (video === null)
50
55
  return false;
51
56
  if (video.paused)
@@ -55,6 +60,7 @@ export const forcePause = async (video) => {
55
60
  return video.paused;
56
61
  }
57
62
  catch (e) {
63
+ // eslint-disable-next-line no-console
58
64
  console.error(e);
59
65
  }
60
66
  return false;
@@ -62,6 +68,7 @@ export const forcePause = async (video) => {
62
68
  export const forcePlaybackRate = (video, rate) => {
63
69
  if (video === null)
64
70
  return;
71
+ // eslint-disable-next-line no-param-reassign
65
72
  video.playbackRate = rate;
66
73
  };
67
74
  export const forceFullscreen = async (video) => {
@@ -72,6 +79,7 @@ export const forceFullscreen = async (video) => {
72
79
  return document.fullscreenElement === video;
73
80
  }
74
81
  catch (e) {
82
+ // eslint-disable-next-line no-console
75
83
  console.error(e);
76
84
  }
77
85
  return false;
@@ -85,6 +93,7 @@ export const forceExitFullscreen = async (video) => {
85
93
  return document.fullscreenElement !== video;
86
94
  }
87
95
  catch (e) {
96
+ // eslint-disable-next-line no-console
88
97
  console.error(e);
89
98
  }
90
99
  return false;
@@ -117,7 +126,7 @@ export function formatTime(ms, format, fps = 25) {
117
126
  const result = Object
118
127
  .keys(tokens)
119
128
  .sort((a, b) => b.length - a.length)
120
- .reduce((acc, t) => acc.replace(new RegExp(t, 'g'), String(tokens[t])), format);
129
+ .reduce((acc, t) => acc.replace(new RegExp(t, 'gv'), String(tokens[t])), format);
121
130
  return result;
122
131
  }
123
132
  export const getTimelineClickProgress = (event, timeline, video) => {
@@ -1,27 +1,27 @@
1
1
  export * as beforeAfter from './BeforeAfter/index.js'
2
2
  export * as button from './Button/index.js'
3
3
  export * as clippable from './Clippable/index.js'
4
- export * as disclaimer from './Disclaimer/index.js'
5
4
  export * as drawer from './Drawer/index.js'
5
+ export * as disclaimer from './Disclaimer/index.js'
6
6
  export * as eventListener from './EventListener/index.js'
7
7
  export * as gallery from './Gallery/index.js'
8
8
  export * as iframe from './Iframe/index.js'
9
- export * as image from './Image/index.js'
10
9
  export * as input from './Input/index.js'
11
10
  export * as intersectionObserver from './IntersectionObserver/index.js'
12
- export * as jsonEditor from './JsonEditor/index.js'
13
11
  export * as overlayer from './Overlayer/index.js'
12
+ export * as jsonEditor from './JsonEditor/index.js'
14
13
  export * as paginator from './Paginator/index.js'
15
14
  export * as resizeObserver from './ResizeObserver/index.js'
16
15
  export * as scrllgngn from './Scrllgngn/index.js'
17
16
  export * as scrollListener from './ScrollListener/index.js'
17
+ export * as image from './Image/index.js'
18
18
  export * as select from './Select/index.js'
19
- export * as sequencer from './Sequencer/index.js'
20
19
  export * as shadowRoot from './ShadowRoot/index.js'
20
+ export * as sequencer from './Sequencer/index.js'
21
21
  export * as subtitles from './Subtitles/index.js'
22
22
  export * as textarea from './Textarea/index.js'
23
- export * as uiModule from './UIModule/index.js'
24
23
  export * as theatre from './Theatre/index.js'
24
+ export * as uiModule from './UIModule/index.js'
25
25
  export * as video from './Video/index.js'
26
26
  export * as wipAudioQuote from './_WIP_AudioQuote/index.js'
27
27
  export * as wipIcon from './_WIP_Icon/index.js'
@@ -1,27 +1,27 @@
1
1
  export * as beforeAfter from './BeforeAfter/index.js'
2
2
  export * as button from './Button/index.js'
3
3
  export * as clippable from './Clippable/index.js'
4
- export * as disclaimer from './Disclaimer/index.js'
5
4
  export * as drawer from './Drawer/index.js'
5
+ export * as disclaimer from './Disclaimer/index.js'
6
6
  export * as eventListener from './EventListener/index.js'
7
7
  export * as gallery from './Gallery/index.js'
8
8
  export * as iframe from './Iframe/index.js'
9
- export * as image from './Image/index.js'
10
9
  export * as input from './Input/index.js'
11
10
  export * as intersectionObserver from './IntersectionObserver/index.js'
12
- export * as jsonEditor from './JsonEditor/index.js'
13
11
  export * as overlayer from './Overlayer/index.js'
12
+ export * as jsonEditor from './JsonEditor/index.js'
14
13
  export * as paginator from './Paginator/index.js'
15
14
  export * as resizeObserver from './ResizeObserver/index.js'
16
15
  export * as scrllgngn from './Scrllgngn/index.js'
17
16
  export * as scrollListener from './ScrollListener/index.js'
17
+ export * as image from './Image/index.js'
18
18
  export * as select from './Select/index.js'
19
- export * as sequencer from './Sequencer/index.js'
20
19
  export * as shadowRoot from './ShadowRoot/index.js'
20
+ export * as sequencer from './Sequencer/index.js'
21
21
  export * as subtitles from './Subtitles/index.js'
22
22
  export * as textarea from './Textarea/index.js'
23
- export * as uiModule from './UIModule/index.js'
24
23
  export * as theatre from './Theatre/index.js'
24
+ export * as uiModule from './UIModule/index.js'
25
25
  export * as video from './Video/index.js'
26
26
  export * as wipAudioQuote from './_WIP_AudioQuote/index.js'
27
27
  export * as wipIcon from './_WIP_Icon/index.js'
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Extends a type with an optional `className` prop accepting a string or an array of string-or-nullish values.
3
+ *
4
+ * @template T - The base type to extend.
5
+ */
1
6
  export type WithClassName<T extends Record<string, unknown>> = T & {
2
7
  className?: string | Array<string | null | undefined>;
3
8
  };
@@ -12,15 +12,15 @@ export type CopyDirOptions = {
12
12
  * Recursively copies every object under `sourceDir` to the same relative path
13
13
  * beneath `targetDir` in a single S3 bucket (AWS SDK v3).
14
14
  *
15
- * @param {S3Client} client - The v3 S3 client instance.
16
- * @param {string} bucketName - The name of the S3 bucket.
17
- * @param {string} sourceDir - The source directory prefix to copy from.
18
- * @param {string} targetDir - The target directory prefix to copy to.
19
- * @param {CopyDirOptions} [options] - Optional copy‑behaviour configuration.
20
- * @param {Omit<ListObjectsV2CommandInput,'Bucket'|'Prefix'>} [options.listObjectsOptions] - Extra list parameters.
21
- * @param {Omit<CopyObjectCommandInput,'Bucket'|'Key'|'CopySource'>} [options.copyOptions] - Extra copy parameters.
22
- * @param {boolean} [options.overwrite=false] - Whether to overwrite existing files at target.
23
- * @returns {Promise<Outcome.Either<true, string>>}
15
+ * @param client - The v3 S3 client instance.
16
+ * @param bucketName - The name of the S3 bucket.
17
+ * @param sourceDir - The source directory prefix to copy from.
18
+ * @param targetDir - The target directory prefix to copy to.
19
+ * @param [options] - Optional copy‑behaviour configuration.
20
+ * @param [options.listObjectsOptions] - Extra list parameters.
21
+ * @param [options.copyOptions] - Extra copy parameters.
22
+ * @param [options.overwrite=false] - Whether to overwrite existing files at target.
23
+ * @returns
24
24
  * - Success: `Outcome.makeSuccess(true)` if every object is copied.
25
25
  * - Failure: `Outcome.makeFailure(errStr)` on error.
26
26
  */
@@ -1,19 +1,20 @@
1
1
  import { ListObjectsV2Command, 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
  * Recursively copies every object under `sourceDir` to the same relative path
6
7
  * beneath `targetDir` in a single S3 bucket (AWS SDK v3).
7
8
  *
8
- * @param {S3Client} client - The v3 S3 client instance.
9
- * @param {string} bucketName - The name of the S3 bucket.
10
- * @param {string} sourceDir - The source directory prefix to copy from.
11
- * @param {string} targetDir - The target directory prefix to copy to.
12
- * @param {CopyDirOptions} [options] - Optional copy‑behaviour configuration.
13
- * @param {Omit<ListObjectsV2CommandInput,'Bucket'|'Prefix'>} [options.listObjectsOptions] - Extra list parameters.
14
- * @param {Omit<CopyObjectCommandInput,'Bucket'|'Key'|'CopySource'>} [options.copyOptions] - Extra copy parameters.
15
- * @param {boolean} [options.overwrite=false] - Whether to overwrite existing files at target.
16
- * @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 sourceDir - The source directory prefix to copy from.
12
+ * @param targetDir - The target directory prefix to copy to.
13
+ * @param [options] - Optional copy‑behaviour configuration.
14
+ * @param [options.listObjectsOptions] - Extra list parameters.
15
+ * @param [options.copyOptions] - Extra copy parameters.
16
+ * @param [options.overwrite=false] - Whether to overwrite existing files at target.
17
+ * @returns
17
18
  * - Success: `Outcome.makeSuccess(true)` if every object is copied.
18
19
  * - Failure: `Outcome.makeFailure(errStr)` on error.
19
20
  */
@@ -42,10 +43,12 @@ export async function copyDir(client, bucketName, sourceDir, targetDir, options)
42
43
  continue;
43
44
  }
44
45
  catch (err) {
45
- const code = err?.name ?? err?.$metadata?.httpStatusCode;
46
- if (code !== 'NotFound' && code !== 404) {
46
+ const name = deepGetProperty(err, 'name');
47
+ const httpStatusCode = deepGetProperty(err, '$metadata.httpStatusCode');
48
+ const code = name ?? httpStatusCode;
49
+ // eslint-disable-next-line max-depth
50
+ if (code !== 'NotFound' && code !== 404)
47
51
  return Outcome.makeFailure(unknownToString(err));
48
- }
49
52
  // Not found, proceed with copy
50
53
  }
51
54
  }
@@ -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
  }
@@ -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
  }