@design-edito/tools 0.4.4 → 0.4.6

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 (526) hide show
  1. package/TODO.md +269 -0
  2. package/agnostic/arrays/dedupe/index.js +9 -9
  3. package/agnostic/arrays/dedupe/index.test.js +24 -0
  4. package/agnostic/arrays/find-duplicates/index.js +34 -24
  5. package/agnostic/arrays/find-duplicates/index.test.js +31 -0
  6. package/agnostic/arrays/index.d.ts +1 -1
  7. package/agnostic/arrays/index.js +1 -1
  8. package/agnostic/arrays/is-array-of/index.js +28 -26
  9. package/agnostic/arrays/is-array-of/index.test.js +56 -0
  10. package/agnostic/arrays/make/index.js +11 -8
  11. package/agnostic/arrays/make/index.test.js +10 -0
  12. package/agnostic/arrays/random-pick/index.js +40 -9
  13. package/agnostic/arrays/random-pick/index.test.js +23 -0
  14. package/agnostic/arrays/shuffle/index.js +15 -13
  15. package/agnostic/arrays/shuffle/index.test.js +14 -0
  16. package/agnostic/booleans/is-falsy/index.js +26 -12
  17. package/agnostic/booleans/is-falsy/index.test.js +26 -0
  18. package/agnostic/colors/channels/index.js +145 -19
  19. package/agnostic/colors/channels/index.test.js +64 -0
  20. package/agnostic/colors/contrast/index.js +23 -30
  21. package/agnostic/colors/contrast/index.test.js +21 -0
  22. package/agnostic/colors/convert/index.js +839 -46
  23. package/agnostic/colors/convert/index.test.js +98 -0
  24. package/agnostic/colors/cssColorsMap.js +153 -0
  25. package/agnostic/colors/distance/index.js +65 -53
  26. package/agnostic/colors/distance/index.test.js +21 -0
  27. package/agnostic/colors/grayscale/index.js +96 -137
  28. package/agnostic/colors/grayscale/index.test.js +34 -0
  29. package/agnostic/colors/invert/index.js +33 -44
  30. package/agnostic/colors/invert/index.test.js +31 -0
  31. package/agnostic/colors/lerp/index.js +74 -88
  32. package/agnostic/colors/lerp/index.test.js +55 -0
  33. package/agnostic/colors/luminance/index.js +19 -13
  34. package/agnostic/colors/luminance/index.test.js +30 -0
  35. package/agnostic/colors/palette/index.js +80 -87
  36. package/agnostic/colors/palette/index.test.js +35 -0
  37. package/agnostic/colors/rotate/index.js +41 -14
  38. package/agnostic/colors/rotate/index.test.js +45 -0
  39. package/agnostic/colors/tidy/index.js +80 -12
  40. package/agnostic/colors/tidy/index.test.js +45 -0
  41. package/agnostic/colors/typechecks/index.js +196 -25
  42. package/agnostic/colors/typechecks/index.test.js +113 -0
  43. package/agnostic/colors/types.js +1 -0
  44. package/agnostic/css/bem/index.js +135 -160
  45. package/agnostic/css/clss/index.js +66 -7
  46. package/agnostic/css/clss/index.test.js +60 -0
  47. package/agnostic/css/generate-nice-color/index.js +26 -73
  48. package/agnostic/css/generate-nice-color/index.test.js +8 -0
  49. package/agnostic/css/index.d.ts +1 -1
  50. package/agnostic/css/index.js +1 -1
  51. package/agnostic/css/is-valid-css-class-name/index.js +15 -9
  52. package/agnostic/css/is-valid-css-class-name/index.test.js +36 -0
  53. package/agnostic/css/scale/index.js +37 -37
  54. package/agnostic/css/scale/index.test.js +71 -0
  55. package/agnostic/css/styles-set/index.js +151 -169
  56. package/agnostic/errors/register/index.js +45 -51
  57. package/agnostic/errors/unknown-to-string/index.js +18 -7
  58. package/agnostic/errors/unknown-to-string/index.test.js +35 -0
  59. package/agnostic/html/get-node-ancestors/index.js +31 -8
  60. package/agnostic/html/get-node-ancestors/index.test.js +58 -0
  61. package/agnostic/html/get-position-inside-parent/index.js +13 -10
  62. package/agnostic/html/get-position-inside-parent/index.test.js +56 -0
  63. package/agnostic/html/hyper-json/cast/index.js +137 -24
  64. package/agnostic/html/hyper-json/index.js +23 -50
  65. package/agnostic/html/hyper-json/method/index.js +10 -7
  66. package/agnostic/html/hyper-json/serialize/index.js +91 -11
  67. package/agnostic/html/hyper-json/smart-tags/coalesced/add/index.js +16 -24
  68. package/agnostic/html/hyper-json/smart-tags/coalesced/addclass/index.js +30 -24
  69. package/agnostic/html/hyper-json/smart-tags/coalesced/and/index.js +15 -24
  70. package/agnostic/html/hyper-json/smart-tags/coalesced/append/index.js +36 -24
  71. package/agnostic/html/hyper-json/smart-tags/coalesced/at/index.js +47 -24
  72. package/agnostic/html/hyper-json/smart-tags/coalesced/call/index.js +50 -24
  73. package/agnostic/html/hyper-json/smart-tags/coalesced/clone/index.js +11 -24
  74. package/agnostic/html/hyper-json/smart-tags/coalesced/deleteproperties/index.js +49 -24
  75. package/agnostic/html/hyper-json/smart-tags/coalesced/equals/index.js +24 -24
  76. package/agnostic/html/hyper-json/smart-tags/coalesced/getattribute/index.js +28 -24
  77. package/agnostic/html/hyper-json/smart-tags/coalesced/getproperties/index.js +21 -24
  78. package/agnostic/html/hyper-json/smart-tags/coalesced/getproperty/index.js +73 -26
  79. package/agnostic/html/hyper-json/smart-tags/coalesced/hjparse/index.js +24 -24
  80. package/agnostic/html/hyper-json/smart-tags/coalesced/hjstringify/index.js +93 -28
  81. package/agnostic/html/hyper-json/smart-tags/coalesced/if/index.js +22 -24
  82. package/agnostic/html/hyper-json/smart-tags/coalesced/index.d.ts +14 -14
  83. package/agnostic/html/hyper-json/smart-tags/coalesced/index.js +14 -14
  84. package/agnostic/html/hyper-json/smart-tags/coalesced/initialize/index.js +39 -24
  85. package/agnostic/html/hyper-json/smart-tags/coalesced/join/index.js +18 -24
  86. package/agnostic/html/hyper-json/smart-tags/coalesced/length/index.js +23 -24
  87. package/agnostic/html/hyper-json/smart-tags/coalesced/map/index.js +33 -24
  88. package/agnostic/html/hyper-json/smart-tags/coalesced/negate/index.js +11 -24
  89. package/agnostic/html/hyper-json/smart-tags/coalesced/notrailing/index.js +35 -24
  90. package/agnostic/html/hyper-json/smart-tags/coalesced/or/index.js +15 -24
  91. package/agnostic/html/hyper-json/smart-tags/coalesced/pickrandom/index.js +19 -24
  92. package/agnostic/html/hyper-json/smart-tags/coalesced/populate/index.js +61 -24
  93. package/agnostic/html/hyper-json/smart-tags/coalesced/print/index.js +25 -24
  94. package/agnostic/html/hyper-json/smart-tags/coalesced/push/index.js +11 -24
  95. package/agnostic/html/hyper-json/smart-tags/coalesced/pusheach/index.js +28 -24
  96. package/agnostic/html/hyper-json/smart-tags/coalesced/recordtoarray/index.js +11 -24
  97. package/agnostic/html/hyper-json/smart-tags/coalesced/removeattribute/index.js +58 -24
  98. package/agnostic/html/hyper-json/smart-tags/coalesced/removeclass/index.js +30 -24
  99. package/agnostic/html/hyper-json/smart-tags/coalesced/renameproperty/index.js +34 -24
  100. package/agnostic/html/hyper-json/smart-tags/coalesced/replace/index.js +56 -26
  101. package/agnostic/html/hyper-json/smart-tags/coalesced/select/index.js +34 -24
  102. package/agnostic/html/hyper-json/smart-tags/coalesced/set/index.js +31 -24
  103. package/agnostic/html/hyper-json/smart-tags/coalesced/setattribute/index.js +58 -24
  104. package/agnostic/html/hyper-json/smart-tags/coalesced/setproperty/index.js +237 -26
  105. package/agnostic/html/hyper-json/smart-tags/coalesced/sorton/index.js +93 -24
  106. package/agnostic/html/hyper-json/smart-tags/coalesced/split/index.js +22 -24
  107. package/agnostic/html/hyper-json/smart-tags/coalesced/spread/index.js +24 -24
  108. package/agnostic/html/hyper-json/smart-tags/coalesced/toarray/index.js +12 -24
  109. package/agnostic/html/hyper-json/smart-tags/coalesced/toboolean/index.js +12 -24
  110. package/agnostic/html/hyper-json/smart-tags/coalesced/toelement/index.js +19 -24
  111. package/agnostic/html/hyper-json/smart-tags/coalesced/toggleclass/index.js +30 -24
  112. package/agnostic/html/hyper-json/smart-tags/coalesced/tonodelist/index.js +12 -24
  113. package/agnostic/html/hyper-json/smart-tags/coalesced/tonull/index.js +11 -24
  114. package/agnostic/html/hyper-json/smart-tags/coalesced/tonumber/index.js +12 -24
  115. package/agnostic/html/hyper-json/smart-tags/coalesced/torecord/index.js +12 -24
  116. package/agnostic/html/hyper-json/smart-tags/coalesced/toref/index.js +12 -24
  117. package/agnostic/html/hyper-json/smart-tags/coalesced/tostring/index.js +12 -24
  118. package/agnostic/html/hyper-json/smart-tags/coalesced/totext/index.js +12 -24
  119. package/agnostic/html/hyper-json/smart-tags/coalesced/transformselected/index.js +86 -24
  120. package/agnostic/html/hyper-json/smart-tags/coalesced/trim/index.js +16 -24
  121. package/agnostic/html/hyper-json/smart-tags/index.js +31 -10
  122. package/agnostic/html/hyper-json/smart-tags/isolated/any/index.js +14 -11
  123. package/agnostic/html/hyper-json/smart-tags/isolated/array/index.js +14 -11
  124. package/agnostic/html/hyper-json/smart-tags/isolated/boolean/index.js +13 -24
  125. package/agnostic/html/hyper-json/smart-tags/isolated/element/index.js +26 -24
  126. package/agnostic/html/hyper-json/smart-tags/isolated/get/index.js +20 -24
  127. package/agnostic/html/hyper-json/smart-tags/isolated/guess/index.js +59 -24
  128. package/agnostic/html/hyper-json/smart-tags/isolated/index.d.ts +1 -1
  129. package/agnostic/html/hyper-json/smart-tags/isolated/index.js +1 -1
  130. package/agnostic/html/hyper-json/smart-tags/isolated/nodelist/index.js +20 -24
  131. package/agnostic/html/hyper-json/smart-tags/isolated/null/index.js +10 -11
  132. package/agnostic/html/hyper-json/smart-tags/isolated/number/index.js +18 -24
  133. package/agnostic/html/hyper-json/smart-tags/isolated/record/index.js +14 -24
  134. package/agnostic/html/hyper-json/smart-tags/isolated/ref/index.js +45 -25
  135. package/agnostic/html/hyper-json/smart-tags/isolated/string/index.js +18 -24
  136. package/agnostic/html/hyper-json/smart-tags/isolated/text/index.js +20 -24
  137. package/agnostic/html/hyper-json/transformer/index.js +113 -9
  138. package/agnostic/html/hyper-json/tree/index.js +423 -24
  139. package/agnostic/html/hyper-json/types/index.js +28 -7
  140. package/agnostic/html/hyper-json/utils/index.js +516 -24
  141. package/agnostic/html/index.d.ts +2 -2
  142. package/agnostic/html/index.js +2 -2
  143. package/agnostic/html/insert-node/index.js +28 -7
  144. package/agnostic/html/insert-node/index.test.js +73 -0
  145. package/agnostic/html/placeholders/index.js +26 -31
  146. package/agnostic/html/replace-in-element/index.js +31 -25
  147. package/agnostic/html/replace-in-element/index.test.js +80 -0
  148. package/agnostic/html/selector-to-element/index.js +53 -33
  149. package/agnostic/html/selector-to-element/index.test.js +69 -0
  150. package/agnostic/html/string-to-nodes/index.js +24 -19
  151. package/agnostic/html/string-to-nodes/index.test.js +54 -0
  152. package/agnostic/index.d.ts +1 -1
  153. package/agnostic/index.js +1 -1
  154. package/agnostic/misc/assert/index.js +60 -58
  155. package/agnostic/misc/cast/index.js +132 -23
  156. package/agnostic/misc/cast/index.test.js +134 -0
  157. package/agnostic/misc/connection/index.js +55 -30
  158. package/agnostic/misc/connection/index.test.js +143 -0
  159. package/agnostic/misc/crawler/index.js +68 -44
  160. package/agnostic/misc/crawler/index.test.js +56 -0
  161. package/agnostic/misc/crossenv/detect-runtime/index.js +41 -16
  162. package/agnostic/misc/crossenv/detect-runtime/index.test.js +24 -0
  163. package/agnostic/misc/crossenv/types.js +21 -7
  164. package/agnostic/misc/crossenv/window/index.js +49 -13
  165. package/agnostic/misc/crossenv/window/index.test.js +24 -0
  166. package/agnostic/misc/data-size/index.js +182 -296
  167. package/agnostic/misc/data-size/index.test.js +100 -0
  168. package/agnostic/misc/data-size/types.js +1 -0
  169. package/agnostic/misc/index.d.ts +1 -1
  170. package/agnostic/misc/index.js +1 -1
  171. package/agnostic/misc/is-constructor-function/index.js +13 -7
  172. package/agnostic/misc/is-constructor-function/index.test.js +36 -0
  173. package/agnostic/misc/is-nullish/index.js +26 -11
  174. package/agnostic/misc/is-nullish/index.test.js +44 -0
  175. package/agnostic/misc/logs/logger/index.js +115 -142
  176. package/agnostic/misc/logs/make-text-block/index.js +14 -7
  177. package/agnostic/misc/logs/styles/index.js +30 -7
  178. package/agnostic/misc/lorem-ipsum/index.js +51 -186
  179. package/agnostic/misc/lorem-ipsum/index.test.js +49 -0
  180. package/agnostic/misc/normalize-extension/index.js +99 -90
  181. package/agnostic/misc/normalize-extension/index.test.js +40 -0
  182. package/agnostic/misc/outcome/index.js +21 -11
  183. package/agnostic/misc/outcome/index.test.js +40 -0
  184. package/agnostic/numbers/absolute-modulo/index.js +10 -7
  185. package/agnostic/numbers/absolute-modulo/index.test.js +23 -0
  186. package/agnostic/numbers/approximate-rational/index.js +86 -71
  187. package/agnostic/numbers/approximate-rational/index.test.js +90 -0
  188. package/agnostic/numbers/clamp/index.js +13 -7
  189. package/agnostic/numbers/clamp/index.test.js +24 -0
  190. package/agnostic/numbers/geometric-progressions/index.js +26 -7
  191. package/agnostic/numbers/geometric-progressions/index.test.js +45 -0
  192. package/agnostic/numbers/index.d.ts +1 -1
  193. package/agnostic/numbers/index.js +1 -1
  194. package/agnostic/numbers/interpolate/index.js +25 -12
  195. package/agnostic/numbers/interpolate/index.test.js +40 -0
  196. package/agnostic/numbers/round/index.js +33 -11
  197. package/agnostic/numbers/round/index.test.js +56 -0
  198. package/agnostic/objects/deep-get-property/index.js +30 -26
  199. package/agnostic/objects/deep-get-property/index.test.js +59 -0
  200. package/agnostic/objects/enums/is-in-enum/index.js +18 -7
  201. package/agnostic/objects/enums/is-in-enum/index.test.js +100 -0
  202. package/agnostic/objects/flatten-getters/index.js +15 -16
  203. package/agnostic/objects/flatten-getters/index.test.js +78 -0
  204. package/agnostic/objects/index.d.ts +3 -3
  205. package/agnostic/objects/index.js +3 -3
  206. package/agnostic/objects/is-object/index.js +18 -9
  207. package/agnostic/objects/is-object/index.test.js +60 -0
  208. package/agnostic/objects/is-record/index.js +13 -7
  209. package/agnostic/objects/is-record/index.test.js +48 -0
  210. package/agnostic/objects/record-format/index.js +18 -14
  211. package/agnostic/objects/record-format/index.test.js +92 -0
  212. package/agnostic/objects/record-map/index.js +18 -7
  213. package/agnostic/objects/record-map/index.test.js +56 -0
  214. package/agnostic/objects/sort-keys/index.js +15 -13
  215. package/agnostic/objects/sort-keys/index.test.js +37 -0
  216. package/agnostic/objects/validation/index.js +21 -10
  217. package/agnostic/objects/validation/index.test.js +72 -0
  218. package/agnostic/optim/index.d.ts +1 -1
  219. package/agnostic/optim/index.js +1 -1
  220. package/agnostic/optim/memoize/index.js +24 -18
  221. package/agnostic/optim/memoize/index.test.js +30 -0
  222. package/agnostic/optim/throttle-debounce/index.js +120 -104
  223. package/agnostic/optim/throttle-debounce/index.test.js +44 -0
  224. package/agnostic/optim/throttle-debounce/types.js +1 -0
  225. package/agnostic/random/hex-char/index.js +9 -9
  226. package/agnostic/random/hex-char/index.test.js +20 -0
  227. package/agnostic/random/index.d.ts +1 -1
  228. package/agnostic/random/index.js +1 -1
  229. package/agnostic/random/random/index.js +19 -9
  230. package/agnostic/random/random/index.test.js +73 -0
  231. package/agnostic/random/uuid/index.js +31 -12
  232. package/agnostic/random/uuid/index.test.js +45 -0
  233. package/agnostic/regexps/index.js +126 -86
  234. package/agnostic/regexps/index.test.js +108 -0
  235. package/agnostic/sanitization/file-name/index.js +25 -7
  236. package/agnostic/sanitization/file-name/index.test.js +23 -0
  237. package/agnostic/sanitization/html/index.js +172 -116
  238. package/agnostic/sanitization/path/index.js +23 -13
  239. package/agnostic/sanitization/path/index.test.js +18 -0
  240. package/agnostic/sanitization/types.js +1 -0
  241. package/agnostic/sanitization/user-input/index.js +36 -26
  242. package/agnostic/sanitization/user-input/index.test.js +31 -0
  243. package/agnostic/strings/char-codes/index.js +123 -57
  244. package/agnostic/strings/matches/index.js +38 -11
  245. package/agnostic/strings/normalize-indent/index.js +34 -18
  246. package/agnostic/strings/parse-table/index.js +153 -84
  247. package/agnostic/strings/replace-all/index.js +36 -17
  248. package/agnostic/strings/to-alphanum/index.js +23 -10
  249. package/agnostic/strings/trim/index.js +24 -9
  250. package/agnostic/time/dates/format-date/index.js +140 -74
  251. package/agnostic/time/duration/index.js +106 -142
  252. package/agnostic/time/timeout/index.js +24 -18
  253. package/agnostic/time/transitions/index.js +200 -156
  254. package/agnostic/time/wait/index.js +11 -7
  255. package/agnostic/typescript/types.js +1 -0
  256. package/components/BeforeAfter/index.controlled.js +95 -0
  257. package/components/BeforeAfter/index.js +54 -152
  258. package/components/BeforeAfter/utils.js +9 -0
  259. package/components/Disclaimer/index.js +50 -9
  260. package/components/Drawer/index.js +82 -88
  261. package/components/EventListener/index.js +29 -47
  262. package/components/Gallery/index.js +146 -190
  263. package/components/Gallery/utils.js +12 -0
  264. package/components/Image/index.js +67 -106
  265. package/components/IntersectionObserver/index.js +62 -9
  266. package/components/Overlayer/index.js +59 -66
  267. package/components/Paginator/index.js +125 -9
  268. package/components/ResizeObserver/index.js +68 -9
  269. package/components/ResizeObserver/style.module.css +0 -0
  270. package/components/Scrllgngn/index.js +176 -183
  271. package/components/ScrollListener/index.js +97 -171
  272. package/components/ScrollListener/utils.js +51 -0
  273. package/components/Sequencer/index.controlled.js +67 -0
  274. package/components/Sequencer/index.js +105 -160
  275. package/components/ShadowRoot/index.js +42 -63
  276. package/components/Subtitles/index.js +107 -13
  277. package/components/Subtitles/types.js +1 -0
  278. package/components/Subtitles/utils.js +102 -0
  279. package/components/Theatre/index.js +89 -9
  280. package/components/UIModule/index.js +156 -146
  281. package/components/Video/index.d.ts +10 -0
  282. package/components/Video/index.js +292 -503
  283. package/components/Video/utils.js +137 -0
  284. package/components/_WIP_AudioQuote/index.js +1 -0
  285. package/components/_WIP_Icon/index.js +1 -0
  286. package/components/index.d.ts +2 -2
  287. package/components/index.js +2 -2
  288. package/components/public-classnames.js +18 -0
  289. package/components/utils/index.js +12 -7
  290. package/components/utils/types.js +1 -0
  291. package/index.d.ts +1 -2
  292. package/index.js +1 -2
  293. package/node/@aws-s3/index.test.js +6 -0
  294. package/node/@aws-s3/storage/directory/copy-dir/index.js +68 -9
  295. package/node/@aws-s3/storage/directory/index.d.ts +1 -1
  296. package/node/@aws-s3/storage/directory/index.js +1 -1
  297. package/node/@aws-s3/storage/directory/list/index.js +33 -9
  298. package/node/@aws-s3/storage/directory/move-dir/index.js +69 -9
  299. package/node/@aws-s3/storage/directory/remove-dir/index.js +59 -9
  300. package/node/@aws-s3/storage/file/copy/index.js +43 -9
  301. package/node/@aws-s3/storage/file/download/index.js +30 -9
  302. package/node/@aws-s3/storage/file/exists/index.js +37 -9
  303. package/node/@aws-s3/storage/file/index.d.ts +1 -1
  304. package/node/@aws-s3/storage/file/index.js +1 -1
  305. package/node/@aws-s3/storage/file/move/index.js +60 -9
  306. package/node/@aws-s3/storage/file/remove/index.js +38 -9
  307. package/node/@aws-s3/storage/file/stat/index.js +34 -9
  308. package/node/@aws-s3/storage/file/upload/index.js +55 -9
  309. package/node/@design-edito/index.js +1 -0
  310. package/node/@express/@multer/index.js +61 -45
  311. package/node/@google-cloud/storage/bucket/get-metadata/index.js +25 -21
  312. package/node/@google-cloud/storage/directory/copy-dir/index.js +38 -9
  313. package/node/@google-cloud/storage/directory/list/index.js +29 -9
  314. package/node/@google-cloud/storage/directory/move-dir/index.js +45 -9
  315. package/node/@google-cloud/storage/directory/remove-dir/index.js +36 -9
  316. package/node/@google-cloud/storage/file/copy/index.js +37 -9
  317. package/node/@google-cloud/storage/file/download/index.js +28 -9
  318. package/node/@google-cloud/storage/file/exists/index.js +26 -9
  319. package/node/@google-cloud/storage/file/generate-signed-url/index.js +33 -27
  320. package/node/@google-cloud/storage/file/get-metadata/index.js +28 -23
  321. package/node/@google-cloud/storage/file/get-permissions/index.js +25 -23
  322. package/node/@google-cloud/storage/file/index.d.ts +1 -1
  323. package/node/@google-cloud/storage/file/index.js +1 -1
  324. package/node/@google-cloud/storage/file/move/index.js +40 -9
  325. package/node/@google-cloud/storage/file/remove/index.js +36 -9
  326. package/node/@google-cloud/storage/file/revoke-signed-urls/index.js +32 -29
  327. package/node/@google-cloud/storage/file/stat/index.js +35 -9
  328. package/node/@google-cloud/storage/file/update-metadata/index.js +30 -23
  329. package/node/@google-cloud/storage/file/upload/index.js +47 -9
  330. package/node/cloud-storage/clients/index.js +35 -13
  331. package/node/cloud-storage/operations/copy-dir/index.js +30 -34
  332. package/node/cloud-storage/operations/copy-file/index.js +30 -34
  333. package/node/cloud-storage/operations/download-file/index.js +30 -34
  334. package/node/cloud-storage/operations/exists-file/index.js +30 -34
  335. package/node/cloud-storage/operations/list-dir/index.js +29 -34
  336. package/node/cloud-storage/operations/move-dir/index.js +30 -34
  337. package/node/cloud-storage/operations/move-file/index.js +30 -34
  338. package/node/cloud-storage/operations/remove-dir/index.js +29 -34
  339. package/node/cloud-storage/operations/remove-file/index.js +29 -34
  340. package/node/cloud-storage/operations/stat-file/index.js +29 -34
  341. package/node/cloud-storage/operations/upload-file/index.js +30 -34
  342. package/node/encryption/@aes-256-gcm/buffer/index.js +31 -26
  343. package/node/encryption/@aes-256-gcm/index.d.ts +1 -1
  344. package/node/encryption/@aes-256-gcm/index.js +1 -1
  345. package/node/encryption/@aes-256-gcm/uint8-array/index.js +57 -11
  346. package/node/encryption/key/index.js +19 -14
  347. package/node/files/is-in-directory/index.js +11 -10
  348. package/node/files/read-write/index.js +11 -17
  349. package/node/files/subpaths/index.js +156 -113
  350. package/node/ftps/directory/copy-dir/index.js +58 -9
  351. package/node/ftps/directory/index.d.ts +1 -1
  352. package/node/ftps/directory/index.js +1 -1
  353. package/node/ftps/directory/list/index.js +25 -9
  354. package/node/ftps/directory/move-dir/index.js +41 -9
  355. package/node/ftps/directory/remove-dir/index.js +42 -9
  356. package/node/ftps/file/copy/index.js +45 -9
  357. package/node/ftps/file/download/index.js +30 -9
  358. package/node/ftps/file/exists/index.js +39 -9
  359. package/node/ftps/file/index.d.ts +1 -1
  360. package/node/ftps/file/index.js +1 -1
  361. package/node/ftps/file/move/index.js +49 -9
  362. package/node/ftps/file/remove/index.js +40 -9
  363. package/node/ftps/file/stat/index.js +31 -9
  364. package/node/ftps/file/upload/index.js +44 -9
  365. package/node/images/create/index.js +10 -18
  366. package/node/images/format/index.js +264 -251
  367. package/node/images/index.d.ts +1 -1
  368. package/node/images/index.js +1 -1
  369. package/node/images/metadata/index.js +10 -18
  370. package/node/images/transform/index.js +168 -203
  371. package/node/images/transform/operations/blur/index.js +12 -10
  372. package/node/images/transform/operations/brighten/index.js +12 -10
  373. package/node/images/transform/operations/extend/index.js +26 -17
  374. package/node/images/transform/operations/extract/index.js +17 -10
  375. package/node/images/transform/operations/flatten/index.js +21 -17
  376. package/node/images/transform/operations/flip/index.js +3 -7
  377. package/node/images/transform/operations/flop/index.js +3 -7
  378. package/node/images/transform/operations/hue/index.js +14 -10
  379. package/node/images/transform/operations/index.d.ts +2 -2
  380. package/node/images/transform/operations/index.js +2 -2
  381. package/node/images/transform/operations/level/index.js +15 -10
  382. package/node/images/transform/operations/lighten/index.js +14 -10
  383. package/node/images/transform/operations/normalize/index.js +15 -10
  384. package/node/images/transform/operations/overlay/index.js +90 -17
  385. package/node/images/transform/operations/resize/index.js +47 -17
  386. package/node/images/transform/operations/rotate/index.js +21 -17
  387. package/node/images/transform/operations/saturate/index.js +16 -10
  388. package/node/images/types.js +34 -9
  389. package/node/images/utils/index.js +85 -19
  390. package/node/index.d.ts +3 -3
  391. package/node/index.js +3 -3
  392. package/node/process/on-exit/index.js +45 -28
  393. package/node/process/prompt-continue/index.js +29 -16
  394. package/node/process/spawner/index.js +104 -80
  395. package/node/sftp/directory/copy-dir/index.js +55 -9
  396. package/node/sftp/directory/list/index.js +23 -9
  397. package/node/sftp/directory/move-dir/index.js +38 -9
  398. package/node/sftp/directory/remove-dir/index.js +42 -9
  399. package/node/sftp/file/copy/index.js +40 -9
  400. package/node/sftp/file/download/index.js +27 -9
  401. package/node/sftp/file/exists/index.js +30 -9
  402. package/node/sftp/file/index.d.ts +2 -2
  403. package/node/sftp/file/index.js +2 -2
  404. package/node/sftp/file/move/index.js +42 -9
  405. package/node/sftp/file/remove/index.js +33 -9
  406. package/node/sftp/file/stat/index.js +28 -9
  407. package/node/sftp/file/upload/index.js +36 -9
  408. package/package.json +1 -8
  409. package/chunks/chunk-2FNCUXAX.js +0 -27
  410. package/chunks/chunk-2GJSPEO4.js +0 -31
  411. package/chunks/chunk-2IGP6V77.js +0 -22
  412. package/chunks/chunk-3QI2MSDK.js +0 -34
  413. package/chunks/chunk-3RNLPW7B.js +0 -101
  414. package/chunks/chunk-3RZMW72G.js +0 -33
  415. package/chunks/chunk-4KLCJX2T.js +0 -36
  416. package/chunks/chunk-4LTN4SCD.js +0 -55
  417. package/chunks/chunk-4Q4T7QQO.js +0 -27
  418. package/chunks/chunk-4Q5TKOIG.js +0 -53
  419. package/chunks/chunk-57YKZBJR.js +0 -29
  420. package/chunks/chunk-5H3IRSOB.js +0 -8
  421. package/chunks/chunk-5NTPCRFH.js +0 -32
  422. package/chunks/chunk-5TM235Z3.js +0 -40
  423. package/chunks/chunk-5WVGUZL5.js +0 -35
  424. package/chunks/chunk-6XL25OZX.js +0 -12
  425. package/chunks/chunk-75BICI4L.js +0 -20
  426. package/chunks/chunk-77SWZUHV.js +0 -31
  427. package/chunks/chunk-AC4UMIWM.js +0 -124
  428. package/chunks/chunk-AG4VERYN.js +0 -25
  429. package/chunks/chunk-AP3VYSVF.js +0 -36
  430. package/chunks/chunk-ASXK7XCC.js +0 -18
  431. package/chunks/chunk-AVIMGMTP.js +0 -17
  432. package/chunks/chunk-B4HGXMP3.js +0 -20
  433. package/chunks/chunk-B5V7D2ZL.js +0 -77
  434. package/chunks/chunk-B6653QJD.js +0 -37
  435. package/chunks/chunk-BCX4HPD7.js +0 -33
  436. package/chunks/chunk-CVMYA5XK.js +0 -632
  437. package/chunks/chunk-DMWGHBIL.js +0 -25
  438. package/chunks/chunk-DNIOWD7K.js +0 -8
  439. package/chunks/chunk-E2ZY3SEW.js +0 -26
  440. package/chunks/chunk-E6MSDKON.js +0 -13
  441. package/chunks/chunk-E7BBN5JC.js +0 -22
  442. package/chunks/chunk-EX2QKFY5.js +0 -41
  443. package/chunks/chunk-EYYNCLVR.js +0 -33
  444. package/chunks/chunk-F2YJXIT7.js +0 -78
  445. package/chunks/chunk-FSNNEPY5.js +0 -37
  446. package/chunks/chunk-GG4EFNMU.js +0 -89
  447. package/chunks/chunk-GQBFMP6N.js +0 -32
  448. package/chunks/chunk-H3HRQ52T.js +0 -32
  449. package/chunks/chunk-H4PP6AHP.js +0 -15
  450. package/chunks/chunk-HC6ZOHCS.js +0 -14
  451. package/chunks/chunk-HMMPT3UM.js +0 -47
  452. package/chunks/chunk-HQLRJ7XW.js +0 -12
  453. package/chunks/chunk-HYGUIF2O.js +0 -23
  454. package/chunks/chunk-HYPEWMYZ.js +0 -10
  455. package/chunks/chunk-I5MRXMHR.js +0 -32
  456. package/chunks/chunk-I6ZP5T5V.js +0 -10
  457. package/chunks/chunk-IEZ3O5OF.js +0 -40
  458. package/chunks/chunk-IPRWXI27.js +0 -31
  459. package/chunks/chunk-IRKZUMWZ.js +0 -38
  460. package/chunks/chunk-ISJONMNA.js +0 -16
  461. package/chunks/chunk-JB27MAKY.js +0 -22
  462. package/chunks/chunk-JZ6GM444.js +0 -43
  463. package/chunks/chunk-K5UF634H.js +0 -25
  464. package/chunks/chunk-LEBGVBYD.js +0 -138
  465. package/chunks/chunk-LJ5MGLLU.js +0 -56
  466. package/chunks/chunk-LUAYN7VJ.js +0 -27
  467. package/chunks/chunk-MDVGDZU6.js +0 -25
  468. package/chunks/chunk-ML22TIBW.js +0 -37
  469. package/chunks/chunk-MO4TRYNI.js +0 -29
  470. package/chunks/chunk-MSU7JU63.js +0 -49
  471. package/chunks/chunk-NIBRPZJD.js +0 -58
  472. package/chunks/chunk-O32IRXDX.js +0 -78
  473. package/chunks/chunk-OAX7GS7C.js +0 -36
  474. package/chunks/chunk-OBSTP7YR.js +0 -257
  475. package/chunks/chunk-OFCSIK6J.js +0 -13
  476. package/chunks/chunk-OFYGPRWE.js +0 -21
  477. package/chunks/chunk-OGBUSUE6.js +0 -12
  478. package/chunks/chunk-OSAXBA7G.js +0 -10
  479. package/chunks/chunk-OT7QXCH6.js +0 -23
  480. package/chunks/chunk-P4J6S2WQ.js +0 -64
  481. package/chunks/chunk-PUQUSA6S.js +0 -12
  482. package/chunks/chunk-PYJKFOMV.js +0 -193
  483. package/chunks/chunk-QHEWBOQI.js +0 -19
  484. package/chunks/chunk-QXAJXTXV.js +0 -19
  485. package/chunks/chunk-R3AWQXMY.js +0 -20
  486. package/chunks/chunk-R66GH2MQ.js +0 -38
  487. package/chunks/chunk-RART44AF.js +0 -21
  488. package/chunks/chunk-REXSJULD.js +0 -28
  489. package/chunks/chunk-RJRNYRPM.js +0 -23
  490. package/chunks/chunk-RKX6KLPQ.js +0 -47
  491. package/chunks/chunk-RW7VAKJW.js +0 -15
  492. package/chunks/chunk-RZOR7ZC3.js +0 -35
  493. package/chunks/chunk-S2UZ3HZR.js +0 -31
  494. package/chunks/chunk-SYH5LYQC.js +0 -28
  495. package/chunks/chunk-TAXFCVFE.js +0 -30
  496. package/chunks/chunk-TNZGRXKJ.js +0 -24
  497. package/chunks/chunk-TRFZSKNB.js +0 -32
  498. package/chunks/chunk-U664BT44.js +0 -45
  499. package/chunks/chunk-U6SGKHHA.js +0 -32
  500. package/chunks/chunk-UTQNGKGQ.js +0 -60
  501. package/chunks/chunk-VPBZS3S4.js +0 -27
  502. package/chunks/chunk-W5A2TON3.js +0 -10
  503. package/chunks/chunk-W7PJ5NQQ.js +0 -23
  504. package/chunks/chunk-WGRQXVBK.js +0 -207
  505. package/chunks/chunk-WIFHP4X7.js +0 -56
  506. package/chunks/chunk-WL4WNJ2Y.js +0 -39
  507. package/chunks/chunk-WNDMYNDU.js +0 -8
  508. package/chunks/chunk-WSFCRVEQ.js +0 -9
  509. package/chunks/chunk-WZS4Q3G3.js +0 -36
  510. package/chunks/chunk-X4YSGOKG.js +0 -2673
  511. package/chunks/chunk-XA4HVHJ4.js +0 -18
  512. package/chunks/chunk-XEQ2PBT2.js +0 -20
  513. package/chunks/chunk-XFB4PUXO.js +0 -78
  514. package/chunks/chunk-XIIJYVJZ.js +0 -15
  515. package/chunks/chunk-XNF5MLCQ.js +0 -14
  516. package/chunks/chunk-XQUMWHCH.js +0 -25
  517. package/chunks/chunk-YA2YCZUF.js +0 -8
  518. package/chunks/chunk-YDIBNEGA.js +0 -9
  519. package/chunks/chunk-YHMR7IBA.js +0 -24
  520. package/chunks/chunk-YWSXCFYY.js +0 -61
  521. package/chunks/chunk-YY3TSU22.js +0 -48
  522. package/chunks/chunk-ZAP3ELDE.js +0 -40
  523. package/chunks/chunk-ZJNQRKEJ.js +0 -105
  524. package/chunks/chunk-ZJR5ASR3.js +0 -26
  525. package/chunks/index.d.ts +0 -1
  526. package/chunks/index.js +0 -1
