@design-edito/tools 0.4.3 → 0.4.5
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/dedupe/index.js +0 -2
- package/agnostic/arrays/find-duplicates/index.js +0 -2
- package/agnostic/arrays/index.d.ts +2 -2
- package/agnostic/arrays/index.js +2 -2
- package/agnostic/arrays/is-array-of/index.js +4 -4
- package/agnostic/arrays/make/index.js +0 -2
- package/agnostic/arrays/random-pick/index.js +20 -5
- package/agnostic/arrays/shuffle/index.js +0 -2
- package/agnostic/booleans/is-falsy/index.js +12 -7
- package/agnostic/colors/channels/index.js +936 -13
- package/agnostic/colors/contrast/index.js +624 -12
- package/agnostic/colors/convert/index.js +845 -26
- package/agnostic/colors/distance/index.js +493 -9
- package/agnostic/colors/grayscale/index.js +751 -15
- package/agnostic/colors/index.d.ts +2 -2
- package/agnostic/colors/index.js +2 -2
- package/agnostic/colors/invert/index.js +687 -13
- package/agnostic/colors/lerp/index.js +735 -20
- package/agnostic/colors/luminance/index.js +624 -10
- package/agnostic/colors/palette/index.js +838 -11
- package/agnostic/colors/rotate/index.js +838 -11
- package/agnostic/colors/tidy/index.js +528 -9
- package/agnostic/colors/typechecks/index.js +247 -14
- package/agnostic/css/bem/index.js +23 -11
- package/agnostic/css/clss/index.js +28 -4
- package/agnostic/css/generate-nice-color/index.js +0 -2
- package/agnostic/css/index.d.ts +2 -2
- package/agnostic/css/index.js +2 -2
- package/agnostic/css/is-valid-css-class-name/index.js +5 -5
- package/agnostic/css/scale/index.js +20 -7
- package/agnostic/css/styles-set/index.js +15 -6
- package/agnostic/errors/register/index.js +0 -2
- package/agnostic/errors/unknown-to-string/index.js +8 -4
- package/agnostic/html/get-node-ancestors/index.js +28 -5
- package/agnostic/html/get-position-inside-parent/index.js +0 -2
- package/agnostic/html/hyper-json/cast/index.js +2937 -21
- package/agnostic/html/hyper-json/index.js +2939 -35
- package/agnostic/html/hyper-json/method/index.js +11 -4
- package/agnostic/html/hyper-json/serialize/index.js +222 -8
- package/agnostic/html/hyper-json/smart-tags/coalesced/add/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/addclass/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/and/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/append/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/at/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/call/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/clone/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/deleteproperties/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/equals/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/getattribute/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/getproperties/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/getproperty/index.js +2937 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/hjparse/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/hjstringify/index.js +2937 -23
- package/agnostic/html/hyper-json/smart-tags/coalesced/if/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/index.d.ts +15 -15
- package/agnostic/html/hyper-json/smart-tags/coalesced/index.js +15 -15
- package/agnostic/html/hyper-json/smart-tags/coalesced/initialize/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/join/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/length/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/map/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/negate/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/notrailing/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/or/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/pickrandom/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/populate/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/print/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/push/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/pusheach/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/recordtoarray/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/removeattribute/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/removeclass/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/renameproperty/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/replace/index.js +2937 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/select/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/set/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/setattribute/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/setproperty/index.js +2937 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/sorton/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/split/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/spread/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/toarray/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/toboolean/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/toelement/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/toggleclass/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/tonodelist/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/tonull/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/tonumber/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/torecord/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/toref/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/tostring/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/totext/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/transformselected/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/coalesced/trim/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/index.js +181 -7
- package/agnostic/html/hyper-json/smart-tags/isolated/any/index.js +194 -8
- package/agnostic/html/hyper-json/smart-tags/isolated/array/index.js +194 -8
- package/agnostic/html/hyper-json/smart-tags/isolated/boolean/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/isolated/element/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/isolated/get/index.js +2938 -22
- package/agnostic/html/hyper-json/smart-tags/isolated/guess/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/isolated/index.d.ts +4 -4
- package/agnostic/html/hyper-json/smart-tags/isolated/index.js +4 -4
- package/agnostic/html/hyper-json/smart-tags/isolated/nodelist/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/isolated/null/index.js +191 -8
- package/agnostic/html/hyper-json/smart-tags/isolated/number/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/isolated/record/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/isolated/ref/index.js +2937 -22
- package/agnostic/html/hyper-json/smart-tags/isolated/string/index.js +2937 -21
- package/agnostic/html/hyper-json/smart-tags/isolated/text/index.js +2937 -21
- package/agnostic/html/hyper-json/transformer/index.js +146 -6
- package/agnostic/html/hyper-json/tree/index.js +2937 -21
- package/agnostic/html/hyper-json/types/index.js +16 -4
- package/agnostic/html/hyper-json/utils/index.js +2937 -21
- package/agnostic/html/index.d.ts +2 -2
- package/agnostic/html/index.js +2 -2
- package/agnostic/html/insert-node/index.js +14 -4
- package/agnostic/html/placeholders/index.js +0 -2
- package/agnostic/html/replace-in-element/index.js +28 -5
- package/agnostic/html/selector-to-element/index.js +10 -4
- package/agnostic/html/string-to-nodes/index.js +10 -4
- package/agnostic/index.d.ts +4 -4
- package/agnostic/index.js +4 -4
- package/agnostic/misc/assert/index.js +16 -8
- package/agnostic/misc/cast/index.js +56 -13
- package/agnostic/misc/connection/index.js +10 -4
- package/agnostic/misc/crawler/index.js +6 -4
- package/agnostic/misc/crossenv/detect-runtime/index.js +0 -3
- package/agnostic/misc/crossenv/types.js +11 -4
- package/agnostic/misc/crossenv/window/index.js +22 -7
- package/agnostic/misc/data-size/index.js +0 -2
- package/agnostic/misc/index.d.ts +5 -5
- package/agnostic/misc/index.js +5 -5
- package/agnostic/misc/is-constructor-function/index.js +4 -4
- package/agnostic/misc/is-nullish/index.js +8 -6
- package/agnostic/misc/logs/logger/index.js +0 -2
- package/agnostic/misc/logs/make-text-block/index.js +11 -4
- package/agnostic/misc/logs/styles/index.js +47 -5
- package/agnostic/misc/lorem-ipsum/index.js +22 -7
- package/agnostic/misc/normalize-extension/index.js +0 -2
- package/agnostic/misc/outcome/index.js +10 -6
- package/agnostic/numbers/absolute-modulo/index.js +4 -4
- package/agnostic/numbers/approximate-rational/index.js +0 -2
- package/agnostic/numbers/clamp/index.js +6 -4
- package/agnostic/numbers/geometric-progressions/index.js +14 -4
- package/agnostic/numbers/index.d.ts +2 -2
- package/agnostic/numbers/index.js +2 -2
- package/agnostic/numbers/interpolate/index.js +0 -2
- package/agnostic/numbers/round/index.js +13 -6
- package/agnostic/objects/deep-get-property/index.js +5 -4
- package/agnostic/objects/enums/is-in-enum/index.js +9 -4
- package/agnostic/objects/flatten-getters/index.js +0 -2
- package/agnostic/objects/index.d.ts +3 -3
- package/agnostic/objects/index.js +3 -3
- package/agnostic/objects/is-object/index.js +7 -5
- package/agnostic/objects/is-record/index.js +5 -4
- package/agnostic/objects/record-format/index.js +0 -2
- package/agnostic/objects/record-map/index.js +10 -4
- package/agnostic/objects/sort-keys/index.js +0 -2
- package/agnostic/objects/validation/index.js +0 -2
- package/agnostic/optim/memoize/index.js +0 -2
- package/agnostic/optim/throttle-debounce/index.js +0 -2
- package/agnostic/random/hex-char/index.js +7 -5
- package/agnostic/random/index.d.ts +1 -1
- package/agnostic/random/index.js +1 -1
- package/agnostic/random/random/index.js +12 -5
- package/agnostic/random/uuid/index.js +18 -7
- package/agnostic/regexps/index.js +0 -2
- package/agnostic/sanitization/file-name/index.js +6 -4
- package/agnostic/sanitization/html/index.js +10 -4
- package/agnostic/sanitization/index.d.ts +1 -1
- package/agnostic/sanitization/index.js +1 -1
- package/agnostic/sanitization/path/index.js +6 -4
- package/agnostic/sanitization/user-input/index.js +0 -2
- package/agnostic/strings/char-codes/index.js +0 -2
- package/agnostic/strings/index.d.ts +2 -2
- package/agnostic/strings/index.js +2 -2
- package/agnostic/strings/matches/index.js +14 -6
- package/agnostic/strings/normalize-indent/index.js +0 -2
- package/agnostic/strings/parse-table/index.js +7 -5
- package/agnostic/strings/replace-all/index.js +0 -2
- package/agnostic/strings/to-alphanum/index.js +0 -2
- package/agnostic/strings/trim/index.js +7 -5
- package/agnostic/time/dates/format-date/index.d.ts +3 -0
- package/agnostic/time/dates/format-date/index.js +2 -3
- package/agnostic/time/duration/index.js +0 -2
- package/agnostic/time/timeout/index.js +0 -2
- package/agnostic/time/transitions/index.js +6 -4
- package/agnostic/time/wait/index.js +6 -4
- package/components/BeforeAfter/index.js +51 -14
- package/components/Disclaimer/index.js +107 -6
- package/components/Drawer/index.js +133 -24
- package/components/EventListener/index.js +44 -11
- package/components/Gallery/index.js +42 -11
- package/components/Image/index.js +222 -34
- package/components/IntersectionObserver/index.js +107 -6
- package/components/Overlayer/index.js +51 -14
- package/components/Paginator/index.js +153 -6
- package/components/ResizeObserver/index.js +118 -6
- package/components/Scrllgngn/index.js +332 -42
- package/components/ScrollListener/index.js +135 -30
- package/components/Sequencer/index.js +139 -37
- package/components/ShadowRoot/index.js +44 -11
- package/components/Subtitles/index.js +241 -10
- package/components/Theatre/index.js +134 -6
- package/components/UIModule/index.js +74 -21
- package/components/Video/index.d.ts +10 -0
- package/components/Video/index.js +448 -94
- package/components/index.d.ts +4 -4
- package/components/index.js +4 -4
- package/components/utils/index.js +9 -4
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/node/@aws-s3/storage/directory/copy-dir/index.js +70 -5
- 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.js +39 -5
- package/node/@aws-s3/storage/directory/move-dir/index.js +83 -5
- package/node/@aws-s3/storage/directory/remove-dir/index.js +66 -5
- package/node/@aws-s3/storage/file/copy/index.js +51 -5
- package/node/@aws-s3/storage/file/download/index.js +37 -5
- package/node/@aws-s3/storage/file/exists/index.js +41 -5
- 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.js +62 -5
- package/node/@aws-s3/storage/file/remove/index.js +42 -5
- package/node/@aws-s3/storage/file/stat/index.js +44 -5
- package/node/@aws-s3/storage/file/upload/index.js +62 -5
- package/node/@express/@multer/index.js +19 -9
- package/node/@google-cloud/storage/bucket/get-metadata/index.js +16 -8
- package/node/@google-cloud/storage/directory/copy-dir/index.js +41 -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.js +33 -6
- package/node/@google-cloud/storage/directory/move-dir/index.js +41 -6
- package/node/@google-cloud/storage/directory/remove-dir/index.js +37 -6
- package/node/@google-cloud/storage/file/copy/index.js +39 -6
- package/node/@google-cloud/storage/file/download/index.js +32 -6
- package/node/@google-cloud/storage/file/exists/index.js +29 -6
- package/node/@google-cloud/storage/file/generate-signed-url/index.js +16 -8
- package/node/@google-cloud/storage/file/get-metadata/index.js +16 -8
- package/node/@google-cloud/storage/file/get-permissions/index.js +16 -8
- 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.js +41 -6
- package/node/@google-cloud/storage/file/remove/index.js +34 -6
- package/node/@google-cloud/storage/file/revoke-signed-urls/index.js +80 -14
- package/node/@google-cloud/storage/file/stat/index.js +36 -6
- package/node/@google-cloud/storage/file/update-metadata/index.js +16 -8
- package/node/@google-cloud/storage/file/upload/index.js +46 -6
- 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.js +9 -7
- package/node/cloud-storage/operations/copy-dir/index.js +191 -22
- package/node/cloud-storage/operations/copy-file/index.js +140 -22
- package/node/cloud-storage/operations/download-file/index.js +91 -22
- package/node/cloud-storage/operations/exists-file/index.js +91 -22
- 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.js +86 -22
- package/node/cloud-storage/operations/move-dir/index.js +157 -22
- package/node/cloud-storage/operations/move-file/index.js +145 -22
- package/node/cloud-storage/operations/remove-dir/index.js +147 -22
- package/node/cloud-storage/operations/remove-file/index.js +109 -22
- package/node/cloud-storage/operations/stat-file/index.js +112 -22
- package/node/cloud-storage/operations/upload-file/index.js +150 -22
- package/node/encryption/@aes-256-gcm/buffer/index.js +58 -12
- package/node/encryption/@aes-256-gcm/uint8-array/index.js +53 -7
- package/node/encryption/key/index.js +0 -2
- package/node/files/index.d.ts +1 -1
- package/node/files/index.js +1 -1
- package/node/files/is-in-directory/index.js +0 -2
- package/node/files/read-write/index.js +0 -2
- package/node/files/subpaths/index.js +13 -5
- package/node/ftps/directory/copy-dir/index.js +62 -6
- package/node/ftps/directory/list/index.js +27 -6
- package/node/ftps/directory/move-dir/index.js +38 -6
- package/node/ftps/directory/remove-dir/index.js +42 -6
- package/node/ftps/file/copy/index.js +47 -6
- package/node/ftps/file/download/index.js +32 -6
- package/node/ftps/file/exists/index.js +34 -6
- package/node/ftps/file/move/index.js +44 -6
- package/node/ftps/file/remove/index.js +40 -6
- package/node/ftps/file/stat/index.js +36 -6
- package/node/ftps/file/upload/index.js +45 -6
- package/node/images/create/index.js +556 -12
- package/node/images/format/index.js +583 -19
- package/node/images/metadata/index.js +563 -10
- package/node/images/transform/index.js +895 -77
- package/node/images/transform/operations/blur/index.js +21 -6
- package/node/images/transform/operations/brighten/index.js +21 -6
- package/node/images/transform/operations/extend/index.js +586 -13
- package/node/images/transform/operations/extract/index.js +26 -6
- package/node/images/transform/operations/flatten/index.js +581 -13
- package/node/images/transform/operations/flip/index.js +4 -4
- package/node/images/transform/operations/flop/index.js +4 -4
- package/node/images/transform/operations/hue/index.js +23 -6
- package/node/images/transform/operations/index.d.ts +3 -3
- package/node/images/transform/operations/index.js +3 -3
- package/node/images/transform/operations/level/index.js +27 -6
- package/node/images/transform/operations/lighten/index.js +23 -6
- package/node/images/transform/operations/normalize/index.js +24 -6
- package/node/images/transform/operations/overlay/index.js +670 -13
- package/node/images/transform/operations/resize/index.js +607 -13
- package/node/images/transform/operations/rotate/index.js +581 -13
- package/node/images/transform/operations/saturate/index.js +25 -6
- package/node/images/types.js +27 -5
- package/node/images/utils/index.js +563 -13
- package/node/index.d.ts +2 -2
- package/node/index.js +2 -2
- package/node/process/on-exit/index.js +0 -2
- package/node/process/prompt-continue/index.js +0 -2
- package/node/process/spawner/index.js +67 -13
- package/node/sftp/directory/copy-dir/index.js +60 -6
- package/node/sftp/directory/index.d.ts +1 -1
- package/node/sftp/directory/index.js +1 -1
- package/node/sftp/directory/list/index.js +27 -6
- package/node/sftp/directory/move-dir/index.js +35 -6
- package/node/sftp/directory/remove-dir/index.js +42 -6
- package/node/sftp/file/copy/index.js +45 -6
- package/node/sftp/file/download/index.js +30 -6
- package/node/sftp/file/exists/index.js +27 -6
- package/node/sftp/file/index.d.ts +2 -2
- package/node/sftp/file/index.js +2 -2
- package/node/sftp/file/move/index.js +38 -6
- package/node/sftp/file/remove/index.js +33 -6
- package/node/sftp/file/stat/index.js +36 -6
- package/node/sftp/file/upload/index.js +37 -6
- package/package.json +1 -8
- package/chunks/chunk-2FNCUXAX.js +0 -27
- package/chunks/chunk-2GJSPEO4.js +0 -31
- package/chunks/chunk-2IGP6V77.js +0 -22
- package/chunks/chunk-3QI2MSDK.js +0 -34
- package/chunks/chunk-3RNLPW7B.js +0 -101
- package/chunks/chunk-3RZMW72G.js +0 -33
- package/chunks/chunk-4KLCJX2T.js +0 -36
- package/chunks/chunk-4LTN4SCD.js +0 -55
- package/chunks/chunk-4Q4T7QQO.js +0 -27
- package/chunks/chunk-4Q5TKOIG.js +0 -53
- package/chunks/chunk-57YKZBJR.js +0 -29
- package/chunks/chunk-5H3IRSOB.js +0 -8
- package/chunks/chunk-5NTPCRFH.js +0 -32
- package/chunks/chunk-5TM235Z3.js +0 -40
- package/chunks/chunk-5WVGUZL5.js +0 -35
- package/chunks/chunk-6XL25OZX.js +0 -12
- package/chunks/chunk-75BICI4L.js +0 -20
- package/chunks/chunk-77SWZUHV.js +0 -31
- package/chunks/chunk-AC4UMIWM.js +0 -124
- package/chunks/chunk-AG4VERYN.js +0 -25
- package/chunks/chunk-AP3VYSVF.js +0 -36
- package/chunks/chunk-ASXK7XCC.js +0 -18
- package/chunks/chunk-AVIMGMTP.js +0 -17
- package/chunks/chunk-B4HGXMP3.js +0 -20
- package/chunks/chunk-B5V7D2ZL.js +0 -77
- package/chunks/chunk-B6653QJD.js +0 -37
- package/chunks/chunk-BCX4HPD7.js +0 -33
- package/chunks/chunk-CVMYA5XK.js +0 -632
- package/chunks/chunk-DMWGHBIL.js +0 -25
- package/chunks/chunk-DNIOWD7K.js +0 -8
- package/chunks/chunk-E2ZY3SEW.js +0 -26
- package/chunks/chunk-E6MSDKON.js +0 -13
- package/chunks/chunk-E7BBN5JC.js +0 -22
- package/chunks/chunk-EX2QKFY5.js +0 -41
- package/chunks/chunk-EYYNCLVR.js +0 -33
- package/chunks/chunk-F2YJXIT7.js +0 -78
- package/chunks/chunk-FSNNEPY5.js +0 -37
- package/chunks/chunk-GG4EFNMU.js +0 -89
- package/chunks/chunk-GQBFMP6N.js +0 -32
- package/chunks/chunk-H3HRQ52T.js +0 -32
- package/chunks/chunk-H4PP6AHP.js +0 -15
- package/chunks/chunk-HC6ZOHCS.js +0 -14
- package/chunks/chunk-HMMPT3UM.js +0 -47
- package/chunks/chunk-HQLRJ7XW.js +0 -12
- package/chunks/chunk-HYGUIF2O.js +0 -23
- package/chunks/chunk-HYPEWMYZ.js +0 -10
- package/chunks/chunk-I5MRXMHR.js +0 -32
- package/chunks/chunk-I6ZP5T5V.js +0 -10
- package/chunks/chunk-IEZ3O5OF.js +0 -40
- package/chunks/chunk-IPRWXI27.js +0 -31
- package/chunks/chunk-IRKZUMWZ.js +0 -38
- package/chunks/chunk-ISJONMNA.js +0 -16
- package/chunks/chunk-JB27MAKY.js +0 -22
- package/chunks/chunk-JZ6GM444.js +0 -43
- package/chunks/chunk-K5UF634H.js +0 -25
- package/chunks/chunk-LEBGVBYD.js +0 -138
- package/chunks/chunk-LJ5MGLLU.js +0 -56
- package/chunks/chunk-LUAYN7VJ.js +0 -27
- package/chunks/chunk-MDVGDZU6.js +0 -25
- package/chunks/chunk-ML22TIBW.js +0 -37
- package/chunks/chunk-MO4TRYNI.js +0 -29
- package/chunks/chunk-MSU7JU63.js +0 -49
- package/chunks/chunk-NIBRPZJD.js +0 -58
- package/chunks/chunk-O32IRXDX.js +0 -78
- package/chunks/chunk-OAX7GS7C.js +0 -36
- package/chunks/chunk-OBSTP7YR.js +0 -257
- package/chunks/chunk-OFCSIK6J.js +0 -13
- package/chunks/chunk-OFYGPRWE.js +0 -21
- package/chunks/chunk-OGBUSUE6.js +0 -12
- package/chunks/chunk-OSAXBA7G.js +0 -10
- package/chunks/chunk-OT7QXCH6.js +0 -23
- package/chunks/chunk-OZ3IZVHR.js +0 -2673
- package/chunks/chunk-P4J6S2WQ.js +0 -64
- package/chunks/chunk-PUQUSA6S.js +0 -12
- package/chunks/chunk-PYJKFOMV.js +0 -193
- package/chunks/chunk-QHEWBOQI.js +0 -19
- package/chunks/chunk-QXAJXTXV.js +0 -19
- package/chunks/chunk-R3AWQXMY.js +0 -20
- package/chunks/chunk-R66GH2MQ.js +0 -38
- package/chunks/chunk-RART44AF.js +0 -21
- package/chunks/chunk-REXSJULD.js +0 -28
- package/chunks/chunk-RJRNYRPM.js +0 -23
- package/chunks/chunk-RKX6KLPQ.js +0 -47
- package/chunks/chunk-RW7VAKJW.js +0 -15
- package/chunks/chunk-RZOR7ZC3.js +0 -35
- package/chunks/chunk-S2UZ3HZR.js +0 -31
- package/chunks/chunk-SYH5LYQC.js +0 -28
- package/chunks/chunk-TAXFCVFE.js +0 -30
- package/chunks/chunk-TNZGRXKJ.js +0 -24
- package/chunks/chunk-TRFZSKNB.js +0 -32
- package/chunks/chunk-U664BT44.js +0 -45
- package/chunks/chunk-U6SGKHHA.js +0 -32
- package/chunks/chunk-UTQNGKGQ.js +0 -60
- package/chunks/chunk-VPBZS3S4.js +0 -27
- package/chunks/chunk-W5A2TON3.js +0 -10
- package/chunks/chunk-W7PJ5NQQ.js +0 -23
- package/chunks/chunk-WGRQXVBK.js +0 -207
- package/chunks/chunk-WIFHP4X7.js +0 -56
- package/chunks/chunk-WL4WNJ2Y.js +0 -39
- package/chunks/chunk-WNDMYNDU.js +0 -8
- package/chunks/chunk-WSFCRVEQ.js +0 -9
- package/chunks/chunk-WZS4Q3G3.js +0 -36
- package/chunks/chunk-XA4HVHJ4.js +0 -18
- package/chunks/chunk-XEQ2PBT2.js +0 -20
- package/chunks/chunk-XFB4PUXO.js +0 -78
- package/chunks/chunk-XIIJYVJZ.js +0 -15
- package/chunks/chunk-XNF5MLCQ.js +0 -14
- package/chunks/chunk-XQUMWHCH.js +0 -25
- package/chunks/chunk-YA2YCZUF.js +0 -8
- package/chunks/chunk-YDIBNEGA.js +0 -9
- package/chunks/chunk-YHMR7IBA.js +0 -24
- package/chunks/chunk-YWSXCFYY.js +0 -61
- package/chunks/chunk-YY3TSU22.js +0 -48
- package/chunks/chunk-ZAP3ELDE.js +0 -40
- package/chunks/chunk-ZJNQRKEJ.js +0 -105
- package/chunks/chunk-ZJR5ASR3.js +0 -26
- package/chunks/index.d.ts +0 -1
- package/chunks/index.js +0 -1
|
@@ -1,26 +1,116 @@
|
|
|
1
|
+
// src/agnostic/misc/outcome/index.ts
|
|
2
|
+
function makeSuccess(payload) {
|
|
3
|
+
return { success: true, payload };
|
|
4
|
+
}
|
|
5
|
+
function makeFailure(error) {
|
|
6
|
+
return { success: false, error };
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
// src/node/cloud-storage/clients/index.ts
|
|
10
|
+
import { Bucket as GCSBucket } from "@google-cloud/storage";
|
|
11
|
+
import { S3Client } from "@aws-sdk/client-s3";
|
|
12
|
+
import { Client as FtpClient } from "basic-ftp";
|
|
13
|
+
import SftpClient from "ssh2-sftp-client";
|
|
14
|
+
var isGcsBucket = (client) => client instanceof GCSBucket;
|
|
15
|
+
var isS3ClientWithBucket = (client) => "bucketName" in client && typeof client.bucketName === "string" && "client" in client && client.client instanceof S3Client;
|
|
16
|
+
var isFtpClient = (client) => client instanceof FtpClient;
|
|
17
|
+
var isSftpClient = (client) => client instanceof SftpClient;
|
|
18
|
+
|
|
19
|
+
// src/agnostic/errors/unknown-to-string/index.ts
|
|
20
|
+
function unknownToString(unk, encoding) {
|
|
21
|
+
if (unk instanceof Error) return unk.message;
|
|
22
|
+
if (unk instanceof Buffer) return unk.toString(encoding ?? "utf-8");
|
|
23
|
+
if (typeof unk === "string") return unk;
|
|
24
|
+
if (typeof unk === "object" && unk !== null) return JSON.stringify(unk);
|
|
25
|
+
return `${unk}`;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// src/node/ftps/file/stat/index.ts
|
|
29
|
+
async function stat(ftp, path) {
|
|
30
|
+
try {
|
|
31
|
+
const slash = path.lastIndexOf("/");
|
|
32
|
+
const dir = slash === -1 ? "." : path.slice(0, slash) || "/";
|
|
33
|
+
const name = slash === -1 ? path : path.slice(slash + 1);
|
|
34
|
+
const list = await ftp.list(dir);
|
|
35
|
+
const entry = list.find((e) => e.name === name && e.isFile);
|
|
36
|
+
if (entry === void 0) return makeFailure(`File not found: ${path}`);
|
|
37
|
+
return makeSuccess({
|
|
38
|
+
size: entry.size,
|
|
39
|
+
modifiedAt: entry.modifiedAt ?? void 0,
|
|
40
|
+
permissions: entry.rawModifiedAt.toString(),
|
|
41
|
+
raw: entry
|
|
42
|
+
});
|
|
43
|
+
} catch (err) {
|
|
44
|
+
return makeFailure(unknownToString(err));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// src/node/sftp/file/stat/index.ts
|
|
49
|
+
async function stat2(sftp, path) {
|
|
50
|
+
try {
|
|
51
|
+
const info = await sftp.stat(path);
|
|
52
|
+
return makeSuccess({
|
|
53
|
+
size: info.size,
|
|
54
|
+
modifiedAt: new Date(info.modifyTime * 1e3),
|
|
55
|
+
mode: info.mode,
|
|
56
|
+
uid: info.uid,
|
|
57
|
+
gid: info.gid,
|
|
58
|
+
raw: info
|
|
59
|
+
});
|
|
60
|
+
} catch (err) {
|
|
61
|
+
if (err.code === 2 || err.code === "ENOENT") {
|
|
62
|
+
return makeFailure(`File not found: ${path}`);
|
|
63
|
+
}
|
|
64
|
+
return makeFailure(unknownToString(err));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// src/node/@aws-s3/storage/file/stat/index.ts
|
|
1
69
|
import {
|
|
2
|
-
|
|
3
|
-
} from "
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
70
|
+
HeadObjectCommand
|
|
71
|
+
} from "@aws-sdk/client-s3";
|
|
72
|
+
async function stat3(client, bucket, key, options) {
|
|
73
|
+
const { headObjectOptions } = options ?? {};
|
|
74
|
+
try {
|
|
75
|
+
const res = await client.send(
|
|
76
|
+
new HeadObjectCommand({ Bucket: bucket, Key: key, ...headObjectOptions })
|
|
77
|
+
);
|
|
78
|
+
const stat5 = {
|
|
79
|
+
size: res.ContentLength,
|
|
80
|
+
modifiedAt: res.LastModified,
|
|
81
|
+
checksum: res.ETag?.replace(/"/g, ""),
|
|
82
|
+
contentType: res.ContentType,
|
|
83
|
+
metadata: res.Metadata,
|
|
84
|
+
storageClass: res.StorageClass,
|
|
85
|
+
raw: res
|
|
86
|
+
};
|
|
87
|
+
return makeSuccess(stat5);
|
|
88
|
+
} catch (err) {
|
|
89
|
+
const notFound = err.$metadata?.httpStatusCode === 404 || err.name === "NotFound";
|
|
90
|
+
if (notFound) return makeFailure(`Object not found: ${key}`);
|
|
91
|
+
return makeFailure(unknownToString(err));
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// src/node/@google-cloud/storage/file/stat/index.ts
|
|
96
|
+
async function stat4(bucket, path, options) {
|
|
97
|
+
const { fileOptions, getMetadataOptions } = options ?? {};
|
|
98
|
+
try {
|
|
99
|
+
const [meta] = await bucket.file(path, fileOptions).getMetadata(getMetadataOptions);
|
|
100
|
+
const res = {
|
|
101
|
+
size: meta.size !== void 0 ? Number(meta.size) : void 0,
|
|
102
|
+
modifiedAt: meta.updated !== void 0 ? new Date(meta.updated) : void 0,
|
|
103
|
+
checksum: meta.md5Hash ?? meta.crc32c,
|
|
104
|
+
contentType: meta.contentType,
|
|
105
|
+
metadata: meta.metadata,
|
|
106
|
+
storageClass: meta.storageClass,
|
|
107
|
+
raw: meta
|
|
108
|
+
};
|
|
109
|
+
return makeSuccess(res);
|
|
110
|
+
} catch (err) {
|
|
111
|
+
return makeFailure(unknownToString(err));
|
|
112
|
+
}
|
|
113
|
+
}
|
|
24
114
|
|
|
25
115
|
// src/node/cloud-storage/operations/stat-file/index.ts
|
|
26
116
|
async function statFile(client, path, options) {
|
|
@@ -1,26 +1,154 @@
|
|
|
1
|
+
// src/agnostic/misc/outcome/index.ts
|
|
2
|
+
function makeSuccess(payload) {
|
|
3
|
+
return { success: true, payload };
|
|
4
|
+
}
|
|
5
|
+
function makeFailure(error) {
|
|
6
|
+
return { success: false, error };
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
// src/node/cloud-storage/clients/index.ts
|
|
10
|
+
import { Bucket as GCSBucket } from "@google-cloud/storage";
|
|
11
|
+
import { S3Client } from "@aws-sdk/client-s3";
|
|
12
|
+
import { Client as FtpClient } from "basic-ftp";
|
|
13
|
+
import SftpClient from "ssh2-sftp-client";
|
|
14
|
+
var isGcsBucket = (client) => client instanceof GCSBucket;
|
|
15
|
+
var isS3ClientWithBucket = (client) => "bucketName" in client && typeof client.bucketName === "string" && "client" in client && client.client instanceof S3Client;
|
|
16
|
+
var isFtpClient = (client) => client instanceof FtpClient;
|
|
17
|
+
var isSftpClient = (client) => client instanceof SftpClient;
|
|
18
|
+
|
|
19
|
+
// src/agnostic/errors/unknown-to-string/index.ts
|
|
20
|
+
function unknownToString(unk, encoding) {
|
|
21
|
+
if (unk instanceof Error) return unk.message;
|
|
22
|
+
if (unk instanceof Buffer) return unk.toString(encoding ?? "utf-8");
|
|
23
|
+
if (typeof unk === "string") return unk;
|
|
24
|
+
if (typeof unk === "object" && unk !== null) return JSON.stringify(unk);
|
|
25
|
+
return `${unk}`;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
// src/node/ftps/file/upload/index.ts
|
|
29
|
+
async function upload(ftpClient, targetPath, fileStream, options) {
|
|
30
|
+
const {
|
|
31
|
+
ensureDir = true,
|
|
32
|
+
overwrite = false
|
|
33
|
+
} = options ?? {};
|
|
34
|
+
try {
|
|
35
|
+
if (ensureDir) {
|
|
36
|
+
const dirPath = targetPath.substring(0, targetPath.lastIndexOf("/"));
|
|
37
|
+
await ftpClient.ensureDir(dirPath);
|
|
38
|
+
}
|
|
39
|
+
let fileExists = false;
|
|
40
|
+
try {
|
|
41
|
+
await ftpClient.size(targetPath);
|
|
42
|
+
fileExists = true;
|
|
43
|
+
} catch {
|
|
44
|
+
fileExists = false;
|
|
45
|
+
}
|
|
46
|
+
if (fileExists && !overwrite) {
|
|
47
|
+
return makeFailure(`File already exists at ${targetPath}.`);
|
|
48
|
+
}
|
|
49
|
+
await ftpClient.uploadFrom(fileStream, targetPath, options);
|
|
50
|
+
return makeSuccess(true);
|
|
51
|
+
} catch (err) {
|
|
52
|
+
const errStr = unknownToString(err);
|
|
53
|
+
return makeFailure(errStr);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// src/node/sftp/file/upload/index.ts
|
|
58
|
+
async function upload2(sftp, targetPath, fileStream, options) {
|
|
59
|
+
const {
|
|
60
|
+
ensureDir = true,
|
|
61
|
+
overwrite = false
|
|
62
|
+
} = options ?? {};
|
|
63
|
+
try {
|
|
64
|
+
const exists = await sftp.exists(targetPath) !== false;
|
|
65
|
+
if (exists && !overwrite) return makeFailure(`File already exists at ${targetPath}.`);
|
|
66
|
+
if (ensureDir) {
|
|
67
|
+
const dirPath = targetPath.substring(0, targetPath.lastIndexOf("/"));
|
|
68
|
+
await sftp.mkdir(dirPath, true);
|
|
69
|
+
}
|
|
70
|
+
await sftp.put(fileStream, targetPath, options);
|
|
71
|
+
return makeSuccess(true);
|
|
72
|
+
} catch (err) {
|
|
73
|
+
const errStr = unknownToString(err);
|
|
74
|
+
return makeFailure(errStr);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// src/node/@aws-s3/storage/file/upload/index.ts
|
|
1
79
|
import {
|
|
2
|
-
|
|
3
|
-
} from "
|
|
4
|
-
import {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
80
|
+
HeadObjectCommand
|
|
81
|
+
} from "@aws-sdk/client-s3";
|
|
82
|
+
import { Upload } from "@aws-sdk/lib-storage";
|
|
83
|
+
async function upload3(s3, bucketName, targetPath, fileStream, options) {
|
|
84
|
+
const {
|
|
85
|
+
uploadSettings,
|
|
86
|
+
fileMetadata,
|
|
87
|
+
overwrite = false
|
|
88
|
+
} = options ?? {};
|
|
89
|
+
if (!overwrite) {
|
|
90
|
+
try {
|
|
91
|
+
const headCommand = new HeadObjectCommand({
|
|
92
|
+
Bucket: bucketName,
|
|
93
|
+
Key: targetPath
|
|
94
|
+
});
|
|
95
|
+
await s3.send(headCommand);
|
|
96
|
+
return makeFailure(`File already exists at ${targetPath}.`);
|
|
97
|
+
} catch (err) {
|
|
98
|
+
const code = err?.name ?? err?.$metadata?.httpStatusCode;
|
|
99
|
+
if (code !== "NotFound" && code !== 404) {
|
|
100
|
+
return makeFailure(unknownToString(err));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
const params = {
|
|
105
|
+
...fileMetadata,
|
|
106
|
+
Bucket: bucketName,
|
|
107
|
+
Key: targetPath,
|
|
108
|
+
Body: fileStream
|
|
109
|
+
};
|
|
110
|
+
try {
|
|
111
|
+
const upload5 = new Upload({
|
|
112
|
+
client: s3,
|
|
113
|
+
params,
|
|
114
|
+
...uploadSettings
|
|
115
|
+
});
|
|
116
|
+
await upload5.done();
|
|
117
|
+
return makeSuccess(true);
|
|
118
|
+
} catch (err) {
|
|
119
|
+
return makeFailure(unknownToString(err));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// src/node/@google-cloud/storage/file/upload/index.ts
|
|
124
|
+
async function upload4(bucket, targetPath, fileStream, options) {
|
|
125
|
+
const { fileOptions, saveOptions, overwrite = false } = options ?? {};
|
|
126
|
+
const file = bucket.file(targetPath, fileOptions);
|
|
127
|
+
if (!overwrite) {
|
|
128
|
+
try {
|
|
129
|
+
const [exists] = await file.exists();
|
|
130
|
+
if (exists) {
|
|
131
|
+
return makeFailure(`File already exists at ${targetPath}.`);
|
|
132
|
+
}
|
|
133
|
+
} catch (err) {
|
|
134
|
+
const errStr = unknownToString(err);
|
|
135
|
+
return makeFailure(errStr);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
try {
|
|
139
|
+
await new Promise((resolve, reject) => {
|
|
140
|
+
const writeStream = file.createWriteStream(saveOptions);
|
|
141
|
+
fileStream.pipe(writeStream);
|
|
142
|
+
fileStream.on("error", reject);
|
|
143
|
+
writeStream.on("finish", resolve);
|
|
144
|
+
writeStream.on("error", reject);
|
|
145
|
+
});
|
|
146
|
+
return makeSuccess(true);
|
|
147
|
+
} catch (err) {
|
|
148
|
+
const errStr = unknownToString(err);
|
|
149
|
+
return makeFailure(errStr);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
24
152
|
|
|
25
153
|
// src/node/cloud-storage/operations/upload-file/index.ts
|
|
26
154
|
async function uploadFile(fileStream, path, client, options) {
|
|
@@ -1,26 +1,72 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
// src/node/encryption/@aes-256-gcm/buffer/index.ts
|
|
2
|
+
import { Buffer as Buffer3 } from "node:buffer";
|
|
3
|
+
|
|
4
|
+
// src/agnostic/misc/outcome/index.ts
|
|
5
|
+
function makeSuccess(payload) {
|
|
6
|
+
return { success: true, payload };
|
|
7
|
+
}
|
|
8
|
+
function makeFailure(error) {
|
|
9
|
+
return { success: false, error };
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// src/node/encryption/@aes-256-gcm/uint8-array/index.ts
|
|
13
|
+
import { Buffer as Buffer2 } from "node:buffer";
|
|
14
|
+
import { createCipheriv, createDecipheriv, randomBytes } from "node:crypto";
|
|
15
|
+
|
|
16
|
+
// src/agnostic/errors/unknown-to-string/index.ts
|
|
17
|
+
function unknownToString(unk, encoding) {
|
|
18
|
+
if (unk instanceof Error) return unk.message;
|
|
19
|
+
if (unk instanceof Buffer) return unk.toString(encoding ?? "utf-8");
|
|
20
|
+
if (typeof unk === "string") return unk;
|
|
21
|
+
if (typeof unk === "object" && unk !== null) return JSON.stringify(unk);
|
|
22
|
+
return `${unk}`;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
// src/node/encryption/@aes-256-gcm/uint8-array/index.ts
|
|
26
|
+
function encryptUint8Array(fileArray, encryptionKey) {
|
|
27
|
+
const ivLength = 12;
|
|
28
|
+
const keyBuffer = Buffer2.from(encryptionKey, "utf-8");
|
|
29
|
+
if (keyBuffer.length !== 32) return makeFailure("Encryption key must be 32 bytes for AES-256-GCM.");
|
|
30
|
+
try {
|
|
31
|
+
const iv = randomBytes(ivLength);
|
|
32
|
+
const cipher = createCipheriv("aes-256-gcm", keyBuffer, iv);
|
|
33
|
+
let encrypted = cipher.update(fileArray);
|
|
34
|
+
encrypted = Buffer2.concat([encrypted, cipher.final()]);
|
|
35
|
+
return makeSuccess(new Uint8Array(Buffer2.concat([iv, encrypted])));
|
|
36
|
+
} catch (err) {
|
|
37
|
+
const errStr = unknownToString(err);
|
|
38
|
+
return makeFailure(errStr);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function decryptUint8Array(encryptedFile, encryptionKey) {
|
|
42
|
+
const ivLength = 12;
|
|
43
|
+
const iv = encryptedFile.subarray(0, ivLength);
|
|
44
|
+
const keyBuffer = Buffer2.from(encryptionKey, "utf-8");
|
|
45
|
+
if (keyBuffer.length !== 32) return makeFailure("Encryption key must be 32 bytes for AES-256-GCM.");
|
|
46
|
+
try {
|
|
47
|
+
const encryptedData = encryptedFile.subarray(ivLength);
|
|
48
|
+
const decipher = createDecipheriv("aes-256-gcm", keyBuffer, iv);
|
|
49
|
+
let decrypted = decipher.update(encryptedData);
|
|
50
|
+
decrypted = Buffer2.concat([decrypted, decipher.final()]);
|
|
51
|
+
return makeSuccess(new Uint8Array(decrypted));
|
|
52
|
+
} catch (err) {
|
|
53
|
+
const errStr = unknownToString(err);
|
|
54
|
+
return makeFailure(errStr);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
10
57
|
|
|
11
58
|
// src/node/encryption/@aes-256-gcm/buffer/index.ts
|
|
12
|
-
import { Buffer } from "node:buffer";
|
|
13
59
|
function encrypt(inputBuffer, encryptionKey) {
|
|
14
60
|
const fileArray = new Uint8Array(inputBuffer);
|
|
15
61
|
const encryptionOutcome = encryptUint8Array(fileArray, encryptionKey);
|
|
16
62
|
if (!encryptionOutcome.success) return encryptionOutcome;
|
|
17
|
-
return makeSuccess(
|
|
63
|
+
return makeSuccess(Buffer3.from(encryptionOutcome.payload));
|
|
18
64
|
}
|
|
19
65
|
function decrypt(encryptedBuffer, encryptionKey) {
|
|
20
66
|
const encryptedArray = new Uint8Array(encryptedBuffer);
|
|
21
67
|
const decryptionOutcome = decryptUint8Array(encryptedArray, encryptionKey);
|
|
22
68
|
if (!decryptionOutcome.success) return decryptionOutcome;
|
|
23
|
-
return makeSuccess(
|
|
69
|
+
return makeSuccess(Buffer3.from(decryptionOutcome.payload));
|
|
24
70
|
}
|
|
25
71
|
export {
|
|
26
72
|
decrypt,
|
|
@@ -1,10 +1,56 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
// src/node/encryption/@aes-256-gcm/uint8-array/index.ts
|
|
2
|
+
import { Buffer as Buffer2 } from "node:buffer";
|
|
3
|
+
import { createCipheriv, createDecipheriv, randomBytes } from "node:crypto";
|
|
4
|
+
|
|
5
|
+
// src/agnostic/errors/unknown-to-string/index.ts
|
|
6
|
+
function unknownToString(unk, encoding) {
|
|
7
|
+
if (unk instanceof Error) return unk.message;
|
|
8
|
+
if (unk instanceof Buffer) return unk.toString(encoding ?? "utf-8");
|
|
9
|
+
if (typeof unk === "string") return unk;
|
|
10
|
+
if (typeof unk === "object" && unk !== null) return JSON.stringify(unk);
|
|
11
|
+
return `${unk}`;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// src/agnostic/misc/outcome/index.ts
|
|
15
|
+
function makeSuccess(payload) {
|
|
16
|
+
return { success: true, payload };
|
|
17
|
+
}
|
|
18
|
+
function makeFailure(error) {
|
|
19
|
+
return { success: false, error };
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
// src/node/encryption/@aes-256-gcm/uint8-array/index.ts
|
|
23
|
+
function encryptUint8Array(fileArray, encryptionKey) {
|
|
24
|
+
const ivLength = 12;
|
|
25
|
+
const keyBuffer = Buffer2.from(encryptionKey, "utf-8");
|
|
26
|
+
if (keyBuffer.length !== 32) return makeFailure("Encryption key must be 32 bytes for AES-256-GCM.");
|
|
27
|
+
try {
|
|
28
|
+
const iv = randomBytes(ivLength);
|
|
29
|
+
const cipher = createCipheriv("aes-256-gcm", keyBuffer, iv);
|
|
30
|
+
let encrypted = cipher.update(fileArray);
|
|
31
|
+
encrypted = Buffer2.concat([encrypted, cipher.final()]);
|
|
32
|
+
return makeSuccess(new Uint8Array(Buffer2.concat([iv, encrypted])));
|
|
33
|
+
} catch (err) {
|
|
34
|
+
const errStr = unknownToString(err);
|
|
35
|
+
return makeFailure(errStr);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function decryptUint8Array(encryptedFile, encryptionKey) {
|
|
39
|
+
const ivLength = 12;
|
|
40
|
+
const iv = encryptedFile.subarray(0, ivLength);
|
|
41
|
+
const keyBuffer = Buffer2.from(encryptionKey, "utf-8");
|
|
42
|
+
if (keyBuffer.length !== 32) return makeFailure("Encryption key must be 32 bytes for AES-256-GCM.");
|
|
43
|
+
try {
|
|
44
|
+
const encryptedData = encryptedFile.subarray(ivLength);
|
|
45
|
+
const decipher = createDecipheriv("aes-256-gcm", keyBuffer, iv);
|
|
46
|
+
let decrypted = decipher.update(encryptedData);
|
|
47
|
+
decrypted = Buffer2.concat([decrypted, decipher.final()]);
|
|
48
|
+
return makeSuccess(new Uint8Array(decrypted));
|
|
49
|
+
} catch (err) {
|
|
50
|
+
const errStr = unknownToString(err);
|
|
51
|
+
return makeFailure(errStr);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
8
54
|
export {
|
|
9
55
|
decryptUint8Array,
|
|
10
56
|
encryptUint8Array
|
package/node/files/index.d.ts
CHANGED
package/node/files/index.js
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
matchesSome
|
|
3
|
-
} from "../../../chunks/chunk-R3AWQXMY.js";
|
|
4
|
-
import "../../../chunks/chunk-WSFCRVEQ.js";
|
|
5
|
-
|
|
6
1
|
// src/node/files/subpaths/index.ts
|
|
7
2
|
import { promises as fs } from "node:fs";
|
|
8
3
|
import path from "node:path";
|
|
4
|
+
|
|
5
|
+
// src/agnostic/strings/matches/index.ts
|
|
6
|
+
function matches(input, matcher) {
|
|
7
|
+
if (typeof matcher === "string") return input === matcher;
|
|
8
|
+
if (typeof matcher === "function") return matcher(input);
|
|
9
|
+
return input.match(matcher) !== null;
|
|
10
|
+
}
|
|
11
|
+
function matchesSome(input, matchers) {
|
|
12
|
+
if (!Array.isArray(matchers)) return matches(input, matchers);
|
|
13
|
+
return matchers.some((matcher) => matches(input, matcher));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// src/node/files/subpaths/index.ts
|
|
9
17
|
var defaultListContext = {
|
|
10
18
|
depth: 0,
|
|
11
19
|
lstats: null,
|
|
@@ -1,9 +1,65 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
// src/node/ftps/directory/copy-dir/index.ts
|
|
2
|
+
import { PassThrough } from "node:stream";
|
|
3
|
+
|
|
4
|
+
// src/agnostic/misc/outcome/index.ts
|
|
5
|
+
function makeSuccess(payload) {
|
|
6
|
+
return { success: true, payload };
|
|
7
|
+
}
|
|
8
|
+
function makeFailure(error) {
|
|
9
|
+
return { success: false, error };
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// src/agnostic/errors/unknown-to-string/index.ts
|
|
13
|
+
function unknownToString(unk, encoding) {
|
|
14
|
+
if (unk instanceof Error) return unk.message;
|
|
15
|
+
if (unk instanceof Buffer) return unk.toString(encoding ?? "utf-8");
|
|
16
|
+
if (typeof unk === "string") return unk;
|
|
17
|
+
if (typeof unk === "object" && unk !== null) return JSON.stringify(unk);
|
|
18
|
+
return `${unk}`;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// src/node/ftps/directory/copy-dir/index.ts
|
|
22
|
+
async function copyDir(ftpClient, sourceDir, targetDir, options) {
|
|
23
|
+
const {
|
|
24
|
+
overwrite = false,
|
|
25
|
+
ensureDir = true
|
|
26
|
+
} = options ?? {};
|
|
27
|
+
async function recurse(dir) {
|
|
28
|
+
const list = await ftpClient.list(dir);
|
|
29
|
+
for (const entry of list) {
|
|
30
|
+
const src = dir.endsWith("/") ? dir + entry.name : dir + "/" + entry.name;
|
|
31
|
+
const rel = src.substring(sourceDir.length + (sourceDir.endsWith("/") ? 0 : 1));
|
|
32
|
+
const dst = targetDir.endsWith("/") ? targetDir + rel : `${targetDir}/${rel}`;
|
|
33
|
+
if (entry.isDirectory) {
|
|
34
|
+
if (ensureDir) await ftpClient.ensureDir(dst);
|
|
35
|
+
await recurse(src);
|
|
36
|
+
} else if (entry.isFile) {
|
|
37
|
+
if (!overwrite) {
|
|
38
|
+
try {
|
|
39
|
+
await ftpClient.size(dst);
|
|
40
|
+
throw new Error(`File already exists at ${dst}.`);
|
|
41
|
+
} catch {
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (ensureDir) {
|
|
45
|
+
const dirPath = dst.substring(0, dst.lastIndexOf("/"));
|
|
46
|
+
await ftpClient.ensureDir(dirPath);
|
|
47
|
+
}
|
|
48
|
+
const pass = new PassThrough();
|
|
49
|
+
const upload = ftpClient.uploadFrom(pass, dst);
|
|
50
|
+
await ftpClient.downloadTo(pass, src);
|
|
51
|
+
await upload;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
try {
|
|
56
|
+
if (ensureDir) await ftpClient.ensureDir(targetDir);
|
|
57
|
+
await recurse(sourceDir);
|
|
58
|
+
return makeSuccess(true);
|
|
59
|
+
} catch (err) {
|
|
60
|
+
return makeFailure(unknownToString(err));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
7
63
|
export {
|
|
8
64
|
copyDir
|
|
9
65
|
};
|
|
@@ -1,9 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
// src/agnostic/misc/outcome/index.ts
|
|
2
|
+
function makeSuccess(payload) {
|
|
3
|
+
return { success: true, payload };
|
|
4
|
+
}
|
|
5
|
+
function makeFailure(error) {
|
|
6
|
+
return { success: false, error };
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
// src/agnostic/errors/unknown-to-string/index.ts
|
|
10
|
+
function unknownToString(unk, encoding) {
|
|
11
|
+
if (unk instanceof Error) return unk.message;
|
|
12
|
+
if (unk instanceof Buffer) return unk.toString(encoding ?? "utf-8");
|
|
13
|
+
if (typeof unk === "string") return unk;
|
|
14
|
+
if (typeof unk === "object" && unk !== null) return JSON.stringify(unk);
|
|
15
|
+
return `${unk}`;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// src/node/ftps/directory/list/index.ts
|
|
19
|
+
async function list(ftpClient, directoryPath) {
|
|
20
|
+
try {
|
|
21
|
+
const list2 = await ftpClient.list(directoryPath);
|
|
22
|
+
const files = list2.filter((entry) => entry.isFile).map((entry) => directoryPath.endsWith("/") ? `${directoryPath}${entry.name}` : `${directoryPath}/${entry.name}`);
|
|
23
|
+
return makeSuccess(files);
|
|
24
|
+
} catch (err) {
|
|
25
|
+
return makeFailure(unknownToString(err));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
7
28
|
export {
|
|
8
29
|
list
|
|
9
30
|
};
|