@design-edito/tools 0.4.22 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/agnostic/arrays/find-duplicates/index.d.ts +1 -1
- package/agnostic/arrays/find-duplicates/index.js +3 -2
- package/agnostic/arrays/is-array-of/index.d.ts +1 -1
- package/agnostic/arrays/is-array-of/index.js +3 -1
- package/agnostic/arrays/make/index.d.ts +1 -1
- package/agnostic/arrays/random-pick/index.js +2 -1
- package/agnostic/arrays/shuffle/index.js +1 -1
- package/agnostic/booleans/is-falsy/index.d.ts +3 -3
- package/agnostic/booleans/is-falsy/index.js +2 -3
- package/agnostic/colors/channels/index.d.ts +16 -16
- package/agnostic/colors/channels/index.js +15 -15
- package/agnostic/colors/contrast/index.d.ts +6 -6
- package/agnostic/colors/contrast/index.js +6 -8
- package/agnostic/colors/contrast/index.test.js +1 -1
- package/agnostic/colors/convert/index.d.ts +43 -43
- package/agnostic/colors/convert/index.js +60 -55
- package/agnostic/colors/distance/index.d.ts +5 -5
- package/agnostic/colors/distance/index.js +5 -4
- package/agnostic/colors/grayscale/index.d.ts +3 -3
- package/agnostic/colors/grayscale/index.js +3 -3
- package/agnostic/colors/index.d.ts +1 -1
- package/agnostic/colors/index.js +1 -1
- package/agnostic/colors/invert/index.d.ts +4 -4
- package/agnostic/colors/invert/index.js +3 -3
- package/agnostic/colors/lerp/index.d.ts +6 -7
- package/agnostic/colors/lerp/index.js +5 -6
- package/agnostic/colors/luminance/index.d.ts +4 -4
- package/agnostic/colors/luminance/index.js +3 -3
- package/agnostic/colors/palette/index.d.ts +3 -3
- package/agnostic/colors/palette/index.js +4 -3
- package/agnostic/colors/rotate/index.d.ts +4 -4
- package/agnostic/colors/rotate/index.js +4 -4
- package/agnostic/colors/tidy/index.d.ts +2 -2
- package/agnostic/colors/tidy/index.js +2 -2
- package/agnostic/colors/typechecks/index.d.ts +21 -21
- package/agnostic/colors/typechecks/index.js +22 -21
- package/agnostic/colors/types.d.ts +33 -33
- package/agnostic/css/bem/index.d.ts +11 -11
- package/agnostic/css/bem/index.js +9 -8
- package/agnostic/css/clss/index.d.ts +1 -1
- package/agnostic/css/clss/index.js +1 -1
- package/agnostic/css/index.d.ts +1 -1
- package/agnostic/css/index.js +1 -1
- package/agnostic/css/is-valid-css-class-name/index.d.ts +2 -2
- package/agnostic/css/is-valid-css-class-name/index.js +3 -3
- package/agnostic/css/scale/index.d.ts +18 -18
- package/agnostic/css/scale/index.js +18 -18
- package/agnostic/css/styles-set/index.d.ts +1 -1
- package/agnostic/css/styles-set/index.js +0 -2
- package/agnostic/errors/register/index.d.ts +1 -1
- package/agnostic/errors/register/index.js +3 -0
- package/agnostic/errors/unknown-to-string/index.d.ts +2 -2
- package/agnostic/errors/unknown-to-string/index.js +2 -3
- package/agnostic/html/deep-select/index.d.ts +3 -3
- package/agnostic/html/deep-select/index.js +11 -7
- package/agnostic/html/get-node-ancestors/index.d.ts +3 -3
- package/agnostic/html/get-node-ancestors/index.js +3 -3
- package/agnostic/html/get-position-inside-parent/index.d.ts +2 -2
- package/agnostic/html/get-position-inside-parent/index.js +2 -2
- package/agnostic/html/hyper-json/cast/index.d.ts +1 -1
- package/agnostic/html/hyper-json/cast/index.js +6 -5
- package/agnostic/html/hyper-json/method/index.d.ts +2 -2
- package/agnostic/html/hyper-json/serialize/index.d.ts +1 -1
- package/agnostic/html/hyper-json/serialize/index.js +9 -5
- package/agnostic/html/hyper-json/smart-tags/coalesced/addclass/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/and/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/append/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/append/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/at/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/at/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/call/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/call/index.js +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/clone/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/deleteproperties/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/deleteproperties/index.js +0 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/equals/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/getattribute/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/getproperties/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/getproperty/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/getproperty/index.js +1 -2
- package/agnostic/html/hyper-json/smart-tags/coalesced/hjparse/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/hjstringify/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/hjstringify/index.js +4 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/if/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/if/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/index.d.ts +11 -11
- package/agnostic/html/hyper-json/smart-tags/coalesced/index.js +11 -11
- package/agnostic/html/hyper-json/smart-tags/coalesced/initialize/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/initialize/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/join/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/length/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/map/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/or/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/pickrandom/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/populate/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/populate/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/print/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/print/index.js +2 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/push/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/pusheach/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/pusheach/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/recordtoarray/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/removeattribute/index.js +3 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/removeclass/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/renameproperty/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/renameproperty/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/replace/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/replace/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/select/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/set/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/set/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/setattribute/index.js +3 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/setproperty/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/setproperty/index.js +4 -2
- package/agnostic/html/hyper-json/smart-tags/coalesced/sorton/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/sorton/index.js +5 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/spread/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/spread/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/coalesced/toarray/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/toboolean/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/toelement/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/toggleclass/index.js +3 -2
- package/agnostic/html/hyper-json/smart-tags/coalesced/tonodelist/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/tonull/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/tonumber/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/torecord/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/toref/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/tostring/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/totext/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/transformselected/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/coalesced/trim/index.js +1 -1
- package/agnostic/html/hyper-json/smart-tags/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/any/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/array/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/get/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/guess/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/guess/index.js +3 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/index.js +1 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/nodelist/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/nodelist/index.js +1 -0
- package/agnostic/html/hyper-json/smart-tags/isolated/null/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/record/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/ref/index.d.ts +1 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/ref/index.js +3 -1
- package/agnostic/html/hyper-json/smart-tags/isolated/text/index.js +2 -2
- package/agnostic/html/hyper-json/transformer/index.d.ts +5 -5
- package/agnostic/html/hyper-json/tree/index.d.ts +1 -1
- package/agnostic/html/hyper-json/tree/index.js +14 -8
- package/agnostic/html/hyper-json/types/index.d.ts +11 -11
- package/agnostic/html/hyper-json/utils/index.d.ts +3 -3
- package/agnostic/html/hyper-json/utils/index.js +8 -3
- package/agnostic/html/index.d.ts +1 -1
- package/agnostic/html/index.js +1 -1
- package/agnostic/html/insert-node/index.d.ts +4 -4
- package/agnostic/html/insert-node/index.js +4 -4
- package/agnostic/html/replace-in-element/index.d.ts +3 -3
- package/agnostic/html/replace-in-element/index.js +4 -4
- package/agnostic/html/selector-to-element/index.d.ts +2 -2
- package/agnostic/html/selector-to-element/index.js +11 -11
- package/agnostic/html/string-to-nodes/index.d.ts +3 -3
- package/agnostic/html/string-to-nodes/index.js +3 -3
- package/agnostic/html/watch-selection/index.d.ts +4 -5
- package/agnostic/html/watch-selection/index.js +5 -6
- package/agnostic/misc/assert/index.js +3 -1
- package/agnostic/misc/cast/index.d.ts +16 -16
- package/agnostic/misc/cast/index.js +18 -18
- package/agnostic/misc/connection/index.d.ts +5 -5
- package/agnostic/misc/connection/index.js +4 -2
- package/agnostic/misc/crawler/index.d.ts +18 -18
- package/agnostic/misc/crawler/index.js +10 -9
- package/agnostic/misc/crawler/index.test.js +2 -2
- package/agnostic/misc/crossenv/detect-runtime/index.d.ts +1 -1
- package/agnostic/misc/crossenv/detect-runtime/index.js +10 -11
- package/agnostic/misc/crossenv/window/index.d.ts +6 -6
- package/agnostic/misc/crossenv/window/index.js +6 -5
- package/agnostic/misc/data-size/index.js +2 -0
- package/agnostic/misc/index.d.ts +3 -3
- package/agnostic/misc/index.js +3 -3
- package/agnostic/misc/is-constructor-function/index.d.ts +2 -2
- package/agnostic/misc/is-constructor-function/index.js +3 -2
- package/agnostic/misc/is-constructor-function/index.test.js +2 -2
- package/agnostic/misc/is-nullish/index.d.ts +5 -5
- package/agnostic/misc/is-nullish/index.js +5 -4
- package/agnostic/misc/logs/index.d.ts +1 -1
- package/agnostic/misc/logs/index.js +1 -1
- package/agnostic/misc/logs/logger/index.js +2 -2
- package/agnostic/misc/lorem-ipsum/index.js +4 -4
- package/agnostic/misc/normalize-extension/index.d.ts +3 -3
- package/agnostic/misc/normalize-extension/index.js +4 -4
- package/agnostic/misc/outcome/index.d.ts +14 -14
- package/agnostic/misc/outcome/index.js +6 -4
- package/agnostic/numbers/absolute-modulo/index.d.ts +3 -3
- package/agnostic/numbers/absolute-modulo/index.js +3 -3
- package/agnostic/numbers/approximate-rational/index.d.ts +6 -6
- package/agnostic/numbers/approximate-rational/index.js +9 -9
- package/agnostic/numbers/clamp/index.d.ts +4 -4
- package/agnostic/numbers/clamp/index.js +4 -4
- package/agnostic/numbers/geometric-progressions/index.d.ts +5 -5
- package/agnostic/numbers/geometric-progressions/index.js +7 -5
- package/agnostic/numbers/geometric-progressions/index.test.js +2 -2
- package/agnostic/numbers/index.d.ts +1 -1
- package/agnostic/numbers/index.js +1 -1
- package/agnostic/numbers/interpolate/index.d.ts +8 -8
- package/agnostic/numbers/interpolate/index.js +8 -8
- package/agnostic/numbers/round/index.d.ts +9 -9
- package/agnostic/numbers/round/index.js +9 -9
- package/agnostic/objects/deep-get-property/index.d.ts +4 -4
- package/agnostic/objects/deep-get-property/index.js +3 -3
- package/agnostic/objects/enums/is-in-enum/index.d.ts +3 -3
- package/agnostic/objects/enums/is-in-enum/index.js +3 -3
- package/agnostic/objects/flatten-getters/index.d.ts +2 -2
- package/agnostic/objects/flatten-getters/index.js +3 -2
- package/agnostic/objects/index.d.ts +1 -1
- package/agnostic/objects/index.js +1 -1
- package/agnostic/objects/is-object/index.d.ts +4 -4
- package/agnostic/objects/is-object/index.js +4 -4
- package/agnostic/objects/is-record/index.d.ts +2 -2
- package/agnostic/objects/is-record/index.js +2 -2
- package/agnostic/objects/record-format/index.d.ts +9 -9
- package/agnostic/objects/record-format/index.js +8 -3
- package/agnostic/objects/record-map/index.d.ts +4 -4
- package/agnostic/objects/record-map/index.js +5 -3
- package/agnostic/objects/sort-keys/index.d.ts +3 -3
- package/agnostic/objects/sort-keys/index.js +4 -3
- package/agnostic/objects/validation/index.d.ts +3 -3
- package/agnostic/objects/validation/index.js +4 -3
- package/agnostic/optim/memoize/index.d.ts +2 -2
- package/agnostic/optim/memoize/index.js +4 -2
- package/agnostic/optim/throttle-debounce/index.d.ts +2 -2
- package/agnostic/optim/throttle-debounce/index.js +7 -6
- package/agnostic/optim/throttle-debounce/types.d.ts +2 -1
- package/agnostic/random/random/index.d.ts +7 -8
- package/agnostic/random/random/index.js +3 -3
- package/agnostic/random/uuid/index.d.ts +6 -6
- package/agnostic/random/uuid/index.js +6 -6
- package/agnostic/regexps/index.d.ts +30 -60
- package/agnostic/regexps/index.js +27 -26
- package/agnostic/sanitization/file-name/index.d.ts +3 -3
- package/agnostic/sanitization/file-name/index.js +10 -10
- package/agnostic/sanitization/html/index.d.ts +6 -6
- package/agnostic/sanitization/html/index.js +9 -6
- package/agnostic/sanitization/path/index.d.ts +2 -2
- package/agnostic/sanitization/path/index.js +2 -2
- package/agnostic/sanitization/user-input/index.js +1 -0
- package/agnostic/strings/char-codes/index.js +2 -6
- package/agnostic/strings/index.d.ts +1 -1
- package/agnostic/strings/index.js +1 -1
- package/agnostic/strings/normalize-indent/index.js +2 -2
- package/agnostic/strings/parse-table/index.d.ts +13 -13
- package/agnostic/strings/parse-table/index.js +31 -16
- package/agnostic/strings/replace-all/index.d.ts +1 -1
- package/agnostic/strings/replace-all/index.js +1 -0
- package/agnostic/strings/to-alphanum/index.js +2 -2
- package/agnostic/strings/trim/index.js +2 -2
- package/agnostic/time/dates/format-date/index.js +3 -1
- package/agnostic/time/dates/index.d.ts +1 -0
- package/agnostic/time/dates/index.js +1 -0
- package/agnostic/time/dates/to-french-republican/index.d.ts +16 -0
- package/agnostic/time/dates/to-french-republican/index.js +82 -0
- package/agnostic/time/dates/to-french-republican/index.test.d.ts +1 -0
- package/agnostic/time/dates/to-french-republican/index.test.js +112 -0
- package/agnostic/time/dates/to-french-republican/types.d.ts +91 -0
- package/agnostic/time/dates/to-french-republican/types.js +47 -0
- package/agnostic/time/dates/to-french-republican/utils.d.ts +32 -0
- package/agnostic/time/dates/to-french-republican/utils.js +155 -0
- package/agnostic/time/duration/index.js +2 -0
- package/agnostic/time/index.d.ts +2 -2
- package/agnostic/time/index.js +2 -2
- package/agnostic/time/timeout/index.js +9 -9
- package/agnostic/time/transitions/index.js +8 -7
- package/components/BeforeAfter/index.controlled.js +1 -0
- package/components/BeforeAfter/index.js +4 -0
- package/components/Button/index.d.ts +2 -7
- package/components/Button/index.js +2 -2
- package/components/Clippable/index.js +1 -0
- package/components/Drawer/index.js +1 -1
- package/components/Gallery/index.js +2 -1
- package/components/Gallery/utils.js +5 -1
- package/components/Iframe/index.d.ts +16 -34
- package/components/Iframe/index.js +70 -27
- package/components/Image/index.js +2 -0
- package/components/Input/index.controlled.d.ts +42 -0
- package/components/Input/index.controlled.js +54 -0
- package/components/Input/index.d.ts +21 -17
- package/components/Input/index.js +27 -18
- package/components/IntersectionObserver/index.js +5 -2
- package/components/JsonEditor/index.js +1 -1
- package/components/Overlayer/index.d.ts +1 -1
- package/components/ScrollListener/utils.d.ts +29 -0
- package/components/Select/index.controlled.d.ts +43 -0
- package/components/Select/index.controlled.js +54 -0
- package/components/Select/index.d.ts +22 -18
- package/components/Select/index.js +27 -18
- package/components/Sequencer/index.controlled.js +1 -1
- package/components/Subtitles/index.js +3 -1
- package/components/Subtitles/types.d.ts +14 -0
- package/components/Subtitles/utils.d.ts +19 -15
- package/components/Subtitles/utils.js +29 -24
- package/components/Textarea/index.controlled.d.ts +50 -0
- package/components/Textarea/index.controlled.js +75 -0
- package/components/Textarea/index.d.ts +22 -17
- package/components/Textarea/index.js +27 -18
- package/components/UIModule/index.js +3 -1
- package/components/Video/index.controlled.d.ts +1 -1
- package/components/Video/index.controlled.js +11 -10
- package/components/Video/index.js +27 -20
- package/components/Video/utils.d.ts +1 -1
- package/components/Video/utils.js +11 -2
- package/components/index.d.ts +1 -1
- package/components/index.js +1 -1
- package/components/utils/types.d.ts +5 -0
- package/node/@aws-s3/storage/directory/copy-dir/index.d.ts +9 -9
- package/node/@aws-s3/storage/directory/copy-dir/index.js +15 -12
- package/node/@aws-s3/storage/directory/index.d.ts +1 -1
- package/node/@aws-s3/storage/directory/index.js +1 -1
- package/node/@aws-s3/storage/directory/list/index.d.ts +5 -5
- package/node/@aws-s3/storage/directory/list/index.js +5 -5
- package/node/@aws-s3/storage/directory/move-dir/index.d.ts +6 -6
- package/node/@aws-s3/storage/directory/move-dir/index.js +11 -7
- package/node/@aws-s3/storage/directory/remove-dir/index.d.ts +5 -5
- package/node/@aws-s3/storage/directory/remove-dir/index.js +5 -5
- package/node/@aws-s3/storage/file/copy/index.d.ts +8 -8
- package/node/@aws-s3/storage/file/copy/index.js +12 -9
- package/node/@aws-s3/storage/file/download/index.d.ts +6 -6
- package/node/@aws-s3/storage/file/download/index.js +6 -5
- package/node/@aws-s3/storage/file/exists/index.d.ts +6 -6
- package/node/@aws-s3/storage/file/exists/index.js +15 -12
- package/node/@aws-s3/storage/file/index.d.ts +1 -1
- package/node/@aws-s3/storage/file/index.js +1 -1
- package/node/@aws-s3/storage/file/move/index.d.ts +9 -9
- package/node/@aws-s3/storage/file/move/index.js +18 -15
- package/node/@aws-s3/storage/file/remove/index.d.ts +5 -5
- package/node/@aws-s3/storage/file/remove/index.js +16 -11
- package/node/@aws-s3/storage/file/stat/index.d.ts +5 -5
- package/node/@aws-s3/storage/file/stat/index.js +10 -7
- package/node/@aws-s3/storage/file/upload/index.d.ts +7 -7
- package/node/@aws-s3/storage/file/upload/index.js +11 -9
- package/node/@express/@multer/index.d.ts +12 -12
- package/node/@express/@multer/index.js +27 -25
- package/node/@google-cloud/storage/bucket/get-metadata/index.d.ts +4 -4
- package/node/@google-cloud/storage/bucket/get-metadata/index.js +3 -3
- package/node/@google-cloud/storage/directory/copy-dir/index.d.ts +7 -7
- package/node/@google-cloud/storage/directory/copy-dir/index.js +6 -6
- package/node/@google-cloud/storage/directory/index.d.ts +1 -1
- package/node/@google-cloud/storage/directory/index.js +1 -1
- package/node/@google-cloud/storage/directory/list/index.d.ts +6 -6
- package/node/@google-cloud/storage/directory/list/index.js +5 -5
- package/node/@google-cloud/storage/directory/move-dir/index.d.ts +6 -6
- package/node/@google-cloud/storage/directory/move-dir/index.js +5 -5
- package/node/@google-cloud/storage/directory/remove-dir/index.d.ts +7 -7
- package/node/@google-cloud/storage/directory/remove-dir/index.js +6 -6
- package/node/@google-cloud/storage/file/copy/index.d.ts +9 -9
- package/node/@google-cloud/storage/file/copy/index.js +8 -8
- package/node/@google-cloud/storage/file/download/index.d.ts +7 -7
- package/node/@google-cloud/storage/file/download/index.js +5 -5
- package/node/@google-cloud/storage/file/exists/index.d.ts +7 -7
- package/node/@google-cloud/storage/file/exists/index.js +6 -6
- package/node/@google-cloud/storage/file/generate-signed-url/index.d.ts +7 -7
- package/node/@google-cloud/storage/file/generate-signed-url/index.js +6 -6
- package/node/@google-cloud/storage/file/get-metadata/index.d.ts +5 -5
- package/node/@google-cloud/storage/file/get-metadata/index.js +4 -4
- package/node/@google-cloud/storage/file/get-permissions/index.d.ts +6 -6
- package/node/@google-cloud/storage/file/get-permissions/index.js +4 -4
- package/node/@google-cloud/storage/file/index.d.ts +1 -1
- package/node/@google-cloud/storage/file/index.js +1 -1
- package/node/@google-cloud/storage/file/move/index.d.ts +10 -10
- package/node/@google-cloud/storage/file/move/index.js +9 -9
- package/node/@google-cloud/storage/file/remove/index.d.ts +5 -5
- package/node/@google-cloud/storage/file/remove/index.js +4 -4
- package/node/@google-cloud/storage/file/revoke-signed-urls/index.d.ts +5 -5
- package/node/@google-cloud/storage/file/revoke-signed-urls/index.js +5 -5
- package/node/@google-cloud/storage/file/stat/index.d.ts +5 -5
- package/node/@google-cloud/storage/file/stat/index.js +4 -4
- package/node/@google-cloud/storage/file/update-metadata/index.d.ts +7 -7
- package/node/@google-cloud/storage/file/update-metadata/index.js +5 -5
- package/node/@google-cloud/storage/file/upload/index.d.ts +7 -7
- package/node/@google-cloud/storage/file/upload/index.js +5 -5
- package/node/@google-cloud/storage/index.d.ts +1 -1
- package/node/@google-cloud/storage/index.js +1 -1
- package/node/cloud-storage/clients/index.d.ts +8 -8
- package/node/cloud-storage/clients/index.js +8 -8
- package/node/cloud-storage/operations/copy-dir/index.d.ts +22 -22
- package/node/cloud-storage/operations/copy-dir/index.js +5 -5
- package/node/cloud-storage/operations/copy-file/index.d.ts +22 -22
- package/node/cloud-storage/operations/copy-file/index.js +5 -5
- package/node/cloud-storage/operations/download-file/index.d.ts +19 -19
- package/node/cloud-storage/operations/download-file/index.js +6 -6
- package/node/cloud-storage/operations/exists-file/index.d.ts +15 -26
- package/node/cloud-storage/operations/exists-file/index.js +4 -4
- package/node/cloud-storage/operations/index.d.ts +1 -1
- package/node/cloud-storage/operations/index.js +1 -1
- package/node/cloud-storage/operations/list-dir/index.d.ts +15 -25
- package/node/cloud-storage/operations/list-dir/index.js +4 -4
- package/node/cloud-storage/operations/move-dir/index.d.ts +22 -22
- package/node/cloud-storage/operations/move-dir/index.js +5 -5
- package/node/cloud-storage/operations/move-file/index.d.ts +22 -22
- package/node/cloud-storage/operations/move-file/index.js +5 -5
- package/node/cloud-storage/operations/remove-dir/index.d.ts +18 -18
- package/node/cloud-storage/operations/remove-dir/index.js +4 -4
- package/node/cloud-storage/operations/remove-file/index.d.ts +18 -18
- package/node/cloud-storage/operations/remove-file/index.js +4 -4
- package/node/cloud-storage/operations/stat-file/index.d.ts +16 -16
- package/node/cloud-storage/operations/stat-file/index.js +4 -4
- package/node/cloud-storage/operations/upload-file/index.d.ts +23 -23
- package/node/cloud-storage/operations/upload-file/index.js +5 -5
- package/node/encryption/@aes-256-gcm/buffer/index.d.ts +6 -6
- package/node/encryption/@aes-256-gcm/buffer/index.js +6 -6
- package/node/encryption/@aes-256-gcm/uint8-array/index.d.ts +8 -8
- package/node/encryption/@aes-256-gcm/uint8-array/index.js +8 -8
- package/node/encryption/key/index.d.ts +6 -6
- package/node/encryption/key/index.js +6 -6
- package/node/files/read-write/index.d.ts +16 -16
- package/node/files/subpaths/index.d.ts +8 -8
- package/node/files/subpaths/index.js +11 -13
- package/node/ftps/directory/copy-dir/index.d.ts +6 -6
- package/node/ftps/directory/copy-dir/index.js +6 -6
- package/node/ftps/directory/list/index.d.ts +4 -4
- package/node/ftps/directory/list/index.js +3 -3
- package/node/ftps/directory/move-dir/index.d.ts +6 -6
- package/node/ftps/directory/move-dir/index.js +5 -5
- package/node/ftps/directory/remove-dir/index.d.ts +6 -6
- package/node/ftps/directory/remove-dir/index.js +8 -7
- package/node/ftps/file/copy/index.d.ts +6 -6
- package/node/ftps/file/copy/index.js +5 -5
- package/node/ftps/file/download/index.d.ts +6 -6
- package/node/ftps/file/download/index.js +5 -5
- package/node/ftps/file/exists/index.d.ts +3 -3
- package/node/ftps/file/exists/index.js +3 -3
- package/node/ftps/file/move/index.d.ts +8 -8
- package/node/ftps/file/move/index.js +11 -9
- package/node/ftps/file/remove/index.d.ts +5 -5
- package/node/ftps/file/remove/index.js +4 -4
- package/node/ftps/file/stat/index.d.ts +4 -4
- package/node/ftps/file/stat/index.js +4 -4
- package/node/ftps/file/upload/index.d.ts +7 -7
- package/node/ftps/file/upload/index.js +5 -5
- package/node/images/create/index.d.ts +2 -2
- package/node/images/create/index.js +1 -1
- package/node/images/format/index.d.ts +8 -8
- package/node/images/metadata/index.d.ts +2 -2
- package/node/images/transform/index.d.ts +2 -2
- package/node/images/transform/index.js +12 -2
- package/node/images/transform/operations/blur/index.d.ts +2 -2
- package/node/images/transform/operations/blur/index.js +1 -0
- package/node/images/transform/operations/brighten/index.d.ts +2 -2
- package/node/images/transform/operations/brighten/index.js +1 -0
- package/node/images/transform/operations/extend/index.d.ts +2 -2
- package/node/images/transform/operations/extend/index.js +1 -0
- package/node/images/transform/operations/extract/index.d.ts +2 -2
- package/node/images/transform/operations/extract/index.js +1 -0
- package/node/images/transform/operations/flatten/index.d.ts +2 -2
- package/node/images/transform/operations/flatten/index.js +1 -0
- package/node/images/transform/operations/flip/index.d.ts +2 -2
- package/node/images/transform/operations/flip/index.js +1 -0
- package/node/images/transform/operations/flop/index.d.ts +2 -2
- package/node/images/transform/operations/flop/index.js +1 -0
- package/node/images/transform/operations/hue/index.d.ts +2 -2
- package/node/images/transform/operations/hue/index.js +1 -0
- package/node/images/transform/operations/index.d.ts +1 -1
- package/node/images/transform/operations/index.js +1 -1
- package/node/images/transform/operations/level/index.d.ts +2 -2
- package/node/images/transform/operations/level/index.js +1 -0
- package/node/images/transform/operations/lighten/index.d.ts +2 -2
- package/node/images/transform/operations/lighten/index.js +1 -0
- package/node/images/transform/operations/normalize/index.d.ts +2 -2
- package/node/images/transform/operations/normalize/index.js +1 -0
- package/node/images/transform/operations/overlay/index.d.ts +2 -2
- package/node/images/transform/operations/resize/index.d.ts +2 -2
- package/node/images/transform/operations/resize/index.js +1 -0
- package/node/images/transform/operations/rotate/index.d.ts +2 -2
- package/node/images/transform/operations/rotate/index.js +1 -0
- package/node/images/transform/operations/saturate/index.d.ts +2 -2
- package/node/images/transform/operations/saturate/index.js +1 -0
- package/node/images/types.d.ts +41 -2
- package/node/images/utils/index.d.ts +10 -5
- package/node/index.d.ts +1 -1
- package/node/index.js +1 -1
- package/node/process/on-exit/index.js +2 -4
- package/node/process/prompt-continue/index.d.ts +3 -3
- package/node/process/prompt-continue/index.js +4 -3
- package/node/process/spawner/index.js +7 -6
- package/node/sftp/directory/copy-dir/index.d.ts +6 -6
- package/node/sftp/directory/copy-dir/index.js +6 -6
- package/node/sftp/directory/list/index.d.ts +3 -3
- package/node/sftp/directory/list/index.js +4 -4
- package/node/sftp/directory/move-dir/index.d.ts +7 -7
- package/node/sftp/directory/move-dir/index.js +7 -7
- package/node/sftp/directory/remove-dir/index.d.ts +5 -5
- package/node/sftp/directory/remove-dir/index.js +8 -7
- package/node/sftp/file/copy/index.d.ts +6 -6
- package/node/sftp/file/copy/index.js +5 -5
- package/node/sftp/file/download/index.d.ts +7 -7
- package/node/sftp/file/download/index.js +5 -5
- package/node/sftp/file/exists/index.d.ts +3 -3
- package/node/sftp/file/exists/index.js +3 -3
- package/node/sftp/file/move/index.d.ts +7 -7
- package/node/sftp/file/move/index.js +7 -7
- package/node/sftp/file/remove/index.d.ts +4 -4
- package/node/sftp/file/remove/index.js +4 -4
- package/node/sftp/file/stat/index.d.ts +3 -3
- package/node/sftp/file/stat/index.js +6 -5
- package/node/sftp/file/upload/index.d.ts +6 -6
- package/node/sftp/file/upload/index.js +5 -5
- package/package.json +40 -39
|
@@ -6,11 +6,11 @@ export type ListOptions = Omit<ListObjectsV2CommandInput, 'Bucket' | 'Prefix' |
|
|
|
6
6
|
* Lists all direct‑child object keys under a given directory prefix in an S3
|
|
7
7
|
* bucket (AWS SDK v3). The listing is **non‑recursive**.
|
|
8
8
|
*
|
|
9
|
-
* @param
|
|
10
|
-
* @param
|
|
11
|
-
* @param
|
|
12
|
-
* @param
|
|
13
|
-
* @returns
|
|
9
|
+
* @param client - The v3 S3 client used to list objects.
|
|
10
|
+
* @param bucketName - The name of the S3 bucket.
|
|
11
|
+
* @param directoryPath - The directory prefix to list.
|
|
12
|
+
* @param [options] - Additional parameters for `ListObjectsV2`.
|
|
13
|
+
* @returns
|
|
14
14
|
* - Success: `Outcome.makeSuccess(keys)` where `keys` is an array of object keys.
|
|
15
15
|
* - Failure: `Outcome.makeFailure(errStr)` if the list operation fails.
|
|
16
16
|
*/
|
|
@@ -5,11 +5,11 @@ import { unknownToString } from '../../../../../agnostic/errors/unknown-to-strin
|
|
|
5
5
|
* Lists all direct‑child object keys under a given directory prefix in an S3
|
|
6
6
|
* bucket (AWS SDK v3). The listing is **non‑recursive**.
|
|
7
7
|
*
|
|
8
|
-
* @param
|
|
9
|
-
* @param
|
|
10
|
-
* @param
|
|
11
|
-
* @param
|
|
12
|
-
* @returns
|
|
8
|
+
* @param client - The v3 S3 client used to list objects.
|
|
9
|
+
* @param bucketName - The name of the S3 bucket.
|
|
10
|
+
* @param directoryPath - The directory prefix to list.
|
|
11
|
+
* @param [options] - Additional parameters for `ListObjectsV2`.
|
|
12
|
+
* @returns
|
|
13
13
|
* - Success: `Outcome.makeSuccess(keys)` where `keys` is an array of object keys.
|
|
14
14
|
* - Failure: `Outcome.makeFailure(errStr)` if the list operation fails.
|
|
15
15
|
*/
|
|
@@ -21,12 +21,12 @@ export type MoveDirOptions = {
|
|
|
21
21
|
* Behaviour when `overwrite` is **false** (default): abort if *any* destination
|
|
22
22
|
* key already exists.
|
|
23
23
|
*
|
|
24
|
-
* @param
|
|
25
|
-
* @param
|
|
26
|
-
* @param
|
|
27
|
-
* @param
|
|
28
|
-
* @param
|
|
29
|
-
* @returns
|
|
24
|
+
* @param client - The v3 S3 client instance.
|
|
25
|
+
* @param bucketName - The name of the S3 bucket.
|
|
26
|
+
* @param sourceDir - The source directory prefix to move from.
|
|
27
|
+
* @param targetDir - The target directory prefix to move to.
|
|
28
|
+
* @param [options] - Optional configuration.
|
|
29
|
+
* @returns
|
|
30
30
|
* - On success: `Outcome.makeSuccess(true)`.
|
|
31
31
|
* - On failure: `Outcome.makeFailure(errStr)`.
|
|
32
32
|
*/
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ListObjectsV2Command, CopyObjectCommand, DeleteObjectCommand, HeadObjectCommand } from '@aws-sdk/client-s3';
|
|
2
2
|
import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
|
|
3
3
|
import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
|
|
4
|
+
import { deepGetProperty } from '../../../../../agnostic/objects/deep-get-property/index.js';
|
|
4
5
|
/**
|
|
5
6
|
* Recursively moves every object under `sourceDir` to the corresponding path
|
|
6
7
|
* under `targetDir` within the same S3 bucket (AWS SDK v3).
|
|
@@ -8,12 +9,12 @@ import { unknownToString } from '../../../../../agnostic/errors/unknown-to-strin
|
|
|
8
9
|
* Behaviour when `overwrite` is **false** (default): abort if *any* destination
|
|
9
10
|
* key already exists.
|
|
10
11
|
*
|
|
11
|
-
* @param
|
|
12
|
-
* @param
|
|
13
|
-
* @param
|
|
14
|
-
* @param
|
|
15
|
-
* @param
|
|
16
|
-
* @returns
|
|
12
|
+
* @param client - The v3 S3 client instance.
|
|
13
|
+
* @param bucketName - The name of the S3 bucket.
|
|
14
|
+
* @param sourceDir - The source directory prefix to move from.
|
|
15
|
+
* @param targetDir - The target directory prefix to move to.
|
|
16
|
+
* @param [options] - Optional configuration.
|
|
17
|
+
* @returns
|
|
17
18
|
* - On success: `Outcome.makeSuccess(true)`.
|
|
18
19
|
* - On failure: `Outcome.makeFailure(errStr)`.
|
|
19
20
|
*/
|
|
@@ -41,7 +42,10 @@ export async function moveDir(client, bucketName, sourceDir, targetDir, options)
|
|
|
41
42
|
throw new Error(`Object already exists at ${dest}.`);
|
|
42
43
|
}
|
|
43
44
|
catch (err) {
|
|
44
|
-
|
|
45
|
+
const name = deepGetProperty(err, 'name');
|
|
46
|
+
const httpStatusCode = deepGetProperty(err, '$metadata.httpStatusCode');
|
|
47
|
+
// eslint-disable-next-line max-depth
|
|
48
|
+
if (httpStatusCode !== 404 && name !== 'NotFound')
|
|
45
49
|
throw err;
|
|
46
50
|
}
|
|
47
51
|
}
|
|
@@ -18,11 +18,11 @@ export type RemoveDirOptions = {
|
|
|
18
18
|
* using the AWS SDK v3 client. Handles pagination and the 1 000‑key limit of
|
|
19
19
|
* `DeleteObjects`.
|
|
20
20
|
*
|
|
21
|
-
* @param
|
|
22
|
-
* @param
|
|
23
|
-
* @param
|
|
24
|
-
* @param
|
|
25
|
-
* @returns
|
|
21
|
+
* @param client - The v3 S3 client instance.
|
|
22
|
+
* @param bucketName - The name of the S3 bucket.
|
|
23
|
+
* @param directoryPath - The “directory” prefix to delete.
|
|
24
|
+
* @param [options] - Optional listing/deletion configuration.
|
|
25
|
+
* @returns
|
|
26
26
|
* - On success: `Outcome.makeSuccess(true)` – deletion succeeded, or prefix
|
|
27
27
|
* absent and `ignoreMissing` is true.
|
|
28
28
|
* - On failure: `Outcome.makeFailure(errStr)` if deletion fails, or prefix
|
|
@@ -6,11 +6,11 @@ import { unknownToString } from '../../../../../agnostic/errors/unknown-to-strin
|
|
|
6
6
|
* using the AWS SDK v3 client. Handles pagination and the 1 000‑key limit of
|
|
7
7
|
* `DeleteObjects`.
|
|
8
8
|
*
|
|
9
|
-
* @param
|
|
10
|
-
* @param
|
|
11
|
-
* @param
|
|
12
|
-
* @param
|
|
13
|
-
* @returns
|
|
9
|
+
* @param client - The v3 S3 client instance.
|
|
10
|
+
* @param bucketName - The name of the S3 bucket.
|
|
11
|
+
* @param directoryPath - The “directory” prefix to delete.
|
|
12
|
+
* @param [options] - Optional listing/deletion configuration.
|
|
13
|
+
* @returns
|
|
14
14
|
* - On success: `Outcome.makeSuccess(true)` – deletion succeeded, or prefix
|
|
15
15
|
* absent and `ignoreMissing` is true.
|
|
16
16
|
* - On failure: `Outcome.makeFailure(errStr)` if deletion fails, or prefix
|
|
@@ -16,14 +16,14 @@ export type CopyOptions = {
|
|
|
16
16
|
/**
|
|
17
17
|
* Copies an object from one key to another within the same S3 bucket.
|
|
18
18
|
*
|
|
19
|
-
* @param
|
|
20
|
-
* @param
|
|
21
|
-
* @param
|
|
22
|
-
* @param
|
|
23
|
-
* @param
|
|
24
|
-
* @param
|
|
25
|
-
* @param
|
|
26
|
-
* @returns
|
|
19
|
+
* @param client - The v3 S3 client instance.
|
|
20
|
+
* @param bucketName - The name of the S3 bucket.
|
|
21
|
+
* @param sourcePath - The key of the source object.
|
|
22
|
+
* @param targetPath - The key where the object will be copied.
|
|
23
|
+
* @param [options] - Optional copy configuration.
|
|
24
|
+
* @param [options.copyOptions] - Extra copy params.
|
|
25
|
+
* @param [options.overwrite=false] - Whether to overwrite an existing object.
|
|
26
|
+
* @returns
|
|
27
27
|
* - On success: `Outcome.makeSuccess(true)`.
|
|
28
28
|
* - On failure: `Outcome.makeFailure(errStr)`.
|
|
29
29
|
*/
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import { CopyObjectCommand, HeadObjectCommand } from '@aws-sdk/client-s3';
|
|
2
2
|
import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
|
|
3
3
|
import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
|
|
4
|
+
import { deepGetProperty } from '../../../../../agnostic/objects/deep-get-property/index.js';
|
|
4
5
|
/**
|
|
5
6
|
* Copies an object from one key to another within the same S3 bucket.
|
|
6
7
|
*
|
|
7
|
-
* @param
|
|
8
|
-
* @param
|
|
9
|
-
* @param
|
|
10
|
-
* @param
|
|
11
|
-
* @param
|
|
12
|
-
* @param
|
|
13
|
-
* @param
|
|
14
|
-
* @returns
|
|
8
|
+
* @param client - The v3 S3 client instance.
|
|
9
|
+
* @param bucketName - The name of the S3 bucket.
|
|
10
|
+
* @param sourcePath - The key of the source object.
|
|
11
|
+
* @param targetPath - The key where the object will be copied.
|
|
12
|
+
* @param [options] - Optional copy configuration.
|
|
13
|
+
* @param [options.copyOptions] - Extra copy params.
|
|
14
|
+
* @param [options.overwrite=false] - Whether to overwrite an existing object.
|
|
15
|
+
* @returns
|
|
15
16
|
* - On success: `Outcome.makeSuccess(true)`.
|
|
16
17
|
* - On failure: `Outcome.makeFailure(errStr)`.
|
|
17
18
|
*/
|
|
@@ -24,7 +25,9 @@ export async function copy(client, bucketName, sourcePath, targetPath, options)
|
|
|
24
25
|
return Outcome.makeFailure(`Object already exists at ${targetPath}.`);
|
|
25
26
|
}
|
|
26
27
|
catch (err) {
|
|
27
|
-
const
|
|
28
|
+
const name = deepGetProperty(err, 'name');
|
|
29
|
+
const httpStatusCode = deepGetProperty(err, '$metadata.httpStatusCode');
|
|
30
|
+
const notFound = httpStatusCode === 404 || name === 'NotFound';
|
|
28
31
|
if (!notFound)
|
|
29
32
|
throw err; // propagate unexpected errors
|
|
30
33
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Readable } from 'node:stream';
|
|
2
2
|
import { type S3Client, type GetObjectCommandInput } from '@aws-sdk/client-s3';
|
|
3
3
|
import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
|
|
4
4
|
/**
|
|
@@ -11,11 +11,11 @@ export type DownloadOptions = Omit<GetObjectCommandInput, 'Bucket' | 'Key'>;
|
|
|
11
11
|
*
|
|
12
12
|
* The function streams the object’s content back as a Node `Readable`.
|
|
13
13
|
*
|
|
14
|
-
* @param
|
|
15
|
-
* @param
|
|
16
|
-
* @param
|
|
17
|
-
* @param
|
|
18
|
-
* @returns
|
|
14
|
+
* @param client - The v3 S3 client instance.
|
|
15
|
+
* @param bucketName - The name of the S3 bucket.
|
|
16
|
+
* @param sourcePath - The key of the object to download.
|
|
17
|
+
* @param [options] - Extra parameters for the download.
|
|
18
|
+
* @returns
|
|
19
19
|
* - On success: `Outcome.makeSuccess(stream)` containing the file content.
|
|
20
20
|
* - On failure: `Outcome.makeFailure(errStr)`.
|
|
21
21
|
*/
|
|
@@ -6,11 +6,11 @@ import { unknownToString } from '../../../../../agnostic/errors/unknown-to-strin
|
|
|
6
6
|
*
|
|
7
7
|
* The function streams the object’s content back as a Node `Readable`.
|
|
8
8
|
*
|
|
9
|
-
* @param
|
|
10
|
-
* @param
|
|
11
|
-
* @param
|
|
12
|
-
* @param
|
|
13
|
-
* @returns
|
|
9
|
+
* @param client - The v3 S3 client instance.
|
|
10
|
+
* @param bucketName - The name of the S3 bucket.
|
|
11
|
+
* @param sourcePath - The key of the object to download.
|
|
12
|
+
* @param [options] - Extra parameters for the download.
|
|
13
|
+
* @returns
|
|
14
14
|
* - On success: `Outcome.makeSuccess(stream)` containing the file content.
|
|
15
15
|
* - On failure: `Outcome.makeFailure(errStr)`.
|
|
16
16
|
*/
|
|
@@ -21,6 +21,7 @@ export async function download(client, bucketName, sourcePath, options) {
|
|
|
21
21
|
Key: sourcePath,
|
|
22
22
|
...options
|
|
23
23
|
}));
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- GetObjectCommand's response.Body is always a Readable stream in Node.js
|
|
24
25
|
const stream = response.Body;
|
|
25
26
|
return Outcome.makeSuccess(stream);
|
|
26
27
|
}
|
|
@@ -10,12 +10,12 @@ export type ExistsOptions = {
|
|
|
10
10
|
/**
|
|
11
11
|
* Checks whether an object exists in a specified S3 bucket (AWS SDK v3).
|
|
12
12
|
*
|
|
13
|
-
* @param
|
|
14
|
-
* @param
|
|
15
|
-
* @param
|
|
16
|
-
* @param
|
|
17
|
-
* @param
|
|
18
|
-
* @returns
|
|
13
|
+
* @param client - The v3 S3 client instance.
|
|
14
|
+
* @param bucketName - The name of the S3 bucket.
|
|
15
|
+
* @param sourcePath - The key of the object to test.
|
|
16
|
+
* @param [options] - Optional configuration.
|
|
17
|
+
* @param [options.headObjectOptions] - Extra `HeadObject` params.
|
|
18
|
+
* @returns
|
|
19
19
|
* - Success: `Outcome.makeSuccess(true)` if the object exists,
|
|
20
20
|
* `Outcome.makeSuccess(false)` if it does not.
|
|
21
21
|
* - Failure: `Outcome.makeFailure(errStr)` for unexpected errors.
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { HeadObjectCommand } from '@aws-sdk/client-s3';
|
|
2
2
|
import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
|
|
3
3
|
import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
|
|
4
|
+
import { deepGetProperty } from '../../../../../agnostic/objects/deep-get-property/index.js';
|
|
4
5
|
/**
|
|
5
6
|
* Checks whether an object exists in a specified S3 bucket (AWS SDK v3).
|
|
6
7
|
*
|
|
7
|
-
* @param
|
|
8
|
-
* @param
|
|
9
|
-
* @param
|
|
10
|
-
* @param
|
|
11
|
-
* @param
|
|
12
|
-
* @returns
|
|
8
|
+
* @param client - The v3 S3 client instance.
|
|
9
|
+
* @param bucketName - The name of the S3 bucket.
|
|
10
|
+
* @param sourcePath - The key of the object to test.
|
|
11
|
+
* @param [options] - Optional configuration.
|
|
12
|
+
* @param [options.headObjectOptions] - Extra `HeadObject` params.
|
|
13
|
+
* @returns
|
|
13
14
|
* - Success: `Outcome.makeSuccess(true)` if the object exists,
|
|
14
15
|
* `Outcome.makeSuccess(false)` if it does not.
|
|
15
16
|
* - Failure: `Outcome.makeFailure(errStr)` for unexpected errors.
|
|
@@ -25,13 +26,15 @@ export async function exists(client, bucketName, sourcePath, options) {
|
|
|
25
26
|
return Outcome.makeSuccess(true);
|
|
26
27
|
}
|
|
27
28
|
catch (err) {
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
const name = deepGetProperty(err, 'name');
|
|
30
|
+
const Code = deepGetProperty(err, 'Code');
|
|
31
|
+
const httpStatusCode = deepGetProperty(err, '$metadata.httpStatusCode');
|
|
32
|
+
const notFound = httpStatusCode === 404
|
|
33
|
+
|| name === 'NotFound'
|
|
34
|
+
|| Code === 'NotFound' // some SDKs emit Code
|
|
35
|
+
|| Code === 'NoSuchKey';
|
|
36
|
+
if (notFound)
|
|
33
37
|
return Outcome.makeSuccess(false);
|
|
34
|
-
}
|
|
35
38
|
return Outcome.makeFailure(unknownToString(err));
|
|
36
39
|
}
|
|
37
40
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * as copy from './copy/index.js'
|
|
2
|
-
export * as exists from './exists/index.js'
|
|
3
2
|
export * as download from './download/index.js'
|
|
3
|
+
export * as exists from './exists/index.js'
|
|
4
4
|
export * as move from './move/index.js'
|
|
5
5
|
export * as remove from './remove/index.js'
|
|
6
6
|
export * as stat from './stat/index.js'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export * as copy from './copy/index.js'
|
|
2
|
-
export * as exists from './exists/index.js'
|
|
3
2
|
export * as download from './download/index.js'
|
|
3
|
+
export * as exists from './exists/index.js'
|
|
4
4
|
export * as move from './move/index.js'
|
|
5
5
|
export * as remove from './remove/index.js'
|
|
6
6
|
export * as stat from './stat/index.js'
|
|
@@ -18,15 +18,15 @@ export type MoveOptions = {
|
|
|
18
18
|
* The function copies the object from `sourcePath` to `targetPath` and, upon
|
|
19
19
|
* successful copy, deletes the original object.
|
|
20
20
|
*
|
|
21
|
-
* @param
|
|
22
|
-
* @param
|
|
23
|
-
* @param
|
|
24
|
-
* @param
|
|
25
|
-
* @param
|
|
26
|
-
* @param
|
|
27
|
-
* @param
|
|
28
|
-
* @param
|
|
29
|
-
* @returns
|
|
21
|
+
* @param client - The S3 client instance.
|
|
22
|
+
* @param bucketName - The name of the bucket.
|
|
23
|
+
* @param sourcePath - The source object's key.
|
|
24
|
+
* @param targetPath - The destination object's key.
|
|
25
|
+
* @param [options] - Optional copy/delete behaviour.
|
|
26
|
+
* @param [options.copyOptions] - Extra copy params.
|
|
27
|
+
* @param [options.deleteOptions] - Extra delete params.
|
|
28
|
+
* @param [options.overwrite=false] - Whether to overwrite an existing `targetPath`.
|
|
29
|
+
* @returns
|
|
30
30
|
* - Success: `Outcome.makeSuccess(true)`
|
|
31
31
|
* - Failure: `Outcome.makeFailure(errStr)`
|
|
32
32
|
*/
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { HeadObjectCommand, CopyObjectCommand, DeleteObjectCommand } from '@aws-sdk/client-s3';
|
|
2
2
|
import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
|
|
3
3
|
import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
|
|
4
|
+
import { deepGetProperty } from '../../../../../agnostic/objects/deep-get-property/index.js';
|
|
4
5
|
/**
|
|
5
6
|
* Moves an object from one key to another within the same S3 bucket (AWS SDK v3).
|
|
6
7
|
*
|
|
7
8
|
* The function copies the object from `sourcePath` to `targetPath` and, upon
|
|
8
9
|
* successful copy, deletes the original object.
|
|
9
10
|
*
|
|
10
|
-
* @param
|
|
11
|
-
* @param
|
|
12
|
-
* @param
|
|
13
|
-
* @param
|
|
14
|
-
* @param
|
|
15
|
-
* @param
|
|
16
|
-
* @param
|
|
17
|
-
* @param
|
|
18
|
-
* @returns
|
|
11
|
+
* @param client - The S3 client instance.
|
|
12
|
+
* @param bucketName - The name of the bucket.
|
|
13
|
+
* @param sourcePath - The source object's key.
|
|
14
|
+
* @param targetPath - The destination object's key.
|
|
15
|
+
* @param [options] - Optional copy/delete behaviour.
|
|
16
|
+
* @param [options.copyOptions] - Extra copy params.
|
|
17
|
+
* @param [options.deleteOptions] - Extra delete params.
|
|
18
|
+
* @param [options.overwrite=false] - Whether to overwrite an existing `targetPath`.
|
|
19
|
+
* @returns
|
|
19
20
|
* - Success: `Outcome.makeSuccess(true)`
|
|
20
21
|
* - Failure: `Outcome.makeFailure(errStr)`
|
|
21
22
|
*/
|
|
@@ -29,13 +30,15 @@ export async function move(client, bucketName, sourcePath, targetPath, options)
|
|
|
29
30
|
return Outcome.makeFailure(`Object already exists at ${targetPath}.`);
|
|
30
31
|
}
|
|
31
32
|
catch (err) {
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
33
|
+
const name = deepGetProperty(err, 'name');
|
|
34
|
+
const Code = deepGetProperty(err, 'Code');
|
|
35
|
+
const httpStatusCode = deepGetProperty(err, '$metadata.httpStatusCode');
|
|
36
|
+
const notFound = httpStatusCode === 404
|
|
37
|
+
|| name === 'NotFound'
|
|
38
|
+
|| Code === 'NotFound'
|
|
39
|
+
|| Code === 'NoSuchKey';
|
|
40
|
+
if (!notFound)
|
|
37
41
|
return Outcome.makeFailure(unknownToString(err));
|
|
38
|
-
}
|
|
39
42
|
// If not found, proceed with copy
|
|
40
43
|
}
|
|
41
44
|
}
|
|
@@ -8,10 +8,10 @@ export type RemoveOptions = {
|
|
|
8
8
|
*
|
|
9
9
|
* If `ignoreMissing` is true (default), a missing object is considered success.
|
|
10
10
|
*
|
|
11
|
-
* @param
|
|
12
|
-
* @param
|
|
13
|
-
* @param
|
|
14
|
-
* @param
|
|
15
|
-
* @returns
|
|
11
|
+
* @param s3 - The AWS S3 client instance.
|
|
12
|
+
* @param bucketName - The name of the bucket.
|
|
13
|
+
* @param targetPath - The key of the object to delete.
|
|
14
|
+
* @param [options] - Optional settings.
|
|
15
|
+
* @returns
|
|
16
16
|
*/
|
|
17
17
|
export declare function remove(s3: S3Client, bucketName: string, targetPath: string, options?: RemoveOptions): Promise<Outcome.Either<true, string>>;
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import { HeadObjectCommand, DeleteObjectCommand } from '@aws-sdk/client-s3';
|
|
2
2
|
import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
|
|
3
3
|
import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
|
|
4
|
+
import { deepGetProperty } from '../../../../../agnostic/objects/deep-get-property/index.js';
|
|
4
5
|
/**
|
|
5
6
|
* Removes a file from a specified Amazon S3 bucket (AWS SDK v3).
|
|
6
7
|
*
|
|
7
8
|
* If `ignoreMissing` is true (default), a missing object is considered success.
|
|
8
9
|
*
|
|
9
|
-
* @param
|
|
10
|
-
* @param
|
|
11
|
-
* @param
|
|
12
|
-
* @param
|
|
13
|
-
* @returns
|
|
10
|
+
* @param s3 - The AWS S3 client instance.
|
|
11
|
+
* @param bucketName - The name of the bucket.
|
|
12
|
+
* @param targetPath - The key of the object to delete.
|
|
13
|
+
* @param [options] - Optional settings.
|
|
14
|
+
* @returns
|
|
14
15
|
*/
|
|
15
16
|
export async function remove(s3, bucketName, targetPath, options) {
|
|
16
17
|
const { ignoreMissing = true } = options ?? {};
|
|
@@ -20,12 +21,16 @@ export async function remove(s3, bucketName, targetPath, options) {
|
|
|
20
21
|
await s3.send(new HeadObjectCommand({ Bucket: bucketName, Key: targetPath }));
|
|
21
22
|
}
|
|
22
23
|
catch (err) {
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
const name = deepGetProperty(err, 'name');
|
|
25
|
+
const Code = deepGetProperty(err, 'Code');
|
|
26
|
+
const _code = deepGetProperty(err, 'code');
|
|
27
|
+
const code = name ?? Code ?? _code;
|
|
28
|
+
if (code === 'NotFound'
|
|
29
|
+
|| code === 'NoSuchKey'
|
|
30
|
+
|| code === 'NotFoundException')
|
|
31
|
+
return ignoreMissing
|
|
32
|
+
? Outcome.makeSuccess(true)
|
|
33
|
+
: Outcome.makeFailure(`File not found at ${targetPath}.`);
|
|
29
34
|
return Outcome.makeFailure(unknownToString(err));
|
|
30
35
|
}
|
|
31
36
|
// Delete the object
|
|
@@ -15,10 +15,10 @@ export type StatOptions = {
|
|
|
15
15
|
/**
|
|
16
16
|
* Retrieves metadata for a single S3 object.
|
|
17
17
|
*
|
|
18
|
-
* @param
|
|
19
|
-
* @param
|
|
20
|
-
* @param
|
|
21
|
-
* @param
|
|
22
|
-
* @returns
|
|
18
|
+
* @param client – v3 S3 client.
|
|
19
|
+
* @param bucket – Bucket name.
|
|
20
|
+
* @param key – Object key.
|
|
21
|
+
* @param [options] – Extra HeadObject params.
|
|
22
|
+
* @returns
|
|
23
23
|
*/
|
|
24
24
|
export declare function stat(client: S3Client, bucket: string, key: string, options?: StatOptions): Promise<Outcome.Either<Stat, string>>;
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { HeadObjectCommand } from '@aws-sdk/client-s3';
|
|
2
2
|
import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
|
|
3
3
|
import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
|
|
4
|
+
import { deepGetProperty } from '../../../../../agnostic/objects/deep-get-property/index.js';
|
|
4
5
|
/**
|
|
5
6
|
* Retrieves metadata for a single S3 object.
|
|
6
7
|
*
|
|
7
|
-
* @param
|
|
8
|
-
* @param
|
|
9
|
-
* @param
|
|
10
|
-
* @param
|
|
11
|
-
* @returns
|
|
8
|
+
* @param client – v3 S3 client.
|
|
9
|
+
* @param bucket – Bucket name.
|
|
10
|
+
* @param key – Object key.
|
|
11
|
+
* @param [options] – Extra HeadObject params.
|
|
12
|
+
* @returns
|
|
12
13
|
*/
|
|
13
14
|
export async function stat(client, bucket, key, options) {
|
|
14
15
|
const { headObjectOptions } = options ?? {};
|
|
@@ -17,7 +18,7 @@ export async function stat(client, bucket, key, options) {
|
|
|
17
18
|
const stat = {
|
|
18
19
|
size: res.ContentLength,
|
|
19
20
|
modifiedAt: res.LastModified,
|
|
20
|
-
checksum: res.ETag?.replace(/"/
|
|
21
|
+
checksum: res.ETag?.replace(/"/gv, ''),
|
|
21
22
|
contentType: res.ContentType,
|
|
22
23
|
metadata: res.Metadata,
|
|
23
24
|
storageClass: res.StorageClass,
|
|
@@ -26,7 +27,9 @@ export async function stat(client, bucket, key, options) {
|
|
|
26
27
|
return Outcome.makeSuccess(stat);
|
|
27
28
|
}
|
|
28
29
|
catch (err) {
|
|
29
|
-
const
|
|
30
|
+
const name = deepGetProperty(err, 'name');
|
|
31
|
+
const httpStatusCode = deepGetProperty(err, '$metadata.httpStatusCode');
|
|
32
|
+
const notFound = httpStatusCode === 404 || name === 'NotFound';
|
|
30
33
|
if (notFound)
|
|
31
34
|
return Outcome.makeFailure(`Object not found: ${key}`);
|
|
32
35
|
return Outcome.makeFailure(unknownToString(err));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Readable } from 'node:stream';
|
|
2
2
|
import { type S3Client, type PutObjectCommandInput } from '@aws-sdk/client-s3';
|
|
3
3
|
import { Upload } from '@aws-sdk/lib-storage';
|
|
4
4
|
import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
|
|
@@ -12,11 +12,11 @@ export type UploadOptions = {
|
|
|
12
12
|
*
|
|
13
13
|
* If `overwrite` is false and the target file exists, upload is aborted.
|
|
14
14
|
*
|
|
15
|
-
* @param
|
|
16
|
-
* @param
|
|
17
|
-
* @param
|
|
18
|
-
* @param
|
|
19
|
-
* @param
|
|
20
|
-
* @returns
|
|
15
|
+
* @param s3 - The AWS S3 v3 client instance.
|
|
16
|
+
* @param bucketName - The S3 bucket name.
|
|
17
|
+
* @param targetPath - The key to upload the file to.
|
|
18
|
+
* @param fileStream - The file content as a stream.
|
|
19
|
+
* @param [options] - Optional configuration.
|
|
20
|
+
* @returns
|
|
21
21
|
*/
|
|
22
22
|
export declare function upload(s3: S3Client, bucketName: string, targetPath: string, fileStream: Readable, options?: UploadOptions): Promise<Outcome.Either<true, string>>;
|
|
@@ -2,17 +2,18 @@ import { HeadObjectCommand } from '@aws-sdk/client-s3';
|
|
|
2
2
|
import { Upload } from '@aws-sdk/lib-storage';
|
|
3
3
|
import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
|
|
4
4
|
import { unknownToString } from '../../../../../agnostic/errors/unknown-to-string/index.js';
|
|
5
|
+
import { deepGetProperty } from '../../../../../agnostic/objects/deep-get-property/index.js';
|
|
5
6
|
/**
|
|
6
7
|
* Uploads a file stream to a specified Amazon S3 bucket using AWS SDK v3.
|
|
7
8
|
*
|
|
8
9
|
* If `overwrite` is false and the target file exists, upload is aborted.
|
|
9
10
|
*
|
|
10
|
-
* @param
|
|
11
|
-
* @param
|
|
12
|
-
* @param
|
|
13
|
-
* @param
|
|
14
|
-
* @param
|
|
15
|
-
* @returns
|
|
11
|
+
* @param s3 - The AWS S3 v3 client instance.
|
|
12
|
+
* @param bucketName - The S3 bucket name.
|
|
13
|
+
* @param targetPath - The key to upload the file to.
|
|
14
|
+
* @param fileStream - The file content as a stream.
|
|
15
|
+
* @param [options] - Optional configuration.
|
|
16
|
+
* @returns
|
|
16
17
|
*/
|
|
17
18
|
export async function upload(s3, bucketName, targetPath, fileStream, options) {
|
|
18
19
|
const { uploadSettings, fileMetadata, overwrite = false } = options ?? {};
|
|
@@ -27,10 +28,11 @@ export async function upload(s3, bucketName, targetPath, fileStream, options) {
|
|
|
27
28
|
return Outcome.makeFailure(`File already exists at ${targetPath}.`);
|
|
28
29
|
}
|
|
29
30
|
catch (err) {
|
|
30
|
-
const
|
|
31
|
-
|
|
31
|
+
const name = deepGetProperty(err, 'name');
|
|
32
|
+
const httpStatusCode = deepGetProperty(err, '$metadata.httpStatusCode');
|
|
33
|
+
const code = name ?? httpStatusCode;
|
|
34
|
+
if (code !== 'NotFound' && code !== 404)
|
|
32
35
|
return Outcome.makeFailure(unknownToString(err));
|
|
33
|
-
}
|
|
34
36
|
// Object not found, proceed with upload
|
|
35
37
|
}
|
|
36
38
|
}
|