yummies 5.4.6 → 5.4.8
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/async.cjs +70 -0
- package/async.d.cts +28 -0
- package/async.d.cts.map +1 -0
- package/async.d.ts +28 -0
- package/async.d.ts.map +1 -0
- package/async.js +62 -0
- package/common.cjs +18 -0
- package/common.d.cts +15 -0
- package/common.d.cts.map +1 -0
- package/common.d.ts +15 -0
- package/common.d.ts.map +1 -0
- package/common.js +14 -0
- package/complex/counter.cjs +21 -0
- package/complex/counter.d.cts +15 -0
- package/complex/counter.d.cts.map +1 -0
- package/complex/counter.d.ts +15 -0
- package/complex/counter.d.ts.map +1 -0
- package/complex/counter.js +17 -0
- package/complex/global-config.cjs +46 -0
- package/complex/global-config.d.cts +11 -0
- package/complex/global-config.d.cts.map +1 -0
- package/complex/global-config.d.ts +11 -0
- package/complex/global-config.d.ts.map +1 -0
- package/complex/global-config.js +41 -0
- package/complex/index.cjs +19 -0
- package/complex/index.d.cts +4 -0
- package/complex/index.d.cts.map +1 -0
- package/complex/index.d.ts +4 -0
- package/complex/index.d.ts.map +1 -0
- package/complex/index.js +3 -0
- package/complex/modules-factory.cjs +50 -0
- package/complex/modules-factory.d.cts +49 -0
- package/complex/modules-factory.d.cts.map +1 -0
- package/complex/modules-factory.d.ts +49 -0
- package/complex/modules-factory.d.ts.map +1 -0
- package/complex/modules-factory.js +46 -0
- package/cookie.cjs +13 -0
- package/cookie.d.cts +3 -0
- package/cookie.d.cts.map +1 -0
- package/cookie.d.ts +3 -0
- package/cookie.d.ts.map +1 -0
- package/cookie.js +9 -0
- package/css.cjs +28 -0
- package/css.d.cts +36 -0
- package/css.d.cts.map +1 -0
- package/css.d.ts +36 -0
- package/css.d.ts.map +1 -0
- package/css.js +20 -0
- package/data.cjs +58 -0
- package/data.d.cts +4 -0
- package/data.d.cts.map +1 -0
- package/data.d.ts +4 -0
- package/data.d.ts.map +1 -0
- package/data.js +52 -0
- package/date-time.cjs +171 -0
- package/date-time.d.cts +28 -0
- package/date-time.d.cts.map +1 -0
- package/date-time.d.ts +28 -0
- package/date-time.d.ts.map +1 -0
- package/date-time.js +160 -0
- package/device.cjs +28 -0
- package/device.d.cts +8 -0
- package/device.d.cts.map +1 -0
- package/device.d.ts +8 -0
- package/device.d.ts.map +1 -0
- package/device.js +21 -0
- package/encodings.cjs +270 -0
- package/encodings.d.cts +2 -0
- package/encodings.d.cts.map +1 -0
- package/encodings.d.ts +2 -0
- package/encodings.d.ts.map +1 -0
- package/encodings.js +267 -0
- package/errors.cjs +34 -0
- package/errors.d.cts +19 -0
- package/errors.d.cts.map +1 -0
- package/errors.d.ts +19 -0
- package/errors.d.ts.map +1 -0
- package/errors.js +30 -0
- package/file.cjs +29 -0
- package/file.d.cts +3 -0
- package/file.d.cts.map +1 -0
- package/file.d.ts +3 -0
- package/file.d.ts.map +1 -0
- package/file.js +24 -0
- package/format/_exports.cjs +20 -0
- package/format/_exports.d.cts +5 -0
- package/format/_exports.d.cts.map +1 -0
- package/format/_exports.d.ts +5 -0
- package/format/_exports.d.ts.map +1 -0
- package/format/_exports.js +4 -0
- package/format/constants.cjs +6 -0
- package/format/constants.d.cts +4 -0
- package/format/constants.d.cts.map +1 -0
- package/format/constants.d.ts +4 -0
- package/format/constants.d.ts.map +1 -0
- package/{src/format/constants.ts → format/constants.js} +0 -2
- package/format/index.cjs +40 -0
- package/format/index.d.cts +3 -0
- package/format/index.d.cts.map +1 -0
- package/format/index.d.ts +3 -0
- package/format/index.d.ts.map +1 -0
- package/{src/format/index.ts → format/index.js} +1 -2
- package/format/number.cjs +48 -0
- package/format/number.d.cts +36 -0
- package/format/number.d.cts.map +1 -0
- package/format/number.d.ts +36 -0
- package/format/number.d.ts.map +1 -0
- package/format/number.js +44 -0
- package/format/percent.cjs +27 -0
- package/format/percent.d.cts +15 -0
- package/format/percent.d.cts.map +1 -0
- package/format/percent.d.ts +15 -0
- package/format/percent.d.ts.map +1 -0
- package/format/percent.js +23 -0
- package/format/skip-spaces.cjs +8 -0
- package/format/skip-spaces.d.cts +5 -0
- package/format/skip-spaces.d.cts.map +1 -0
- package/format/skip-spaces.d.ts +5 -0
- package/format/skip-spaces.d.ts.map +1 -0
- package/format/skip-spaces.js +4 -0
- package/html.cjs +202 -0
- package/html.d.cts +44 -0
- package/html.d.cts.map +1 -0
- package/html.d.ts +44 -0
- package/html.d.ts.map +1 -0
- package/html.js +182 -0
- package/id.cjs +76 -0
- package/id.d.cts +63 -0
- package/id.d.cts.map +1 -0
- package/id.d.ts +63 -0
- package/id.d.ts.map +1 -0
- package/{src/id.ts → id.js} +6 -16
- package/imports.cjs +45 -0
- package/imports.d.cts +15 -0
- package/imports.d.cts.map +1 -0
- package/imports.d.ts +15 -0
- package/imports.d.ts.map +1 -0
- package/imports.js +40 -0
- package/math.cjs +23 -0
- package/math.d.cts +13 -0
- package/math.d.cts.map +1 -0
- package/math.d.ts +13 -0
- package/math.d.ts.map +1 -0
- package/math.js +17 -0
- package/media.cjs +115 -0
- package/media.d.cts +20 -0
- package/media.d.cts.map +1 -0
- package/media.d.ts +20 -0
- package/media.d.ts.map +1 -0
- package/media.js +103 -0
- package/mobx/apply-observable.cjs +16 -0
- package/mobx/apply-observable.d.cts +4 -0
- package/mobx/apply-observable.d.cts.map +1 -0
- package/mobx/apply-observable.d.ts +4 -0
- package/mobx/apply-observable.d.ts.map +1 -0
- package/mobx/apply-observable.js +12 -0
- package/mobx/create-enhanced-atom.cjs +16 -0
- package/mobx/create-enhanced-atom.d.cts +11 -0
- package/mobx/create-enhanced-atom.d.cts.map +1 -0
- package/mobx/create-enhanced-atom.d.ts +11 -0
- package/mobx/create-enhanced-atom.d.ts.map +1 -0
- package/mobx/create-enhanced-atom.js +12 -0
- package/mobx/deep-observable-struct.cjs +61 -0
- package/mobx/deep-observable-struct.d.cts +7 -0
- package/mobx/deep-observable-struct.d.cts.map +1 -0
- package/mobx/deep-observable-struct.d.ts +7 -0
- package/mobx/deep-observable-struct.d.ts.map +1 -0
- package/mobx/deep-observable-struct.js +57 -0
- package/mobx/get-mobx-administration.cjs +6 -0
- package/mobx/get-mobx-administration.d.cts +6 -0
- package/mobx/get-mobx-administration.d.cts.map +1 -0
- package/mobx/get-mobx-administration.d.ts +6 -0
- package/mobx/get-mobx-administration.d.ts.map +1 -0
- package/mobx/get-mobx-administration.js +2 -0
- package/mobx/index.cjs +21 -0
- package/mobx/index.d.cts +6 -0
- package/mobx/index.d.cts.map +1 -0
- package/mobx/index.d.ts +6 -0
- package/mobx/index.d.ts.map +1 -0
- package/mobx/index.js +5 -0
- package/mobx/lazy-observe.cjs +47 -0
- package/mobx/lazy-observe.d.cts +8 -0
- package/mobx/lazy-observe.d.cts.map +1 -0
- package/mobx/lazy-observe.d.ts +8 -0
- package/mobx/lazy-observe.d.ts.map +1 -0
- package/mobx/lazy-observe.js +43 -0
- package/ms.cjs +22 -0
- package/ms.d.cts +19 -0
- package/ms.d.cts.map +1 -0
- package/ms.d.ts +19 -0
- package/ms.d.ts.map +1 -0
- package/ms.js +18 -0
- package/number.cjs +16 -0
- package/number.d.cts +8 -0
- package/number.d.cts.map +1 -0
- package/number.d.ts +8 -0
- package/number.d.ts.map +1 -0
- package/number.js +13 -0
- package/package.json +163 -5
- package/parser/_exports.cjs +19 -0
- package/parser/_exports.d.cts +4 -0
- package/parser/_exports.d.cts.map +1 -0
- package/parser/_exports.d.ts +4 -0
- package/parser/_exports.d.ts.map +1 -0
- package/parser/_exports.js +3 -0
- package/parser/index.cjs +40 -0
- package/parser/index.d.cts +3 -0
- package/parser/index.d.cts.map +1 -0
- package/parser/index.d.ts +3 -0
- package/parser/index.d.ts.map +1 -0
- package/{src/parser/index.ts → parser/index.js} +1 -2
- package/parser/number.cjs +48 -0
- package/parser/number.d.cts +21 -0
- package/parser/number.d.cts.map +1 -0
- package/parser/number.d.ts +21 -0
- package/parser/number.d.ts.map +1 -0
- package/parser/number.js +44 -0
- package/parser/percent.cjs +8 -0
- package/parser/percent.d.cts +4 -0
- package/parser/percent.d.cts.map +1 -0
- package/parser/percent.d.ts +4 -0
- package/parser/percent.d.ts.map +1 -0
- package/parser/percent.js +4 -0
- package/parser/string.cjs +18 -0
- package/parser/string.d.cts +7 -0
- package/parser/string.d.cts.map +1 -0
- package/parser/string.d.ts +7 -0
- package/parser/string.d.ts.map +1 -0
- package/parser/string.js +14 -0
- package/price.cjs +21 -0
- package/price.d.cts +6 -0
- package/price.d.cts.map +1 -0
- package/price.d.ts +6 -0
- package/price.d.ts.map +1 -0
- package/price.js +17 -0
- package/random.cjs +25 -0
- package/random.d.cts +9 -0
- package/random.d.cts.map +1 -0
- package/random.d.ts +9 -0
- package/random.d.ts.map +1 -0
- package/random.js +14 -0
- package/react/hooks/index.cjs +37 -0
- package/react/hooks/index.d.cts +22 -0
- package/react/hooks/index.d.cts.map +1 -0
- package/react/hooks/index.d.ts +22 -0
- package/react/hooks/index.d.ts.map +1 -0
- package/react/hooks/index.js +21 -0
- package/react/hooks/use-abort-controller.cjs +15 -0
- package/react/hooks/use-abort-controller.d.cts +2 -0
- package/react/hooks/use-abort-controller.d.cts.map +1 -0
- package/react/hooks/use-abort-controller.d.ts +2 -0
- package/react/hooks/use-abort-controller.d.ts.map +1 -0
- package/react/hooks/use-abort-controller.js +11 -0
- package/react/hooks/use-abort-signal.cjs +8 -0
- package/react/hooks/use-abort-signal.d.cts +2 -0
- package/react/hooks/use-abort-signal.d.cts.map +1 -0
- package/react/hooks/use-abort-signal.d.ts +2 -0
- package/react/hooks/use-abort-signal.d.ts.map +1 -0
- package/react/hooks/use-abort-signal.js +4 -0
- package/react/hooks/use-click-outside.cjs +17 -0
- package/react/hooks/use-click-outside.d.cts +9 -0
- package/react/hooks/use-click-outside.d.cts.map +1 -0
- package/react/hooks/use-click-outside.d.ts +9 -0
- package/react/hooks/use-click-outside.d.ts.map +1 -0
- package/react/hooks/use-click-outside.js +13 -0
- package/react/hooks/use-constant.cjs +19 -0
- package/react/hooks/use-constant.d.cts +9 -0
- package/react/hooks/use-constant.d.cts.map +1 -0
- package/react/hooks/use-constant.d.ts +9 -0
- package/react/hooks/use-constant.d.ts.map +1 -0
- package/{src/react/hooks/use-constant.ts → react/hooks/use-constant.js} +6 -9
- package/react/hooks/use-define-ref.cjs +19 -0
- package/react/hooks/use-define-ref.d.cts +10 -0
- package/react/hooks/use-define-ref.d.cts.map +1 -0
- package/react/hooks/use-define-ref.d.ts +10 -0
- package/react/hooks/use-define-ref.d.ts.map +1 -0
- package/{src/react/hooks/use-define-ref.ts → react/hooks/use-define-ref.js} +7 -10
- package/react/hooks/use-element-ref.cjs +12 -0
- package/react/hooks/use-element-ref.d.cts +2 -0
- package/react/hooks/use-element-ref.d.cts.map +1 -0
- package/react/hooks/use-element-ref.d.ts +2 -0
- package/react/hooks/use-element-ref.d.ts.map +1 -0
- package/react/hooks/use-element-ref.js +8 -0
- package/react/hooks/use-event-listener.cjs +17 -0
- package/react/hooks/use-event-listener.d.cts +8 -0
- package/react/hooks/use-event-listener.d.cts.map +1 -0
- package/react/hooks/use-event-listener.d.ts +8 -0
- package/react/hooks/use-event-listener.d.ts.map +1 -0
- package/react/hooks/use-event-listener.js +13 -0
- package/react/hooks/use-event.cjs +23 -0
- package/react/hooks/use-event.d.cts +3 -0
- package/react/hooks/use-event.d.cts.map +1 -0
- package/react/hooks/use-event.d.ts +3 -0
- package/react/hooks/use-event.d.ts.map +1 -0
- package/react/hooks/use-event.js +19 -0
- package/react/hooks/use-flag.cjs +19 -0
- package/react/hooks/use-flag.d.cts +8 -0
- package/react/hooks/use-flag.d.cts.map +1 -0
- package/react/hooks/use-flag.d.ts +8 -0
- package/react/hooks/use-flag.d.ts.map +1 -0
- package/react/hooks/use-flag.js +15 -0
- package/react/hooks/use-force-update.cjs +11 -0
- package/react/hooks/use-force-update.d.cts +2 -0
- package/react/hooks/use-force-update.d.cts.map +1 -0
- package/react/hooks/use-force-update.d.ts +2 -0
- package/react/hooks/use-force-update.d.ts.map +1 -0
- package/react/hooks/use-force-update.js +7 -0
- package/react/hooks/use-initial-height.cjs +15 -0
- package/react/hooks/use-initial-height.d.cts +5 -0
- package/react/hooks/use-initial-height.d.cts.map +1 -0
- package/react/hooks/use-initial-height.d.ts +5 -0
- package/react/hooks/use-initial-height.d.ts.map +1 -0
- package/react/hooks/use-initial-height.js +11 -0
- package/react/hooks/use-instance.cjs +31 -0
- package/react/hooks/use-instance.d.cts +27 -0
- package/react/hooks/use-instance.d.cts.map +1 -0
- package/react/hooks/use-instance.d.ts +27 -0
- package/react/hooks/use-instance.d.ts.map +1 -0
- package/{src/react/hooks/use-instance.ts → react/hooks/use-instance.js} +9 -31
- package/react/hooks/use-intersection-observer.cjs +14 -0
- package/react/hooks/use-intersection-observer.d.cts +2 -0
- package/react/hooks/use-intersection-observer.d.cts.map +1 -0
- package/react/hooks/use-intersection-observer.d.ts +2 -0
- package/react/hooks/use-intersection-observer.d.ts.map +1 -0
- package/react/hooks/use-intersection-observer.js +10 -0
- package/react/hooks/use-last-defined-value.cjs +12 -0
- package/react/hooks/use-last-defined-value.d.cts +2 -0
- package/react/hooks/use-last-defined-value.d.cts.map +1 -0
- package/react/hooks/use-last-defined-value.d.ts +2 -0
- package/react/hooks/use-last-defined-value.d.ts.map +1 -0
- package/react/hooks/use-last-defined-value.js +8 -0
- package/react/hooks/use-last-value-ref.cjs +12 -0
- package/react/hooks/use-last-value-ref.d.cts +2 -0
- package/react/hooks/use-last-value-ref.d.cts.map +1 -0
- package/react/hooks/use-last-value-ref.d.ts +2 -0
- package/react/hooks/use-last-value-ref.d.ts.map +1 -0
- package/react/hooks/use-last-value-ref.js +8 -0
- package/react/hooks/use-life-cycle.cjs +14 -0
- package/react/hooks/use-life-cycle.d.cts +5 -0
- package/react/hooks/use-life-cycle.d.cts.map +1 -0
- package/react/hooks/use-life-cycle.d.ts +5 -0
- package/react/hooks/use-life-cycle.d.ts.map +1 -0
- package/react/hooks/use-life-cycle.js +10 -0
- package/react/hooks/use-resize-observer.cjs +15 -0
- package/react/hooks/use-resize-observer.d.cts +2 -0
- package/react/hooks/use-resize-observer.d.cts.map +1 -0
- package/react/hooks/use-resize-observer.d.ts +2 -0
- package/react/hooks/use-resize-observer.d.ts.map +1 -0
- package/react/hooks/use-resize-observer.js +11 -0
- package/react/hooks/use-sync-ref.cjs +10 -0
- package/react/hooks/use-sync-ref.d.cts +2 -0
- package/react/hooks/use-sync-ref.d.cts.map +1 -0
- package/react/hooks/use-sync-ref.d.ts +2 -0
- package/react/hooks/use-sync-ref.d.ts.map +1 -0
- package/react/hooks/use-sync-ref.js +6 -0
- package/react/hooks/use-toggle.cjs +10 -0
- package/react/hooks/use-toggle.d.cts +2 -0
- package/react/hooks/use-toggle.d.cts.map +1 -0
- package/react/hooks/use-toggle.d.ts +2 -0
- package/react/hooks/use-toggle.d.ts.map +1 -0
- package/react/hooks/use-toggle.js +6 -0
- package/react/hooks/use-value.cjs +12 -0
- package/react/hooks/use-value.d.cts +5 -0
- package/react/hooks/use-value.d.cts.map +1 -0
- package/react/hooks/use-value.d.ts +5 -0
- package/react/hooks/use-value.d.ts.map +1 -0
- package/react/hooks/use-value.js +8 -0
- package/react/hooks/use-visibility-state.cjs +18 -0
- package/react/hooks/use-visibility-state.d.cts +2 -0
- package/react/hooks/use-visibility-state.d.cts.map +1 -0
- package/react/hooks/use-visibility-state.d.ts +2 -0
- package/react/hooks/use-visibility-state.d.ts.map +1 -0
- package/react/hooks/use-visibility-state.js +14 -0
- package/react/index.cjs +17 -0
- package/react/index.d.cts +2 -0
- package/react/index.d.cts.map +1 -0
- package/react/index.d.ts +2 -0
- package/react/index.d.ts.map +1 -0
- package/react/index.js +1 -0
- package/sound.cjs +16 -0
- package/sound.d.cts +7 -0
- package/sound.d.cts.map +1 -0
- package/sound.d.ts +7 -0
- package/sound.d.ts.map +1 -0
- package/sound.js +12 -0
- package/storage.cjs +48 -0
- package/storage.d.cts +39 -0
- package/storage.d.cts.map +1 -0
- package/storage.d.ts +39 -0
- package/storage.d.ts.map +1 -0
- package/storage.js +43 -0
- package/text.cjs +53 -0
- package/text.d.cts +15 -0
- package/text.d.cts.map +1 -0
- package/text.d.ts +15 -0
- package/text.d.ts.map +1 -0
- package/text.js +48 -0
- package/type-guard/_exports.cjs +129 -0
- package/type-guard/_exports.d.cts +86 -0
- package/type-guard/_exports.d.cts.map +1 -0
- package/type-guard/_exports.d.ts +86 -0
- package/type-guard/_exports.d.ts.map +1 -0
- package/type-guard/_exports.js +125 -0
- package/type-guard/index.cjs +40 -0
- package/type-guard/index.d.cts +3 -0
- package/type-guard/index.d.cts.map +1 -0
- package/type-guard/index.d.ts +3 -0
- package/type-guard/index.d.ts.map +1 -0
- package/{src/type-guard/index.ts → type-guard/index.js} +1 -2
- package/utility-types.d.ts +396 -0
- package/utils/types.cjs +2 -0
- package/utils/types.d.cts +395 -0
- package/utils/types.d.cts.map +1 -0
- package/utils/types.d.ts +395 -0
- package/utils/types.d.ts.map +1 -0
- package/utils/types.js +1 -0
- package/vibrate.cjs +12 -0
- package/vibrate.d.cts +5 -0
- package/vibrate.d.cts.map +1 -0
- package/vibrate.d.ts +5 -0
- package/vibrate.d.ts.map +1 -0
- package/vibrate.js +8 -0
- package/.changeset/README.md +0 -8
- package/.changeset/config.json +0 -11
- package/.github/FUNDING.yml +0 -1
- package/.github/workflows/main.yml +0 -34
- package/.github/workflows/version-or-publish.yml +0 -45
- package/.nvmrc +0 -1
- package/.vscode/settings.json +0 -19
- package/CHANGELOG.md +0 -215
- package/CONTRIBUTING.md +0 -8
- package/Makefile +0 -7
- package/biome.json +0 -3
- package/commitfmt.toml +0 -18
- package/lefthook.yml +0 -14
- package/scripts/post-build.ts +0 -71
- package/src/async.ts +0 -86
- package/src/common.ts +0 -26
- package/src/complex/counter.test.ts +0 -41
- package/src/complex/counter.ts +0 -40
- package/src/complex/global-config.ts +0 -55
- package/src/complex/index.ts +0 -3
- package/src/complex/modules-factory.ts +0 -65
- package/src/cookie.ts +0 -11
- package/src/css.ts +0 -60
- package/src/data.test.ts +0 -99
- package/src/data.ts +0 -65
- package/src/date-time.test.ts +0 -119
- package/src/date-time.ts +0 -236
- package/src/device.ts +0 -42
- package/src/encodings.ts +0 -270
- package/src/errors.ts +0 -40
- package/src/file.ts +0 -25
- package/src/format/_exports.ts +0 -4
- package/src/format/number.test.ts +0 -16
- package/src/format/number.ts +0 -96
- package/src/format/percent.ts +0 -40
- package/src/format/skip-spaces.ts +0 -4
- package/src/html.ts +0 -238
- package/src/imports.ts +0 -52
- package/src/math.ts +0 -20
- package/src/media.ts +0 -134
- package/src/mobx/apply-observable.ts +0 -20
- package/src/mobx/create-enhanced-atom.ts +0 -28
- package/src/mobx/deep-observable-struct.test.ts +0 -69
- package/src/mobx/deep-observable-struct.ts +0 -69
- package/src/mobx/get-mobx-administration.ts +0 -10
- package/src/mobx/index.ts +0 -5
- package/src/mobx/lazy-observe.ts +0 -59
- package/src/ms.ts +0 -20
- package/src/number.ts +0 -14
- package/src/parser/_exports.ts +0 -3
- package/src/parser/number.test.ts +0 -38
- package/src/parser/number.ts +0 -73
- package/src/parser/percent.ts +0 -11
- package/src/parser/string.ts +0 -29
- package/src/price.ts +0 -33
- package/src/random.ts +0 -27
- package/src/react/hooks/index.ts +0 -21
- package/src/react/hooks/use-abort-controller.ts +0 -15
- package/src/react/hooks/use-abort-signal.ts +0 -5
- package/src/react/hooks/use-click-outside.ts +0 -27
- package/src/react/hooks/use-element-ref.ts +0 -11
- package/src/react/hooks/use-event-listener.ts +0 -29
- package/src/react/hooks/use-event.ts +0 -23
- package/src/react/hooks/use-flag.ts +0 -27
- package/src/react/hooks/use-force-update.ts +0 -9
- package/src/react/hooks/use-initial-height.ts +0 -16
- package/src/react/hooks/use-intersection-observer.ts +0 -18
- package/src/react/hooks/use-last-defined-value.ts +0 -9
- package/src/react/hooks/use-last-value-ref.ts +0 -11
- package/src/react/hooks/use-life-cycle.ts +0 -17
- package/src/react/hooks/use-resize-observer.ts +0 -14
- package/src/react/hooks/use-sync-ref.ts +0 -7
- package/src/react/hooks/use-toggle.ts +0 -9
- package/src/react/hooks/use-value.ts +0 -10
- package/src/react/hooks/use-visibility-state.ts +0 -19
- package/src/react/index.ts +0 -1
- package/src/sound.ts +0 -15
- package/src/storage.ts +0 -137
- package/src/text.test.ts +0 -91
- package/src/text.ts +0 -60
- package/src/type-guard/_exports.ts +0 -154
- package/src/type-guard/index.test.ts +0 -127
- package/src/vibrate.ts +0 -8
- package/tsconfig.json +0 -26
- package/tsconfig.test.json +0 -33
- package/vitest.config.ts +0 -20
package/html.js
ADDED
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import DOMPurify from 'dompurify';
|
|
2
|
+
import { blobToUrl } from "./media.js";
|
|
3
|
+
/**
|
|
4
|
+
* Вытаскивает RGB из любого цвета
|
|
5
|
+
*
|
|
6
|
+
* Не рекомендуется к использованию так как вызывает reflow
|
|
7
|
+
*/
|
|
8
|
+
export const getComputedColor = (color) => {
|
|
9
|
+
if (!color)
|
|
10
|
+
return null;
|
|
11
|
+
const d = document.createElement('div');
|
|
12
|
+
d.style.color = color;
|
|
13
|
+
document.body.append(d);
|
|
14
|
+
const rgbcolor = globalThis.getComputedStyle(d).color;
|
|
15
|
+
const match = /rgba?\((\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*\d+[.d+]*)*\)/g.exec(rgbcolor);
|
|
16
|
+
d.remove();
|
|
17
|
+
if (!match)
|
|
18
|
+
return null;
|
|
19
|
+
return `${match[1]}, ${match[2]}, ${match[3]}`;
|
|
20
|
+
};
|
|
21
|
+
export const downloadUsingAnchor = (urlOrBlob, fileName) => {
|
|
22
|
+
const url = blobToUrl(urlOrBlob);
|
|
23
|
+
const a = document.createElement('a');
|
|
24
|
+
a.href = url;
|
|
25
|
+
a.download = fileName ?? 'file';
|
|
26
|
+
a.target = '_blank';
|
|
27
|
+
document.body.append(a);
|
|
28
|
+
a.click();
|
|
29
|
+
a.remove();
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Surrounds string in an anchor tag
|
|
33
|
+
*/
|
|
34
|
+
export function wrapTextToTagLink(link) {
|
|
35
|
+
const descr = String(link).replace(/^(https?:\/{0,2})?(w{3}\.)?/, 'www.');
|
|
36
|
+
if (!/^https?:\/{2}/.test(link))
|
|
37
|
+
link = `http://${link}`;
|
|
38
|
+
return `<a href=${link} target="_blank">${descr}</a>`;
|
|
39
|
+
}
|
|
40
|
+
export const collectOffsetTop = (element) => {
|
|
41
|
+
let offsetTop = 0;
|
|
42
|
+
let node = element;
|
|
43
|
+
while (node != null) {
|
|
44
|
+
offsetTop += node.offsetTop;
|
|
45
|
+
node = node.parentElement;
|
|
46
|
+
}
|
|
47
|
+
return offsetTop;
|
|
48
|
+
};
|
|
49
|
+
export const skipEvent = (e) => {
|
|
50
|
+
e.preventDefault();
|
|
51
|
+
e.stopPropagation();
|
|
52
|
+
return false;
|
|
53
|
+
};
|
|
54
|
+
export const globalScrollIntoViewForY = (node) => {
|
|
55
|
+
const scrollContainer = document.body;
|
|
56
|
+
const pageHeight = window.innerHeight;
|
|
57
|
+
const nodeBounding = node.getBoundingClientRect();
|
|
58
|
+
const scrollPagesCount = scrollContainer.scrollHeight / pageHeight;
|
|
59
|
+
const scrollPageNumber = Math.min(Math.max(nodeBounding.top / pageHeight, 1), scrollPagesCount);
|
|
60
|
+
window.scroll({
|
|
61
|
+
top: scrollPageNumber * pageHeight,
|
|
62
|
+
behavior: 'smooth',
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
const sanitizeDefaults = {
|
|
66
|
+
ALLOWED_TAGS: [
|
|
67
|
+
'a',
|
|
68
|
+
'article',
|
|
69
|
+
'b',
|
|
70
|
+
'blockquote',
|
|
71
|
+
'br',
|
|
72
|
+
'caption',
|
|
73
|
+
'code',
|
|
74
|
+
'del',
|
|
75
|
+
'details',
|
|
76
|
+
'div',
|
|
77
|
+
'em',
|
|
78
|
+
'h1',
|
|
79
|
+
'h2',
|
|
80
|
+
'h3',
|
|
81
|
+
'h4',
|
|
82
|
+
'h5',
|
|
83
|
+
'h6',
|
|
84
|
+
'hr',
|
|
85
|
+
'i',
|
|
86
|
+
'img',
|
|
87
|
+
'ins',
|
|
88
|
+
'kbd',
|
|
89
|
+
'li',
|
|
90
|
+
'main',
|
|
91
|
+
'ol',
|
|
92
|
+
'p',
|
|
93
|
+
'pre',
|
|
94
|
+
'section',
|
|
95
|
+
'span',
|
|
96
|
+
'strong',
|
|
97
|
+
'sub',
|
|
98
|
+
'summary',
|
|
99
|
+
'sup',
|
|
100
|
+
'table',
|
|
101
|
+
'tbody',
|
|
102
|
+
'td',
|
|
103
|
+
'th',
|
|
104
|
+
'thead',
|
|
105
|
+
'tr',
|
|
106
|
+
'u',
|
|
107
|
+
'ul',
|
|
108
|
+
],
|
|
109
|
+
ALLOWED_ATTR: ['href', 'target', 'name', 'src', 'class'],
|
|
110
|
+
};
|
|
111
|
+
export const sanitizeHtml = (html, config) => {
|
|
112
|
+
return DOMPurify.sanitize(html || '', {
|
|
113
|
+
...sanitizeDefaults,
|
|
114
|
+
...config,
|
|
115
|
+
});
|
|
116
|
+
};
|
|
117
|
+
export const checkElementHasParent = (element, parent) => {
|
|
118
|
+
let node = element;
|
|
119
|
+
if (!parent)
|
|
120
|
+
return false;
|
|
121
|
+
while (node != null) {
|
|
122
|
+
if (node === parent) {
|
|
123
|
+
return true;
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
node = node.parentElement;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return false;
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* Executes a function within a view transition if supported by the browser.
|
|
133
|
+
*
|
|
134
|
+
* @param {VoidFunction} fn - The function to be executed.
|
|
135
|
+
* @returns {ViewTransition} - The result of the executed function.
|
|
136
|
+
*
|
|
137
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Document/startViewTransition | MDN: Document.startViewTransition}
|
|
138
|
+
*/
|
|
139
|
+
export const startViewTransitionSafety = (fn, params) => {
|
|
140
|
+
if (document.startViewTransition && !params?.disabled) {
|
|
141
|
+
return document.startViewTransition(fn);
|
|
142
|
+
}
|
|
143
|
+
fn();
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Вычисляет размер скроллбара
|
|
147
|
+
*/
|
|
148
|
+
export const calcScrollbarWidth = () => {
|
|
149
|
+
const outer = document.createElement('div');
|
|
150
|
+
outer.style.visibility = 'hidden';
|
|
151
|
+
outer.style.width = '100px';
|
|
152
|
+
outer.style.overflow = 'scroll';
|
|
153
|
+
document.body.append(outer);
|
|
154
|
+
const inner = document.createElement('div');
|
|
155
|
+
inner.style.width = '100%';
|
|
156
|
+
outer.append(inner);
|
|
157
|
+
const scrollbarWidth = outer.offsetWidth - inner.offsetWidth;
|
|
158
|
+
outer.parentNode?.removeChild(outer);
|
|
159
|
+
return scrollbarWidth;
|
|
160
|
+
};
|
|
161
|
+
/**
|
|
162
|
+
* Calculates the inner height of an HTML element, accounting for padding.
|
|
163
|
+
*/
|
|
164
|
+
export function getElementInnerHeight(element) {
|
|
165
|
+
const { clientHeight } = element;
|
|
166
|
+
const { paddingTop, paddingBottom } = getComputedStyle(element);
|
|
167
|
+
return (clientHeight -
|
|
168
|
+
Number.parseFloat(paddingTop) -
|
|
169
|
+
Number.parseFloat(paddingBottom));
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Calculates the inner width of an HTML element, accounting for padding.
|
|
173
|
+
*/
|
|
174
|
+
export function getElementInnerWidth(el) {
|
|
175
|
+
const { clientWidth } = el;
|
|
176
|
+
const { paddingLeft, paddingRight } = getComputedStyle(el);
|
|
177
|
+
return (clientWidth -
|
|
178
|
+
Number.parseFloat(paddingLeft) -
|
|
179
|
+
Number.parseFloat(paddingRight));
|
|
180
|
+
}
|
|
181
|
+
export const isPrefersDarkTheme = () => !!globalThis.matchMedia?.('(prefers-color-scheme: dark)')?.matches;
|
|
182
|
+
export const isPrefersLightTheme = () => !!globalThis.matchMedia?.('(prefers-color-scheme: light)')?.matches;
|
package/id.cjs
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateStackBasedId = exports.generateLinearNumericId = exports.createLinearNumericIdGenerator = exports.generateNumericShortId = exports.generateNumericId = exports.generateShortId = exports.generateId = void 0;
|
|
4
|
+
const nanoid_1 = require("nanoid");
|
|
5
|
+
const DIGITS = '0123456789';
|
|
6
|
+
const LATIN_CHARS = 'abcdefghijklmnopqrstuvwxyz';
|
|
7
|
+
const ALPHABET = `${LATIN_CHARS}${DIGITS}`;
|
|
8
|
+
/**
|
|
9
|
+
* Использует алфавит abcdefghijklmnopqrstuvwxyz0123456789
|
|
10
|
+
* Размер 6
|
|
11
|
+
*/
|
|
12
|
+
exports.generateId = (0, nanoid_1.customAlphabet)(ALPHABET, 6);
|
|
13
|
+
/**
|
|
14
|
+
* Использует алфавит abcdefghijklmnopqrstuvwxyz0123456789
|
|
15
|
+
* Размер 4
|
|
16
|
+
*/
|
|
17
|
+
exports.generateShortId = (0, nanoid_1.customAlphabet)(ALPHABET, 4);
|
|
18
|
+
/**
|
|
19
|
+
* Использует алфавит 0123456789
|
|
20
|
+
* Размер 6
|
|
21
|
+
*/
|
|
22
|
+
exports.generateNumericId = (0, nanoid_1.customAlphabet)(DIGITS, 6);
|
|
23
|
+
/**
|
|
24
|
+
* Использует алфавит 0123456789
|
|
25
|
+
* Размер 4
|
|
26
|
+
*/
|
|
27
|
+
exports.generateNumericShortId = (0, nanoid_1.customAlphabet)(DIGITS, 4);
|
|
28
|
+
/**
|
|
29
|
+
* Создает функцию, которая будет создавать уникальную строку, уникальность которой основана на порядке вызова этой функции
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* generateLinearNumericId = createLinearNumericIdGenerator(6);
|
|
34
|
+
* generateLinearNumericId() // '000000'
|
|
35
|
+
* generateLinearNumericId() // '000001'
|
|
36
|
+
* ...
|
|
37
|
+
* generateLinearNumericId() // '999999'
|
|
38
|
+
* generateLinearNumericId() // '1000000'
|
|
39
|
+
* ...
|
|
40
|
+
* generateLinearNumericId() // '9999999'
|
|
41
|
+
* generateLinearNumericId() // '10000000'
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @param size размер
|
|
45
|
+
* @returns {()=>string}
|
|
46
|
+
*/
|
|
47
|
+
const createLinearNumericIdGenerator = (size = 9) => {
|
|
48
|
+
let lastCount = 0;
|
|
49
|
+
return () => {
|
|
50
|
+
return (lastCount++).toString().padStart(size, '0');
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
exports.createLinearNumericIdGenerator = createLinearNumericIdGenerator;
|
|
54
|
+
/**
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* generateLinearNumericId() // '000000000'
|
|
59
|
+
* generateLinearNumericId() // '000000001'
|
|
60
|
+
* ...
|
|
61
|
+
* generateLinearNumericId() // '999999999'
|
|
62
|
+
* generateLinearNumericId() // '1000000000'
|
|
63
|
+
* ...
|
|
64
|
+
* generateLinearNumericId() // '9999999999'
|
|
65
|
+
* generateLinearNumericId() // '10000000000'
|
|
66
|
+
* ```
|
|
67
|
+
*
|
|
68
|
+
*/
|
|
69
|
+
exports.generateLinearNumericId = (0, exports.createLinearNumericIdGenerator)();
|
|
70
|
+
/**
|
|
71
|
+
* Is not recommended to use.
|
|
72
|
+
*
|
|
73
|
+
* Generates execution stack based pseudo-id (just sliced string from error stack)
|
|
74
|
+
*/
|
|
75
|
+
const generateStackBasedId = () => new Error().stack.split('\n').slice(1, 4).join('');
|
|
76
|
+
exports.generateStackBasedId = generateStackBasedId;
|
package/id.d.cts
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Использует алфавит abcdefghijklmnopqrstuvwxyz0123456789
|
|
3
|
+
* Размер 6
|
|
4
|
+
*/
|
|
5
|
+
export declare const generateId: (size?: number) => string;
|
|
6
|
+
/**
|
|
7
|
+
* Использует алфавит abcdefghijklmnopqrstuvwxyz0123456789
|
|
8
|
+
* Размер 4
|
|
9
|
+
*/
|
|
10
|
+
export declare const generateShortId: (size?: number) => string;
|
|
11
|
+
/**
|
|
12
|
+
* Использует алфавит 0123456789
|
|
13
|
+
* Размер 6
|
|
14
|
+
*/
|
|
15
|
+
export declare const generateNumericId: (size?: number) => string;
|
|
16
|
+
/**
|
|
17
|
+
* Использует алфавит 0123456789
|
|
18
|
+
* Размер 4
|
|
19
|
+
*/
|
|
20
|
+
export declare const generateNumericShortId: (size?: number) => string;
|
|
21
|
+
/**
|
|
22
|
+
* Создает функцию, которая будет создавать уникальную строку, уникальность которой основана на порядке вызова этой функции
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* generateLinearNumericId = createLinearNumericIdGenerator(6);
|
|
27
|
+
* generateLinearNumericId() // '000000'
|
|
28
|
+
* generateLinearNumericId() // '000001'
|
|
29
|
+
* ...
|
|
30
|
+
* generateLinearNumericId() // '999999'
|
|
31
|
+
* generateLinearNumericId() // '1000000'
|
|
32
|
+
* ...
|
|
33
|
+
* generateLinearNumericId() // '9999999'
|
|
34
|
+
* generateLinearNumericId() // '10000000'
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @param size размер
|
|
38
|
+
* @returns {()=>string}
|
|
39
|
+
*/
|
|
40
|
+
export declare const createLinearNumericIdGenerator: (size?: number) => () => string;
|
|
41
|
+
/**
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* generateLinearNumericId() // '000000000'
|
|
46
|
+
* generateLinearNumericId() // '000000001'
|
|
47
|
+
* ...
|
|
48
|
+
* generateLinearNumericId() // '999999999'
|
|
49
|
+
* generateLinearNumericId() // '1000000000'
|
|
50
|
+
* ...
|
|
51
|
+
* generateLinearNumericId() // '9999999999'
|
|
52
|
+
* generateLinearNumericId() // '10000000000'
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
*/
|
|
56
|
+
export declare const generateLinearNumericId: () => string;
|
|
57
|
+
/**
|
|
58
|
+
* Is not recommended to use.
|
|
59
|
+
*
|
|
60
|
+
* Generates execution stack based pseudo-id (just sliced string from error stack)
|
|
61
|
+
*/
|
|
62
|
+
export declare const generateStackBasedId: () => string;
|
|
63
|
+
//# sourceMappingURL=id.d.ts.map
|
package/id.d.cts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../src/id.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,eAAO,MAAM,UAAU,2BAA8B,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,eAAe,2BAA8B,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,iBAAiB,2BAA4B,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,sBAAsB,2BAA4B,CAAC;AAEhE;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,8BAA8B,GAAI,OAAM,MAAU,iBAK9D,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,uBAAuB,cAAmC,CAAC;AAExE;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,cACoB,CAAC"}
|
package/id.d.ts
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Использует алфавит abcdefghijklmnopqrstuvwxyz0123456789
|
|
3
|
+
* Размер 6
|
|
4
|
+
*/
|
|
5
|
+
export declare const generateId: (size?: number) => string;
|
|
6
|
+
/**
|
|
7
|
+
* Использует алфавит abcdefghijklmnopqrstuvwxyz0123456789
|
|
8
|
+
* Размер 4
|
|
9
|
+
*/
|
|
10
|
+
export declare const generateShortId: (size?: number) => string;
|
|
11
|
+
/**
|
|
12
|
+
* Использует алфавит 0123456789
|
|
13
|
+
* Размер 6
|
|
14
|
+
*/
|
|
15
|
+
export declare const generateNumericId: (size?: number) => string;
|
|
16
|
+
/**
|
|
17
|
+
* Использует алфавит 0123456789
|
|
18
|
+
* Размер 4
|
|
19
|
+
*/
|
|
20
|
+
export declare const generateNumericShortId: (size?: number) => string;
|
|
21
|
+
/**
|
|
22
|
+
* Создает функцию, которая будет создавать уникальную строку, уникальность которой основана на порядке вызова этой функции
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* generateLinearNumericId = createLinearNumericIdGenerator(6);
|
|
27
|
+
* generateLinearNumericId() // '000000'
|
|
28
|
+
* generateLinearNumericId() // '000001'
|
|
29
|
+
* ...
|
|
30
|
+
* generateLinearNumericId() // '999999'
|
|
31
|
+
* generateLinearNumericId() // '1000000'
|
|
32
|
+
* ...
|
|
33
|
+
* generateLinearNumericId() // '9999999'
|
|
34
|
+
* generateLinearNumericId() // '10000000'
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @param size размер
|
|
38
|
+
* @returns {()=>string}
|
|
39
|
+
*/
|
|
40
|
+
export declare const createLinearNumericIdGenerator: (size?: number) => () => string;
|
|
41
|
+
/**
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* generateLinearNumericId() // '000000000'
|
|
46
|
+
* generateLinearNumericId() // '000000001'
|
|
47
|
+
* ...
|
|
48
|
+
* generateLinearNumericId() // '999999999'
|
|
49
|
+
* generateLinearNumericId() // '1000000000'
|
|
50
|
+
* ...
|
|
51
|
+
* generateLinearNumericId() // '9999999999'
|
|
52
|
+
* generateLinearNumericId() // '10000000000'
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
*/
|
|
56
|
+
export declare const generateLinearNumericId: () => string;
|
|
57
|
+
/**
|
|
58
|
+
* Is not recommended to use.
|
|
59
|
+
*
|
|
60
|
+
* Generates execution stack based pseudo-id (just sliced string from error stack)
|
|
61
|
+
*/
|
|
62
|
+
export declare const generateStackBasedId: () => string;
|
|
63
|
+
//# sourceMappingURL=id.d.ts.map
|
package/id.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../src/id.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,eAAO,MAAM,UAAU,2BAA8B,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,eAAe,2BAA8B,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,iBAAiB,2BAA4B,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,sBAAsB,2BAA4B,CAAC;AAEhE;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,8BAA8B,GAAI,OAAM,MAAU,iBAK9D,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,uBAAuB,cAAmC,CAAC;AAExE;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,cACoB,CAAC"}
|
package/{src/id.ts → id.js}
RENAMED
|
@@ -1,34 +1,27 @@
|
|
|
1
1
|
import { customAlphabet } from 'nanoid';
|
|
2
|
-
|
|
3
2
|
const DIGITS = '0123456789';
|
|
4
3
|
const LATIN_CHARS = 'abcdefghijklmnopqrstuvwxyz';
|
|
5
|
-
|
|
6
4
|
const ALPHABET = `${LATIN_CHARS}${DIGITS}`;
|
|
7
|
-
|
|
8
5
|
/**
|
|
9
6
|
* Использует алфавит abcdefghijklmnopqrstuvwxyz0123456789
|
|
10
7
|
* Размер 6
|
|
11
8
|
*/
|
|
12
9
|
export const generateId = customAlphabet(ALPHABET, 6);
|
|
13
|
-
|
|
14
10
|
/**
|
|
15
11
|
* Использует алфавит abcdefghijklmnopqrstuvwxyz0123456789
|
|
16
12
|
* Размер 4
|
|
17
13
|
*/
|
|
18
14
|
export const generateShortId = customAlphabet(ALPHABET, 4);
|
|
19
|
-
|
|
20
15
|
/**
|
|
21
16
|
* Использует алфавит 0123456789
|
|
22
17
|
* Размер 6
|
|
23
18
|
*/
|
|
24
19
|
export const generateNumericId = customAlphabet(DIGITS, 6);
|
|
25
|
-
|
|
26
20
|
/**
|
|
27
21
|
* Использует алфавит 0123456789
|
|
28
22
|
* Размер 4
|
|
29
23
|
*/
|
|
30
24
|
export const generateNumericShortId = customAlphabet(DIGITS, 4);
|
|
31
|
-
|
|
32
25
|
/**
|
|
33
26
|
* Создает функцию, которая будет создавать уникальную строку, уникальность которой основана на порядке вызова этой функции
|
|
34
27
|
*
|
|
@@ -48,13 +41,12 @@ export const generateNumericShortId = customAlphabet(DIGITS, 4);
|
|
|
48
41
|
* @param size размер
|
|
49
42
|
* @returns {()=>string}
|
|
50
43
|
*/
|
|
51
|
-
export const createLinearNumericIdGenerator = (size
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
44
|
+
export const createLinearNumericIdGenerator = (size = 9) => {
|
|
45
|
+
let lastCount = 0;
|
|
46
|
+
return () => {
|
|
47
|
+
return (lastCount++).toString().padStart(size, '0');
|
|
48
|
+
};
|
|
56
49
|
};
|
|
57
|
-
|
|
58
50
|
/**
|
|
59
51
|
*
|
|
60
52
|
* @example
|
|
@@ -71,11 +63,9 @@ export const createLinearNumericIdGenerator = (size: number = 9) => {
|
|
|
71
63
|
*
|
|
72
64
|
*/
|
|
73
65
|
export const generateLinearNumericId = createLinearNumericIdGenerator();
|
|
74
|
-
|
|
75
66
|
/**
|
|
76
67
|
* Is not recommended to use.
|
|
77
68
|
*
|
|
78
69
|
* Generates execution stack based pseudo-id (just sliced string from error stack)
|
|
79
70
|
*/
|
|
80
|
-
export const generateStackBasedId = () =>
|
|
81
|
-
new Error().stack!.split('\n').slice(1, 4).join('');
|
|
71
|
+
export const generateStackBasedId = () => new Error().stack.split('\n').slice(1, 4).join('');
|
package/imports.cjs
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.unpackAsyncModule = exports.fetchLazyModule = void 0;
|
|
4
|
+
const async_js_1 = require("./async.cjs");
|
|
5
|
+
/**
|
|
6
|
+
* Функция ленивой загрузки модуля, с возможностью вызова доп. попыток
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* fetchLazyModule(() => import("./test.ts"), 3) // начнет загрузку test.ts
|
|
10
|
+
* // Произошла ошибка загрузки test.ts, тогда fetchLazyModule повторно вызовет fn()
|
|
11
|
+
* // Вызывать будет столько раз сколько указано attempts (по умолчанию 3)
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
const fetchLazyModule = async (fetchModule, attempts = 3, delay = 1000) => {
|
|
15
|
+
const attemptsArray = Array.from({
|
|
16
|
+
length: attempts,
|
|
17
|
+
}).fill(fetchModule);
|
|
18
|
+
let lastError = null;
|
|
19
|
+
for await (const attempt of attemptsArray) {
|
|
20
|
+
try {
|
|
21
|
+
if (lastError !== null) {
|
|
22
|
+
await (0, async_js_1.sleep)(delay);
|
|
23
|
+
}
|
|
24
|
+
return await attempt();
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
lastError = error;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
throw lastError;
|
|
31
|
+
};
|
|
32
|
+
exports.fetchLazyModule = fetchLazyModule;
|
|
33
|
+
const unpackAsyncModule = async (maybeModule) => {
|
|
34
|
+
if (maybeModule instanceof Promise) {
|
|
35
|
+
const data = (await maybeModule);
|
|
36
|
+
if (data.default) {
|
|
37
|
+
return data.default;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
return data;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return maybeModule;
|
|
44
|
+
};
|
|
45
|
+
exports.unpackAsyncModule = unpackAsyncModule;
|
package/imports.d.cts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Функция ленивой загрузки модуля, с возможностью вызова доп. попыток
|
|
3
|
+
* @example
|
|
4
|
+
* ```ts
|
|
5
|
+
* fetchLazyModule(() => import("./test.ts"), 3) // начнет загрузку test.ts
|
|
6
|
+
* // Произошла ошибка загрузки test.ts, тогда fetchLazyModule повторно вызовет fn()
|
|
7
|
+
* // Вызывать будет столько раз сколько указано attempts (по умолчанию 3)
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
export declare const fetchLazyModule: <T>(fetchModule: () => Promise<T>, attempts?: number, delay?: number) => Promise<T>;
|
|
11
|
+
export type PackedAsyncModule<T> = Promise<T | {
|
|
12
|
+
default: T;
|
|
13
|
+
}>;
|
|
14
|
+
export declare const unpackAsyncModule: <T>(maybeModule: T | PackedAsyncModule<T>) => Promise<T>;
|
|
15
|
+
//# sourceMappingURL=imports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../src/imports.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAAU,CAAC,EACrC,aAAa,MAAM,OAAO,CAAC,CAAC,CAAC,EAC7B,iBAAY,EACZ,cAAY,KACX,OAAO,CAAC,CAAC,CAkBX,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG;IAAE,OAAO,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC;AAE/D,eAAO,MAAM,iBAAiB,GAAU,CAAC,EACvC,aAAa,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,KACpC,OAAO,CAAC,CAAC,CAYX,CAAC"}
|
package/imports.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Функция ленивой загрузки модуля, с возможностью вызова доп. попыток
|
|
3
|
+
* @example
|
|
4
|
+
* ```ts
|
|
5
|
+
* fetchLazyModule(() => import("./test.ts"), 3) // начнет загрузку test.ts
|
|
6
|
+
* // Произошла ошибка загрузки test.ts, тогда fetchLazyModule повторно вызовет fn()
|
|
7
|
+
* // Вызывать будет столько раз сколько указано attempts (по умолчанию 3)
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
export declare const fetchLazyModule: <T>(fetchModule: () => Promise<T>, attempts?: number, delay?: number) => Promise<T>;
|
|
11
|
+
export type PackedAsyncModule<T> = Promise<T | {
|
|
12
|
+
default: T;
|
|
13
|
+
}>;
|
|
14
|
+
export declare const unpackAsyncModule: <T>(maybeModule: T | PackedAsyncModule<T>) => Promise<T>;
|
|
15
|
+
//# sourceMappingURL=imports.d.ts.map
|
package/imports.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../src/imports.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,GAAU,CAAC,EACrC,aAAa,MAAM,OAAO,CAAC,CAAC,CAAC,EAC7B,iBAAY,EACZ,cAAY,KACX,OAAO,CAAC,CAAC,CAkBX,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG;IAAE,OAAO,EAAE,CAAC,CAAA;CAAE,CAAC,CAAC;AAE/D,eAAO,MAAM,iBAAiB,GAAU,CAAC,EACvC,aAAa,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,KACpC,OAAO,CAAC,CAAC,CAYX,CAAC"}
|
package/imports.js
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { sleep } from "./async.js";
|
|
2
|
+
/**
|
|
3
|
+
* Функция ленивой загрузки модуля, с возможностью вызова доп. попыток
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* fetchLazyModule(() => import("./test.ts"), 3) // начнет загрузку test.ts
|
|
7
|
+
* // Произошла ошибка загрузки test.ts, тогда fetchLazyModule повторно вызовет fn()
|
|
8
|
+
* // Вызывать будет столько раз сколько указано attempts (по умолчанию 3)
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
export const fetchLazyModule = async (fetchModule, attempts = 3, delay = 1000) => {
|
|
12
|
+
const attemptsArray = Array.from({
|
|
13
|
+
length: attempts,
|
|
14
|
+
}).fill(fetchModule);
|
|
15
|
+
let lastError = null;
|
|
16
|
+
for await (const attempt of attemptsArray) {
|
|
17
|
+
try {
|
|
18
|
+
if (lastError !== null) {
|
|
19
|
+
await sleep(delay);
|
|
20
|
+
}
|
|
21
|
+
return await attempt();
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
lastError = error;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
throw lastError;
|
|
28
|
+
};
|
|
29
|
+
export const unpackAsyncModule = async (maybeModule) => {
|
|
30
|
+
if (maybeModule instanceof Promise) {
|
|
31
|
+
const data = (await maybeModule);
|
|
32
|
+
if (data.default) {
|
|
33
|
+
return data.default;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
return data;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return maybeModule;
|
|
40
|
+
};
|
package/math.cjs
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.percentFrom = void 0;
|
|
4
|
+
exports.degToRad = degToRad;
|
|
5
|
+
exports.radToDeg = radToDeg;
|
|
6
|
+
function degToRad(deg) {
|
|
7
|
+
return deg * (Math.PI / 180);
|
|
8
|
+
}
|
|
9
|
+
function radToDeg(rad) {
|
|
10
|
+
return rad * (180 / Math.PI);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Получить процент от числа
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* percentFrom(500, 2000) // 25
|
|
17
|
+
* percentFrom(1000, 2000) // 50
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
const percentFrom = (value, from) => {
|
|
21
|
+
return ((value ?? 0) / (from ?? 0)) * 100 || 0;
|
|
22
|
+
};
|
|
23
|
+
exports.percentFrom = percentFrom;
|
package/math.d.cts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Maybe } from "./utils/types.cjs";
|
|
2
|
+
export declare function degToRad(deg: number): number;
|
|
3
|
+
export declare function radToDeg(rad: number): number;
|
|
4
|
+
/**
|
|
5
|
+
* Получить процент от числа
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* percentFrom(500, 2000) // 25
|
|
9
|
+
* percentFrom(1000, 2000) // 50
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export declare const percentFrom: (value: Maybe<number>, from: Maybe<number>) => number;
|
|
13
|
+
//# sourceMappingURL=math.d.ts.map
|
package/math.d.cts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,0BAAyB;AAE9C,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,UAEnC;AACD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,UAEnC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,MAAM,CAAC,WAEpE,CAAC"}
|
package/math.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Maybe } from "./utils/types.js";
|
|
2
|
+
export declare function degToRad(deg: number): number;
|
|
3
|
+
export declare function radToDeg(rad: number): number;
|
|
4
|
+
/**
|
|
5
|
+
* Получить процент от числа
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* percentFrom(500, 2000) // 25
|
|
9
|
+
* percentFrom(1000, 2000) // 50
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export declare const percentFrom: (value: Maybe<number>, from: Maybe<number>) => number;
|
|
13
|
+
//# sourceMappingURL=math.d.ts.map
|
package/math.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,yBAAyB;AAE9C,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,UAEnC;AACD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,UAEnC;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,MAAM,CAAC,WAEpE,CAAC"}
|
package/math.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export function degToRad(deg) {
|
|
2
|
+
return deg * (Math.PI / 180);
|
|
3
|
+
}
|
|
4
|
+
export function radToDeg(rad) {
|
|
5
|
+
return rad * (180 / Math.PI);
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Получить процент от числа
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* percentFrom(500, 2000) // 25
|
|
12
|
+
* percentFrom(1000, 2000) // 50
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export const percentFrom = (value, from) => {
|
|
16
|
+
return ((value ?? 0) / (from ?? 0)) * 100 || 0;
|
|
17
|
+
};
|