@design-edito/tools 0.3.2 → 0.3.4
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/is-array-of/index.js +2 -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 +10 -7
- package/agnostic/colors/channels/index.js +194 -12
- package/agnostic/colors/contrast/index.js +2 -13
- package/agnostic/colors/convert/index.js +553 -25
- package/agnostic/colors/distance/index.js +1 -10
- package/agnostic/colors/grayscale/index.js +6 -13
- package/agnostic/colors/invert/index.js +2 -14
- package/agnostic/colors/lerp/index.js +12 -19
- package/agnostic/colors/luminance/index.js +16 -10
- package/agnostic/colors/palette/index.js +1 -12
- package/agnostic/colors/rotate/index.js +36 -11
- package/agnostic/colors/tidy/index.js +55 -9
- package/agnostic/colors/typechecks/index.js +90 -14
- package/agnostic/colors/types.js +151 -4
- package/agnostic/css/bem/index.js +2 -9
- package/agnostic/css/generate-nice-color/index.js +0 -2
- package/agnostic/css/is-valid-css-class-name/index.js +5 -5
- package/agnostic/css/scale/index.js +2 -8
- package/agnostic/css/styles-set/index.js +1 -6
- package/agnostic/errors/register/index.js +0 -2
- package/agnostic/errors/unknown-to-string/index.js +7 -4
- package/agnostic/html/get-node-ancestors/index.js +18 -5
- package/agnostic/html/get-position-inside-parent/index.js +0 -2
- package/agnostic/html/hyper-json/cast/index.js +105 -22
- package/agnostic/html/hyper-json/index.js +16 -43
- package/agnostic/html/hyper-json/method/index.js +11 -4
- package/agnostic/html/hyper-json/serialize/index.js +67 -8
- package/agnostic/html/hyper-json/smart-tags/coalesced/add/index.js +17 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/addclass/index.js +31 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/and/index.js +16 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/append/index.js +39 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/at/index.js +41 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/call/index.js +31 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/clone/index.js +12 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/deleteproperties/index.js +42 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/equals/index.js +28 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/getattribute/index.js +26 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/getproperties/index.js +21 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/getproperty/index.js +55 -23
- package/agnostic/html/hyper-json/smart-tags/coalesced/hjparse/index.js +23 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/hjstringify/index.js +68 -24
- package/agnostic/html/hyper-json/smart-tags/coalesced/if/index.js +21 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/initialize/index.js +34 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/join/index.js +18 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/length/index.js +19 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/map/index.js +33 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/negate/index.js +12 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/notrailing/index.js +35 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/or/index.js +16 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/pickrandom/index.js +19 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/populate/index.js +68 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/print/index.js +24 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/push/index.js +12 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/pusheach/index.js +32 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/recordtoarray/index.js +12 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/removeattribute/index.js +48 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/removeclass/index.js +31 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/renameproperty/index.js +40 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/replace/index.js +48 -23
- package/agnostic/html/hyper-json/smart-tags/coalesced/select/index.js +34 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/set/index.js +28 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/setattribute/index.js +48 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/setproperty/index.js +170 -23
- package/agnostic/html/hyper-json/smart-tags/coalesced/sorton/index.js +78 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/split/index.js +20 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/spread/index.js +22 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/toarray/index.js +13 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/toboolean/index.js +13 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/toelement/index.js +18 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/toggleclass/index.js +31 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/tonodelist/index.js +13 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/tonull/index.js +12 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/tonumber/index.js +13 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/torecord/index.js +13 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/toref/index.js +14 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/tostring/index.js +13 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/totext/index.js +13 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/transformselected/index.js +78 -22
- package/agnostic/html/hyper-json/smart-tags/coalesced/trim/index.js +15 -22
- package/agnostic/html/hyper-json/smart-tags/index.js +28 -7
- package/agnostic/html/hyper-json/smart-tags/isolated/any/index.js +14 -8
- package/agnostic/html/hyper-json/smart-tags/isolated/array/index.js +11 -8
- package/agnostic/html/hyper-json/smart-tags/isolated/boolean/index.js +13 -22
- package/agnostic/html/hyper-json/smart-tags/isolated/element/index.js +24 -22
- package/agnostic/html/hyper-json/smart-tags/isolated/get/index.js +20 -22
- package/agnostic/html/hyper-json/smart-tags/isolated/global/index.js +15 -22
- package/agnostic/html/hyper-json/smart-tags/isolated/guess/index.js +47 -22
- package/agnostic/html/hyper-json/smart-tags/isolated/nodelist/index.js +22 -22
- package/agnostic/html/hyper-json/smart-tags/isolated/null/index.js +11 -8
- package/agnostic/html/hyper-json/smart-tags/isolated/number/index.js +19 -22
- package/agnostic/html/hyper-json/smart-tags/isolated/record/index.js +15 -22
- package/agnostic/html/hyper-json/smart-tags/isolated/ref/index.js +38 -23
- package/agnostic/html/hyper-json/smart-tags/isolated/string/index.js +19 -22
- package/agnostic/html/hyper-json/smart-tags/isolated/text/index.js +19 -22
- package/agnostic/html/hyper-json/transformer/index.js +124 -6
- package/agnostic/html/hyper-json/tree/index.js +423 -22
- package/agnostic/html/hyper-json/types/index.js +16 -4
- package/agnostic/html/hyper-json/utils/index.js +426 -22
- 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 +1 -6
- package/agnostic/html/selector-to-element/index.js +2 -6
- package/agnostic/html/string-to-nodes/index.js +2 -6
- package/agnostic/misc/assert/index.js +8 -15
- package/agnostic/misc/cast/index.js +1 -6
- package/agnostic/misc/connection/index.js +2 -6
- package/agnostic/misc/crawler/index.d.ts +51 -27
- package/agnostic/misc/crawler/index.js +14 -8
- package/agnostic/misc/crossenv/detect-runtime/index.js +8 -10
- 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/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 +18 -5
- package/agnostic/misc/lorem-ipsum/index.js +2 -8
- 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/interpolate/index.js +0 -2
- package/agnostic/numbers/round/index.js +13 -6
- package/agnostic/objects/deep-get-property/index.js +1 -5
- package/agnostic/objects/enums/is-in-enum/index.js +9 -4
- package/agnostic/objects/flatten-getters/index.js +0 -2
- 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/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/random/index.js +12 -5
- package/agnostic/random/uuid/index.js +11 -7
- package/agnostic/regexps/index.js +0 -2
- package/agnostic/sanitization/file-name/index.js +6 -4
- package/agnostic/sanitization/html/index.js +3 -7
- package/agnostic/sanitization/path/index.js +1 -5
- package/agnostic/sanitization/user-input/index.js +0 -2
- package/agnostic/strings/char-codes/index.js +0 -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 +6 -11
- package/agnostic/strings/replace-all/index.js +13 -4
- package/agnostic/strings/to-alphanum/index.js +0 -2
- package/agnostic/strings/trim/index.js +7 -5
- package/agnostic/time/dates/format-date/index.js +0 -2
- package/agnostic/time/duration/index.js +0 -2
- package/agnostic/time/timeout/index.js +0 -2
- package/agnostic/time/transitions/index.js +1 -5
- package/agnostic/time/wait/index.js +6 -4
- package/components/Comp/index.js +0 -2
- package/node/@aws-s3/storage/directory/copy-dir/index.js +53 -5
- package/node/@aws-s3/storage/directory/list/index.js +22 -5
- package/node/@aws-s3/storage/directory/move-dir/index.js +66 -5
- package/node/@aws-s3/storage/directory/remove-dir/index.js +49 -5
- package/node/@aws-s3/storage/file/copy/index.js +34 -5
- package/node/@aws-s3/storage/file/download/index.js +20 -5
- package/node/@aws-s3/storage/file/exists/index.js +25 -5
- package/node/@aws-s3/storage/file/move/index.js +45 -5
- package/node/@aws-s3/storage/file/remove/index.js +25 -5
- package/node/@aws-s3/storage/file/stat/index.js +27 -5
- package/node/@aws-s3/storage/file/upload/index.js +45 -5
- package/node/@express/@multer/index.js +5 -12
- package/node/@google-cloud/storage/bucket/get-metadata/index.js +4 -11
- package/node/@google-cloud/storage/directory/copy-dir/index.js +26 -6
- package/node/@google-cloud/storage/directory/list/index.js +18 -6
- package/node/@google-cloud/storage/directory/move-dir/index.js +26 -6
- package/node/@google-cloud/storage/directory/remove-dir/index.js +22 -6
- package/node/@google-cloud/storage/file/copy/index.js +24 -6
- package/node/@google-cloud/storage/file/download/index.js +17 -6
- package/node/@google-cloud/storage/file/exists/index.js +14 -6
- package/node/@google-cloud/storage/file/generate-signed-url/index.js +4 -11
- package/node/@google-cloud/storage/file/get-metadata/index.js +4 -11
- package/node/@google-cloud/storage/file/get-permissions/index.js +4 -11
- package/node/@google-cloud/storage/file/move/index.js +26 -6
- package/node/@google-cloud/storage/file/remove/index.js +19 -6
- package/node/@google-cloud/storage/file/revoke-signed-urls/index.js +5 -16
- package/node/@google-cloud/storage/file/stat/index.js +21 -6
- package/node/@google-cloud/storage/file/update-metadata/index.js +4 -11
- package/node/@google-cloud/storage/file/upload/index.js +31 -6
- package/node/cloud-storage/clients/index.js +9 -7
- package/node/cloud-storage/operations/copy-dir/index.js +21 -26
- package/node/cloud-storage/operations/copy-file/index.js +12 -25
- package/node/cloud-storage/operations/download-file/index.js +12 -25
- package/node/cloud-storage/operations/exists-file/index.js +12 -25
- package/node/cloud-storage/operations/list-dir/index.js +12 -25
- package/node/cloud-storage/operations/move-dir/index.js +14 -27
- package/node/cloud-storage/operations/move-file/index.js +12 -25
- package/node/cloud-storage/operations/remove-dir/index.js +14 -27
- package/node/cloud-storage/operations/remove-file/index.js +12 -25
- package/node/cloud-storage/operations/stat-file/index.js +12 -25
- package/node/cloud-storage/operations/upload-file/index.js +12 -25
- package/node/encryption/@aes-256-gcm/buffer/index.js +7 -12
- package/node/encryption/@aes-256-gcm/uint8-array/index.js +36 -7
- package/node/encryption/key/index.js +0 -2
- 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 +3 -7
- package/node/ftps/directory/copy-dir/index.js +45 -6
- package/node/ftps/directory/list/index.js +12 -6
- package/node/ftps/directory/move-dir/index.js +25 -6
- package/node/ftps/directory/remove-dir/index.js +27 -6
- package/node/ftps/file/copy/index.js +30 -6
- package/node/ftps/file/download/index.js +15 -6
- package/node/ftps/file/exists/index.js +17 -6
- package/node/ftps/file/move/index.js +29 -6
- package/node/ftps/file/remove/index.js +25 -6
- package/node/ftps/file/stat/index.js +21 -6
- package/node/ftps/file/upload/index.js +30 -6
- package/node/images/create/index.js +1 -11
- package/node/images/format/index.js +87 -104
- package/node/images/metadata/index.js +1 -11
- package/node/images/transform/index.js +73 -130
- package/node/images/transform/operations/blur/index.js +12 -7
- package/node/images/transform/operations/brighten/index.js +12 -7
- package/node/images/transform/operations/extend/index.js +24 -14
- package/node/images/transform/operations/extract/index.js +17 -7
- package/node/images/transform/operations/flatten/index.js +19 -14
- 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 +14 -7
- package/node/images/transform/operations/level/index.js +18 -7
- package/node/images/transform/operations/lighten/index.js +14 -7
- package/node/images/transform/operations/normalize/index.js +15 -7
- package/node/images/transform/operations/overlay/index.js +87 -14
- package/node/images/transform/operations/resize/index.js +45 -14
- package/node/images/transform/operations/rotate/index.js +19 -14
- package/node/images/transform/operations/saturate/index.js +16 -7
- package/node/images/types.js +27 -5
- package/node/images/utils/index.js +35 -13
- package/node/process/on-exit/index.js +0 -2
- package/node/process/prompt-continue/index.js +2 -1667
- package/node/process/spawner/index.js +8 -20
- package/node/sftp/directory/copy-dir/index.js +43 -6
- package/node/sftp/directory/list/index.js +12 -6
- package/node/sftp/directory/move-dir/index.js +22 -6
- package/node/sftp/directory/remove-dir/index.js +27 -6
- package/node/sftp/file/copy/index.js +28 -6
- package/node/sftp/file/download/index.js +15 -6
- package/node/sftp/file/exists/index.js +12 -6
- package/node/sftp/file/move/index.js +25 -6
- package/node/sftp/file/remove/index.js +18 -6
- package/node/sftp/file/stat/index.js +21 -6
- package/node/sftp/file/upload/index.js +22 -6
- package/package.json +1 -1
- package/chunks/chunk-2OGNVG5X.js +0 -56
- package/chunks/chunk-3MPXVP4L.js +0 -25
- package/chunks/chunk-4ARE376R.js +0 -36
- package/chunks/chunk-4CIS3R7T.js +0 -10
- package/chunks/chunk-4WE2WEXL.js +0 -12
- package/chunks/chunk-4WO4M2HE.js +0 -38
- package/chunks/chunk-5CFQCSKJ.js +0 -23
- package/chunks/chunk-5DJBOYRY.js +0 -29
- package/chunks/chunk-5H3IRSOB.js +0 -8
- package/chunks/chunk-5LCPENF6.js +0 -40
- package/chunks/chunk-5NTPCRFH.js +0 -32
- package/chunks/chunk-65BFQP3T.js +0 -25
- package/chunks/chunk-6652JQFX.js +0 -47
- package/chunks/chunk-6GINUDWK.js +0 -36
- package/chunks/chunk-6KOJFWH3.js +0 -47
- package/chunks/chunk-6XL25OZX.js +0 -12
- package/chunks/chunk-75BICI4L.js +0 -20
- package/chunks/chunk-7OWHDBUD.js +0 -31
- package/chunks/chunk-AFQ6FUT2.js +0 -36
- package/chunks/chunk-AKNR3U25.js +0 -20
- package/chunks/chunk-ASWI3EO6.js +0 -25
- package/chunks/chunk-ASXK7XCC.js +0 -18
- package/chunks/chunk-AYGAQQXD.js +0 -27
- package/chunks/chunk-B4BXEVMI.js +0 -22
- package/chunks/chunk-BOI2VKM7.js +0 -31
- package/chunks/chunk-CDIXAYVL.js +0 -40
- package/chunks/chunk-D3ERTRDW.js +0 -17
- package/chunks/chunk-D3J6JAJW.js +0 -31
- package/chunks/chunk-DNIOWD7K.js +0 -8
- package/chunks/chunk-DUCLFPGE.js +0 -78
- package/chunks/chunk-E6MSDKON.js +0 -13
- package/chunks/chunk-EPUHVR7J.js +0 -17
- package/chunks/chunk-EZVE2V6Z.js +0 -37
- package/chunks/chunk-FBWBGFRA.js +0 -35
- package/chunks/chunk-FENXVJYO.js +0 -11
- package/chunks/chunk-FML7BURX.js +0 -38
- package/chunks/chunk-FXISVWGE.js +0 -60
- package/chunks/chunk-GDSDQ3UB.js +0 -27
- package/chunks/chunk-GFYAOPTP.js +0 -60
- package/chunks/chunk-GICC2TWR.js +0 -22
- package/chunks/chunk-GOKDRSAD.js +0 -22
- package/chunks/chunk-H4PP6AHP.js +0 -15
- package/chunks/chunk-HC6ZOHCS.js +0 -14
- package/chunks/chunk-HEY7J6GI.js +0 -37
- package/chunks/chunk-HMPY32F7.js +0 -34
- package/chunks/chunk-HQLRJ7XW.js +0 -12
- package/chunks/chunk-HYPEWMYZ.js +0 -10
- package/chunks/chunk-IK2S6ZYP.js +0 -29
- package/chunks/chunk-ISJONMNA.js +0 -16
- package/chunks/chunk-IV6JXJNW.js +0 -25
- package/chunks/chunk-J45Y3CWM.js +0 -39
- package/chunks/chunk-JCXDI6AD.js +0 -56
- package/chunks/chunk-JDINERKY.js +0 -107
- package/chunks/chunk-JPNVNAO4.js +0 -36
- package/chunks/chunk-JVMFT3IT.js +0 -134
- package/chunks/chunk-K5UF634H.js +0 -25
- package/chunks/chunk-KEGTGEAM.js +0 -55
- package/chunks/chunk-KRYJVBO5.js +0 -155
- package/chunks/chunk-L3OCRR3V.js +0 -25
- package/chunks/chunk-LBK4TBXP.js +0 -31
- package/chunks/chunk-LFHDJTZJ.js +0 -12552
- package/chunks/chunk-MFL7PQWJ.js +0 -64
- package/chunks/chunk-MHNUCHPP.js +0 -26
- package/chunks/chunk-MSAAQTCE.js +0 -207
- package/chunks/chunk-MZYCKOLN.js +0 -103
- package/chunks/chunk-NONFIHGT.js +0 -33
- package/chunks/chunk-NR7STUY3.js +0 -28
- package/chunks/chunk-OCDUURXM.js +0 -28
- package/chunks/chunk-OGBUSUE6.js +0 -12
- package/chunks/chunk-OSAXBA7G.js +0 -10
- package/chunks/chunk-PA6C6P2W.js +0 -36
- package/chunks/chunk-PTJO2TGI.js +0 -23
- package/chunks/chunk-Q6Y27PHJ.js +0 -27
- package/chunks/chunk-QD6KZUTV.js +0 -41
- package/chunks/chunk-QEKI6WGQ.js +0 -27
- package/chunks/chunk-QFBVETGF.js +0 -34
- package/chunks/chunk-QHEWBOQI.js +0 -19
- package/chunks/chunk-QXAJXTXV.js +0 -19
- package/chunks/chunk-R3AWQXMY.js +0 -20
- package/chunks/chunk-RC7TRCNX.js +0 -53
- package/chunks/chunk-RNXRHCHQ.js +0 -633
- package/chunks/chunk-ROWPCMQY.js +0 -29
- package/chunks/chunk-RW7VAKJW.js +0 -15
- package/chunks/chunk-S2YRVCQ4.js +0 -32
- package/chunks/chunk-SJ54QLKA.js +0 -2684
- package/chunks/chunk-SNB7HA6G.js +0 -32
- package/chunks/chunk-T3F3S6XV.js +0 -35
- package/chunks/chunk-TKAWYSFV.js +0 -34
- package/chunks/chunk-TLWVLCIQ.js +0 -39
- package/chunks/chunk-TTJXJX4E.js +0 -48
- package/chunks/chunk-UR5BUIPU.js +0 -26
- package/chunks/chunk-USIYKRNX.js +0 -20
- package/chunks/chunk-UVYVJF5Q.js +0 -45
- package/chunks/chunk-VRVBSI2L.js +0 -28
- package/chunks/chunk-VYVVS4LW.js +0 -24
- package/chunks/chunk-W5A2TON3.js +0 -10
- package/chunks/chunk-W7VDFL7P.js +0 -77
- package/chunks/chunk-WNDMYNDU.js +0 -8
- package/chunks/chunk-XA4HVHJ4.js +0 -18
- package/chunks/chunk-XCBH6NLF.js +0 -42
- package/chunks/chunk-XEQ2PBT2.js +0 -20
- package/chunks/chunk-XIIJYVJZ.js +0 -15
- package/chunks/chunk-XKELYCHB.js +0 -32
- package/chunks/chunk-XNF5MLCQ.js +0 -14
- package/chunks/chunk-XVH447XG.js +0 -35
- package/chunks/chunk-YA2YCZUF.js +0 -8
- package/chunks/chunk-YDIBNEGA.js +0 -9
- package/chunks/chunk-Z352FGUT.js +0 -25
- package/chunks/chunk-ZE5QOQM6.js +0 -37
- package/chunks/chunk-ZKIQ753F.js +0 -23
|
@@ -12,54 +12,78 @@ export type Fetcher<T> = (url: string) => Promise<T>;
|
|
|
12
12
|
* @template T - The type of content provided by the fetcher.
|
|
13
13
|
* @param {string} url - The URL of the content being processed.
|
|
14
14
|
* @param {T} content - The content fetched from the URL.
|
|
15
|
-
* @param {
|
|
15
|
+
* @param {object} hooks - Hooks for accessing crawler state and controlling the crawl.
|
|
16
|
+
* @param {(...urls: string[]) => void} hooks.push - Enqueue one or more URLs to be crawled.
|
|
17
|
+
* @param {() => void} hooks.flush - Clear the waitlist of pending URLs.
|
|
18
|
+
* @param {Set<string>} hooks.processed - Read-only snapshot of URLs already processed.
|
|
19
|
+
* @param {string[]} hooks.waitlist - Read-only snapshot of the current waitlist of URLs.
|
|
16
20
|
* @returns {any} The result of processing (ignored by the crawler).
|
|
17
21
|
*/
|
|
18
22
|
export type Processor<T> = (url: string, content: T, hooks: {
|
|
19
23
|
push: (...urls: string[]) => void;
|
|
20
24
|
flush: () => void;
|
|
25
|
+
processed: Set<string>;
|
|
26
|
+
waitlist: string[];
|
|
21
27
|
}) => any;
|
|
22
|
-
/**
|
|
23
|
-
* Optional logging function called during crawling.
|
|
24
|
-
*
|
|
25
|
-
* @param {number} ops - Number of processed URLs so far.
|
|
26
|
-
* @param {string} url - The URL currently being processed.
|
|
27
|
-
* @param {string[]} waitlist - The current waitlist of URLs.
|
|
28
|
-
* @param {Set<string>} processed - Set of URLs already processed.
|
|
29
|
-
*/
|
|
30
|
-
export type Logger = (ops: number, url: string, waitlist: string[], processed: Set<string>) => void;
|
|
31
28
|
/**
|
|
32
29
|
* Configuration options for the crawler.
|
|
33
30
|
*
|
|
34
31
|
* @template T - The type of content returned by the fetcher.
|
|
35
|
-
* @property {number} limit - Maximum number of URLs to process.
|
|
36
|
-
* @property {number | (() => number)} [delayMs] - Optional delay between processing URLs, in milliseconds, or a function returning the delay.
|
|
37
|
-
* @property {boolean} [allowDuplicates] - Optional, allows fetching and processing an URL that has already been seen
|
|
38
|
-
* @property {Fetcher<T>} fetcher - Function that fetches content for each URL.
|
|
39
|
-
* @property {Processor<T>} processor - Function that processes fetched content.
|
|
40
|
-
* @property {Logger} [logger] - Optional function for logging crawl progress.
|
|
41
32
|
*/
|
|
42
33
|
export type Options<T extends any> = {
|
|
34
|
+
/** Maximum number of URLs to process. */
|
|
43
35
|
limit: number;
|
|
36
|
+
/** Optional delay between processing URLs, in milliseconds, or a function returning the delay. */
|
|
44
37
|
delayMs?: number | (() => number);
|
|
38
|
+
/** Optional, allows fetching and processing a URL that has already been seen. */
|
|
45
39
|
allowDuplicates?: boolean;
|
|
40
|
+
/** Function that fetches content for each URL. */
|
|
46
41
|
fetcher: Fetcher<T>;
|
|
42
|
+
/** Function that processes fetched content. */
|
|
47
43
|
processor: Processor<T>;
|
|
48
|
-
logger?: Logger;
|
|
49
44
|
};
|
|
50
45
|
/**
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* @template T - The type of content returned by the fetcher.
|
|
54
|
-
* @param {Options<T>} options - Crawler configuration options.
|
|
55
|
-
* @returns {{
|
|
56
|
-
* crawl: (startUrl: string) => Promise<void>,
|
|
57
|
-
* push: (...urls: string[]) => void,
|
|
58
|
-
* flush: () => void
|
|
59
|
-
* }} An object with methods to start crawling, enqueue URLs, and flush the waitlist.
|
|
46
|
+
* Crawler instance with methods to start crawling, enqueue URLs, and inspect crawler state.
|
|
60
47
|
*/
|
|
61
|
-
export
|
|
48
|
+
export type Crawler = {
|
|
49
|
+
/** Start crawling from the given URL. */
|
|
62
50
|
crawl: (startUrl: string) => Promise<void>;
|
|
51
|
+
/** Enqueue one or more URLs to be crawled. */
|
|
63
52
|
push: (...urls: string[]) => void;
|
|
53
|
+
/** Clear the waitlist of pending URLs. */
|
|
64
54
|
flush: () => void;
|
|
55
|
+
/** Set of URLs that have been processed (mutable - use with caution). */
|
|
56
|
+
processed: Set<string>;
|
|
57
|
+
/** Array of URLs waiting to be processed (mutable - use with caution). */
|
|
58
|
+
waitlist: string[];
|
|
65
59
|
};
|
|
60
|
+
/**
|
|
61
|
+
* Creates a sequential crawler with optional delay.
|
|
62
|
+
*
|
|
63
|
+
* @template T - The type of content returned by the fetcher.
|
|
64
|
+
* @param {Options<T>} options - Crawler configuration options.
|
|
65
|
+
* @param {number} options.limit - Maximum number of URLs to process.
|
|
66
|
+
* @param {number | (() => number)} [options.delayMs] - Optional delay between processing URLs, in milliseconds, or a function returning the delay.
|
|
67
|
+
* @param {boolean} [options.allowDuplicates] - Optional, allows fetching and processing a URL that has already been seen.
|
|
68
|
+
* @param {Fetcher<T>} options.fetcher - Function that fetches content for each URL.
|
|
69
|
+
* @param {Processor<T>} options.processor - Function that processes fetched content.
|
|
70
|
+
* @returns {Crawler} An object with methods to start crawling, enqueue URLs, flush the waitlist, and access crawler state.
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* const crawler = create({
|
|
75
|
+
* limit: 100,
|
|
76
|
+
* delayMs: 1000,
|
|
77
|
+
* fetcher: async (url) => fetch(url).then(r => r.text()),
|
|
78
|
+
* processor: (url, content, { push, processed, waitlist }) => {
|
|
79
|
+
* console.log(`Processed ${url}`);
|
|
80
|
+
* console.log(`Remaining: ${waitlist.length}, Done: ${processed.size}`);
|
|
81
|
+
* // Optionally push more URLs
|
|
82
|
+
* }
|
|
83
|
+
* });
|
|
84
|
+
*
|
|
85
|
+
* await crawler.crawl('https://example.com');
|
|
86
|
+
* console.log('Total processed:', crawler.processed.size);
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
export declare function create<T extends any>(options: Options<T>): Crawler;
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
wait
|
|
3
|
-
} from "../../../chunks/chunk-4CIS3R7T.js";
|
|
4
|
-
import "../../../chunks/chunk-XCBH6NLF.js";
|
|
5
|
-
|
|
6
1
|
// src/agnostic/misc/crawler/index.ts
|
|
2
|
+
import { wait } from "../../time/wait/index.js";
|
|
7
3
|
function create(options) {
|
|
8
4
|
let ops = 0;
|
|
9
5
|
const waitlist = [];
|
|
@@ -17,10 +13,14 @@ function create(options) {
|
|
|
17
13
|
while (waitlist.length > 0 && ops < options.limit) {
|
|
18
14
|
ops++;
|
|
19
15
|
const currentUrl = waitlist[0];
|
|
20
|
-
if (options.logger !== void 0) options.logger(ops, currentUrl, waitlist, processed);
|
|
21
16
|
if (!processed.has(currentUrl) || options.allowDuplicates === true) {
|
|
22
17
|
const content = await options.fetcher(currentUrl);
|
|
23
|
-
await options.processor(currentUrl, content, {
|
|
18
|
+
await options.processor(currentUrl, content, {
|
|
19
|
+
push,
|
|
20
|
+
flush,
|
|
21
|
+
processed: new Set(processed),
|
|
22
|
+
waitlist: [...waitlist]
|
|
23
|
+
});
|
|
24
24
|
}
|
|
25
25
|
waitlist.shift();
|
|
26
26
|
processed.add(currentUrl);
|
|
@@ -28,7 +28,13 @@ function create(options) {
|
|
|
28
28
|
if (delayMs !== 0) await wait(delayMs);
|
|
29
29
|
}
|
|
30
30
|
};
|
|
31
|
-
return {
|
|
31
|
+
return {
|
|
32
|
+
crawl,
|
|
33
|
+
push,
|
|
34
|
+
flush,
|
|
35
|
+
processed,
|
|
36
|
+
waitlist
|
|
37
|
+
};
|
|
32
38
|
}
|
|
33
39
|
export {
|
|
34
40
|
create
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import "../../../../chunks/chunk-XIIJYVJZ.js";
|
|
2
|
-
import "../../../../chunks/chunk-XCBH6NLF.js";
|
|
3
|
-
|
|
4
1
|
// src/agnostic/misc/crossenv/detect-runtime/index.ts
|
|
2
|
+
import { RuntimeName } from "../types.js";
|
|
5
3
|
function detectRuntime() {
|
|
6
|
-
if (typeof process !== "undefined" && typeof process.versions !== "undefined" && typeof process.versions.node !== "undefined") return
|
|
7
|
-
if (typeof window !== "undefined" && typeof window.document !== "undefined") return
|
|
8
|
-
if (typeof Deno !== "undefined") return
|
|
9
|
-
if (typeof process !== "undefined" && typeof navigator.userAgent === "string" && /ReactNative/.test(navigator.userAgent)) return
|
|
10
|
-
if (typeof process !== "undefined" && typeof process.versions !== "undefined" && typeof process.version.electron !== "undefined") return
|
|
11
|
-
if (typeof self !== "undefined" && typeof self.addEventListener === "function" && typeof Headers !== "undefined") return
|
|
12
|
-
if (typeof AWS !== "undefined" && typeof AWS.Lambda !== "undefined") return
|
|
4
|
+
if (typeof process !== "undefined" && typeof process.versions !== "undefined" && typeof process.versions.node !== "undefined") return RuntimeName.NODE;
|
|
5
|
+
if (typeof window !== "undefined" && typeof window.document !== "undefined") return RuntimeName.BROWSER;
|
|
6
|
+
if (typeof Deno !== "undefined") return RuntimeName.DENO;
|
|
7
|
+
if (typeof process !== "undefined" && typeof navigator.userAgent === "string" && /ReactNative/.test(navigator.userAgent)) return RuntimeName.REACT_NATIVE;
|
|
8
|
+
if (typeof process !== "undefined" && typeof process.versions !== "undefined" && typeof process.version.electron !== "undefined") return RuntimeName.ELECTRON;
|
|
9
|
+
if (typeof self !== "undefined" && typeof self.addEventListener === "function" && typeof Headers !== "undefined") return RuntimeName.CLOUDFLARE;
|
|
10
|
+
if (typeof AWS !== "undefined" && typeof AWS.Lambda !== "undefined") return RuntimeName.AWS_LAMBDA;
|
|
13
11
|
return null;
|
|
14
12
|
}
|
|
15
13
|
export {
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
// src/agnostic/misc/crossenv/types.ts
|
|
2
|
+
var RuntimeName = /* @__PURE__ */ ((RuntimeName2) => {
|
|
3
|
+
RuntimeName2["NODE"] = "Node.js";
|
|
4
|
+
RuntimeName2["BROWSER"] = "Browser";
|
|
5
|
+
RuntimeName2["DENO"] = "Deno";
|
|
6
|
+
RuntimeName2["REACT_NATIVE"] = "React Native";
|
|
7
|
+
RuntimeName2["ELECTRON"] = "Electron";
|
|
8
|
+
RuntimeName2["CLOUDFLARE"] = "Cloudflare Workers";
|
|
9
|
+
RuntimeName2["AWS_LAMBDA"] = "AWS Lambda";
|
|
10
|
+
return RuntimeName2;
|
|
11
|
+
})(RuntimeName || {});
|
|
5
12
|
export {
|
|
6
13
|
RuntimeName
|
|
7
14
|
};
|
|
@@ -1,10 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
// src/agnostic/misc/crossenv/window/index.ts
|
|
2
|
+
function exists() {
|
|
3
|
+
return typeof globalThis !== "undefined" && "window" in globalThis;
|
|
4
|
+
}
|
|
5
|
+
var _window = exists() ? globalThis["window"] ?? null : null;
|
|
6
|
+
function set(customWindow) {
|
|
7
|
+
_window = customWindow;
|
|
8
|
+
return customWindow;
|
|
9
|
+
}
|
|
10
|
+
function unset() {
|
|
11
|
+
if (exists()) {
|
|
12
|
+
_window = globalThis["window"];
|
|
13
|
+
} else {
|
|
14
|
+
_window = null;
|
|
15
|
+
}
|
|
16
|
+
return _window;
|
|
17
|
+
}
|
|
18
|
+
function get() {
|
|
19
|
+
if (_window !== null) return _window;
|
|
20
|
+
const message = "window is undefined. Please call Window.setWindow(windowObj) before using Window.get.";
|
|
21
|
+
throw new Error(message);
|
|
22
|
+
}
|
|
8
23
|
export {
|
|
9
24
|
exists,
|
|
10
25
|
get,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
// src/agnostic/misc/is-constructor-function/index.ts
|
|
2
|
+
function isConstructorFunction(input) {
|
|
3
|
+
return typeof input === "function" && "prototype" in input && typeof input.prototype === "object" && "constructor" in input.prototype && input.prototype.constructor === input;
|
|
4
|
+
}
|
|
5
5
|
export {
|
|
6
6
|
isConstructorFunction
|
|
7
7
|
};
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
nullishValues
|
|
5
|
-
}
|
|
6
|
-
|
|
1
|
+
// src/agnostic/misc/is-nullish/index.ts
|
|
2
|
+
var nullishValues = [null, void 0];
|
|
3
|
+
function isNullish(val) {
|
|
4
|
+
return nullishValues.includes(val);
|
|
5
|
+
}
|
|
6
|
+
function isNotNullish(val) {
|
|
7
|
+
return !isNullish(val);
|
|
8
|
+
}
|
|
7
9
|
export {
|
|
8
10
|
isNotNullish,
|
|
9
11
|
isNullish,
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
// src/agnostic/misc/logs/make-text-block/index.ts
|
|
2
|
+
function makeTextBlock(text, vPadding = 1, hPadding = vPadding) {
|
|
3
|
+
const lines = text.split("\n");
|
|
4
|
+
const longestLine = Math.max(...lines.map((line) => line.length));
|
|
5
|
+
const textBlockArr = new Array(lines.length + 2 * vPadding).fill(null).map(() => new Array(longestLine + hPadding * 2).fill(" "));
|
|
6
|
+
lines.forEach((line, linePos) => {
|
|
7
|
+
const chars = line.split("");
|
|
8
|
+
textBlockArr[linePos + vPadding]?.splice(hPadding, chars.length, ...chars);
|
|
9
|
+
});
|
|
10
|
+
return textBlockArr.map((lineArr) => lineArr.join("")).join("\n");
|
|
11
|
+
}
|
|
5
12
|
export {
|
|
6
13
|
makeTextBlock
|
|
7
14
|
};
|
|
@@ -1,8 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
} from "
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
// src/agnostic/misc/logs/styles/index.ts
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import { makeTextBlock } from "../make-text-block/index.js";
|
|
4
|
+
var styles = {
|
|
5
|
+
regular: (text) => text,
|
|
6
|
+
light: (text) => chalk.grey(text),
|
|
7
|
+
danger: (text) => chalk.bold.bgRed.whiteBright(makeTextBlock(`/!\\
|
|
8
|
+
|
|
9
|
+
${text}
|
|
10
|
+
`, 2, 6)),
|
|
11
|
+
important: (text) => chalk.bold(text),
|
|
12
|
+
title: (text) => `# ${chalk.bold.underline(`${text}
|
|
13
|
+
`)}`,
|
|
14
|
+
info: (text) => chalk.blueBright(text),
|
|
15
|
+
success: (text) => chalk.greenBright(text),
|
|
16
|
+
error: (text) => chalk.red(text),
|
|
17
|
+
warning: (text) => chalk.yellow(text)
|
|
18
|
+
};
|
|
6
19
|
export {
|
|
7
20
|
styles
|
|
8
21
|
};
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
randomInt
|
|
3
|
-
} from "../../../chunks/chunk-D3ERTRDW.js";
|
|
4
|
-
import {
|
|
5
|
-
randomPick
|
|
6
|
-
} from "../../../chunks/chunk-K5UF634H.js";
|
|
7
|
-
import "../../../chunks/chunk-XCBH6NLF.js";
|
|
8
|
-
|
|
9
1
|
// src/agnostic/misc/lorem-ipsum/index.ts
|
|
2
|
+
import { randomPick } from "../../arrays/random-pick/index.js";
|
|
3
|
+
import { randomInt } from "../../random/random/index.js";
|
|
10
4
|
var words = [
|
|
11
5
|
"a",
|
|
12
6
|
"ac",
|
|
@@ -1,9 +1,13 @@
|
|
|
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
|
+
function make(success, payloadOrError) {
|
|
9
|
+
return success ? makeSuccess(payloadOrError) : makeFailure(payloadOrError);
|
|
10
|
+
}
|
|
7
11
|
export {
|
|
8
12
|
make,
|
|
9
13
|
makeFailure,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
// src/agnostic/numbers/absolute-modulo/index.ts
|
|
2
|
+
function absoluteModulo(nbr, modulo) {
|
|
3
|
+
return (nbr % modulo + modulo) % modulo;
|
|
4
|
+
}
|
|
5
5
|
export {
|
|
6
6
|
absoluteModulo
|
|
7
7
|
};
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
// src/agnostic/numbers/clamp/index.ts
|
|
2
|
+
function clamp(num, bound1, bound2) {
|
|
3
|
+
const min = Math.min(bound1, bound2);
|
|
4
|
+
const max = Math.max(bound1, bound2);
|
|
5
|
+
return Math.min(Math.max(num, min), max);
|
|
6
|
+
}
|
|
5
7
|
export {
|
|
6
8
|
clamp
|
|
7
9
|
};
|
|
@@ -1,7 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
// src/agnostic/numbers/geometric-progressions/index.ts
|
|
2
|
+
function getGeometricStep(min, max, level, steps) {
|
|
3
|
+
if (min === 0) {
|
|
4
|
+
console.warn("Cannot generate values if min value is zero");
|
|
5
|
+
return NaN;
|
|
6
|
+
}
|
|
7
|
+
if (steps < 1) {
|
|
8
|
+
console.warn("Cannot generate values if steps is lower than one");
|
|
9
|
+
return NaN;
|
|
10
|
+
}
|
|
11
|
+
const maxOverMin = max / min;
|
|
12
|
+
const factor = Math.pow(maxOverMin, 1 / steps);
|
|
13
|
+
return min * Math.pow(factor, level);
|
|
14
|
+
}
|
|
5
15
|
export {
|
|
6
16
|
getGeometricStep
|
|
7
17
|
};
|
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
round
|
|
5
|
-
}
|
|
6
|
-
|
|
1
|
+
// src/agnostic/numbers/round/index.ts
|
|
2
|
+
function round(number, nbDecimals = 0) {
|
|
3
|
+
const multiplier = Math.pow(10, nbDecimals);
|
|
4
|
+
return Math.round(number * multiplier) / multiplier;
|
|
5
|
+
}
|
|
6
|
+
function ceil(number, nbDecimals = 0) {
|
|
7
|
+
const multiplier = Math.pow(10, nbDecimals);
|
|
8
|
+
return Math.ceil(number * multiplier) / multiplier;
|
|
9
|
+
}
|
|
10
|
+
function floor(number, nbDecimals = 0) {
|
|
11
|
+
const multiplier = Math.pow(10, nbDecimals);
|
|
12
|
+
return Math.floor(number * multiplier) / multiplier;
|
|
13
|
+
}
|
|
7
14
|
export {
|
|
8
15
|
ceil,
|
|
9
16
|
floor,
|
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
isRecord
|
|
3
|
-
} from "../../../chunks/chunk-YDIBNEGA.js";
|
|
4
|
-
import "../../../chunks/chunk-XCBH6NLF.js";
|
|
5
|
-
|
|
6
1
|
// src/agnostic/objects/deep-get-property/index.ts
|
|
2
|
+
import { isRecord } from "../is-record/index.js";
|
|
7
3
|
function deepGetProperty(anythingThatHasProperties, pathString) {
|
|
8
4
|
const pathChunks = pathString.split(".").map((e) => e.trim()).filter((e) => e !== "");
|
|
9
5
|
let currentObject = anythingThatHasProperties;
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
// src/agnostic/objects/enums/is-in-enum/index.ts
|
|
2
|
+
function isInEnum(enumObj, value) {
|
|
3
|
+
const keys = Object.keys(enumObj);
|
|
4
|
+
const values = Object.values(enumObj);
|
|
5
|
+
const numericValues = values.filter((val) => typeof val === "number");
|
|
6
|
+
const cleanKeys = keys.filter((key) => !numericValues.includes(parseInt(key, 10)));
|
|
7
|
+
const cleanValues = cleanKeys.map((cleanKey) => enumObj[cleanKey]);
|
|
8
|
+
return cleanValues.includes(value);
|
|
9
|
+
}
|
|
5
10
|
export {
|
|
6
11
|
isInEnum
|
|
7
12
|
};
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
|
|
1
|
+
// src/agnostic/objects/is-object/index.ts
|
|
2
|
+
function isObject(unk) {
|
|
3
|
+
return typeof unk === "object";
|
|
4
|
+
}
|
|
5
|
+
function isNonNullObject(unk) {
|
|
6
|
+
return unk !== null && isObject(unk);
|
|
7
|
+
}
|
|
6
8
|
export {
|
|
7
9
|
isNonNullObject,
|
|
8
10
|
isObject
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
// src/agnostic/objects/is-record/index.ts
|
|
2
|
+
function isRecord(input) {
|
|
3
|
+
if (typeof input !== "object" || input === null) return false;
|
|
4
|
+
return Object.keys(input).every((key) => typeof key === "string");
|
|
5
|
+
}
|
|
5
6
|
export {
|
|
6
7
|
isRecord
|
|
7
8
|
};
|
|
@@ -1,7 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
// src/agnostic/objects/record-map/index.ts
|
|
2
|
+
function recordMap(record, mapper) {
|
|
3
|
+
const result = {};
|
|
4
|
+
for (const key in record) {
|
|
5
|
+
if (Object.prototype.hasOwnProperty.call(record, key)) {
|
|
6
|
+
result[key] = mapper(record[key], key);
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return result;
|
|
10
|
+
}
|
|
5
11
|
export {
|
|
6
12
|
recordMap
|
|
7
13
|
};
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
// src/agnostic/random/hex-char/index.ts
|
|
2
|
+
var hexChars = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"];
|
|
3
|
+
function randomHexChar() {
|
|
4
|
+
const nbr = Math.floor(Math.random() * 16);
|
|
5
|
+
const char = hexChars[nbr];
|
|
6
|
+
return char;
|
|
7
|
+
}
|
|
6
8
|
export {
|
|
7
9
|
hexChars,
|
|
8
10
|
randomHexChar
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
// src/agnostic/random/random/index.ts
|
|
2
|
+
function random(bound1 = 1, bound2) {
|
|
3
|
+
const min = bound2 === void 0 ? 0 : bound1;
|
|
4
|
+
const max = bound2 === void 0 ? bound1 : bound2;
|
|
5
|
+
if (min === max || min > max) return void 0;
|
|
6
|
+
const range = max - min;
|
|
7
|
+
return Math.random() * range + min;
|
|
8
|
+
}
|
|
9
|
+
function randomInt(...args) {
|
|
10
|
+
const rand = random(...args);
|
|
11
|
+
return rand !== void 0 ? Math.floor(rand) : void 0;
|
|
12
|
+
}
|
|
6
13
|
export {
|
|
7
14
|
random,
|
|
8
15
|
randomInt
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
// src/agnostic/random/uuid/index.ts
|
|
2
|
+
import { randomHexChar } from "../hex-char/index.js";
|
|
3
|
+
function randomHash(length = 4) {
|
|
4
|
+
return new Array(length).fill(null).map(randomHexChar).join("");
|
|
5
|
+
}
|
|
6
|
+
function randomHashPattern(pattern, joiner = "-") {
|
|
7
|
+
return pattern.map(randomHash).join(joiner);
|
|
8
|
+
}
|
|
9
|
+
function randomUUID() {
|
|
10
|
+
return randomHashPattern([8, 4, 4, 4, 12]);
|
|
11
|
+
}
|
|
8
12
|
export {
|
|
9
13
|
randomHash,
|
|
10
14
|
randomHashPattern,
|