@design-edito/tools 0.4.23 → 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 +3 -3
- package/agnostic/colors/index.js +3 -3
- 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 +6 -6
- package/agnostic/html/hyper-json/smart-tags/coalesced/index.js +6 -6
- 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 +2 -2
- package/agnostic/html/hyper-json/smart-tags/isolated/index.js +2 -2
- 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 +4 -4
- package/agnostic/html/index.js +4 -4
- 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 +2 -2
- package/agnostic/misc/index.js +2 -2
- 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 +2 -2
- package/agnostic/objects/index.js +2 -2
- 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/index.d.ts +1 -1
- package/agnostic/sanitization/index.js +1 -1
- 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 +1 -1
- 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.js +3 -0
- package/components/Image/index.js +2 -0
- package/components/Input/index.controlled.js +3 -2
- 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.js +3 -2
- 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.js +3 -2
- 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 +2 -2
- package/components/index.js +2 -2
- 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/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/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/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/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 +2 -2
- package/node/images/transform/operations/index.js +2 -2
- 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/process/index.d.ts +1 -1
- package/node/process/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/index.d.ts +1 -1
- package/node/sftp/file/index.js +1 -1
- 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
|
@@ -5,11 +5,11 @@ import { unknownToString } from '../../../../agnostic/errors/unknown-to-string/i
|
|
|
5
5
|
* Recursively copies every file under `sourceDir` to the same relative path
|
|
6
6
|
* beneath `targetDir` on an FTP server, streaming data to avoid buffering.
|
|
7
7
|
*
|
|
8
|
-
* @param
|
|
9
|
-
* @param
|
|
10
|
-
* @param
|
|
11
|
-
* @param
|
|
12
|
-
* @returns
|
|
8
|
+
* @param ftpClient - The FTP client instance.
|
|
9
|
+
* @param sourceDir - The source directory path to copy from.
|
|
10
|
+
* @param targetDir - The target directory path to copy to.
|
|
11
|
+
* @param [options] - Optional parameters for the operation.
|
|
12
|
+
* @returns
|
|
13
13
|
* - Success: `Outcome.makeSuccess(true)` if the copy succeeds.
|
|
14
14
|
* - Failure: `Outcome.makeFailure(errStr)` if an error occurs.
|
|
15
15
|
*/
|
|
@@ -18,7 +18,7 @@ export async function copyDir(ftpClient, sourceDir, targetDir, options) {
|
|
|
18
18
|
async function recurse(dir) {
|
|
19
19
|
const list = await ftpClient.list(dir);
|
|
20
20
|
for (const entry of list) {
|
|
21
|
-
const src = dir.endsWith('/') ? dir
|
|
21
|
+
const src = dir.endsWith('/') ? `${dir}${entry.name}` : `${dir}/${entry.name}`;
|
|
22
22
|
const rel = src.substring(sourceDir.length + (sourceDir.endsWith('/') ? 0 : 1));
|
|
23
23
|
const dst = targetDir.endsWith('/') ? targetDir + rel : `${targetDir}/${rel}`;
|
|
24
24
|
if (entry.isDirectory) {
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Client } from 'basic-ftp';
|
|
2
2
|
import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
|
|
3
3
|
/**
|
|
4
4
|
* Lists all direct children files under a given directory on an FTP server.
|
|
5
5
|
*
|
|
6
6
|
* This function returns only the immediate files (not recursive) under the specified directory.
|
|
7
7
|
*
|
|
8
|
-
* @param
|
|
9
|
-
* @param
|
|
10
|
-
* @returns
|
|
8
|
+
* @param ftpClient - The basic-ftp client instance used to interact with the FTP server.
|
|
9
|
+
* @param directoryPath - The directory path to list files under.
|
|
10
|
+
* @returns Returns either a success with an array of file paths, or a failure with an error message.
|
|
11
11
|
*/
|
|
12
12
|
export declare function list(ftpClient: Client, directoryPath: string): Promise<Outcome.Either<string[], string>>;
|
|
@@ -5,9 +5,9 @@ import { unknownToString } from '../../../../agnostic/errors/unknown-to-string/i
|
|
|
5
5
|
*
|
|
6
6
|
* This function returns only the immediate files (not recursive) under the specified directory.
|
|
7
7
|
*
|
|
8
|
-
* @param
|
|
9
|
-
* @param
|
|
10
|
-
* @returns
|
|
8
|
+
* @param ftpClient - The basic-ftp client instance used to interact with the FTP server.
|
|
9
|
+
* @param directoryPath - The directory path to list files under.
|
|
10
|
+
* @returns Returns either a success with an array of file paths, or a failure with an error message.
|
|
11
11
|
*/
|
|
12
12
|
export async function list(ftpClient, directoryPath) {
|
|
13
13
|
try {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Client } from 'basic-ftp';
|
|
2
2
|
import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
|
|
3
3
|
export type MoveDirOptions = {
|
|
4
4
|
/** If false and `targetDir` exists, the operation is aborted. Defaults to false. */
|
|
@@ -15,11 +15,11 @@ export type MoveDirOptions = {
|
|
|
15
15
|
* If `ensureDir` is true (default), the parent directory of `targetDir` is
|
|
16
16
|
* created if it does not exist.
|
|
17
17
|
*
|
|
18
|
-
* @param
|
|
19
|
-
* @param
|
|
20
|
-
* @param
|
|
21
|
-
* @param
|
|
22
|
-
* @returns
|
|
18
|
+
* @param ftpClient - The FTP client instance.
|
|
19
|
+
* @param sourceDir - The source directory path to move from.
|
|
20
|
+
* @param targetDir - The target directory path to move to.
|
|
21
|
+
* @param [options] - Optional parameters for the operation.
|
|
22
|
+
* @returns A promise that resolves to an `Outcome.Either`:
|
|
23
23
|
* - On success: `Outcome.makeSuccess(true)` indicating the move was successful.
|
|
24
24
|
* - On failure: `Outcome.makeFailure(errStr)` with an error message if the move fails.
|
|
25
25
|
*/
|
|
@@ -9,11 +9,11 @@ import { unknownToString } from '../../../../agnostic/errors/unknown-to-string/i
|
|
|
9
9
|
* If `ensureDir` is true (default), the parent directory of `targetDir` is
|
|
10
10
|
* created if it does not exist.
|
|
11
11
|
*
|
|
12
|
-
* @param
|
|
13
|
-
* @param
|
|
14
|
-
* @param
|
|
15
|
-
* @param
|
|
16
|
-
* @returns
|
|
12
|
+
* @param ftpClient - The FTP client instance.
|
|
13
|
+
* @param sourceDir - The source directory path to move from.
|
|
14
|
+
* @param targetDir - The target directory path to move to.
|
|
15
|
+
* @param [options] - Optional parameters for the operation.
|
|
16
|
+
* @returns A promise that resolves to an `Outcome.Either`:
|
|
17
17
|
* - On success: `Outcome.makeSuccess(true)` indicating the move was successful.
|
|
18
18
|
* - On failure: `Outcome.makeFailure(errStr)` with an error message if the move fails.
|
|
19
19
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Client } from 'basic-ftp';
|
|
2
2
|
import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
|
|
3
3
|
export type RemoveDirOptions = {
|
|
4
4
|
/**
|
|
@@ -12,11 +12,11 @@ export type RemoveDirOptions = {
|
|
|
12
12
|
/**
|
|
13
13
|
* Recursively deletes a directory (and all contents) on an FTP server.
|
|
14
14
|
*
|
|
15
|
-
* @param
|
|
16
|
-
* @param
|
|
17
|
-
* @param
|
|
18
|
-
* @param
|
|
19
|
-
* @returns
|
|
15
|
+
* @param ftpClient - The FTP client instance.
|
|
16
|
+
* @param directoryPath - The path of the directory to delete.
|
|
17
|
+
* @param [options] - Optional configuration.
|
|
18
|
+
* @param [options.ignoreMissing=true] - Whether to ignore a missing directory.
|
|
19
|
+
* @returns
|
|
20
20
|
* - On success: `Outcome.makeSuccess(true)` – deletion succeeded, or directory
|
|
21
21
|
* was absent and `ignoreMissing` is true.
|
|
22
22
|
* - On failure: `Outcome.makeFailure(errStr)` if deletion fails, or directory
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
|
|
2
2
|
import { unknownToString } from '../../../../agnostic/errors/unknown-to-string/index.js';
|
|
3
|
+
import { deepGetProperty } from '../../../../agnostic/objects/deep-get-property/index.js';
|
|
3
4
|
/**
|
|
4
5
|
* Recursively deletes a directory (and all contents) on an FTP server.
|
|
5
6
|
*
|
|
6
|
-
* @param
|
|
7
|
-
* @param
|
|
8
|
-
* @param
|
|
9
|
-
* @param
|
|
10
|
-
* @returns
|
|
7
|
+
* @param ftpClient - The FTP client instance.
|
|
8
|
+
* @param directoryPath - The path of the directory to delete.
|
|
9
|
+
* @param [options] - Optional configuration.
|
|
10
|
+
* @param [options.ignoreMissing=true] - Whether to ignore a missing directory.
|
|
11
|
+
* @returns
|
|
11
12
|
* - On success: `Outcome.makeSuccess(true)` – deletion succeeded, or directory
|
|
12
13
|
* was absent and `ignoreMissing` is true.
|
|
13
14
|
* - On failure: `Outcome.makeFailure(errStr)` if deletion fails, or directory
|
|
@@ -33,10 +34,10 @@ export async function removeDir(ftpClient, directoryPath, options) {
|
|
|
33
34
|
return Outcome.makeSuccess(true);
|
|
34
35
|
}
|
|
35
36
|
catch (err) {
|
|
37
|
+
const code = deepGetProperty(err, 'code');
|
|
36
38
|
// 550 (“No such file or directory”) when the path is missing
|
|
37
|
-
if (ignoreMissing &&
|
|
39
|
+
if (ignoreMissing && code === 550)
|
|
38
40
|
return Outcome.makeSuccess(true);
|
|
39
|
-
}
|
|
40
41
|
return Outcome.makeFailure(unknownToString(err));
|
|
41
42
|
}
|
|
42
43
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Client } from 'basic-ftp';
|
|
2
2
|
import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
|
|
3
3
|
export type CopyOptions = {
|
|
4
4
|
/**
|
|
@@ -17,11 +17,11 @@ export type CopyOptions = {
|
|
|
17
17
|
* Copies a file from one path to another on the same FTP server, streaming the
|
|
18
18
|
* data instead of buffering it in memory.
|
|
19
19
|
*
|
|
20
|
-
* @param
|
|
21
|
-
* @param
|
|
22
|
-
* @param
|
|
23
|
-
* @param
|
|
24
|
-
* @returns
|
|
20
|
+
* @param ftpClient - The basic‑ftp client instance.
|
|
21
|
+
* @param sourcePath - The path of the source file.
|
|
22
|
+
* @param targetPath - The destination path.
|
|
23
|
+
* @param [options] - Optional copy configuration.
|
|
24
|
+
* @returns
|
|
25
25
|
* - On success: `Outcome.makeSuccess(true)`.
|
|
26
26
|
* - On failure: `Outcome.makeFailure(errStr)`.
|
|
27
27
|
*/
|
|
@@ -5,11 +5,11 @@ import { unknownToString } from '../../../../agnostic/errors/unknown-to-string/i
|
|
|
5
5
|
* Copies a file from one path to another on the same FTP server, streaming the
|
|
6
6
|
* data instead of buffering it in memory.
|
|
7
7
|
*
|
|
8
|
-
* @param
|
|
9
|
-
* @param
|
|
10
|
-
* @param
|
|
11
|
-
* @param
|
|
12
|
-
* @returns
|
|
8
|
+
* @param ftpClient - The basic‑ftp client instance.
|
|
9
|
+
* @param sourcePath - The path of the source file.
|
|
10
|
+
* @param targetPath - The destination path.
|
|
11
|
+
* @param [options] - Optional copy configuration.
|
|
12
|
+
* @returns
|
|
13
13
|
* - On success: `Outcome.makeSuccess(true)`.
|
|
14
14
|
* - On failure: `Outcome.makeFailure(errStr)`.
|
|
15
15
|
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Readable } from 'node:stream';
|
|
2
|
-
import {
|
|
2
|
+
import type { Client } from 'basic-ftp';
|
|
3
3
|
import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
|
|
4
4
|
export type DownloadOptions = {
|
|
5
5
|
startAt?: number;
|
|
@@ -11,11 +11,11 @@ export type DownloadOptions = {
|
|
|
11
11
|
* returning the file content as a Readable stream. The download process can be customized
|
|
12
12
|
* using optional download options.
|
|
13
13
|
*
|
|
14
|
-
* @param
|
|
15
|
-
* @param
|
|
16
|
-
* @param
|
|
17
|
-
* @param
|
|
18
|
-
* @returns
|
|
14
|
+
* @param ftpClient - The basic-ftp client instance used to interact with the FTP server.
|
|
15
|
+
* @param sourcePath - The path of the file to be downloaded from the FTP server.
|
|
16
|
+
* @param [options] - Optional settings for configuring the download process.
|
|
17
|
+
* @param [options.startAt] - The byte offset at which to start downloading the file.
|
|
18
|
+
* @returns A promise that resolves to an Outcome.Either.
|
|
19
19
|
* - On success: Outcome.makeSuccess(stream) containing the downloaded file's content as a Readable stream.
|
|
20
20
|
* - On failure: Outcome.makeFailure(errStr) with an error message if the download fails.
|
|
21
21
|
*/
|
|
@@ -8,11 +8,11 @@ import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
|
|
|
8
8
|
* returning the file content as a Readable stream. The download process can be customized
|
|
9
9
|
* using optional download options.
|
|
10
10
|
*
|
|
11
|
-
* @param
|
|
12
|
-
* @param
|
|
13
|
-
* @param
|
|
14
|
-
* @param
|
|
15
|
-
* @returns
|
|
11
|
+
* @param ftpClient - The basic-ftp client instance used to interact with the FTP server.
|
|
12
|
+
* @param sourcePath - The path of the file to be downloaded from the FTP server.
|
|
13
|
+
* @param [options] - Optional settings for configuring the download process.
|
|
14
|
+
* @param [options.startAt] - The byte offset at which to start downloading the file.
|
|
15
|
+
* @returns A promise that resolves to an Outcome.Either.
|
|
16
16
|
* - On success: Outcome.makeSuccess(stream) containing the downloaded file's content as a Readable stream.
|
|
17
17
|
* - On failure: Outcome.makeFailure(errStr) with an error message if the download fails.
|
|
18
18
|
*/
|
|
@@ -12,9 +12,9 @@ import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
|
|
|
12
12
|
* `FileType.SymbolicLink`, mirroring the SFTP behaviour where `'-'` and `'l'`
|
|
13
13
|
* are considered files.
|
|
14
14
|
*
|
|
15
|
-
* @param
|
|
16
|
-
* @param
|
|
17
|
-
* @returns
|
|
15
|
+
* @param ftpClient - The basic‑ftp client instance.
|
|
16
|
+
* @param sourcePath - The full path to check on the FTP server.
|
|
17
|
+
* @returns
|
|
18
18
|
* - Success: `Outcome.makeSuccess(true | false)` – true only if a file exists.
|
|
19
19
|
* - Failure: `Outcome.makeFailure(errStr)` if an error occurs.
|
|
20
20
|
*/
|
|
@@ -13,9 +13,9 @@ import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
|
|
|
13
13
|
* `FileType.SymbolicLink`, mirroring the SFTP behaviour where `'-'` and `'l'`
|
|
14
14
|
* are considered files.
|
|
15
15
|
*
|
|
16
|
-
* @param
|
|
17
|
-
* @param
|
|
18
|
-
* @returns
|
|
16
|
+
* @param ftpClient - The basic‑ftp client instance.
|
|
17
|
+
* @param sourcePath - The full path to check on the FTP server.
|
|
18
|
+
* @returns
|
|
19
19
|
* - Success: `Outcome.makeSuccess(true | false)` – true only if a file exists.
|
|
20
20
|
* - Failure: `Outcome.makeFailure(errStr)` if an error occurs.
|
|
21
21
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Client } from 'basic-ftp';
|
|
2
2
|
import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
|
|
3
3
|
export type MoveOptions = {
|
|
4
4
|
/**
|
|
@@ -25,13 +25,13 @@ export type MoveOptions = {
|
|
|
25
25
|
* 2. **overwrite** – If disabled (default) the function first checks whether
|
|
26
26
|
* an object already exists at `targetPath`; if so, it aborts.
|
|
27
27
|
*
|
|
28
|
-
* @param
|
|
29
|
-
* @param
|
|
30
|
-
* @param
|
|
31
|
-
* @param
|
|
32
|
-
* @param
|
|
33
|
-
* @param
|
|
34
|
-
* @returns
|
|
28
|
+
* @param ftpClient - The basic‑ftp client instance.
|
|
29
|
+
* @param sourcePath - The full path of the source file.
|
|
30
|
+
* @param targetPath - The full destination path.
|
|
31
|
+
* @param [options] - Optional move configuration.
|
|
32
|
+
* @param [options.ensureDir=true] - Whether to create missing parent directories.
|
|
33
|
+
* @param [options.overwrite=false] - Whether to overwrite an existing destination.
|
|
34
|
+
* @returns
|
|
35
35
|
* - On success: `Outcome.makeSuccess(true)`.
|
|
36
36
|
* - On failure: `Outcome.makeFailure(errStr)`.
|
|
37
37
|
*/
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { unknownToString } from '../../../../agnostic/errors/unknown-to-string/index.js';
|
|
2
2
|
import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
|
|
3
|
+
import { deepGetProperty } from '../../../../agnostic/objects/deep-get-property/index.js';
|
|
3
4
|
/**
|
|
4
5
|
* Moves (renames) a file on an FTP server.
|
|
5
6
|
*
|
|
@@ -11,13 +12,13 @@ import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
|
|
|
11
12
|
* 2. **overwrite** – If disabled (default) the function first checks whether
|
|
12
13
|
* an object already exists at `targetPath`; if so, it aborts.
|
|
13
14
|
*
|
|
14
|
-
* @param
|
|
15
|
-
* @param
|
|
16
|
-
* @param
|
|
17
|
-
* @param
|
|
18
|
-
* @param
|
|
19
|
-
* @param
|
|
20
|
-
* @returns
|
|
15
|
+
* @param ftpClient - The basic‑ftp client instance.
|
|
16
|
+
* @param sourcePath - The full path of the source file.
|
|
17
|
+
* @param targetPath - The full destination path.
|
|
18
|
+
* @param [options] - Optional move configuration.
|
|
19
|
+
* @param [options.ensureDir=true] - Whether to create missing parent directories.
|
|
20
|
+
* @param [options.overwrite=false] - Whether to overwrite an existing destination.
|
|
21
|
+
* @returns
|
|
21
22
|
* - On success: `Outcome.makeSuccess(true)`.
|
|
22
23
|
* - On failure: `Outcome.makeFailure(errStr)`.
|
|
23
24
|
*/
|
|
@@ -34,9 +35,10 @@ export async function move(ftpClient, sourcePath, targetPath, options) {
|
|
|
34
35
|
return Outcome.makeFailure(`File already exists at ${targetPath}.`);
|
|
35
36
|
}
|
|
36
37
|
catch (err) {
|
|
37
|
-
|
|
38
|
+
const code = deepGetProperty(err, 'code');
|
|
39
|
+
// 550 = "not found"; any other error -> propagate
|
|
40
|
+
if (code !== 550)
|
|
38
41
|
return Outcome.makeFailure(unknownToString(err));
|
|
39
|
-
}
|
|
40
42
|
// 550 means destination does not exist – proceed
|
|
41
43
|
}
|
|
42
44
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Client } from 'basic-ftp';
|
|
2
2
|
import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
|
|
3
3
|
export type RemoveOptions = {
|
|
4
4
|
ignoreMissing?: boolean;
|
|
@@ -10,10 +10,10 @@ export type RemoveOptions = {
|
|
|
10
10
|
* The deletion process can be customized using optional delete options.
|
|
11
11
|
* If the `ignoreMissing` option is true, it does not treat a missing file as an error.
|
|
12
12
|
*
|
|
13
|
-
* @param
|
|
14
|
-
* @param
|
|
15
|
-
* @param
|
|
16
|
-
* @returns
|
|
13
|
+
* @param ftpClient - The basic-ftp client instance used to interact with the FTP server.
|
|
14
|
+
* @param targetPath - The path of the file to delete on the FTP server.
|
|
15
|
+
* @param [options] - Optional settings for configuring the deletion process.
|
|
16
|
+
* @returns A promise that resolves to an Outcome.Either.
|
|
17
17
|
* - On success: Outcome.makeSuccess(true) indicating the deletion was successful.
|
|
18
18
|
* - On failure: Outcome.makeFailure(errStr) with an error message if the deletion fails.
|
|
19
19
|
*/
|
|
@@ -7,10 +7,10 @@ import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
|
|
|
7
7
|
* The deletion process can be customized using optional delete options.
|
|
8
8
|
* If the `ignoreMissing` option is true, it does not treat a missing file as an error.
|
|
9
9
|
*
|
|
10
|
-
* @param
|
|
11
|
-
* @param
|
|
12
|
-
* @param
|
|
13
|
-
* @returns
|
|
10
|
+
* @param ftpClient - The basic-ftp client instance used to interact with the FTP server.
|
|
11
|
+
* @param targetPath - The path of the file to delete on the FTP server.
|
|
12
|
+
* @param [options] - Optional settings for configuring the deletion process.
|
|
13
|
+
* @returns A promise that resolves to an Outcome.Either.
|
|
14
14
|
* - On success: Outcome.makeSuccess(true) indicating the deletion was successful.
|
|
15
15
|
* - On failure: Outcome.makeFailure(errStr) with an error message if the deletion fails.
|
|
16
16
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Client as FtpClient, FileInfo } from 'basic-ftp';
|
|
2
2
|
import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
|
|
3
3
|
export interface Stat {
|
|
4
4
|
size?: number;
|
|
@@ -10,8 +10,8 @@ export interface Stat {
|
|
|
10
10
|
* Retrieves metadata for a single file on an FTP server by listing its parent
|
|
11
11
|
* directory and matching the entry.
|
|
12
12
|
*
|
|
13
|
-
* @param
|
|
14
|
-
* @param
|
|
15
|
-
* @returns
|
|
13
|
+
* @param ftp – basic‑ftp client.
|
|
14
|
+
* @param path – Remote file path.
|
|
15
|
+
* @returns
|
|
16
16
|
*/
|
|
17
17
|
export declare function stat(ftp: FtpClient, path: string): Promise<Outcome.Either<Stat, string>>;
|
|
@@ -4,9 +4,9 @@ import { unknownToString } from '../../../../agnostic/errors/unknown-to-string/i
|
|
|
4
4
|
* Retrieves metadata for a single file on an FTP server by listing its parent
|
|
5
5
|
* directory and matching the entry.
|
|
6
6
|
*
|
|
7
|
-
* @param
|
|
8
|
-
* @param
|
|
9
|
-
* @returns
|
|
7
|
+
* @param ftp – basic‑ftp client.
|
|
8
|
+
* @param path – Remote file path.
|
|
9
|
+
* @returns
|
|
10
10
|
*/
|
|
11
11
|
export async function stat(ftp, path) {
|
|
12
12
|
try {
|
|
@@ -21,7 +21,7 @@ export async function stat(ftp, path) {
|
|
|
21
21
|
return Outcome.makeSuccess({
|
|
22
22
|
size: entry.size,
|
|
23
23
|
modifiedAt: entry.modifiedAt ?? undefined,
|
|
24
|
-
permissions: entry.rawModifiedAt
|
|
24
|
+
permissions: entry.rawModifiedAt,
|
|
25
25
|
raw: entry
|
|
26
26
|
});
|
|
27
27
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import type { Readable } from 'node:stream';
|
|
2
|
+
import type { Client, UploadOptions as BasicFtpUploadOptions } from 'basic-ftp';
|
|
3
3
|
import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
|
|
4
4
|
export type UploadOptions = BasicFtpUploadOptions & {
|
|
5
5
|
ensureDir?: boolean;
|
|
@@ -13,11 +13,11 @@ export type UploadOptions = BasicFtpUploadOptions & {
|
|
|
13
13
|
* If the `ensureDir` option is true, it ensures that the target directory exists before uploading.
|
|
14
14
|
* If the `overwrite` option is false, it prevents overwriting an existing file.
|
|
15
15
|
*
|
|
16
|
-
* @param
|
|
17
|
-
* @param
|
|
18
|
-
* @param
|
|
19
|
-
* @param
|
|
20
|
-
* @returns
|
|
16
|
+
* @param ftpClient - The basic-ftp client instance used to interact with the FTP server.
|
|
17
|
+
* @param targetPath - The target path where the file will be stored on the FTP server.
|
|
18
|
+
* @param fileStream - The file content to be uploaded.
|
|
19
|
+
* @param [options] - Optional settings for configuring the upload process.
|
|
20
|
+
* @returns A promise that resolves to an Outcome.Either.
|
|
21
21
|
* - On success: Outcome.makeSuccess(true) indicating the upload was successful.
|
|
22
22
|
* - On failure: Outcome.makeFailure(errStr) with an error message if the upload fails.
|
|
23
23
|
*/
|
|
@@ -8,11 +8,11 @@ import * as Outcome from '../../../../agnostic/misc/outcome/index.js';
|
|
|
8
8
|
* If the `ensureDir` option is true, it ensures that the target directory exists before uploading.
|
|
9
9
|
* If the `overwrite` option is false, it prevents overwriting an existing file.
|
|
10
10
|
*
|
|
11
|
-
* @param
|
|
12
|
-
* @param
|
|
13
|
-
* @param
|
|
14
|
-
* @param
|
|
15
|
-
* @returns
|
|
11
|
+
* @param ftpClient - The basic-ftp client instance used to interact with the FTP server.
|
|
12
|
+
* @param targetPath - The target path where the file will be stored on the FTP server.
|
|
13
|
+
* @param fileStream - The file content to be uploaded.
|
|
14
|
+
* @param [options] - Optional settings for configuring the upload process.
|
|
15
|
+
* @returns A promise that resolves to an Outcome.Either.
|
|
16
16
|
* - On success: Outcome.makeSuccess(true) indicating the upload was successful.
|
|
17
17
|
* - On failure: Outcome.makeFailure(errStr) with an error message if the upload fails.
|
|
18
18
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { Sharp } from 'sharp';
|
|
2
2
|
import type { CreateOptions } from '../types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Creates a new image using Sharp with the specified options.
|
|
@@ -6,4 +6,4 @@ import type { CreateOptions } from '../types.js';
|
|
|
6
6
|
* @param options - Image creation options. See `CreateOptions` for details.
|
|
7
7
|
* @returns A Sharp instance ready for further image operations.
|
|
8
8
|
*/
|
|
9
|
-
export declare function create(options: CreateOptions):
|
|
9
|
+
export declare function create(options: CreateOptions): Sharp;
|
|
@@ -6,6 +6,6 @@ import { toCreateOptions } from '../utils/index.js';
|
|
|
6
6
|
* @param options - Image creation options. See `CreateOptions` for details.
|
|
7
7
|
* @returns A Sharp instance ready for further image operations.
|
|
8
8
|
*/
|
|
9
|
-
export
|
|
9
|
+
export function create(options) {
|
|
10
10
|
return sharp({ create: toCreateOptions(options) });
|
|
11
11
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { ResizeOptions, JpegOptions, PngOptions, WebpOptions, AvifOptions, TiffOptions, HeifOptions } from 'sharp';
|
|
2
2
|
import * as Outcome from '../../../agnostic/misc/outcome/index.js';
|
|
3
3
|
import type { FormatCommonOptions, FormatJpgOptions, FormatPngOptions, FormatWebpOptions, FormatAvifOptions, FormatTiffOptions, FormatHeifOptions, FormatOptions, ImageLike } from '../types.js';
|
|
4
4
|
/** Type guard to check if options match FormatCommonOptions. */
|
|
@@ -18,19 +18,19 @@ export declare const isFormatHeifOptions: (options: unknown) => options is Forma
|
|
|
18
18
|
/** Type guard to check if options match FormatOptions. */
|
|
19
19
|
export declare const isFormatOptions: (options: unknown) => options is FormatOptions;
|
|
20
20
|
/** Converts FormatCommonOptions to Sharp resize options. */
|
|
21
|
-
export declare const toSharpResizeOptions: (options: FormatCommonOptions) =>
|
|
21
|
+
export declare const toSharpResizeOptions: (options: FormatCommonOptions) => ResizeOptions;
|
|
22
22
|
/** Converts FormatJpgOptions to Sharp JPEG options. */
|
|
23
|
-
export declare const toSharpJpegOptions: (options: FormatJpgOptions) =>
|
|
23
|
+
export declare const toSharpJpegOptions: (options: FormatJpgOptions) => JpegOptions;
|
|
24
24
|
/** Converts FormatPngOptions to Sharp PNG options. */
|
|
25
|
-
export declare const toSharpPngOptions: (options: FormatPngOptions) =>
|
|
25
|
+
export declare const toSharpPngOptions: (options: FormatPngOptions) => PngOptions;
|
|
26
26
|
/** Converts FormatWebpOptions to Sharp WebP options. */
|
|
27
|
-
export declare const toSharpWebpOptions: (options: FormatWebpOptions) =>
|
|
27
|
+
export declare const toSharpWebpOptions: (options: FormatWebpOptions) => WebpOptions;
|
|
28
28
|
/** Converts FormatAvifOptions to Sharp AVIF options. */
|
|
29
|
-
export declare const toSharpAvifOptions: (options: FormatAvifOptions) =>
|
|
29
|
+
export declare const toSharpAvifOptions: (options: FormatAvifOptions) => AvifOptions;
|
|
30
30
|
/** Converts FormatTiffOptions to Sharp TIFF options. */
|
|
31
|
-
export declare const toSharpTiffOptions: (options: FormatTiffOptions) =>
|
|
31
|
+
export declare const toSharpTiffOptions: (options: FormatTiffOptions) => TiffOptions;
|
|
32
32
|
/** Converts FormatHeifOptions to Sharp HEIF options. */
|
|
33
|
-
export declare const toSharpHeifOptions: (options: FormatHeifOptions) =>
|
|
33
|
+
export declare const toSharpHeifOptions: (options: FormatHeifOptions) => HeifOptions;
|
|
34
34
|
/**
|
|
35
35
|
* Formats an image with the specified options.
|
|
36
36
|
*
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { Metadata } from 'sharp';
|
|
2
2
|
import type { ImageLike } from '../types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Retrieves metadata from an image.
|
|
@@ -6,4 +6,4 @@ import type { ImageLike } from '../types.js';
|
|
|
6
6
|
* @param imageInput - The image to get metadata from. Can be a Sharp instance, Buffer, CreateOptions, or file path.
|
|
7
7
|
* @returns Image metadata including dimensions, format, color space, and other properties.
|
|
8
8
|
*/
|
|
9
|
-
export declare function metadata(imageInput: ImageLike): Promise<
|
|
9
|
+
export declare function metadata(imageInput: ImageLike): Promise<Metadata>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { Sharp } from 'sharp';
|
|
2
2
|
import * as Outcome from '../../../agnostic/misc/outcome/index.js';
|
|
3
3
|
import { type OperationDescriptor, type TransformLimits, type TransformErr, type ImageLike } from '../types.js';
|
|
4
4
|
/**
|
|
@@ -24,4 +24,4 @@ export declare function isOperationDescriptor(obj: unknown): Outcome.Either<Oper
|
|
|
24
24
|
* - On success: `Outcome.makeSuccess(sharpInstance)` with the transformed Sharp instance.
|
|
25
25
|
* - On failure: `Outcome.makeFailure(error)` with error code and details.
|
|
26
26
|
*/
|
|
27
|
-
export declare function transform(input: ImageLike, operationsSequence: OperationDescriptor[], limits?: TransformLimits): Promise<Outcome.Either<
|
|
27
|
+
export declare function transform(input: ImageLike, operationsSequence: OperationDescriptor[], limits?: TransformLimits): Promise<Outcome.Either<Sharp, TransformErr>>;
|
|
@@ -46,22 +46,28 @@ export function isOperationDescriptor(obj) {
|
|
|
46
46
|
return Outcome.makeFailure('Invalid operation descriptor');
|
|
47
47
|
if (!('name' in obj) || typeof obj.name !== 'string')
|
|
48
48
|
return Outcome.makeFailure('Field named \'name\' in operation descriptor is required and must be a string');
|
|
49
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- not yet proven; verified below via Set.has(...)/object-key lookup, which are safe regardless of this type
|
|
49
50
|
const name = obj.name;
|
|
50
51
|
const validateOperation = (validatorFn) => {
|
|
51
52
|
const result = validatorFn(obj);
|
|
53
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions, @typescript-eslint/no-unsafe-type-assertion
|
|
52
54
|
if (result.success)
|
|
53
55
|
return Outcome.makeSuccess({
|
|
54
|
-
name
|
|
56
|
+
name,
|
|
55
57
|
...result.payload
|
|
56
58
|
});
|
|
57
59
|
return Outcome.makeFailure(result.error);
|
|
58
60
|
};
|
|
59
61
|
const simpleOperations = new Set([OpName.FLIP, OpName.FLOP]);
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Set.has(...) performs the real runtime membership check regardless of this cast
|
|
60
63
|
if (simpleOperations.has(name))
|
|
61
64
|
return Outcome.makeSuccess({
|
|
65
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- membership was just confirmed by simpleOperations.has(...) above
|
|
62
66
|
name: name
|
|
63
67
|
});
|
|
68
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- the object-key lookup that follows returns undefined for any non-matching name, which is handled below
|
|
64
69
|
const validator = validators[name];
|
|
70
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
65
71
|
if (validator !== undefined)
|
|
66
72
|
return validateOperation(validator);
|
|
67
73
|
return Outcome.makeFailure('Invalid operation descriptor');
|
|
@@ -90,7 +96,9 @@ export async function transform(input, operationsSequence, limits) {
|
|
|
90
96
|
const runWithOpTimeout = async (op) => {
|
|
91
97
|
return limits?.opTimeoutMs === undefined
|
|
92
98
|
? await op()
|
|
93
|
-
: await Promise.race([op(), new Promise(resolve =>
|
|
99
|
+
: await Promise.race([op(), new Promise(resolve => {
|
|
100
|
+
setTimeout(() => resolve(TransformErrCodes.OP_TIMEOUT), limits.opTimeoutMs);
|
|
101
|
+
})]);
|
|
94
102
|
};
|
|
95
103
|
for (const operation of operationsSequence) {
|
|
96
104
|
// Process timeout check
|
|
@@ -103,6 +111,7 @@ export async function transform(input, operationsSequence, limits) {
|
|
|
103
111
|
// Apply transformation
|
|
104
112
|
let result;
|
|
105
113
|
try {
|
|
114
|
+
// eslint-disable-next-line no-loop-func
|
|
106
115
|
result = await runWithOpTimeout(async () => {
|
|
107
116
|
switch (operation.name) {
|
|
108
117
|
case OpName.BLUR: return await blur(sharpInstance, operation);
|
|
@@ -120,6 +129,7 @@ export async function transform(input, operationsSequence, limits) {
|
|
|
120
129
|
case OpName.RESIZE: return await resize(sharpInstance, operation);
|
|
121
130
|
case OpName.ROTATE: return await rotate(sharpInstance, operation);
|
|
122
131
|
case OpName.SATURATE: return await saturate(sharpInstance, operation);
|
|
132
|
+
// eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check
|
|
123
133
|
default: return sharpInstance;
|
|
124
134
|
}
|
|
125
135
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type { Sharp } from 'sharp';
|
|
2
2
|
import * as Outcome from '../../../../../agnostic/misc/outcome/index.js';
|
|
3
3
|
import type { BlurOperationParams } from '../../../types.js';
|
|
4
4
|
export declare function isBlurOperationParams(obj: unknown): Outcome.Either<BlurOperationParams, string>;
|
|
5
|
-
export declare function blur(sharpInstance:
|
|
5
|
+
export declare function blur(sharpInstance: Sharp, params: BlurOperationParams): Promise<Sharp>;
|
|
@@ -7,6 +7,7 @@ export function isBlurOperationParams(obj) {
|
|
|
7
7
|
return Outcome.makeFailure(result.error.message);
|
|
8
8
|
return Outcome.makeSuccess(result.data);
|
|
9
9
|
}
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
10
11
|
export async function blur(sharpInstance, params) {
|
|
11
12
|
return sharpInstance.blur(params.sigma);
|
|
12
13
|
}
|