@@ -1,10 +1,15 @@
1
- import {
2
- isLevelOperationParams,
3
- level
4
- } from "../../../../../chunks/chunk-VPBZS3S4.js";
5
- import "../../../../../chunks/chunk-LUAYN7VJ.js";
6
- import "../../../../../chunks/chunk-WSFCRVEQ.js";
7
- export {
8
- isLevelOperationParams,
9
- level
10
- };
1
+ import z from 'zod';
2
+ import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
+ export function isLevelOperationParams(obj) {
4
+ const schema = z.object({
5
+ multiplier: z.number().optional(),
6
+ offset: z.number().optional()
7
+ });
8
+ const result = schema.safeParse(obj);
9
+ if (!result.success)
10
+ return Outcome.makeFailure(result.error.message);
11
+ return Outcome.makeSuccess(result.data);
12
+ }
13
+ export async function level(sharpInstance, params) {
14
+ return sharpInstance.linear(params.multiplier, params.offset);
15
+ }
@@ -1,10 +1,14 @@
1
- import {
2
- isLightenOperationParams,
3
- lighten
4
- } from "../../../../../chunks/chunk-W7PJ5NQQ.js";
5
- import "../../../../../chunks/chunk-LUAYN7VJ.js";
6
- import "../../../../../chunks/chunk-WSFCRVEQ.js";
7
- export {
8
- isLightenOperationParams,
9
- lighten
10
- };
1
+ import z from 'zod';
2
+ import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
+ export function isLightenOperationParams(obj) {
4
+ const schema = z.object({
5
+ amount: z.number().optional()
6
+ });
7
+ const result = schema.safeParse(obj);
8
+ if (!result.success)
9
+ return Outcome.makeFailure(result.error.message);
10
+ return Outcome.makeSuccess(result.data);
11
+ }
12
+ export async function lighten(sharpInstance, params) {
13
+ return sharpInstance.modulate({ lightness: params.amount });
14
+ }
@@ -1,10 +1,15 @@
1
- import {
2
- isNormalizeOperationParams,
3
- normalize
4
- } from "../../../../../chunks/chunk-TNZGRXKJ.js";
5
- import "../../../../../chunks/chunk-LUAYN7VJ.js";
6
- import "../../../../../chunks/chunk-WSFCRVEQ.js";
7
- export {
8
- isNormalizeOperationParams,
9
- normalize
10
- };
1
+ import z from 'zod';
2
+ import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
+ export function isNormalizeOperationParams(obj) {
4
+ const schema = z.object({
5
+ lower: z.number().optional(),
6
+ upper: z.number().optional()
7
+ });
8
+ const result = schema.safeParse(obj);
9
+ if (!result.success)
10
+ return Outcome.makeFailure(result.error.message);
11
+ return Outcome.makeSuccess(result.data);
12
+ }
13
+ export async function normalize(sharpInstance, params) {
14
+ return sharpInstance.normalize(params);
15
+ }
@@ -1,17 +1,90 @@
1
- import {
2
- isOverlayOperationParams,
3
- overlay
4
- } from "../../../../../chunks/chunk-3RNLPW7B.js";
5
- import "../../../../../chunks/chunk-HMMPT3UM.js";
6
- import "../../../../../chunks/chunk-LUAYN7VJ.js";
7
- import "../../../../../chunks/chunk-CVMYA5XK.js";
8
- import "../../../../../chunks/chunk-OBSTP7YR.js";
9
- import "../../../../../chunks/chunk-HQLRJ7XW.js";
10
- import "../../../../../chunks/chunk-DNIOWD7K.js";
11
- import "../../../../../chunks/chunk-PUQUSA6S.js";
12
- import "../../../../../chunks/chunk-OSAXBA7G.js";
13
- import "../../../../../chunks/chunk-WSFCRVEQ.js";
14
- export {
15
- isOverlayOperationParams,
16
- overlay
17
- };
1
+ import sharp from 'sharp';
2
+ import z from 'zod';
3
+ import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
4
+ import { isColor } from '../../../../../agnostic/colors/typechecks/index.js';
5
+ import { isDuckTypedSharpInstance, toSharpInstance } from '../../../utils/index.js';
6
+ export function isOverlayOperationParams(obj) {
7
+ const schema = z.object({
8
+ input: z.union([
9
+ z.custom(isDuckTypedSharpInstance),
10
+ z.custom(data => Buffer.isBuffer(data)),
11
+ z.string(),
12
+ z.object({
13
+ width: z.number().optional(),
14
+ height: z.number().optional(),
15
+ channels: z.union([z.literal(3), z.literal(4)]).optional(),
16
+ background: z.custom(isColor).optional(),
17
+ noise: z.object({
18
+ mean: z.number().optional(),
19
+ sigma: z.number().optional()
20
+ }).optional(),
21
+ pageHeight: z.number().optional()
22
+ })
23
+ ]),
24
+ top: z.number().optional(),
25
+ left: z.number().optional(),
26
+ tile: z.boolean().optional(),
27
+ premultiplied: z.boolean().optional(),
28
+ density: z.number().optional(),
29
+ animated: z.boolean().optional(),
30
+ autoOrient: z.boolean().optional(),
31
+ ignoreIcc: z.boolean().optional(),
32
+ pages: z.number().optional(),
33
+ page: z.number().optional(),
34
+ blend: z.enum([
35
+ 'clear',
36
+ 'source',
37
+ 'over',
38
+ 'in',
39
+ 'out',
40
+ 'atop',
41
+ 'dest',
42
+ 'dest-over',
43
+ 'dest-in',
44
+ 'dest-out',
45
+ 'dest-atop',
46
+ 'xor',
47
+ 'add',
48
+ 'saturate',
49
+ 'multiply',
50
+ 'screen',
51
+ 'overlay',
52
+ 'darken',
53
+ 'lighten',
54
+ 'color-dodge',
55
+ 'colour-dodge',
56
+ 'color-burn',
57
+ 'colour-burn',
58
+ 'hard-light',
59
+ 'soft-light',
60
+ 'difference',
61
+ 'exclusion'
62
+ ]).optional(),
63
+ gravity: z.enum([
64
+ 'north',
65
+ 'northeast',
66
+ 'southeast',
67
+ 'south',
68
+ 'southwest',
69
+ 'west',
70
+ 'northwest',
71
+ 'east',
72
+ 'center',
73
+ 'centre'
74
+ ]).optional()
75
+ });
76
+ const result = schema.safeParse(obj);
77
+ if (!result.success)
78
+ return Outcome.makeFailure(result.error.message);
79
+ return Outcome.makeSuccess(result.data);
80
+ }
81
+ export async function overlay(sharpInstance, params) {
82
+ const inputBuffer = params.input instanceof Buffer
83
+ ? params.input
84
+ : await (await toSharpInstance(params.input)).toBuffer();
85
+ /* Pour pouvoir chainer plusieurs composites à la suite, on a d'abord besoin d'"applatir" l'image courante et de lui donner un format */
86
+ return sharp(await sharpInstance.composite([{
87
+ ...params,
88
+ input: inputBuffer
89
+ }]).webp().toBuffer());
90
+ }
@@ -1,17 +1,47 @@
1
- import {
2
- isResizeOperationParams,
3
- resize
4
- } from "../../../../../chunks/chunk-NIBRPZJD.js";
5
- import "../../../../../chunks/chunk-HMMPT3UM.js";
6
- import "../../../../../chunks/chunk-LUAYN7VJ.js";
7
- import "../../../../../chunks/chunk-CVMYA5XK.js";
8
- import "../../../../../chunks/chunk-OBSTP7YR.js";
9
- import "../../../../../chunks/chunk-HQLRJ7XW.js";
10
- import "../../../../../chunks/chunk-DNIOWD7K.js";
11
- import "../../../../../chunks/chunk-PUQUSA6S.js";
12
- import "../../../../../chunks/chunk-OSAXBA7G.js";
13
- import "../../../../../chunks/chunk-WSFCRVEQ.js";
14
- export {
15
- isResizeOperationParams,
16
- resize
17
- };
1
+ import z from 'zod';
2
+ import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
+ import { isColor } from '../../../../../agnostic/colors/typechecks/index.js';
4
+ import { toSharpColor } from '../../../utils/index.js';
5
+ export function isResizeOperationParams(obj) {
6
+ const schema = z.object({
7
+ width: z.number().optional(),
8
+ height: z.number().optional(),
9
+ fit: z.enum([
10
+ 'contain',
11
+ 'cover',
12
+ 'fill',
13
+ 'inside',
14
+ 'outside'
15
+ ]).optional(),
16
+ position: z.union([
17
+ z.number(),
18
+ z.string()
19
+ ]).optional(),
20
+ background: z.custom(isColor).optional(),
21
+ kernel: z.enum([
22
+ 'nearest',
23
+ 'cubic',
24
+ 'linear',
25
+ 'mitchell',
26
+ 'lanczos2',
27
+ 'lanczos3',
28
+ 'mks2013',
29
+ 'mks2021'
30
+ ]).optional(),
31
+ withoutEnlargement: z.boolean().optional(),
32
+ withoutReduction: z.boolean().optional(),
33
+ fastShrinkOnLoad: z.boolean().optional()
34
+ });
35
+ const result = schema.safeParse(obj);
36
+ if (!result.success)
37
+ return Outcome.makeFailure(result.error.message);
38
+ return Outcome.makeSuccess(result.data);
39
+ }
40
+ export async function resize(sharpInstance, params) {
41
+ return sharpInstance.resize({
42
+ ...params,
43
+ background: params.background !== undefined
44
+ ? toSharpColor(params.background)
45
+ : undefined
46
+ });
47
+ }
@@ -1,17 +1,21 @@
1
- import {
2
- isRotateOperationParams,
3
- rotate
4
- } from "../../../../../chunks/chunk-U6SGKHHA.js";
5
- import "../../../../../chunks/chunk-HMMPT3UM.js";
6
- import "../../../../../chunks/chunk-LUAYN7VJ.js";
7
- import "../../../../../chunks/chunk-CVMYA5XK.js";
8
- import "../../../../../chunks/chunk-OBSTP7YR.js";
9
- import "../../../../../chunks/chunk-HQLRJ7XW.js";
10
- import "../../../../../chunks/chunk-DNIOWD7K.js";
11
- import "../../../../../chunks/chunk-PUQUSA6S.js";
12
- import "../../../../../chunks/chunk-OSAXBA7G.js";
13
- import "../../../../../chunks/chunk-WSFCRVEQ.js";
14
- export {
15
- isRotateOperationParams,
16
- rotate
17
- };
1
+ import z from 'zod';
2
+ import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
+ import { isColor } from '../../../../../agnostic/colors/typechecks/index.js';
4
+ import { toSharpColor } from '../../../utils/index.js';
5
+ export function isRotateOperationParams(obj) {
6
+ const schema = z.object({
7
+ angleDeg: z.number().optional(),
8
+ background: z.custom(isColor).optional()
9
+ });
10
+ const result = schema.safeParse(obj);
11
+ if (!result.success)
12
+ return Outcome.makeFailure(result.error.message);
13
+ return Outcome.makeSuccess(result.data);
14
+ }
15
+ export async function rotate(sharpInstance, params) {
16
+ return sharpInstance.rotate(params.angleDeg, {
17
+ background: params.background !== undefined
18
+ ? toSharpColor(params.background)
19
+ : undefined
20
+ });
21
+ }
@@ -1,10 +1,16 @@
1
- import {
2
- isSaturateOperationParams,
3
- saturate
4
- } from "../../../../../chunks/chunk-MDVGDZU6.js";
5
- import "../../../../../chunks/chunk-LUAYN7VJ.js";
6
- import "../../../../../chunks/chunk-WSFCRVEQ.js";
7
- export {
8
- isSaturateOperationParams,
9
- saturate
10
- };
1
+ import z from 'zod';
2
+ import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
+ export function isSaturateOperationParams(obj) {
4
+ const schema = z.object({
5
+ saturation: z.number().optional()
6
+ });
7
+ const result = schema.safeParse(obj);
8
+ if (!result.success)
9
+ return Outcome.makeFailure(result.error.message);
10
+ return Outcome.makeSuccess(result.data);
11
+ }
12
+ export async function saturate(sharpInstance, params) {
13
+ return sharpInstance.modulate({
14
+ saturation: params.saturation
15
+ });
16
+ }
@@ -1,9 +1,34 @@
1
- import {
2
- OpName,
3
- TransformErrCodes
4
- } from "../../chunks/chunk-5NTPCRFH.js";
5
- import "../../chunks/chunk-WSFCRVEQ.js";
6
- export {
7
- OpName,
8
- TransformErrCodes
9
- };
1
+ /* * * * * * * * * * * * * * *
2
+ * TRANSFORM
3
+ * * * * * * * * * * * * * * */
4
+ /** Enumeration of available image transformation operation names. */
5
+ export var OpName;
6
+ (function (OpName) {
7
+ OpName["BLUR"] = "blur";
8
+ OpName["BRIGHTEN"] = "brighten";
9
+ OpName["EXTEND"] = "extend";
10
+ OpName["EXTRACT"] = "extract";
11
+ OpName["FLATTEN"] = "flatten";
12
+ OpName["FLIP"] = "flip";
13
+ OpName["FLOP"] = "flop";
14
+ // [WIP] Frame ?
15
+ OpName["HUE"] = "hue";
16
+ OpName["LEVEL"] = "level";
17
+ OpName["LIGHTEN"] = "lighten";
18
+ // Modulate will duplicate with hue, brighten, saturate and lighten
19
+ OpName["NORMALIZE"] = "normalize";
20
+ OpName["OVERLAY"] = "overlay";
21
+ OpName["RESIZE"] = "resize";
22
+ OpName["ROTATE"] = "rotate";
23
+ OpName["SATURATE"] = "saturate";
24
+ // No need for scale, since resize can do the same thing
25
+ })(OpName || (OpName = {}));
26
+ /** Error codes for transformation operations. */
27
+ export var TransformErrCodes;
28
+ (function (TransformErrCodes) {
29
+ TransformErrCodes["PROCESS_TIMEOUT"] = "process-timeout";
30
+ TransformErrCodes["OP_TIMEOUT"] = "op-timeout";
31
+ TransformErrCodes["WIDTH_LIMIT_EXCEEDED"] = "width-limit-exceeded";
32
+ TransformErrCodes["HEIGHT_LIMIT_EXCEEDED"] = "height-limit-exceeded";
33
+ TransformErrCodes["UNKNOWN_ERROR"] = "unknown-error";
34
+ })(TransformErrCodes || (TransformErrCodes = {}));
@@ -1,19 +1,85 @@
1
- import {
2
- isDuckTypedSharpInstance,
3
- toCreateOptions,
4
- toSharpColor,
5
- toSharpInstance
6
- } from "../../../chunks/chunk-HMMPT3UM.js";
7
- import "../../../chunks/chunk-CVMYA5XK.js";
8
- import "../../../chunks/chunk-OBSTP7YR.js";
9
- import "../../../chunks/chunk-HQLRJ7XW.js";
10
- import "../../../chunks/chunk-DNIOWD7K.js";
11
- import "../../../chunks/chunk-PUQUSA6S.js";
12
- import "../../../chunks/chunk-OSAXBA7G.js";
13
- import "../../../chunks/chunk-WSFCRVEQ.js";
14
- export {
15
- isDuckTypedSharpInstance,
16
- toCreateOptions,
17
- toSharpColor,
18
- toSharpInstance
19
- };
1
+ import { readFile } from 'node:fs/promises';
2
+ import sharp from 'sharp';
3
+ import { toRgb } from '../../../agnostic/colors/convert/index.js';
4
+ import { tidy } from '../../../agnostic/colors/tidy/index.js';
5
+ import { isNonNullObject } from '../../../agnostic/objects/is-object/index.js';
6
+ /** Converts a Color to Sharp RGBA format. */
7
+ export function toSharpColor(color) {
8
+ const rgb = tidy(toRgb(color));
9
+ return {
10
+ r: rgb.r,
11
+ g: rgb.g,
12
+ b: rgb.b,
13
+ alpha: rgb.a
14
+ };
15
+ }
16
+ /**
17
+ * Type guard to check if an object is a duck-typed Sharp instance.
18
+ *
19
+ * Checks for the presence and correct types of Sharp's characteristic methods.
20
+ *
21
+ * @param obj - The object to check.
22
+ * @returns `true` if the object appears to be a Sharp instance, `false` otherwise.
23
+ */
24
+ export function isDuckTypedSharpInstance(obj) {
25
+ if (!isNonNullObject(obj))
26
+ return false;
27
+ return 'avif' in obj
28
+ && 'clone' in obj
29
+ && 'gif' in obj
30
+ && 'heif' in obj
31
+ && 'jpeg' in obj
32
+ && 'heif' in obj
33
+ && 'metadata' in obj
34
+ && 'png' in obj
35
+ && 'resize' in obj
36
+ && 'tiff' in obj
37
+ && 'webp' in obj
38
+ && typeof obj.avif === 'function'
39
+ && typeof obj.clone === 'function'
40
+ && typeof obj.gif === 'function'
41
+ && typeof obj.heif === 'function'
42
+ && typeof obj.jpeg === 'function'
43
+ && typeof obj.heif === 'function'
44
+ && typeof obj.metadata === 'function'
45
+ && typeof obj.png === 'function'
46
+ && typeof obj.resize === 'function'
47
+ && typeof obj.tiff === 'function'
48
+ && typeof obj.webp === 'function';
49
+ }
50
+ /** Converts CreateOptions to Sharp create options with defaults applied. */
51
+ export function toCreateOptions(options) {
52
+ return {
53
+ width: options.width ?? 100,
54
+ height: options.height ?? 100,
55
+ channels: options.channels ?? 4,
56
+ background: options.background !== undefined
57
+ ? toSharpColor(options.background)
58
+ : toSharpColor('white'),
59
+ noise: options.noise !== undefined
60
+ ? { ...options.noise, type: 'gaussian' }
61
+ : undefined,
62
+ pageHeight: options.pageHeight
63
+ };
64
+ }
65
+ /**
66
+ * Converts an ImageLike input to a Sharp instance.
67
+ *
68
+ * Handles different input types: file paths (reads from disk), Buffers, existing Sharp
69
+ * instances, and CreateOptions (creates a new image).
70
+ *
71
+ * @param imageLike - The image input. Can be a file path, Buffer, Sharp instance, or CreateOptions.
72
+ * @param [clone=false] - If `true` and input is a Sharp instance, returns a cloned instance.
73
+ * @returns A Sharp instance ready for image operations.
74
+ */
75
+ export async function toSharpInstance(imageLike, clone = false) {
76
+ if (typeof imageLike === 'string')
77
+ return sharp(await readFile(imageLike));
78
+ if (Buffer.isBuffer(imageLike))
79
+ return sharp(imageLike);
80
+ if (isDuckTypedSharpInstance(imageLike))
81
+ return clone
82
+ ? imageLike.clone()
83
+ : imageLike;
84
+ return sharp({ create: toCreateOptions(imageLike) });
85
+ }
package/node/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- export * as awsS3 from './@aws-s3/index.js'
2
1
  export * as designEdito from './@design-edito/index.js'
