@uploadcare/file-uploader 0.50.1-alpha.2
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/LICENSE +21 -0
- package/README.md +165 -0
- package/abstract/ActivityBlock.d.ts +68 -0
- package/abstract/ActivityBlock.d.ts.map +1 -0
- package/abstract/ActivityBlock.js +207 -0
- package/abstract/Block.d.ts +99 -0
- package/abstract/Block.d.ts.map +1 -0
- package/abstract/Block.js +349 -0
- package/abstract/CTX.d.ts +31 -0
- package/abstract/CTX.d.ts.map +1 -0
- package/abstract/CTX.js +38 -0
- package/abstract/LocaleManager.d.ts +38 -0
- package/abstract/LocaleManager.d.ts.map +1 -0
- package/abstract/LocaleManager.js +127 -0
- package/abstract/SecureUploadsManager.d.ts +22 -0
- package/abstract/SecureUploadsManager.d.ts.map +1 -0
- package/abstract/SecureUploadsManager.js +87 -0
- package/abstract/SolutionBlock.d.ts +23 -0
- package/abstract/SolutionBlock.d.ts.map +1 -0
- package/abstract/SolutionBlock.js +23 -0
- package/abstract/TypedCollection.d.ts +127 -0
- package/abstract/TypedCollection.d.ts.map +1 -0
- package/abstract/TypedCollection.js +245 -0
- package/abstract/TypedData.d.ts +47 -0
- package/abstract/TypedData.d.ts.map +1 -0
- package/abstract/TypedData.js +77 -0
- package/abstract/UploaderBlock.d.ts +114 -0
- package/abstract/UploaderBlock.d.ts.map +1 -0
- package/abstract/UploaderBlock.js +444 -0
- package/abstract/UploaderPublicApi.d.ts +90 -0
- package/abstract/UploaderPublicApi.d.ts.map +1 -0
- package/abstract/UploaderPublicApi.js +316 -0
- package/abstract/ValidationManager.d.ts +31 -0
- package/abstract/ValidationManager.d.ts.map +1 -0
- package/abstract/ValidationManager.js +162 -0
- package/abstract/a11y.d.ts +20 -0
- package/abstract/a11y.d.ts.map +1 -0
- package/abstract/a11y.js +118 -0
- package/abstract/buildOutputCollectionState.d.ts +8 -0
- package/abstract/buildOutputCollectionState.d.ts.map +1 -0
- package/abstract/buildOutputCollectionState.js +136 -0
- package/abstract/connectBlocksFrom.d.ts +8 -0
- package/abstract/connectBlocksFrom.d.ts.map +1 -0
- package/abstract/connectBlocksFrom.js +34 -0
- package/abstract/l10nProcessor.d.ts +7 -0
- package/abstract/l10nProcessor.d.ts.map +1 -0
- package/abstract/l10nProcessor.js +80 -0
- package/abstract/localeRegistry.d.ts +5 -0
- package/abstract/localeRegistry.d.ts.map +1 -0
- package/abstract/localeRegistry.js +63 -0
- package/abstract/registerBlocks.d.ts +5 -0
- package/abstract/registerBlocks.d.ts.map +1 -0
- package/abstract/registerBlocks.js +31 -0
- package/abstract/sharedConfigKey.d.ts +2 -0
- package/abstract/sharedConfigKey.d.ts.map +1 -0
- package/abstract/sharedConfigKey.js +8 -0
- package/abstract/uploadEntrySchema.d.ts +64 -0
- package/abstract/uploadEntrySchema.d.ts.map +1 -0
- package/abstract/uploadEntrySchema.js +138 -0
- package/blocks/ActivityHeader/ActivityHeader.d.ts +4 -0
- package/blocks/ActivityHeader/ActivityHeader.d.ts.map +1 -0
- package/blocks/ActivityHeader/ActivityHeader.js +3 -0
- package/blocks/ActivityHeader/activity-header.css +14 -0
- package/blocks/CameraSource/CameraSource.d.ts +39 -0
- package/blocks/CameraSource/CameraSource.d.ts.map +1 -0
- package/blocks/CameraSource/CameraSource.js +253 -0
- package/blocks/CameraSource/camera-source.css +107 -0
- package/blocks/CloudImageEditor/index.css +1 -0
- package/blocks/CloudImageEditor/index.d.ts +2 -0
- package/blocks/CloudImageEditor/index.d.ts.map +1 -0
- package/blocks/CloudImageEditor/index.js +1 -0
- package/blocks/CloudImageEditor/src/CloudImageEditorBlock.d.ts +58 -0
- package/blocks/CloudImageEditor/src/CloudImageEditorBlock.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/CloudImageEditorBlock.js +228 -0
- package/blocks/CloudImageEditor/src/CropFrame.d.ts +146 -0
- package/blocks/CloudImageEditor/src/CropFrame.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/CropFrame.js +511 -0
- package/blocks/CloudImageEditor/src/EditorButtonControl.d.ts +10 -0
- package/blocks/CloudImageEditor/src/EditorButtonControl.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/EditorButtonControl.js +44 -0
- package/blocks/CloudImageEditor/src/EditorCropButtonControl.d.ts +6 -0
- package/blocks/CloudImageEditor/src/EditorCropButtonControl.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/EditorCropButtonControl.js +39 -0
- package/blocks/CloudImageEditor/src/EditorFilterControl.d.ts +18 -0
- package/blocks/CloudImageEditor/src/EditorFilterControl.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/EditorFilterControl.js +155 -0
- package/blocks/CloudImageEditor/src/EditorImageCropper.d.ts +106 -0
- package/blocks/CloudImageEditor/src/EditorImageCropper.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/EditorImageCropper.js +551 -0
- package/blocks/CloudImageEditor/src/EditorImageFader.d.ts +132 -0
- package/blocks/CloudImageEditor/src/EditorImageFader.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/EditorImageFader.js +454 -0
- package/blocks/CloudImageEditor/src/EditorOperationControl.d.ts +9 -0
- package/blocks/CloudImageEditor/src/EditorOperationControl.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/EditorOperationControl.js +39 -0
- package/blocks/CloudImageEditor/src/EditorScroller.d.ts +7 -0
- package/blocks/CloudImageEditor/src/EditorScroller.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/EditorScroller.js +33 -0
- package/blocks/CloudImageEditor/src/EditorSlider.d.ts +24 -0
- package/blocks/CloudImageEditor/src/EditorSlider.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/EditorSlider.js +118 -0
- package/blocks/CloudImageEditor/src/EditorToolbar.d.ts +104 -0
- package/blocks/CloudImageEditor/src/EditorToolbar.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/EditorToolbar.js +441 -0
- package/blocks/CloudImageEditor/src/crop-utils.d.ts +123 -0
- package/blocks/CloudImageEditor/src/crop-utils.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/crop-utils.js +729 -0
- package/blocks/CloudImageEditor/src/cropper-constants.d.ts +11 -0
- package/blocks/CloudImageEditor/src/cropper-constants.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/cropper-constants.js +11 -0
- package/blocks/CloudImageEditor/src/css/common.css +1157 -0
- package/blocks/CloudImageEditor/src/css/icons.css +12 -0
- package/blocks/CloudImageEditor/src/css/index.css +2 -0
- package/blocks/CloudImageEditor/src/elements/button/BtnUi.d.ts +20 -0
- package/blocks/CloudImageEditor/src/elements/button/BtnUi.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/elements/button/BtnUi.js +90 -0
- package/blocks/CloudImageEditor/src/elements/line-loader/LineLoaderUi.d.ts +11 -0
- package/blocks/CloudImageEditor/src/elements/line-loader/LineLoaderUi.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/elements/line-loader/LineLoaderUi.js +52 -0
- package/blocks/CloudImageEditor/src/elements/presence-toggle/PresenceToggle.d.ts +17 -0
- package/blocks/CloudImageEditor/src/elements/presence-toggle/PresenceToggle.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/elements/presence-toggle/PresenceToggle.js +71 -0
- package/blocks/CloudImageEditor/src/elements/slider/SliderUi.d.ts +16 -0
- package/blocks/CloudImageEditor/src/elements/slider/SliderUi.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/elements/slider/SliderUi.js +178 -0
- package/blocks/CloudImageEditor/src/index.d.ts +15 -0
- package/blocks/CloudImageEditor/src/index.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/index.js +14 -0
- package/blocks/CloudImageEditor/src/lib/FocusVisible.d.ts +15 -0
- package/blocks/CloudImageEditor/src/lib/FocusVisible.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/lib/FocusVisible.js +33 -0
- package/blocks/CloudImageEditor/src/lib/applyFocusVisiblePolyfill.d.ts +10 -0
- package/blocks/CloudImageEditor/src/lib/applyFocusVisiblePolyfill.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/lib/applyFocusVisiblePolyfill.js +256 -0
- package/blocks/CloudImageEditor/src/lib/classNames.d.ts +3 -0
- package/blocks/CloudImageEditor/src/lib/classNames.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/lib/classNames.js +34 -0
- package/blocks/CloudImageEditor/src/lib/linspace.d.ts +8 -0
- package/blocks/CloudImageEditor/src/lib/linspace.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/lib/linspace.js +14 -0
- package/blocks/CloudImageEditor/src/lib/parseCropPreset.d.ts +2 -0
- package/blocks/CloudImageEditor/src/lib/parseCropPreset.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/lib/parseCropPreset.js +14 -0
- package/blocks/CloudImageEditor/src/lib/parseTabs.d.ts +2 -0
- package/blocks/CloudImageEditor/src/lib/parseTabs.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/lib/parseTabs.js +14 -0
- package/blocks/CloudImageEditor/src/lib/pick.d.ts +7 -0
- package/blocks/CloudImageEditor/src/lib/pick.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/lib/pick.js +15 -0
- package/blocks/CloudImageEditor/src/lib/preloadImage.d.ts +11 -0
- package/blocks/CloudImageEditor/src/lib/preloadImage.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/lib/preloadImage.js +38 -0
- package/blocks/CloudImageEditor/src/lib/transformationUtils.d.ts +14 -0
- package/blocks/CloudImageEditor/src/lib/transformationUtils.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/lib/transformationUtils.js +167 -0
- package/blocks/CloudImageEditor/src/state.d.ts +38 -0
- package/blocks/CloudImageEditor/src/state.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/state.js +92 -0
- package/blocks/CloudImageEditor/src/svg-sprite.d.ts +3 -0
- package/blocks/CloudImageEditor/src/svg-sprite.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/svg-sprite.js +1 -0
- package/blocks/CloudImageEditor/src/template.d.ts +2 -0
- package/blocks/CloudImageEditor/src/template.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/template.js +36 -0
- package/blocks/CloudImageEditor/src/toolbar-constants.d.ts +58 -0
- package/blocks/CloudImageEditor/src/toolbar-constants.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/toolbar-constants.js +114 -0
- package/blocks/CloudImageEditor/src/types.d.ts +58 -0
- package/blocks/CloudImageEditor/src/types.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/types.js +61 -0
- package/blocks/CloudImageEditor/src/util.d.ts +2 -0
- package/blocks/CloudImageEditor/src/util.d.ts.map +1 -0
- package/blocks/CloudImageEditor/src/util.js +19 -0
- package/blocks/CloudImageEditorActivity/CloudImageEditorActivity.d.ts +31 -0
- package/blocks/CloudImageEditorActivity/CloudImageEditorActivity.d.ts.map +1 -0
- package/blocks/CloudImageEditorActivity/CloudImageEditorActivity.js +113 -0
- package/blocks/CloudImageEditorActivity/index.css +13 -0
- package/blocks/CloudImageEditorActivity/test.d.ts +2 -0
- package/blocks/CloudImageEditorActivity/test.d.ts.map +1 -0
- package/blocks/CloudImageEditorActivity/test.js +9 -0
- package/blocks/Config/Config.d.ts +67 -0
- package/blocks/Config/Config.d.ts.map +1 -0
- package/blocks/Config/Config.js +246 -0
- package/blocks/Config/config.css +3 -0
- package/blocks/Config/initialConfig.d.ts +6 -0
- package/blocks/Config/initialConfig.d.ts.map +1 -0
- package/blocks/Config/initialConfig.js +69 -0
- package/blocks/Config/normalizeConfigValue.d.ts +3 -0
- package/blocks/Config/normalizeConfigValue.d.ts.map +1 -0
- package/blocks/Config/normalizeConfigValue.js +177 -0
- package/blocks/Copyright/Copyright.d.ts +4 -0
- package/blocks/Copyright/Copyright.d.ts.map +1 -0
- package/blocks/Copyright/Copyright.js +24 -0
- package/blocks/Copyright/copyright.css +31 -0
- package/blocks/DropArea/DropArea.d.ts +49 -0
- package/blocks/DropArea/DropArea.d.ts.map +1 -0
- package/blocks/DropArea/DropArea.js +273 -0
- package/blocks/DropArea/addDropzone.d.ts +21 -0
- package/blocks/DropArea/addDropzone.d.ts.map +1 -0
- package/blocks/DropArea/addDropzone.js +137 -0
- package/blocks/DropArea/drop-area.css +188 -0
- package/blocks/DropArea/getDropItems.d.ts +16 -0
- package/blocks/DropArea/getDropItems.d.ts.map +1 -0
- package/blocks/DropArea/getDropItems.js +167 -0
- package/blocks/ExternalSource/ExternalSource.d.ts +98 -0
- package/blocks/ExternalSource/ExternalSource.d.ts.map +1 -0
- package/blocks/ExternalSource/ExternalSource.js +268 -0
- package/blocks/ExternalSource/buildStyles.d.ts +27 -0
- package/blocks/ExternalSource/buildStyles.d.ts.map +1 -0
- package/blocks/ExternalSource/buildStyles.js +133 -0
- package/blocks/ExternalSource/external-source.css +65 -0
- package/blocks/ExternalSource/messages.d.ts +3 -0
- package/blocks/ExternalSource/messages.d.ts.map +1 -0
- package/blocks/ExternalSource/messages.js +35 -0
- package/blocks/ExternalSource/query-string.d.ts +8 -0
- package/blocks/ExternalSource/query-string.d.ts.map +1 -0
- package/blocks/ExternalSource/query-string.js +14 -0
- package/blocks/FileItem/FileItem.d.ts +97 -0
- package/blocks/FileItem/FileItem.d.ts.map +1 -0
- package/blocks/FileItem/FileItem.js +460 -0
- package/blocks/FileItem/file-item.css +140 -0
- package/blocks/FormInput/FormInput.d.ts +7 -0
- package/blocks/FormInput/FormInput.d.ts.map +1 -0
- package/blocks/FormInput/FormInput.js +92 -0
- package/blocks/Icon/Icon.d.ts +12 -0
- package/blocks/Icon/Icon.d.ts.map +1 -0
- package/blocks/Icon/Icon.js +44 -0
- package/blocks/Icon/icon.css +12 -0
- package/blocks/Img/Img.d.ts +4 -0
- package/blocks/Img/Img.d.ts.map +1 -0
- package/blocks/Img/Img.js +21 -0
- package/blocks/Img/ImgBase.d.ts +80 -0
- package/blocks/Img/ImgBase.d.ts.map +1 -0
- package/blocks/Img/ImgBase.js +408 -0
- package/blocks/Img/ImgConfig.d.ts +31 -0
- package/blocks/Img/ImgConfig.d.ts.map +1 -0
- package/blocks/Img/ImgConfig.js +102 -0
- package/blocks/Img/configurations.d.ts +12 -0
- package/blocks/Img/configurations.d.ts.map +1 -0
- package/blocks/Img/configurations.js +14 -0
- package/blocks/Img/props-map.d.ts +29 -0
- package/blocks/Img/props-map.d.ts.map +1 -0
- package/blocks/Img/props-map.js +34 -0
- package/blocks/Img/test.css +16 -0
- package/blocks/Img/utils/parseObjectToString.d.ts +2 -0
- package/blocks/Img/utils/parseObjectToString.d.ts.map +1 -0
- package/blocks/Img/utils/parseObjectToString.js +13 -0
- package/blocks/Modal/Modal.d.ts +24 -0
- package/blocks/Modal/Modal.d.ts.map +1 -0
- package/blocks/Modal/Modal.js +116 -0
- package/blocks/Modal/modal.css +92 -0
- package/blocks/ProgressBar/ProgressBar.d.ts +10 -0
- package/blocks/ProgressBar/ProgressBar.d.ts.map +1 -0
- package/blocks/ProgressBar/ProgressBar.js +38 -0
- package/blocks/ProgressBar/progress-bar.css +25 -0
- package/blocks/ProgressBarCommon/ProgressBarCommon.d.ts +8 -0
- package/blocks/ProgressBarCommon/ProgressBarCommon.d.ts.map +1 -0
- package/blocks/ProgressBarCommon/ProgressBarCommon.js +44 -0
- package/blocks/ProgressBarCommon/progress-bar-common.css +16 -0
- package/blocks/Range/Range.d.ts +16 -0
- package/blocks/Range/Range.d.ts.map +1 -0
- package/blocks/Range/Range.js +44 -0
- package/blocks/Range/range.css +65 -0
- package/blocks/Select/Select.d.ts +9 -0
- package/blocks/Select/Select.d.ts.map +1 -0
- package/blocks/Select/Select.js +35 -0
- package/blocks/Select/select.css +22 -0
- package/blocks/SimpleBtn/SimpleBtn.d.ts +26 -0
- package/blocks/SimpleBtn/SimpleBtn.d.ts.map +1 -0
- package/blocks/SimpleBtn/SimpleBtn.js +54 -0
- package/blocks/SimpleBtn/simple-btn.css +64 -0
- package/blocks/SourceBtn/SourceBtn.d.ts +58 -0
- package/blocks/SourceBtn/SourceBtn.d.ts.map +1 -0
- package/blocks/SourceBtn/SourceBtn.js +145 -0
- package/blocks/SourceBtn/source-btn.css +45 -0
- package/blocks/SourceList/SourceList.d.ts +4 -0
- package/blocks/SourceList/SourceList.d.ts.map +1 -0
- package/blocks/SourceList/SourceList.js +20 -0
- package/blocks/StartFrom/StartFrom.d.ts +7 -0
- package/blocks/StartFrom/StartFrom.d.ts.map +1 -0
- package/blocks/StartFrom/StartFrom.js +14 -0
- package/blocks/StartFrom/start-from.css +32 -0
- package/blocks/UploadCtxProvider/EventEmitter.d.ts +107 -0
- package/blocks/UploadCtxProvider/EventEmitter.d.ts.map +1 -0
- package/blocks/UploadCtxProvider/EventEmitter.js +132 -0
- package/blocks/UploadCtxProvider/UploadCtxProvider.d.ts +35 -0
- package/blocks/UploadCtxProvider/UploadCtxProvider.d.ts.map +1 -0
- package/blocks/UploadCtxProvider/UploadCtxProvider.js +45 -0
- package/blocks/UploadList/UploadList.d.ts +59 -0
- package/blocks/UploadList/UploadList.d.ts.map +1 -0
- package/blocks/UploadList/UploadList.js +237 -0
- package/blocks/UploadList/upload-list.css +74 -0
- package/blocks/UrlSource/UrlSource.d.ts +9 -0
- package/blocks/UrlSource/UrlSource.d.ts.map +1 -0
- package/blocks/UrlSource/UrlSource.js +61 -0
- package/blocks/UrlSource/url-source.css +24 -0
- package/blocks/svg-backgrounds/svg-backgrounds.d.ts +17 -0
- package/blocks/svg-backgrounds/svg-backgrounds.d.ts.map +1 -0
- package/blocks/svg-backgrounds/svg-backgrounds.js +45 -0
- package/blocks/themes/uc-basic/common.css +116 -0
- package/blocks/themes/uc-basic/config.css +4 -0
- package/blocks/themes/uc-basic/index.css +32 -0
- package/blocks/themes/uc-basic/svg-sprite.d.ts +3 -0
- package/blocks/themes/uc-basic/svg-sprite.d.ts.map +1 -0
- package/blocks/themes/uc-basic/svg-sprite.js +1 -0
- package/blocks/themes/uc-basic/theme.css +232 -0
- package/blocks/utils/UploadSource.d.ts +9 -0
- package/blocks/utils/UploadSource.d.ts.map +1 -0
- package/blocks/utils/UploadSource.js +8 -0
- package/blocks/utils/abilities.d.ts +2 -0
- package/blocks/utils/abilities.d.ts.map +1 -0
- package/blocks/utils/abilities.js +3 -0
- package/blocks/utils/comma-separated.d.ts +3 -0
- package/blocks/utils/comma-separated.d.ts.map +1 -0
- package/blocks/utils/comma-separated.js +19 -0
- package/blocks/utils/debounce.d.ts +10 -0
- package/blocks/utils/debounce.d.ts.map +1 -0
- package/blocks/utils/debounce.js +22 -0
- package/blocks/utils/resizeImage.d.ts +6 -0
- package/blocks/utils/resizeImage.d.ts.map +1 -0
- package/blocks/utils/resizeImage.js +40 -0
- package/blocks/utils/throttle.d.ts +4 -0
- package/blocks/utils/throttle.d.ts.map +1 -0
- package/blocks/utils/throttle.js +45 -0
- package/blocks/utils/userAgent.d.ts +6 -0
- package/blocks/utils/userAgent.d.ts.map +1 -0
- package/blocks/utils/userAgent.js +14 -0
- package/env.d.ts +4 -0
- package/env.d.ts.map +1 -0
- package/env.js +3 -0
- package/index.d.ts +39 -0
- package/index.d.ts.map +1 -0
- package/index.js +51 -0
- package/index.ssr.d.ts +961 -0
- package/index.ssr.d.ts.map +1 -0
- package/index.ssr.js +1461 -0
- package/locales/file-uploader/ar.d.ts +114 -0
- package/locales/file-uploader/ar.d.ts.map +1 -0
- package/locales/file-uploader/ar.js +113 -0
- package/locales/file-uploader/az.d.ts +106 -0
- package/locales/file-uploader/az.d.ts.map +1 -0
- package/locales/file-uploader/az.js +105 -0
- package/locales/file-uploader/ca.d.ts +108 -0
- package/locales/file-uploader/ca.d.ts.map +1 -0
- package/locales/file-uploader/ca.js +108 -0
- package/locales/file-uploader/cs.d.ts +110 -0
- package/locales/file-uploader/cs.d.ts.map +1 -0
- package/locales/file-uploader/cs.js +110 -0
- package/locales/file-uploader/da.d.ts +106 -0
- package/locales/file-uploader/da.d.ts.map +1 -0
- package/locales/file-uploader/da.js +106 -0
- package/locales/file-uploader/de.d.ts +106 -0
- package/locales/file-uploader/de.d.ts.map +1 -0
- package/locales/file-uploader/de.js +107 -0
- package/locales/file-uploader/el.d.ts +106 -0
- package/locales/file-uploader/el.d.ts.map +1 -0
- package/locales/file-uploader/el.js +107 -0
- package/locales/file-uploader/en.d.ts +106 -0
- package/locales/file-uploader/en.d.ts.map +1 -0
- package/locales/file-uploader/en.js +105 -0
- package/locales/file-uploader/es.d.ts +108 -0
- package/locales/file-uploader/es.d.ts.map +1 -0
- package/locales/file-uploader/es.js +108 -0
- package/locales/file-uploader/et.d.ts +106 -0
- package/locales/file-uploader/et.d.ts.map +1 -0
- package/locales/file-uploader/et.js +105 -0
- package/locales/file-uploader/fr.d.ts +108 -0
- package/locales/file-uploader/fr.d.ts.map +1 -0
- package/locales/file-uploader/fr.js +108 -0
- package/locales/file-uploader/he.d.ts +108 -0
- package/locales/file-uploader/he.d.ts.map +1 -0
- package/locales/file-uploader/he.js +107 -0
- package/locales/file-uploader/hy.d.ts +106 -0
- package/locales/file-uploader/hy.d.ts.map +1 -0
- package/locales/file-uploader/hy.js +105 -0
- package/locales/file-uploader/is.d.ts +106 -0
- package/locales/file-uploader/is.d.ts.map +1 -0
- package/locales/file-uploader/is.js +105 -0
- package/locales/file-uploader/it.d.ts +108 -0
- package/locales/file-uploader/it.d.ts.map +1 -0
- package/locales/file-uploader/it.js +108 -0
- package/locales/file-uploader/ja.d.ts +106 -0
- package/locales/file-uploader/ja.d.ts.map +1 -0
- package/locales/file-uploader/ja.js +105 -0
- package/locales/file-uploader/ka.d.ts +106 -0
- package/locales/file-uploader/ka.d.ts.map +1 -0
- package/locales/file-uploader/ka.js +105 -0
- package/locales/file-uploader/kk.d.ts +106 -0
- package/locales/file-uploader/kk.d.ts.map +1 -0
- package/locales/file-uploader/kk.js +105 -0
- package/locales/file-uploader/ko.d.ts +106 -0
- package/locales/file-uploader/ko.d.ts.map +1 -0
- package/locales/file-uploader/ko.js +104 -0
- package/locales/file-uploader/lv.d.ts +108 -0
- package/locales/file-uploader/lv.d.ts.map +1 -0
- package/locales/file-uploader/lv.js +107 -0
- package/locales/file-uploader/nb.d.ts +106 -0
- package/locales/file-uploader/nb.d.ts.map +1 -0
- package/locales/file-uploader/nb.js +105 -0
- package/locales/file-uploader/nl.d.ts +106 -0
- package/locales/file-uploader/nl.d.ts.map +1 -0
- package/locales/file-uploader/nl.js +106 -0
- package/locales/file-uploader/pl.d.ts +110 -0
- package/locales/file-uploader/pl.d.ts.map +1 -0
- package/locales/file-uploader/pl.js +109 -0
- package/locales/file-uploader/pt.d.ts +108 -0
- package/locales/file-uploader/pt.d.ts.map +1 -0
- package/locales/file-uploader/pt.js +108 -0
- package/locales/file-uploader/ro.d.ts +108 -0
- package/locales/file-uploader/ro.d.ts.map +1 -0
- package/locales/file-uploader/ro.js +108 -0
- package/locales/file-uploader/ru.d.ts +110 -0
- package/locales/file-uploader/ru.d.ts.map +1 -0
- package/locales/file-uploader/ru.js +109 -0
- package/locales/file-uploader/sk.d.ts +110 -0
- package/locales/file-uploader/sk.d.ts.map +1 -0
- package/locales/file-uploader/sk.js +109 -0
- package/locales/file-uploader/sr.d.ts +108 -0
- package/locales/file-uploader/sr.d.ts.map +1 -0
- package/locales/file-uploader/sr.js +107 -0
- package/locales/file-uploader/sv.d.ts +106 -0
- package/locales/file-uploader/sv.d.ts.map +1 -0
- package/locales/file-uploader/sv.js +105 -0
- package/locales/file-uploader/tr.d.ts +106 -0
- package/locales/file-uploader/tr.d.ts.map +1 -0
- package/locales/file-uploader/tr.js +105 -0
- package/locales/file-uploader/uk.d.ts +110 -0
- package/locales/file-uploader/uk.d.ts.map +1 -0
- package/locales/file-uploader/uk.js +109 -0
- package/locales/file-uploader/vi.d.ts +106 -0
- package/locales/file-uploader/vi.d.ts.map +1 -0
- package/locales/file-uploader/vi.js +105 -0
- package/locales/file-uploader/zh-TW.d.ts +106 -0
- package/locales/file-uploader/zh-TW.d.ts.map +1 -0
- package/locales/file-uploader/zh-TW.js +105 -0
- package/locales/file-uploader/zh.d.ts +106 -0
- package/locales/file-uploader/zh.d.ts.map +1 -0
- package/locales/file-uploader/zh.js +105 -0
- package/package.json +142 -0
- package/solutions/adaptive-image/index.d.ts +3 -0
- package/solutions/adaptive-image/index.d.ts.map +1 -0
- package/solutions/adaptive-image/index.js +5 -0
- package/solutions/cloud-image-editor/CloudImageEditor.d.ts +4 -0
- package/solutions/cloud-image-editor/CloudImageEditor.d.ts.map +1 -0
- package/solutions/cloud-image-editor/CloudImageEditor.js +12 -0
- package/solutions/cloud-image-editor/index.css +2 -0
- package/solutions/cloud-image-editor/index.d.ts +6 -0
- package/solutions/cloud-image-editor/index.d.ts.map +1 -0
- package/solutions/cloud-image-editor/index.js +11 -0
- package/solutions/file-uploader/inline/FileUploaderInline.d.ts +27 -0
- package/solutions/file-uploader/inline/FileUploaderInline.d.ts.map +1 -0
- package/solutions/file-uploader/inline/FileUploaderInline.js +75 -0
- package/solutions/file-uploader/inline/index.css +54 -0
- package/solutions/file-uploader/inline/index.d.ts +2 -0
- package/solutions/file-uploader/inline/index.d.ts.map +1 -0
- package/solutions/file-uploader/inline/index.js +1 -0
- package/solutions/file-uploader/minimal/FileUploaderMinimal.d.ts +7 -0
- package/solutions/file-uploader/minimal/FileUploaderMinimal.d.ts.map +1 -0
- package/solutions/file-uploader/minimal/FileUploaderMinimal.js +46 -0
- package/solutions/file-uploader/minimal/index.css +137 -0
- package/solutions/file-uploader/minimal/index.d.ts +14 -0
- package/solutions/file-uploader/minimal/index.d.ts.map +1 -0
- package/solutions/file-uploader/minimal/index.js +13 -0
- package/solutions/file-uploader/regular/FileUploaderRegular.d.ts +26 -0
- package/solutions/file-uploader/regular/FileUploaderRegular.d.ts.map +1 -0
- package/solutions/file-uploader/regular/FileUploaderRegular.js +66 -0
- package/solutions/file-uploader/regular/index.css +1 -0
- package/solutions/file-uploader/regular/index.d.ts +2 -0
- package/solutions/file-uploader/regular/index.d.ts.map +1 -0
- package/solutions/file-uploader/regular/index.js +1 -0
- package/types/events.d.ts +5 -0
- package/types/events.js +1 -0
- package/types/exported.d.ts +295 -0
- package/types/exported.js +1 -0
- package/types/global.d.ts +8 -0
- package/types/https.d.ts +1 -0
- package/types/index.d.ts +2 -0
- package/types/index.js +3 -0
- package/types/jsx.d.ts +63 -0
- package/types/jsx.js +1 -0
- package/utils/WindowHeightTracker.d.ts +24 -0
- package/utils/WindowHeightTracker.d.ts.map +1 -0
- package/utils/WindowHeightTracker.js +51 -0
- package/utils/cdn-utils.d.ts +59 -0
- package/utils/cdn-utils.d.ts.map +1 -0
- package/utils/cdn-utils.js +201 -0
- package/utils/cdn-utils.test.d.ts +2 -0
- package/utils/cdn-utils.test.d.ts.map +1 -0
- package/utils/cdn-utils.test.js +227 -0
- package/utils/delay.d.ts +2 -0
- package/utils/delay.d.ts.map +1 -0
- package/utils/delay.js +4 -0
- package/utils/fileTypes.d.ts +8 -0
- package/utils/fileTypes.d.ts.map +1 -0
- package/utils/fileTypes.js +95 -0
- package/utils/fileTypes.test.d.ts +2 -0
- package/utils/fileTypes.test.d.ts.map +1 -0
- package/utils/fileTypes.test.js +89 -0
- package/utils/getLocaleDirection.d.ts +2 -0
- package/utils/getLocaleDirection.d.ts.map +1 -0
- package/utils/getLocaleDirection.js +18 -0
- package/utils/getPluralForm.d.ts +3 -0
- package/utils/getPluralForm.d.ts.map +1 -0
- package/utils/getPluralForm.js +13 -0
- package/utils/getPluralForm.test.d.ts +2 -0
- package/utils/getPluralForm.test.d.ts.map +1 -0
- package/utils/getPluralForm.test.js +16 -0
- package/utils/ifRef.d.ts +7 -0
- package/utils/ifRef.d.ts.map +1 -0
- package/utils/ifRef.js +9 -0
- package/utils/isSecureTokenExpired.d.ts +4 -0
- package/utils/isSecureTokenExpired.d.ts.map +1 -0
- package/utils/isSecureTokenExpired.js +17 -0
- package/utils/isSecureTokenExpired.test.d.ts +2 -0
- package/utils/isSecureTokenExpired.test.d.ts.map +1 -0
- package/utils/isSecureTokenExpired.test.js +33 -0
- package/utils/memoize.d.ts +2 -0
- package/utils/memoize.d.ts.map +1 -0
- package/utils/memoize.js +23 -0
- package/utils/memoize.test.d.ts +2 -0
- package/utils/memoize.test.d.ts.map +1 -0
- package/utils/memoize.test.js +38 -0
- package/utils/mixinClass.d.ts +8 -0
- package/utils/mixinClass.d.ts.map +1 -0
- package/utils/mixinClass.js +18 -0
- package/utils/parseCdnUrl.d.ts +9 -0
- package/utils/parseCdnUrl.d.ts.map +1 -0
- package/utils/parseCdnUrl.js +20 -0
- package/utils/parseCdnUrl.test.d.ts +2 -0
- package/utils/parseCdnUrl.test.d.ts.map +1 -0
- package/utils/parseCdnUrl.test.js +78 -0
- package/utils/parseShrink.d.ts +5 -0
- package/utils/parseShrink.d.ts.map +1 -0
- package/utils/parseShrink.js +34 -0
- package/utils/parseShrink.test.d.ts +2 -0
- package/utils/parseShrink.test.d.ts.map +1 -0
- package/utils/parseShrink.test.js +26 -0
- package/utils/prettyBytes.d.ts +11 -0
- package/utils/prettyBytes.d.ts.map +1 -0
- package/utils/prettyBytes.js +64 -0
- package/utils/prettyBytes.test.d.ts +2 -0
- package/utils/prettyBytes.test.d.ts.map +1 -0
- package/utils/prettyBytes.test.js +99 -0
- package/utils/stringToArray.d.ts +2 -0
- package/utils/stringToArray.d.ts.map +1 -0
- package/utils/stringToArray.js +11 -0
- package/utils/stringToArray.test.d.ts +2 -0
- package/utils/stringToArray.test.d.ts.map +1 -0
- package/utils/stringToArray.test.js +20 -0
- package/utils/template-utils.d.ts +40 -0
- package/utils/template-utils.d.ts.map +1 -0
- package/utils/template-utils.js +50 -0
- package/utils/template-utils.test.d.ts +2 -0
- package/utils/template-utils.test.d.ts.map +1 -0
- package/utils/template-utils.test.js +56 -0
- package/utils/toKebabCase.d.ts +3 -0
- package/utils/toKebabCase.d.ts.map +1 -0
- package/utils/toKebabCase.js +15 -0
- package/utils/toKebabCase.test.d.ts +2 -0
- package/utils/toKebabCase.test.d.ts.map +1 -0
- package/utils/toKebabCase.test.js +11 -0
- package/utils/transparentPixelSrc.d.ts +2 -0
- package/utils/transparentPixelSrc.d.ts.map +1 -0
- package/utils/transparentPixelSrc.js +2 -0
- package/utils/uniqueArray.d.ts +2 -0
- package/utils/uniqueArray.d.ts.map +1 -0
- package/utils/uniqueArray.js +8 -0
- package/utils/uniqueArray.test.d.ts +2 -0
- package/utils/uniqueArray.test.d.ts.map +1 -0
- package/utils/uniqueArray.test.js +8 -0
- package/utils/validators/collection/index.d.ts +3 -0
- package/utils/validators/collection/index.d.ts.map +1 -0
- package/utils/validators/collection/index.js +2 -0
- package/utils/validators/collection/validateCollectionUploadError.d.ts +3 -0
- package/utils/validators/collection/validateCollectionUploadError.d.ts.map +1 -0
- package/utils/validators/collection/validateCollectionUploadError.js +11 -0
- package/utils/validators/collection/validateMultiple.d.ts +3 -0
- package/utils/validators/collection/validateMultiple.d.ts.map +1 -0
- package/utils/validators/collection/validateMultiple.js +43 -0
- package/utils/validators/file/index.d.ts +5 -0
- package/utils/validators/file/index.d.ts.map +1 -0
- package/utils/validators/file/index.js +4 -0
- package/utils/validators/file/validateFileType.d.ts +3 -0
- package/utils/validators/file/validateFileType.d.ts.map +1 -0
- package/utils/validators/file/validateFileType.js +30 -0
- package/utils/validators/file/validateIsImage.d.ts +3 -0
- package/utils/validators/file/validateIsImage.d.ts.map +1 -0
- package/utils/validators/file/validateIsImage.js +25 -0
- package/utils/validators/file/validateMaxSizeLimit.d.ts +3 -0
- package/utils/validators/file/validateMaxSizeLimit.d.ts.map +1 -0
- package/utils/validators/file/validateMaxSizeLimit.js +15 -0
- package/utils/validators/file/validateUploadError.d.ts +3 -0
- package/utils/validators/file/validateUploadError.d.ts.map +1 -0
- package/utils/validators/file/validateUploadError.js +48 -0
- package/utils/waitForAttribute.d.ts +8 -0
- package/utils/waitForAttribute.d.ts.map +1 -0
- package/utils/waitForAttribute.js +43 -0
- package/utils/waitForAttribute.test.d.ts +2 -0
- package/utils/waitForAttribute.test.d.ts.map +1 -0
- package/utils/waitForAttribute.test.js +78 -0
- package/utils/warnOnce.d.ts +3 -0
- package/utils/warnOnce.d.ts.map +1 -0
- package/utils/warnOnce.js +11 -0
- package/utils/wildcardRegexp.d.ts +2 -0
- package/utils/wildcardRegexp.d.ts.map +1 -0
- package/utils/wildcardRegexp.js +17 -0
- package/utils/wildcardRegexp.test.d.ts +2 -0
- package/utils/wildcardRegexp.test.d.ts.map +1 -0
- package/utils/wildcardRegexp.test.js +19 -0
- package/web/blocks.iife.min.js +29 -0
- package/web/blocks.min.js +29 -0
- package/web/lr-basic.min.css +1 -0
- package/web/lr-cloud-image-editor.min.css +1 -0
- package/web/lr-cloud-image-editor.min.js +29 -0
- package/web/lr-file-uploader-inline.min.css +1 -0
- package/web/lr-file-uploader-inline.min.js +29 -0
- package/web/lr-file-uploader-minimal.min.css +1 -0
- package/web/lr-file-uploader-minimal.min.js +28 -0
- package/web/lr-file-uploader-regular.min.css +1 -0
- package/web/lr-file-uploader-regular.min.js +29 -0
- package/web/lr-img.min.js +28 -0
- package/web/uc-basic.min.css +1 -0
- package/web/uc-cloud-image-editor.min.css +1 -0
- package/web/uc-cloud-image-editor.min.js +29 -0
- package/web/uc-file-uploader-inline.min.css +1 -0
- package/web/uc-file-uploader-inline.min.js +29 -0
- package/web/uc-file-uploader-minimal.min.css +1 -0
- package/web/uc-file-uploader-minimal.min.js +28 -0
- package/web/uc-file-uploader-regular.min.css +1 -0
- package/web/uc-file-uploader-regular.min.js +29 -0
- package/web/uc-img.min.js +28 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import { stringToArray } from './stringToArray.js';
|
|
3
|
+
|
|
4
|
+
export const IMAGE_ACCEPT_LIST = [
|
|
5
|
+
'image/*',
|
|
6
|
+
'image/heif',
|
|
7
|
+
'image/heif-sequence',
|
|
8
|
+
'image/heic',
|
|
9
|
+
'image/heic-sequence',
|
|
10
|
+
'image/avif',
|
|
11
|
+
'image/avif-sequence',
|
|
12
|
+
'.heif',
|
|
13
|
+
'.heifs',
|
|
14
|
+
'.heic',
|
|
15
|
+
'.heics',
|
|
16
|
+
'.avif',
|
|
17
|
+
'.avifs',
|
|
18
|
+
];
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @param {string[]} [fileTypes]
|
|
22
|
+
* @returns {string[]}
|
|
23
|
+
*/
|
|
24
|
+
export const mergeFileTypes = (fileTypes) => {
|
|
25
|
+
if (!fileTypes) {
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
return fileTypes
|
|
29
|
+
.filter((item) => typeof item === 'string')
|
|
30
|
+
.map((str) => stringToArray(str))
|
|
31
|
+
.flat();
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @param {String} mimeType
|
|
36
|
+
* @param {String[]} allowedFileTypes
|
|
37
|
+
* @returns {Boolean}
|
|
38
|
+
*/
|
|
39
|
+
export const matchMimeType = (mimeType, allowedFileTypes) => {
|
|
40
|
+
return allowedFileTypes.some((type) => {
|
|
41
|
+
if (type.endsWith('*')) {
|
|
42
|
+
type = type.replace('*', '');
|
|
43
|
+
return mimeType.startsWith(type);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return mimeType === type;
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* @param {String} fileName
|
|
52
|
+
* @param {String[]} allowedFileTypes
|
|
53
|
+
* @returns {Boolean}
|
|
54
|
+
*/
|
|
55
|
+
export const matchExtension = (fileName, allowedFileTypes) => {
|
|
56
|
+
return allowedFileTypes.some((type) => {
|
|
57
|
+
if (!type.startsWith('.')) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return fileName.toLowerCase().endsWith(type.toLowerCase());
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* @param {File | Blob} file
|
|
67
|
+
* @returns {Boolean}
|
|
68
|
+
*/
|
|
69
|
+
export const fileIsImage = (file) => {
|
|
70
|
+
let type = file?.type;
|
|
71
|
+
if (!type) {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
return matchMimeType(type, IMAGE_ACCEPT_LIST);
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Checks if the given data is a Blob.
|
|
79
|
+
*
|
|
80
|
+
* @param {unknown} data - The data to check.
|
|
81
|
+
* @returns {boolean} - True if the data is a Blob, false otherwise.
|
|
82
|
+
*/
|
|
83
|
+
export const isBlob = (data) => {
|
|
84
|
+
return typeof Blob !== 'undefined' && data instanceof Blob;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Checks if the given data is a File.
|
|
89
|
+
*
|
|
90
|
+
* @param {unknown} data - The data to check.
|
|
91
|
+
* @returns {boolean} - True if the data is a File, false otherwise.
|
|
92
|
+
*/
|
|
93
|
+
export const isFile = (data) => {
|
|
94
|
+
return typeof File !== 'undefined' && data instanceof File;
|
|
95
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fileTypes.test.d.ts","sourceRoot":"","sources":["fileTypes.test.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { expect } from '@esm-bundle/chai';
|
|
2
|
+
import { mergeFileTypes, matchMimeType, fileIsImage, matchExtension, isBlob, isFile } from './fileTypes';
|
|
3
|
+
|
|
4
|
+
describe('mergeFileTypes', () => {
|
|
5
|
+
it('should join input strings with comma', () => {
|
|
6
|
+
expect(mergeFileTypes(['text/html,text/plain', 'image/*,image/heic', 'text/markdown'])).to.eql([
|
|
7
|
+
'text/html',
|
|
8
|
+
'text/plain',
|
|
9
|
+
'image/*',
|
|
10
|
+
'image/heic',
|
|
11
|
+
'text/markdown',
|
|
12
|
+
]);
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
it('should skip empty values', () => {
|
|
16
|
+
expect(mergeFileTypes()).to.eql([]);
|
|
17
|
+
expect(mergeFileTypes(['text/html', '', undefined, 'text/plain'])).to.eql(['text/html', 'text/plain']);
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it('should trim values', () => {
|
|
21
|
+
expect(mergeFileTypes([' text/html , text/plain ', ' image/*, image/heic ', ' text/markdown '])).to.eql([
|
|
22
|
+
'text/html',
|
|
23
|
+
'text/plain',
|
|
24
|
+
'image/*',
|
|
25
|
+
'image/heic',
|
|
26
|
+
'text/markdown',
|
|
27
|
+
]);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
describe('matchMimeType', () => {
|
|
32
|
+
it('should return true if file type is exactly matched', () => {
|
|
33
|
+
expect(matchMimeType('image/jpeg', ['image/jpeg'])).to.be.true;
|
|
34
|
+
});
|
|
35
|
+
it('should return true if file type is wildcard matched', () => {
|
|
36
|
+
expect(matchMimeType('image/jpeg', ['image/*'])).to.be.true;
|
|
37
|
+
});
|
|
38
|
+
it('should return false if file type is not matched', () => {
|
|
39
|
+
expect(matchMimeType('text/plain', ['image/*'])).to.be.false;
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
describe('matchExtension', () => {
|
|
44
|
+
it('should return true if file extension is exactly matched', () => {
|
|
45
|
+
expect(matchExtension('image.jpeg', ['.jpeg'])).to.be.true;
|
|
46
|
+
expect(matchExtension('image.avif', ['.avif'])).to.be.true;
|
|
47
|
+
});
|
|
48
|
+
it('should return false if file extension is not matched', () => {
|
|
49
|
+
expect(matchExtension('image.jpeg', ['.png'])).to.be.false;
|
|
50
|
+
expect(matchExtension('image.avifs', ['.avif'])).to.be.false;
|
|
51
|
+
});
|
|
52
|
+
it('should be case insensitive', () => {
|
|
53
|
+
expect(matchExtension('image.PNG', ['.png'])).to.be.true;
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
describe('fileIsImage', () => {
|
|
58
|
+
it('should return true if file is image', () => {
|
|
59
|
+
const file = new File([''], 'name', { type: 'image/jpeg' });
|
|
60
|
+
expect(fileIsImage(file)).to.be.true;
|
|
61
|
+
});
|
|
62
|
+
it('should return false if file is not image', () => {
|
|
63
|
+
const file = new File([''], 'name', { type: 'text/plain' });
|
|
64
|
+
expect(fileIsImage(file)).to.be.false;
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
describe('isBlob', () => {
|
|
69
|
+
it('should return true if Blob is passed', () => {
|
|
70
|
+
expect(isBlob(new Blob(['']))).to.be.true;
|
|
71
|
+
});
|
|
72
|
+
it('should return true if File is passed', () => {
|
|
73
|
+
expect(isBlob(new File([''], 'test.txt'))).to.be.true;
|
|
74
|
+
});
|
|
75
|
+
it('should return false if something else passed', () => {
|
|
76
|
+
expect(isBlob('test')).to.be.false;
|
|
77
|
+
expect(isBlob({ uri: 'test' })).to.be.false;
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
describe('isFile', () => {
|
|
81
|
+
it('should return true if File is passed', () => {
|
|
82
|
+
expect(isFile(new File([''], 'test.txt'))).to.be.true;
|
|
83
|
+
});
|
|
84
|
+
it('should return false if something else passed', () => {
|
|
85
|
+
expect(isFile(new Blob(['']))).to.be.false;
|
|
86
|
+
expect(isFile('test')).to.be.false;
|
|
87
|
+
expect(isFile({ uri: 'test' })).to.be.false;
|
|
88
|
+
});
|
|
89
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getLocaleDirection.d.ts","sourceRoot":"","sources":["getLocaleDirection.js"],"names":[],"mappings":"AAEO,6CADK,MAAM,UAgBjB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
/** @param {string} localeId */
|
|
3
|
+
export const getLocaleDirection = (localeId) => {
|
|
4
|
+
/**
|
|
5
|
+
* @type {typeof Intl.Locale & {
|
|
6
|
+
* textInfo?: { direction: string };
|
|
7
|
+
* getTextInfo?: () => { direction: string };
|
|
8
|
+
* }}
|
|
9
|
+
*/
|
|
10
|
+
const locale = /** @type {any} */ (new Intl.Locale(localeId));
|
|
11
|
+
let direction = 'ltr';
|
|
12
|
+
if (typeof locale.getTextInfo === 'function' && locale.getTextInfo().direction) {
|
|
13
|
+
direction = locale.getTextInfo().direction;
|
|
14
|
+
} else if ('textInfo' in locale && locale.textInfo?.direction) {
|
|
15
|
+
direction = locale.textInfo.direction;
|
|
16
|
+
}
|
|
17
|
+
return direction;
|
|
18
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPluralForm.d.ts","sourceRoot":"","sources":["getPluralForm.js"],"names":[],"mappings":"AASO,sCAJI,MAAM,SACN,MAAM,GACJ,UAAU,CAKtB;yBAVa,KAAK,cAAc"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
3
|
+
/** @typedef {Intl.LDMLPluralRule} PluralForm */
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @param {string} locale
|
|
7
|
+
* @param {number} count
|
|
8
|
+
* @returns {PluralForm}
|
|
9
|
+
*/
|
|
10
|
+
export const getPluralForm = (locale, count) => {
|
|
11
|
+
const pluralForm = new Intl.PluralRules(locale).select(count);
|
|
12
|
+
return pluralForm;
|
|
13
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPluralForm.test.d.ts","sourceRoot":"","sources":["getPluralForm.test.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { getPluralForm } from './getPluralForm';
|
|
2
|
+
import { expect } from '@esm-bundle/chai';
|
|
3
|
+
|
|
4
|
+
describe('getPluralForm', () => {
|
|
5
|
+
it('should return selected form for es-US', () => {
|
|
6
|
+
expect(getPluralForm('en-US', 1)).to.equal('one');
|
|
7
|
+
expect(getPluralForm('en-US', 2)).to.equal('other');
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
it('should return selected form for ru-RU', () => {
|
|
11
|
+
expect(getPluralForm('ru-RU', 1)).to.equal('one');
|
|
12
|
+
expect(getPluralForm('ru-RU', 2)).to.equal('few');
|
|
13
|
+
expect(getPluralForm('ru-RU', 5)).to.equal('many');
|
|
14
|
+
expect(getPluralForm('ru-RU', 1.5)).to.equal('other');
|
|
15
|
+
});
|
|
16
|
+
});
|
package/utils/ifRef.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ifRef.d.ts","sourceRoot":"","sources":["ifRef.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,0CAGC"}
|
package/utils/ifRef.js
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This will check if the execution environment is a short code snippet, and not the complete HTML-document
|
|
3
|
+
*
|
|
4
|
+
* @param {Function} cb
|
|
5
|
+
*/
|
|
6
|
+
export function ifRef(cb) {
|
|
7
|
+
// @ts-ignore
|
|
8
|
+
typeof window.__IS_REF__ === 'boolean' && !!window.__IS_REF__ && cb();
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isSecureTokenExpired.d.ts","sourceRoot":"","sources":["isSecureTokenExpired.js"],"names":[],"mappings":"AAUO,kDAHI,OAAO,UAAU,EAAE,+BAA+B,iBAClD;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,WAQhC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** @param {number} ms */
|
|
2
|
+
const msToUnixTimestamp = (ms) => Math.floor(ms / 1000);
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Check if secure token is expired. It uses a threshold of 10 seconds by default. i.e. if the token is not expired yet
|
|
6
|
+
* but will expire in the next 10 seconds, it will return false.
|
|
7
|
+
*
|
|
8
|
+
* @param {import('../types').SecureUploadsSignatureAndExpire} secureToken
|
|
9
|
+
* @param {{ threshold?: number }} options
|
|
10
|
+
*/
|
|
11
|
+
export const isSecureTokenExpired = (secureToken, { threshold }) => {
|
|
12
|
+
const { secureExpire } = secureToken;
|
|
13
|
+
const nowUnix = msToUnixTimestamp(Date.now());
|
|
14
|
+
const expireUnix = Number(secureExpire);
|
|
15
|
+
const thresholdUnix = msToUnixTimestamp(threshold);
|
|
16
|
+
return nowUnix + thresholdUnix >= expireUnix;
|
|
17
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isSecureTokenExpired.test.d.ts","sourceRoot":"","sources":["isSecureTokenExpired.test.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { isSecureTokenExpired } from './isSecureTokenExpired';
|
|
2
|
+
import { expect } from '@esm-bundle/chai';
|
|
3
|
+
import * as sinon from 'sinon';
|
|
4
|
+
|
|
5
|
+
const DATE_NOW = 60 * 1000;
|
|
6
|
+
const THRESHOLD = 10 * 1000;
|
|
7
|
+
|
|
8
|
+
describe('isSecureTokenExpired', () => {
|
|
9
|
+
let clock;
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
clock = sinon.useFakeTimers(DATE_NOW);
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
afterEach(() => {
|
|
15
|
+
clock.restore();
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('should return true if the token is expired', () => {
|
|
19
|
+
expect(isSecureTokenExpired({ secureExpire: '0', secureSignature: '' }, { threshold: THRESHOLD })).to.equal(true);
|
|
20
|
+
expect(isSecureTokenExpired({ secureExpire: '59', secureSignature: '' }, { threshold: THRESHOLD })).to.equal(true);
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
it('should return true if the token will expire in the next 10 seconds', () => {
|
|
24
|
+
expect(isSecureTokenExpired({ secureExpire: '60', secureSignature: '' }, { threshold: THRESHOLD })).to.equal(true);
|
|
25
|
+
expect(isSecureTokenExpired({ secureExpire: '61', secureSignature: '' }, { threshold: THRESHOLD })).to.equal(true);
|
|
26
|
+
expect(isSecureTokenExpired({ secureExpire: '70', secureSignature: '' }, { threshold: THRESHOLD })).to.equal(true);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it("should return false if the token is not expired and won't expire in next 10 seconds", () => {
|
|
30
|
+
expect(isSecureTokenExpired({ secureExpire: '71', secureSignature: '' }, { threshold: THRESHOLD })).to.equal(false);
|
|
31
|
+
expect(isSecureTokenExpired({ secureExpire: '80', secureSignature: '' }, { threshold: THRESHOLD })).to.equal(false);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memoize.d.ts","sourceRoot":"","sources":["memoize.js"],"names":[],"mappings":"AASO,uHAaN"}
|
package/utils/memoize.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @template {any[]} TArgs
|
|
5
|
+
* @template {any} TReturn
|
|
6
|
+
* @template {(...args: TArgs) => TReturn} T
|
|
7
|
+
* @param {T} fn
|
|
8
|
+
* @returns {T}
|
|
9
|
+
*/
|
|
10
|
+
export const memoize = (fn) => {
|
|
11
|
+
const cache = new Map();
|
|
12
|
+
return /** @type {T} */ (
|
|
13
|
+
(...args) => {
|
|
14
|
+
const key = JSON.stringify(args);
|
|
15
|
+
if (cache.has(key)) {
|
|
16
|
+
return cache.get(key);
|
|
17
|
+
}
|
|
18
|
+
const result = fn(...args);
|
|
19
|
+
cache.set(key, result);
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
);
|
|
23
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memoize.test.d.ts","sourceRoot":"","sources":["memoize.test.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { expect } from '@esm-bundle/chai';
|
|
2
|
+
import { memoize } from './memoize.js';
|
|
3
|
+
import { spy } from 'sinon';
|
|
4
|
+
|
|
5
|
+
describe('memoize', () => {
|
|
6
|
+
it('should cache result', () => {
|
|
7
|
+
let counter = 0;
|
|
8
|
+
const fn = spy(() => counter++);
|
|
9
|
+
const memoized = memoize(fn);
|
|
10
|
+
memoized();
|
|
11
|
+
memoized();
|
|
12
|
+
memoized();
|
|
13
|
+
expect(fn.callCount).to.equal(1);
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
it('should cache result for each set of arguments', () => {
|
|
17
|
+
const fn = spy((a, b) => {
|
|
18
|
+
return a + b;
|
|
19
|
+
});
|
|
20
|
+
const memoized = memoize(fn);
|
|
21
|
+
|
|
22
|
+
memoized(1, 2);
|
|
23
|
+
memoized(1, 2);
|
|
24
|
+
memoized(1, 2);
|
|
25
|
+
memoized(2, 3);
|
|
26
|
+
memoized(2, 3);
|
|
27
|
+
memoized(2, 3);
|
|
28
|
+
expect(fn.callCount).to.equal(2);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it('should return the same result as original function', () => {
|
|
32
|
+
const fn = (a, b) => a + b;
|
|
33
|
+
const memoized = memoize(fn);
|
|
34
|
+
expect(memoized(1, 2)).to.equal(fn(1, 2));
|
|
35
|
+
expect(memoized(2, 3)).to.equal(fn(2, 3));
|
|
36
|
+
expect(memoized(3, 4)).to.equal(fn(3, 4));
|
|
37
|
+
});
|
|
38
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type GConstructor<T> = new (...args: any[]) => T;
|
|
2
|
+
/**
|
|
3
|
+
* This is a helper to create a class type extended with the provided set of instance properties. It's useful when there
|
|
4
|
+
* are some dynamic generated properties or native overrides in the class. We're use it to define dynamic access
|
|
5
|
+
* properties and events to subscribe to.
|
|
6
|
+
*/
|
|
7
|
+
export type MixinClass<Base extends GConstructor<HTMLElement>, InstanceProperties extends Record<string, any> = {}> = (new (...args: ConstructorParameters<Base>) => InstanceProperties & InstanceType<Base>) & Omit<Base, "new">;
|
|
8
|
+
//# sourceMappingURL=mixinClass.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mixinClass.d.ts","sourceRoot":"","sources":["mixinClass.js"],"names":[],"mappings":"4CAE2B,GAAG,EAAE,KAAK,CAAC;;;;;;qIAWnB,sBAAsB,IAAI,CAAC,KAAG,kBAAkB,GAAG,aAAa,IAAI,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @template T
|
|
3
|
+
* @typedef {new (...args: any[]) => T} GConstructor
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* This is a helper to create a class type extended with the provided set of instance properties. It's useful when there
|
|
8
|
+
* are some dynamic generated properties or native overrides in the class. We're use it to define dynamic access
|
|
9
|
+
* properties and events to subscribe to.
|
|
10
|
+
*
|
|
11
|
+
* @template {GConstructor<HTMLElement>} Base
|
|
12
|
+
* @template {Record<string, any>} [InstanceProperties={}] Default is `{}`
|
|
13
|
+
* @typedef {{
|
|
14
|
+
* new (...args: ConstructorParameters<Base>): InstanceProperties & InstanceType<Base>;
|
|
15
|
+
* } & Omit<Base, 'new'>} MixinClass
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseCdnUrl.d.ts","sourceRoot":"","sources":["parseCdnUrl.js"],"names":[],"mappings":"AAIO,8CADK;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;;;;SAgB3C"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const uuidRegex = /[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/i;
|
|
2
|
+
const cdnUrlRegex = new RegExp(`^/?(${uuidRegex.source})(?:/(-/(?:[^/]+/)+)?([^/]*))?$`, 'i');
|
|
3
|
+
|
|
4
|
+
/** @param {{ url: string; cdnBase: string }} options */
|
|
5
|
+
export const parseCdnUrl = ({ url, cdnBase }) => {
|
|
6
|
+
const cdnBaseUrlObj = new URL(cdnBase);
|
|
7
|
+
const urlObj = new URL(url);
|
|
8
|
+
|
|
9
|
+
if (cdnBaseUrlObj.host !== urlObj.host) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const [, uuid, cdnUrlModifiers, filename] = cdnUrlRegex.exec(urlObj.pathname);
|
|
14
|
+
|
|
15
|
+
return {
|
|
16
|
+
uuid,
|
|
17
|
+
cdnUrlModifiers: cdnUrlModifiers || '',
|
|
18
|
+
filename: filename || null,
|
|
19
|
+
};
|
|
20
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseCdnUrl.test.d.ts","sourceRoot":"","sources":["parseCdnUrl.test.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { parseCdnUrl } from './parseCdnUrl';
|
|
2
|
+
import { expect } from '@esm-bundle/chai';
|
|
3
|
+
|
|
4
|
+
describe('parseCdnUrl', () => {
|
|
5
|
+
it('should should work', () => {
|
|
6
|
+
expect(
|
|
7
|
+
parseCdnUrl({
|
|
8
|
+
url: 'https://cdn.example.com/12345678-1234-5678-1234-567812345678/',
|
|
9
|
+
cdnBase: 'https://cdn.example.com',
|
|
10
|
+
}),
|
|
11
|
+
).to.deep.equal({
|
|
12
|
+
uuid: '12345678-1234-5678-1234-567812345678',
|
|
13
|
+
cdnUrlModifiers: '',
|
|
14
|
+
filename: null,
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
it('should parse filename', () => {
|
|
19
|
+
expect(
|
|
20
|
+
parseCdnUrl({
|
|
21
|
+
url: 'https://cdn.example.com/12345678-1234-5678-1234-567812345678/bar.jpg',
|
|
22
|
+
cdnBase: 'https://cdn.example.com',
|
|
23
|
+
}),
|
|
24
|
+
).to.deep.equal({
|
|
25
|
+
uuid: '12345678-1234-5678-1234-567812345678',
|
|
26
|
+
cdnUrlModifiers: '',
|
|
27
|
+
filename: 'bar.jpg',
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it('should parse cdn url modifiers', () => {
|
|
32
|
+
expect(
|
|
33
|
+
parseCdnUrl({
|
|
34
|
+
url: 'https://cdn.example.com/12345678-1234-5678-1234-567812345678/-/foo/bar/baz.jpg',
|
|
35
|
+
cdnBase: 'https://cdn.example.com',
|
|
36
|
+
}),
|
|
37
|
+
).to.deep.equal({
|
|
38
|
+
uuid: '12345678-1234-5678-1234-567812345678',
|
|
39
|
+
cdnUrlModifiers: '-/foo/bar/',
|
|
40
|
+
filename: 'baz.jpg',
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it('should return null if cdn base is different', () => {
|
|
45
|
+
expect(
|
|
46
|
+
parseCdnUrl({
|
|
47
|
+
url: 'https://cdn.example.com/12345678-1234-5678-1234-567812345678/',
|
|
48
|
+
cdnBase: 'https://cdn2.example.com',
|
|
49
|
+
}),
|
|
50
|
+
).to.equal(null);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
it('should strip slashes from the end cdn base before comparing', () => {
|
|
54
|
+
expect(
|
|
55
|
+
parseCdnUrl({
|
|
56
|
+
url: 'https://cdn.example.com/12345678-1234-5678-1234-567812345678/',
|
|
57
|
+
cdnBase: 'https://cdn.example.com/',
|
|
58
|
+
}),
|
|
59
|
+
).to.deep.equal({
|
|
60
|
+
uuid: '12345678-1234-5678-1234-567812345678',
|
|
61
|
+
cdnUrlModifiers: '',
|
|
62
|
+
filename: null,
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
|
|
66
|
+
it('should not compare the protocol', () => {
|
|
67
|
+
expect(
|
|
68
|
+
parseCdnUrl({
|
|
69
|
+
url: 'https://cdn.example.com/12345678-1234-5678-1234-567812345678/',
|
|
70
|
+
cdnBase: 'http://cdn.example.com',
|
|
71
|
+
}),
|
|
72
|
+
).to.deep.equal({
|
|
73
|
+
uuid: '12345678-1234-5678-1234-567812345678',
|
|
74
|
+
cdnUrlModifiers: '',
|
|
75
|
+
filename: null,
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseShrink.d.ts","sourceRoot":"","sources":["parseShrink.js"],"names":[],"mappings":"AAUO,yCAFM;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAyBzD"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/** TODO parseShrink move to package @uploadcare/image-shrink */
|
|
2
|
+
|
|
3
|
+
const MAX_SQUARE_SIDE = 16384;
|
|
4
|
+
|
|
5
|
+
const regExpShrink = /^([0-9]+)x([0-9]+)(?:\s+(\d{1,2}|100)%)?$/i;
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @param value
|
|
9
|
+
* @returns {{ size: number; quality: number | undefined }}
|
|
10
|
+
*/
|
|
11
|
+
export const parseShrink = (value) => {
|
|
12
|
+
const terms = regExpShrink.exec(value?.toLocaleLowerCase()) || [];
|
|
13
|
+
|
|
14
|
+
if (!terms.length) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const sizeShrink = terms[1] * terms[2];
|
|
19
|
+
const maxSize = MAX_SQUARE_SIDE * MAX_SQUARE_SIDE;
|
|
20
|
+
|
|
21
|
+
if (sizeShrink > maxSize) {
|
|
22
|
+
console.warn(
|
|
23
|
+
`Shrinked size can not be larger than ${Math.floor(maxSize / 1000 / 1000)}MP. ` +
|
|
24
|
+
`You have set ${terms[1]}x${terms[2]} (` +
|
|
25
|
+
`${Math.ceil(sizeShrink / 1000 / 100) / 10}MP).`,
|
|
26
|
+
);
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return {
|
|
31
|
+
quality: terms[3] ? terms[3] / 100 : undefined,
|
|
32
|
+
size: sizeShrink,
|
|
33
|
+
};
|
|
34
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseShrink.test.d.ts","sourceRoot":"","sources":["parseShrink.test.js"],"names":[],"mappings":""}
|