@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,9 +1,37 @@
1
- import {
2
- copy
3
- } from "../../../../../chunks/chunk-3QI2MSDK.js";
4
- import "../../../../../chunks/chunk-LUAYN7VJ.js";
5
- import "../../../../../chunks/chunk-PUQUSA6S.js";
6
- import "../../../../../chunks/chunk-WSFCRVEQ.js";
7
- export {
8
- copy
9
- };
1
+ import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
2
+ import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
+ /**
4
+ * Copies a file from one location to another within a Google Cloud Storage bucket.
5
+ *
6
+ * If `overwrite` is **false** (default) and the destination object already
7
+ * exists, the operation aborts.
8
+ *
9
+ * @param {Bucket} bucket - The Google Cloud Storage bucket containing the file.
10
+ * @param {string} sourcePath - The path of the source object to copy.
11
+ * @param {string} targetPath - The destination path for the copied object.
12
+ * @param {CopyOptions} [options] - Optional copy configuration.
13
+ * @param {FileOptions} [options.fileOptions] - Extra options for `bucket.file`.
14
+ * @param {GCSFileCopyOptions} [options.copyOptions] - Extra options for `file.copy`.
15
+ * @param {boolean} [options.overwrite=false] - Whether to overwrite an existing destination object.
16
+ * @returns {Promise<Outcome.Either<true, string>>}
17
+ * - On success: `Outcome.makeSuccess(true)`.
18
+ * - On failure: `Outcome.makeFailure(errStr)`.
19
+ */
20
+ export async function copy(bucket, sourcePath, targetPath, options) {
21
+ const { fileOptions, copyOptions, overwrite = false } = options ?? {};
22
+ try {
23
+ const srcFile = bucket.file(sourcePath, fileOptions);
24
+ const destFile = bucket.file(targetPath, fileOptions);
25
+ if (!overwrite) {
26
+ const [destExists] = await destFile.exists();
27
+ if (destExists) {
28
+ return Outcome.makeFailure(`Object already exists at ${targetPath}.`);
29
+ }
30
+ }
31
+ await srcFile.copy(destFile, copyOptions);
32
+ return Outcome.makeSuccess(true);
33
+ }
34
+ catch (err) {
35
+ return Outcome.makeFailure(unknownToString(err));
36
+ }
37
+ }
@@ -1,9 +1,28 @@
1
- import {
2
- download
3
- } from "../../../../../chunks/chunk-4Q4T7QQO.js";
4
- import "../../../../../chunks/chunk-LUAYN7VJ.js";
5
- import "../../../../../chunks/chunk-PUQUSA6S.js";
6
- import "../../../../../chunks/chunk-WSFCRVEQ.js";
7
- export {
8
- download
9
- };
1
+ import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
2
+ import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
+ /**
4
+ * Downloads a file from a specified Google Cloud Storage bucket.
5
+ *
6
+ * This function downloads a file from the given bucket and path, returning the file content as a `Readable`.
7
+ * The download process can be customized using optional `fileOptions` and `downloadOptions`.
8
+ *
9
+ * @param {Bucket} bucket - The Google Cloud Storage bucket object from which to download the file.
10
+ * @param {string} sourcePath - The path of the file to be downloaded in the bucket.
11
+ * @param {DownloadOptions} [options] - Optional configuration options for the download.
12
+ * @returns {Promise<Outcome.Either<Readable, string>>} A promise that resolves to an `Outcome.Either`.
13
+ * - On success: `Outcome.makeSuccess(stream)` containing the downloaded file's content as a `Readable`.
14
+ * - On failure: `Outcome.makeFailure(errStr)` with an error message if the download fails.
15
+ */
16
+ export async function download(bucket, sourcePath, options) {
17
+ const { fileOptions, downloadOptions } = options ?? {};
18
+ try {
19
+ const file = bucket.file(sourcePath, fileOptions);
20
+ const stream = file.createReadStream(downloadOptions);
21
+ stream.on('error', (err) => { throw err; });
22
+ return Outcome.makeSuccess(stream);
23
+ }
24
+ catch (err) {
25
+ const errStr = unknownToString(err);
26
+ return Outcome.makeFailure(errStr);
27
+ }
28
+ }
@@ -1,9 +1,26 @@
1
- import {
2
- exists
3
- } from "../../../../../chunks/chunk-YHMR7IBA.js";
4
- import "../../../../../chunks/chunk-LUAYN7VJ.js";
5
- import "../../../../../chunks/chunk-PUQUSA6S.js";
6
- import "../../../../../chunks/chunk-WSFCRVEQ.js";
7
- export {
8
- exists
9
- };
1
+ import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
2
+ import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
3
+ /**
4
+ * Checks if a file exists in the specified bucket.
5
+ *
6
+ * This function verifies whether a file at the given `sourcePath` exists in the bucket. It can be configured with options to customize the behavior of the check.
7
+ *
8
+ * @param {Bucket} bucket - The GCS bucket to check for the file existence.
9
+ * @param {string} sourcePath - The path of the file to check within the bucket.
10
+ * @param {ExistsOptions} [options] - Optional configuration for the file existence check.
11
+ * @param {FileOptions} [options.fileOptions] - Additional options for the file, such as custom metadata or ACL settings.
12
+ * @param {ExistsOptions} [options.existsOptions] - Options for controlling the `exists` method (if any).
13
+ * @returns {Promise<Outcome.Either<boolean, string>>} - Returns either a success with `true` or `false` indicating whether the file exists, or a failure with an error message.
14
+ */
15
+ export async function exists(bucket, sourcePath, options) {
16
+ const { fileOptions, existsOptions } = options ?? {};
17
+ try {
18
+ const file = bucket.file(sourcePath, fileOptions);
19
+ const [exists] = await file.exists(existsOptions);
20
+ return Outcome.makeSuccess(exists);
21
+ }
22
+ catch (err) {
23
+ const errStr = unknownToString(err);
24
+ return Outcome.makeFailure(errStr);
25
+ }
26
+ }
@@ -1,28 +1,34 @@
1
- import {
2
- makeFailure,
3
- makeSuccess
4
- } from "../../../../../chunks/chunk-LUAYN7VJ.js";
5
- import {
6
- unknownToString
7
- } from "../../../../../chunks/chunk-PUQUSA6S.js";
8
- import "../../../../../chunks/chunk-WSFCRVEQ.js";
9
-
10
- // src/node/@google-cloud/storage/file/generate-signed-url/index.ts
11
- async function generateSignedUrl(bucket, sourcePath, action, expiresOn, options) {
12
- const { fileOptions, getSignedUrlOptions } = options ?? {};
13
- try {
14
- const file = bucket.file(sourcePath, fileOptions);
15
- const [url] = await file.getSignedUrl({
16
- action,
17
- expires: expiresOn,
18
- ...getSignedUrlOptions
19
- });
20
- return makeSuccess(url);
21
- } catch (err) {
22
- const errStr = unknownToString(err);
23
- return makeFailure(errStr);
24
- }
1
+ import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
2
+ import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
+ /**
4
+ * Generates a signed URL that provides temporary access to a file in Google Cloud Storage.
5
+ *
6
+ * This function generates a signed URL for the file located at `sourcePath` in the given bucket. The signed URL
7
+ * allows users to perform an action on the file (e.g., `read`, `write`) for a limited time as defined by the `expiresOn` parameter.
8
+ * The behavior can be customized using optional `fileOptions` and `getSignedUrlOptions`.
9
+ *
10
+ * @param {Bucket} bucket - The Google Cloud Storage bucket object containing the file.
11
+ * @param {string} sourcePath - The path of the file for which the signed URL is being generated.
12
+ * @param {GetSignedUrlConfig['action']} action - The action allowed by the signed URL (e.g., 'read', 'write', 'delete').
13
+ * @param {GetSignedUrlConfig['expires']} expiresOn - The expiration time of the signed URL, after which it is no longer valid.
14
+ * @param {GenerateSignedUrlOptions} [options] - Optional configuration options for generating the signed URL.
15
+ * @returns {Promise<Outcome.Either<string, string>>} A promise that resolves to an `Outcome.Either`.
16
+ * - On success: `Outcome.makeSuccess(url)` containing the generated signed URL.
17
+ * - On failure: `Outcome.makeFailure(errStr)` with an error message if the signed URL generation fails.
18
+ */
19
+ export async function generateSignedUrl(bucket, sourcePath, action, expiresOn, options) {
20
+ const { fileOptions, getSignedUrlOptions } = options ?? {};
21
+ try {
22
+ const file = bucket.file(sourcePath, fileOptions);
23
+ const [url] = await file.getSignedUrl({
24
+ action,
25
+ expires: expiresOn,
26
+ ...getSignedUrlOptions
27
+ });
28
+ return Outcome.makeSuccess(url);
29
+ }
30
+ catch (err) {
31
+ const errStr = unknownToString(err);
32
+ return Outcome.makeFailure(errStr);
33
+ }
25
34
  }
26
- export {
27
- generateSignedUrl
28
- };
@@ -1,24 +1,29 @@
1
- import {
2
- makeFailure,
3
- makeSuccess
4
- } from "../../../../../chunks/chunk-LUAYN7VJ.js";
5
- import {
6
- unknownToString
7
- } from "../../../../../chunks/chunk-PUQUSA6S.js";
8
- import "../../../../../chunks/chunk-WSFCRVEQ.js";
9
-
10
- // src/node/@google-cloud/storage/file/get-metadata/index.ts
11
- async function getMetadata(bucket, sourcePath, options) {
12
- const { fileOptions, getFileMetadataOptions } = options ?? {};
13
- try {
14
- const file = bucket.file(sourcePath, fileOptions);
15
- const [metadata] = await file.getMetadata(getFileMetadataOptions);
16
- return makeSuccess(metadata);
17
- } catch (err) {
18
- const errStr = unknownToString(err);
19
- return makeFailure(errStr);
20
- }
1
+ import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
2
+ import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
+ /**
4
+ * Retrieves the metadata of a file from a specified Google Cloud Storage bucket.
5
+ *
6
+ * This function fetches the metadata for a file located at `sourcePath` in the given bucket.
7
+ * It can be customized using optional `fileOptions` and `getFileMetadataOptions` to control the retrieval behavior.
8
+ *
9
+ * @param {Bucket} bucket - The Google Cloud Storage bucket object containing the file whose metadata is being retrieved.
10
+ * @param {string} sourcePath - The path of the file whose metadata is to be fetched.
11
+ * @param {GetMetadataOptions} [options] - Optional configuration options for the file metadata retrieval.
12
+ * @returns {Promise<Outcome.Either<FileMetadata, string>>} A promise that resolves to an `Outcome.Either`.
13
+ * - On success: `Outcome.makeSuccess(metadata)` containing the file's metadata.
14
+ * - On failure: `Outcome.makeFailure(errStr)` with an error message if the metadata retrieval fails.
15
+ *
16
+ * @throws {Error} Throws an error if the metadata retrieval operation fails (e.g., file not found, insufficient permissions, etc.).
17
+ */
18
+ export async function getMetadata(bucket, sourcePath, options) {
19
+ const { fileOptions, getFileMetadataOptions } = options ?? {};
20
+ try {
21
+ const file = bucket.file(sourcePath, fileOptions);
22
+ const [metadata] = await file.getMetadata(getFileMetadataOptions);
23
+ return Outcome.makeSuccess(metadata);
24
+ }
25
+ catch (err) {
26
+ const errStr = unknownToString(err);
27
+ return Outcome.makeFailure(errStr);
28
+ }
21
29
  }
22
- export {
23
- getMetadata
24
- };
@@ -1,24 +1,26 @@
1
- import {
2
- makeFailure,
3
- makeSuccess
4
- } from "../../../../../chunks/chunk-LUAYN7VJ.js";
5
- import {
6
- unknownToString
7
- } from "../../../../../chunks/chunk-PUQUSA6S.js";
8
- import "../../../../../chunks/chunk-WSFCRVEQ.js";
9
-
10
- // src/node/@google-cloud/storage/file/get-permissions/index.ts
11
- async function getPermissions(bucket, sourcePath, options) {
12
- const { fileOptions, getAclOptions } = options ?? {};
13
- try {
14
- const file = bucket.file(sourcePath, fileOptions);
15
- const [acl] = await file.acl.get(getAclOptions);
16
- return makeSuccess(acl);
17
- } catch (err) {
18
- const errStr = unknownToString(err);
19
- return makeFailure(errStr);
20
- }
1
+ import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
2
+ import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
+ /**
4
+ * Retrieves the access control list (ACL) for a file in Google Cloud Storage.
5
+ *
6
+ * This function fetches the ACL settings of a given file to determine the permissions assigned to different users or roles.
7
+ *
8
+ * @param {Bucket} bucket - The Google Cloud Storage bucket containing the file.
9
+ * @param {string} sourcePath - The path of the file whose permissions need to be retrieved.
10
+ * @param {GetPermissionsOptions} [options] - Optional configuration options for the file and ACL retrieval.
11
+ * @returns {Promise<Outcome.Either<any, string>>} A promise that resolves to an `Outcome.Either`.
12
+ * - On success: `Outcome.makeSuccess(acl)` containing the file's ACL settings.
13
+ * - On failure: `Outcome.makeFailure(errStr)` with an error message if the ACL retrieval fails.
14
+ */
15
+ export async function getPermissions(bucket, sourcePath, options) {
16
+ const { fileOptions, getAclOptions } = options ?? {};
17
+ try {
18
+ const file = bucket.file(sourcePath, fileOptions);
19
+ const [acl] = await file.acl.get(getAclOptions);
20
+ return Outcome.makeSuccess(acl);
21
+ }
22
+ catch (err) {
23
+ const errStr = unknownToString(err);
24
+ return Outcome.makeFailure(errStr);
25
+ }
21
26
  }
22
- export {
23
- getPermissions
24
- };
@@ -1,8 +1,8 @@
1
1
  export * as copy from './copy/index.js'
2
2
  export * as download from './download/index.js'
3
3
  export * as exists from './exists/index.js'
4
- export * as getMetadata from './get-metadata/index.js'
5
4
  export * as generateSignedUrl from './generate-signed-url/index.js'
5
+ export * as getMetadata from './get-metadata/index.js'
6
6
  export * as getPermissions from './get-permissions/index.js'
7
7
  export * as move from './move/index.js'
8
8
  export * as remove from './remove/index.js'
@@ -1,8 +1,8 @@
1
1
  export * as copy from './copy/index.js'
2
2
  export * as download from './download/index.js'
3
3
  export * as exists from './exists/index.js'
4
- export * as getMetadata from './get-metadata/index.js'
5
4
  export * as generateSignedUrl from './generate-signed-url/index.js'
5
+ export * as getMetadata from './get-metadata/index.js'
6
6
  export * as getPermissions from './get-permissions/index.js'
7
7
  export * as move from './move/index.js'
8
8
  export * as remove from './remove/index.js'
@@ -1,9 +1,40 @@
1
- import {
2
- move
3
- } from "../../../../../chunks/chunk-4KLCJX2T.js";
4
- import "../../../../../chunks/chunk-LUAYN7VJ.js";
5
- import "../../../../../chunks/chunk-PUQUSA6S.js";
6
- import "../../../../../chunks/chunk-WSFCRVEQ.js";
7
- export {
8
- move
9
- };
1
+ import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
2
+ import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
+ /**
4
+ * Moves a file from one location to another within a Google Cloud Storage bucket.
5
+ *
6
+ * The function copies the object at `sourcePath` to `targetPath` and, on
7
+ * successful copy, deletes the original. If `overwrite` is **false** and the
8
+ * destination already exists, the operation aborts.
9
+ *
10
+ * @param {Bucket} bucket - The Google Cloud Storage bucket.
11
+ * @param {string} sourcePath - The path of the source object.
12
+ * @param {string} targetPath - The destination path.
13
+ * @param {MoveOptions} [options] - Optional configuration.
14
+ * @param {FileOptions} [options.fileOptions] - Options for file handles.
15
+ * @param {CopyOptions} [options.copyOptions] - Extra options for `copy`.
16
+ * @param {GCSDeleteFileOptions} [options.deleteOptions] - Extra options for `delete`.
17
+ * @param {boolean} [options.overwrite=false] - Whether to overwrite an existing destination.
18
+ * @returns {Promise<Outcome.Either<true, string>>}
19
+ * - Success: `Outcome.makeSuccess(true)` if the move succeeds.
20
+ * - Failure: `Outcome.makeFailure(errStr)` if the move fails.
21
+ */
22
+ export async function move(bucket, sourcePath, targetPath, options) {
23
+ const { fileOptions, copyOptions, deleteOptions, overwrite = false } = options ?? {};
24
+ try {
25
+ const srcFile = bucket.file(sourcePath, fileOptions);
26
+ const destFile = bucket.file(targetPath, fileOptions);
27
+ if (!overwrite) {
28
+ const [exists] = await destFile.exists();
29
+ if (exists) {
30
+ return Outcome.makeFailure(`Object already exists at ${targetPath}.`);
31
+ }
32
+ }
33
+ await srcFile.copy(destFile, copyOptions);
34
+ await srcFile.delete(deleteOptions);
35
+ return Outcome.makeSuccess(true);
36
+ }
37
+ catch (err) {
38
+ return Outcome.makeFailure(unknownToString(err));
39
+ }
40
+ }
@@ -1,9 +1,36 @@
1
- import {
2
- remove
3
- } from "../../../../../chunks/chunk-MO4TRYNI.js";
4
- import "../../../../../chunks/chunk-LUAYN7VJ.js";
5
- import "../../../../../chunks/chunk-PUQUSA6S.js";
6
- import "../../../../../chunks/chunk-WSFCRVEQ.js";
7
- export {
8
- remove
9
- };
1
+ import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
2
+ import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
+ /**
4
+ * Removes a file from a specified Google Cloud Storage bucket.
5
+ *
6
+ * This function deletes the object located at `targetPath` in the given bucket.
7
+ * The operation can be customized using optional `fileOptions` (to reference the object)
8
+ * and `deleteOptions` (to influence GCS deletion behaviour).
9
+ * If the `ignoreMissing` option is **true**, the function treats a missing object as a
10
+ * successful outcome instead of returning an error.
11
+ *
12
+ * @param {Bucket} bucket - The Google Cloud Storage bucket instance.
13
+ * @param {string} targetPath - The path of the file to remove in the bucket.
14
+ * @param {RemoveOptions} [options] - Optional settings for configuring the removal process.
15
+ * @returns {Promise<Outcome.Either<true, string>>} A promise that resolves to an Outcome.Either.
16
+ * - On success: `Outcome.makeSuccess(true)` indicating the removal was successful.
17
+ * - On failure: `Outcome.makeFailure(errStr)` with an error message if the removal fails.
18
+ */
19
+ export async function remove(bucket, targetPath, options) {
20
+ const { fileOptions, deleteOptions, ignoreMissing = true } = options ?? {};
21
+ try {
22
+ const file = bucket.file(targetPath, fileOptions);
23
+ const [exists] = await file.exists();
24
+ if (!exists) {
25
+ if (ignoreMissing)
26
+ return Outcome.makeSuccess(true);
27
+ return Outcome.makeFailure(`File not found at ${targetPath}.`);
28
+ }
29
+ await file.delete(deleteOptions);
30
+ return Outcome.makeSuccess(true);
31
+ }
32
+ catch (err) {
33
+ const errStr = unknownToString(err);
34
+ return Outcome.makeFailure(errStr);
35
+ }
36
+ }
@@ -1,30 +1,33 @@
1
- import {
2
- upload
3
- } from "../../../../../chunks/chunk-EX2QKFY5.js";
4
- import {
5
- remove
6
- } from "../../../../../chunks/chunk-MO4TRYNI.js";
7
- import {
8
- download
9
- } from "../../../../../chunks/chunk-4Q4T7QQO.js";
10
- import {
11
- makeSuccess
12
- } from "../../../../../chunks/chunk-LUAYN7VJ.js";
13
- import "../../../../../chunks/chunk-PUQUSA6S.js";
14
- import "../../../../../chunks/chunk-WSFCRVEQ.js";
15
-
16
- // src/node/@google-cloud/storage/file/revoke-signed-urls/index.ts
17
- async function revokeSignedUrls(bucket, targetPath, options) {
18
- const { downloadOptions, removeOptions, uploadOptions } = options ?? {};
19
- const downloadAttempt = await download(bucket, targetPath, downloadOptions);
20
- if (!downloadAttempt.success) return downloadAttempt;
21
- const deletionAttempt = await remove(bucket, targetPath, removeOptions);
22
- if (!deletionAttempt.success) return deletionAttempt;
23
- const downloaded = downloadAttempt.payload;
24
- const reuploadAttempt = await upload(bucket, targetPath, downloaded, uploadOptions);
25
- if (!reuploadAttempt.success) return reuploadAttempt;
26
- return makeSuccess(true);
1
+ import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
2
+ import { download } from '../download/index.js';
3
+ import { remove } from '../remove/index.js';
4
+ import { upload } from '../upload/index.js';
5
+ /**
6
+ * Revokes the signed URLs for a file in Google Cloud Storage by downloading the file,
7
+ * deleting it, and re-uploading it to effectively invalidate any previously generated signed URLs.
8
+ *
9
+ * This function first attempts to download the file from the bucket, then removes the file,
10
+ * and finally re-uploads the file to the same path. The re-upload effectively revokes any signed URLs that
11
+ * were generated for the file, as they are tied to the file's existence and content.
12
+ *
13
+ * @param {Bucket} bucket - The Google Cloud Storage bucket containing the file.
14
+ * @param {string} targetPath - The path of the file for which the signed URLs are to be revoked.
15
+ * @param {RevokeSignedUrlsOptions} [options] - Optional configuration options for the file operations.
16
+ * @returns {Promise<Outcome.Either<true, string>>} A promise that resolves to an `Outcome.Either`.
17
+ * - On success: `Outcome.makeSuccess(true)` if the file has been successfully re-uploaded after deletion.
18
+ * - On failure: `Outcome.makeFailure(errStr)` with an error message if any of the steps (download, remove, or upload) fail.
19
+ */
20
+ export async function revokeSignedUrls(bucket, targetPath, options) {
21
+ const { downloadOptions, removeOptions, uploadOptions } = options ?? {};
22
+ const downloadAttempt = await download(bucket, targetPath, downloadOptions);
23
+ if (!downloadAttempt.success)
24
+ return downloadAttempt;
25
+ const deletionAttempt = await remove(bucket, targetPath, removeOptions);
26
+ if (!deletionAttempt.success)
27
+ return deletionAttempt;
28
+ const downloaded = downloadAttempt.payload;
29
+ const reuploadAttempt = await upload(bucket, targetPath, downloaded, uploadOptions);
30
+ if (!reuploadAttempt.success)
31
+ return reuploadAttempt;
32
+ return Outcome.makeSuccess(true);
27
33
  }
28
- export {
29
- revokeSignedUrls
30
- };
@@ -1,9 +1,35 @@
1
- import {
2
- stat
3
- } from "../../../../../chunks/chunk-77SWZUHV.js";
4
- import "../../../../../chunks/chunk-LUAYN7VJ.js";
5
- import "../../../../../chunks/chunk-PUQUSA6S.js";
6
- import "../../../../../chunks/chunk-WSFCRVEQ.js";
7
- export {
8
- stat
9
- };
1
+ import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
2
+ import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
3
+ /**
4
+ * Retrieves metadata for a single GCS object.
5
+ *
6
+ * @param {Bucket} bucket – GCS bucket.
7
+ * @param {string} path – Object path.
8
+ * @param {StatOptions} [options] – Extra getMetadata options.
9
+ * @returns {Promise<Outcome.Either<Stat, string>>}
10
+ */
11
+ export async function stat(bucket, path, options) {
12
+ const { fileOptions, getMetadataOptions } = options ?? {};
13
+ try {
14
+ const [meta] = await bucket
15
+ .file(path, fileOptions)
16
+ .getMetadata(getMetadataOptions);
17
+ const res = {
18
+ size: meta.size !== undefined
19
+ ? Number(meta.size)
20
+ : undefined,
21
+ modifiedAt: meta.updated !== undefined
22
+ ? new Date(meta.updated)
23
+ : undefined,
24
+ checksum: meta.md5Hash ?? meta.crc32c,
25
+ contentType: meta.contentType,
26
+ metadata: meta.metadata,
27
+ storageClass: meta.storageClass,
28
+ raw: meta
29
+ };
30
+ return Outcome.makeSuccess(res);
31
+ }
32
+ catch (err) {
33
+ return Outcome.makeFailure(unknownToString(err));
34
+ }
35
+ }
@@ -1,24 +1,31 @@
1
- import {
2
- makeFailure,
3
- makeSuccess
4
- } from "../../../../../chunks/chunk-LUAYN7VJ.js";
5
- import {
6
- unknownToString
7
- } from "../../../../../chunks/chunk-PUQUSA6S.js";
8
- import "../../../../../chunks/chunk-WSFCRVEQ.js";
9
-
10
- // src/node/@google-cloud/storage/file/update-metadata/index.ts
11
- async function updateFileMetadata(bucket, targetPath, metadata, options) {
12
- const { fileOptions, metadataOptions } = options ?? {};
13
- try {
14
- const file = bucket.file(targetPath, fileOptions);
15
- await file.setMetadata(metadata, metadataOptions);
16
- return makeSuccess(true);
17
- } catch (err) {
18
- const errStr = unknownToString(err);
19
- return makeFailure(errStr);
20
- }
1
+ import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
2
+ import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
+ /**
4
+ * Updates the metadata of a file in a Google Cloud Storage bucket.
5
+ *
6
+ * This function allows updating the metadata of a file located at `targetPath` in the given bucket.
7
+ * The metadata is updated according to the provided `metadata` object, which contains the new metadata key-value pairs.
8
+ * It can be customized using optional `fileOptions` and `metadataOptions` to control the update behavior.
9
+ *
10
+ * @param {Bucket} bucket - The Google Cloud Storage bucket object containing the file whose metadata is being updated.
11
+ * @param {string} targetPath - The path of the file whose metadata is to be updated.
12
+ * @param {Record<string, any>} metadata - The metadata object containing key-value pairs to be set on the file.
13
+ * @param {UpdateFileMetadataOptions} [options] - Optional configuration options for the metadata update operation.
14
+ * @returns {Promise<Outcome.Either<true, string>>} A promise that resolves to an `Outcome.Either`.
15
+ * - On success: `Outcome.makeSuccess(true)` indicating the metadata was successfully updated.
16
+ * - On failure: `Outcome.makeFailure(errStr)` with an error message if the metadata update operation fails.
17
+ *
18
+ * @throws {Error} Throws an error if the metadata update operation fails (e.g., file not found, insufficient permissions, etc.).
19
+ */
20
+ export async function updateFileMetadata(bucket, targetPath, metadata, options) {
21
+ const { fileOptions, metadataOptions } = options ?? {};
22
+ try {
23
+ const file = bucket.file(targetPath, fileOptions);
24
+ await file.setMetadata(metadata, metadataOptions);
25
+ return Outcome.makeSuccess(true);
26
+ }
27
+ catch (err) {
28
+ const errStr = unknownToString(err);
29
+ return Outcome.makeFailure(errStr);
30
+ }
21
31
  }
22
- export {
23
- updateFileMetadata
24
- };
@@ -1,9 +1,47 @@
1
- import {
2
- upload
3
- } from "../../../../../chunks/chunk-EX2QKFY5.js";
4
- import "../../../../../chunks/chunk-LUAYN7VJ.js";
5
- import "../../../../../chunks/chunk-PUQUSA6S.js";
6
- import "../../../../../chunks/chunk-WSFCRVEQ.js";
7
- export {
8
- upload
9
- };
1
+ import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
2
+ import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
3
+ /**
4
+ * Uploads a file stream to a specified Google Cloud Storage bucket.
5
+ *
6
+ * This function uploads the provided file stream to the specified bucket at the given target path.
7
+ * The upload can be customized using optional `fileOptions` and `saveOptions`.
8
+ * If the `overwrite` option is false and a file already exists at the target path, the upload is aborted.
9
+ *
10
+ * @param {Bucket} bucket - The Google Cloud Storage bucket object.
11
+ * @param {string} targetPath - The target path where the file will be saved in the bucket.
12
+ * @param {Readable} fileStream - The file content to be uploaded.
13
+ * @param {UploadOptions} [options] - Optional options to configure the upload process.
14
+ * @returns {Promise<Outcome.Either<true, string>>} A promise that resolves to an Outcome.Either.
15
+ * - On success: Outcome.makeSuccess(true) indicating the upload was successful.
16
+ * - On failure: Outcome.makeFailure(errStr) with an error message if the upload fails.
17
+ */
18
+ export async function upload(bucket, targetPath, fileStream, options) {
19
+ const { fileOptions, saveOptions, overwrite = false } = options ?? {};
20
+ const file = bucket.file(targetPath, fileOptions);
21
+ if (!overwrite) {
22
+ try {
23
+ const [exists] = await file.exists();
24
+ if (exists) {
25
+ return Outcome.makeFailure(`File already exists at ${targetPath}.`);
26
+ }
27
+ }
28
+ catch (err) {
29
+ const errStr = unknownToString(err);
30
+ return Outcome.makeFailure(errStr);
31
+ }
32
+ }
33
+ try {
34
+ await new Promise((resolve, reject) => {
35
+ const writeStream = file.createWriteStream(saveOptions);
36
+ fileStream.pipe(writeStream);
37
+ fileStream.on('error', reject);
38
+ writeStream.on('finish', resolve);
39
+ writeStream.on('error', reject);
40
+ });
41
+ return Outcome.makeSuccess(true);
42
+ }
43
+ catch (err) {
44
+ const errStr = unknownToString(err);
45
+ return Outcome.makeFailure(errStr);
46
+ }
47
+ }