2
+ export * as awsS3 from './@aws-s3/index.js'
3
3
  export * as express from './@express/index.js'
4
4
  export * as googleCloud from './@google-cloud/index.js'
5
5
  export * as cloudStorage from './cloud-storage/index.js'
6
6
  export * as encryption from './encryption/index.js'
7
7
  export * as files from './files/index.js'
8
- export * as ftps from './ftps/index.js'
9
8
  export * as images from './images/index.js'
10
- export * as process from './process/index.js'
9
+ export * as ftps from './ftps/index.js'
11
10
  export * as sftp from './sftp/index.js'
11
+ export * as process from './process/index.js'
package/node/index.js CHANGED
@@ -1,11 +1,11 @@
1
- export * as awsS3 from './@aws-s3/index.js'
2
1
  export * as designEdito from './@design-edito/index.js'
2
+ export * as awsS3 from './@aws-s3/index.js'
3
3
  export * as express from './@express/index.js'
4
4
  export * as googleCloud from './@google-cloud/index.js'
5
5
  export * as cloudStorage from './cloud-storage/index.js'
6
6
  export * as encryption from './encryption/index.js'
7
7
  export * as files from './files/index.js'
8
- export * as ftps from './ftps/index.js'
9
8
  export * as images from './images/index.js'
10
- export * as process from './process/index.js'
9
+ export * as ftps from './ftps/index.js'
11
10
  export * as sftp from './sftp/index.js'
11
+ export * as process from './process/index.js'
@@ -1,32 +1,49 @@
1
- import "../../../chunks/chunk-WSFCRVEQ.js";
2
-
3
- // src/node/process/on-exit/index.ts
4
- var forceExitEvents = ["SIGINT", "SIGTERM", "uncaughtException"];
5
- function beforeForcedExit(callback) {
6
- forceExitEvents.forEach((ev) => process.on(ev, callback));
1
+ /** Events that trigger a forced exit of the process. */
2
+ export const forceExitEvents = ['SIGINT', 'SIGTERM', 'uncaughtException'];
3
+ /**
4
+ * Registers a callback to run before forced exit events (SIGINT, SIGTERM, uncaughtException).
5
+ *
6
+ * @param callback - Function to execute before forced exit. Can be async.
7
+ */
8
+ export function beforeForcedExit(callback) {
9
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
10
+ forceExitEvents.forEach(ev => process.on(ev, callback));
7
11
  }
8
- function beforeExit(callback) {
9
- process.on("beforeExit", callback);
12
+ /**
13
+ * Registers a callback to run before the process exits normally.
14
+ *
15
+ * @param callback - Function to execute before exit. Can be async.
16
+ */
17
+ export function beforeExit(callback) {
18
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
19
+ process.on('beforeExit', callback);
10
20
  }
11
- function onExit(callback) {
12
- process.on("exit", callback);
21
+ /**
22
+ * Registers a callback to run when the process exits.
23
+ *
24
+ * @param callback - Function to execute on exit. Can be async.
25
+ */
26
+ export function onExit(callback) {
27
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises
28
+ process.on('exit', callback);
13
29
  }
14
- function onAllExits(callback) {
15
- let alreadyCalled = false;
16
- const actualCallback = () => {
17
- if (!alreadyCalled) {
18
- alreadyCalled = true;
19
- callback();
20
- }
21
- };
22
- beforeForcedExit(actualCallback);
23
- beforeExit(actualCallback);
24
- onExit(actualCallback);
30
+ /**
31
+ * Registers a callback to run on all exit scenarios (forced exit, before exit, and exit).
32
+ *
33
+ * The callback is guaranteed to be called only once, even if multiple exit events occur.
34
+ *
35
+ * @param callback - Function to execute on any exit. Can be async.
36
+ */
37
+ export function onAllExits(callback) {
38
+ let alreadyCalled = false;
39
+ const actualCallback = () => {
40
+ if (!alreadyCalled) {
41
+ alreadyCalled = true;
42
+ // eslint-disable-next-line @typescript-eslint/no-misused-promises, @typescript-eslint/no-floating-promises
43
+ callback();
44
+ }
45
+ };
46
+ beforeForcedExit(actualCallback);
47
+ beforeExit(actualCallback);
48
+ onExit(actualCallback);
25
49
  }
26
- export {
27
- beforeExit,
28
- beforeForcedExit,
29
- forceExitEvents,
30
- onAllExits,
31
- onExit
32
- };
@@ -1,17 +1,30 @@
1
- import "../../../chunks/chunk-WSFCRVEQ.js";
2
-
3
- // src/node/process/prompt-continue/index.ts
4
- import * as inquirer from "@inquirer/prompts";
5
- async function promptContinue(message, throws = false) {
6
- console.log("");
7
- const answer = await inquirer.confirm({
8
- message: message ?? "Continue?",
9
- default: false
10
- });
11
- if (answer) return true;
12
- if (throws) throw new Error("Aborted");
13
- return false;
1
+ import * as inquirer from '@inquirer/prompts';
2
+ /**
3
+ * Prompts the user with a yes/no confirmation in the terminal.
4
+ *
5
+ * @param {string} [message] - The message to display in the prompt. Defaults to "Continue?" if not provided.
6
+ * @param {boolean} [throws=false] - If true, the function will throw an error when the user declines.
7
+ * @returns {Promise<boolean>} - Resolves to `true` if the user confirms, `false` if the user declines and `throws` is false.
8
+ *
9
+ * @throws {Error} - Throws an error with message 'Aborted' if the user declines and `throws` is true.
10
+ *
11
+ * @example
12
+ * const result = await promptContinue('Do you want to proceed?');
13
+ * if (result) {
14
+ * console.log('User confirmed');
15
+ * } else {
16
+ * console.log('User declined');
17
+ * }
18
+ */
19
+ export async function promptContinue(message, throws = false) {
20
+ console.log('');
21
+ const answer = await inquirer.confirm({
22
+ message: message ?? 'Continue?',
23
+ default: false
24
+ });
25
+ if (answer)
26
+ return true;
27
+ if (throws)
28
+ throw new Error('Aborted');
29
+ return false;
14
30
  }
15
- export {
16
- promptContinue
17
- };