javascript-time-ago 2.3.11 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/README.md +1 -1
- package/bin/create-commonjs-package-json.js +11 -0
- package/bin/generate-load-all-locales.js +38 -6
- package/bin/generate-locale-messages.js +106 -21
- package/bundle/javascript-time-ago.js +1 -1
- package/bundle/javascript-time-ago.js.map +1 -1
- package/bundle/javascript-time-ago.min.js +1 -1
- package/bundle/javascript-time-ago.min.js.map +1 -1
- package/cache/index.cjs +2 -0
- package/cache/index.cjs.js +7 -0
- package/cache/index.js +1 -1
- package/cache/package.json +9 -3
- package/commonjs/LocaleDataStore.js +1 -1
- package/commonjs/LocaleDataStore.js.map +1 -1
- package/commonjs/PropTypes.js +26 -18
- package/commonjs/PropTypes.js.map +1 -1
- package/commonjs/TimeAgo.js +42 -62
- package/commonjs/TimeAgo.js.map +1 -1
- package/commonjs/TimeAgo.test.js +70 -104
- package/commonjs/TimeAgo.test.js.map +1 -1
- package/commonjs/cache.js +10 -14
- package/commonjs/cache.js.map +1 -1
- package/commonjs/cache.test.js +3 -3
- package/commonjs/cache.test.js.map +1 -1
- package/commonjs/isStyleObject.js +23 -0
- package/commonjs/isStyleObject.js.map +1 -0
- package/commonjs/isStyleObject.test.js +39 -0
- package/commonjs/isStyleObject.test.js.map +1 -0
- package/commonjs/locale.js +11 -16
- package/commonjs/locale.js.map +1 -1
- package/commonjs/locale.test.js +8 -4
- package/commonjs/locale.test.js.map +1 -1
- package/commonjs/package.json +5 -0
- package/commonjs/round.js +1 -1
- package/commonjs/round.js.map +1 -1
- package/commonjs/steps/approximate.js +3 -3
- package/commonjs/steps/approximate.js.map +1 -1
- package/commonjs/steps/approximate.test.js +5 -5
- package/commonjs/steps/approximate.test.js.map +1 -1
- package/commonjs/steps/getStep.js +10 -8
- package/commonjs/steps/getStep.js.map +1 -1
- package/commonjs/steps/getStep.test.js +16 -16
- package/commonjs/steps/getStep.test.js.map +1 -1
- package/commonjs/steps/getStepDenominator.js +2 -2
- package/commonjs/steps/getStepDenominator.js.map +1 -1
- package/commonjs/steps/getStepDenominator.test.js +4 -4
- package/commonjs/steps/getStepDenominator.test.js.map +1 -1
- package/commonjs/steps/getStepMinTime.js +5 -5
- package/commonjs/steps/getStepMinTime.js.map +1 -1
- package/commonjs/steps/getStepMinTime.test.js +4 -4
- package/commonjs/steps/getStepMinTime.test.js.map +1 -1
- package/commonjs/steps/getTimeToNextUpdate.js +8 -8
- package/commonjs/steps/getTimeToNextUpdate.js.map +1 -1
- package/commonjs/steps/getTimeToNextUpdate.test.js +18 -14
- package/commonjs/steps/getTimeToNextUpdate.test.js.map +1 -1
- package/commonjs/steps/getTimeToNextUpdateForUnit.js +3 -3
- package/commonjs/steps/getTimeToNextUpdateForUnit.js.map +1 -1
- package/commonjs/steps/getTimeToNextUpdateForUnit.test.js +8 -8
- package/commonjs/steps/getTimeToNextUpdateForUnit.test.js.map +1 -1
- package/commonjs/steps/helpers.js.map +1 -1
- package/commonjs/steps/helpers.test.js +1 -1
- package/commonjs/steps/helpers.test.js.map +1 -1
- package/commonjs/steps/index.js +24 -24
- package/commonjs/steps/index.js.map +1 -1
- package/commonjs/steps/renameLegacyProperties.js +8 -8
- package/commonjs/steps/renameLegacyProperties.js.map +1 -1
- package/commonjs/steps/renameLegacyProperties.test.js +6 -6
- package/commonjs/steps/renameLegacyProperties.test.js.map +1 -1
- package/commonjs/steps/round.js +2 -2
- package/commonjs/steps/round.js.map +1 -1
- package/commonjs/steps/round.test.js +6 -6
- package/commonjs/steps/round.test.js.map +1 -1
- package/commonjs/steps/units.js +2 -1
- package/commonjs/steps/units.js.map +1 -1
- package/commonjs/style/approximate.js +5 -5
- package/commonjs/style/approximate.js.map +1 -1
- package/commonjs/style/approximateTime.js +5 -5
- package/commonjs/style/approximateTime.js.map +1 -1
- package/commonjs/style/approximateTime.test.js +13 -18
- package/commonjs/style/approximateTime.test.js.map +1 -1
- package/commonjs/style/getStyleByName.js +29 -29
- package/commonjs/style/getStyleByName.js.map +1 -1
- package/commonjs/style/mini.js +2 -2
- package/commonjs/style/mini.js.map +1 -1
- package/commonjs/style/mini.test.js +62 -60
- package/commonjs/style/mini.test.js.map +1 -1
- package/commonjs/style/miniMinute.js +9 -7
- package/commonjs/style/miniMinute.js.map +1 -1
- package/commonjs/style/miniMinute.test.js +30 -28
- package/commonjs/style/miniMinute.test.js.map +1 -1
- package/commonjs/style/miniMinuteNow.js +9 -7
- package/commonjs/style/miniMinuteNow.js.map +1 -1
- package/commonjs/style/miniMinuteNow.test.js +30 -28
- package/commonjs/style/miniMinuteNow.test.js.map +1 -1
- package/commonjs/style/miniNow.js +9 -7
- package/commonjs/style/miniNow.js.map +1 -1
- package/commonjs/style/miniNow.test.js +30 -28
- package/commonjs/style/miniNow.test.js.map +1 -1
- package/commonjs/style/renameLegacyProperties.js +7 -5
- package/commonjs/style/renameLegacyProperties.js.map +1 -1
- package/commonjs/style/renameLegacyProperties.test.js +5 -5
- package/commonjs/style/renameLegacyProperties.test.js.map +1 -1
- package/commonjs/style/round.js +5 -5
- package/commonjs/style/round.js.map +1 -1
- package/commonjs/style/round.test.js +66 -60
- package/commonjs/style/round.test.js.map +1 -1
- package/commonjs/style/roundMinute.js +9 -7
- package/commonjs/style/roundMinute.js.map +1 -1
- package/commonjs/style/roundMinute.test.js +33 -31
- package/commonjs/style/roundMinute.test.js.map +1 -1
- package/commonjs/style/twitter.js +18 -18
- package/commonjs/style/twitter.js.map +1 -1
- package/commonjs/style/twitter.test.js +76 -74
- package/commonjs/style/twitter.test.js.map +1 -1
- package/commonjs/style/twitterFirstMinute.js +11 -9
- package/commonjs/style/twitterFirstMinute.js.map +1 -1
- package/commonjs/style/twitterFirstMinute.test.js +35 -33
- package/commonjs/style/twitterFirstMinute.test.js.map +1 -1
- package/commonjs/style/twitterMinute.js +9 -7
- package/commonjs/style/twitterMinute.js.map +1 -1
- package/commonjs/style/twitterMinute.test.js +36 -34
- package/commonjs/style/twitterMinute.test.js.map +1 -1
- package/commonjs/style/twitterMinuteNow.js +9 -7
- package/commonjs/style/twitterMinuteNow.js.map +1 -1
- package/commonjs/style/twitterMinuteNow.test.js +36 -34
- package/commonjs/style/twitterMinuteNow.test.js.map +1 -1
- package/commonjs/style/twitterNow.js +9 -7
- package/commonjs/style/twitterNow.js.map +1 -1
- package/commonjs/style/twitterNow.test.js +35 -33
- package/commonjs/style/twitterNow.test.js.map +1 -1
- package/gradation/index.cjs +2 -0
- package/gradation/index.cjs.js +7 -0
- package/gradation/index.js +1 -1
- package/gradation/package.json +9 -3
- package/index.cjs +9 -0
- package/index.cjs.js +14 -0
- package/index.d.ts +6 -0
- package/index.js +2 -2
- package/load-all-locales/index.cjs +281 -0
- package/load-all-locales/index.cjs.js +286 -0
- package/load-all-locales/index.js +563 -0
- package/load-all-locales/package.json +18 -0
- package/locale/af/index.cjs +3 -0
- package/locale/af/index.cjs.js +3 -0
- package/locale/af/index.js +1 -3
- package/locale/af/package.json +14 -0
- package/locale/am/index.cjs +3 -0
- package/locale/am/index.cjs.js +3 -0
- package/locale/am/index.js +1 -3
- package/locale/am/package.json +14 -0
- package/locale/ar/index.cjs +3 -0
- package/locale/ar/index.cjs.js +3 -0
- package/locale/ar/index.js +1 -3
- package/locale/ar/package.json +14 -0
- package/locale/ar-AE/index.cjs +3 -0
- package/locale/ar-AE/index.cjs.js +3 -0
- package/locale/ar-AE/index.js +1 -3
- package/locale/ar-AE/package.json +14 -0
- package/locale/as/index.cjs +3 -0
- package/locale/as/index.cjs.js +3 -0
- package/locale/as/index.js +1 -3
- package/locale/as/package.json +14 -0
- package/locale/ast/index.cjs +3 -0
- package/locale/ast/index.cjs.js +3 -0
- package/locale/ast/index.js +1 -3
- package/locale/ast/package.json +14 -0
- package/locale/az/index.cjs +3 -0
- package/locale/az/index.cjs.js +3 -0
- package/locale/az/index.js +1 -3
- package/locale/az/package.json +14 -0
- package/locale/be/index.cjs +3 -0
- package/locale/be/index.cjs.js +3 -0
- package/locale/be/index.js +1 -3
- package/locale/be/package.json +14 -0
- package/locale/bg/index.cjs +3 -0
- package/locale/bg/index.cjs.js +3 -0
- package/locale/bg/index.js +1 -3
- package/locale/bg/package.json +14 -0
- package/locale/bn/index.cjs +3 -0
- package/locale/bn/index.cjs.js +3 -0
- package/locale/bn/index.js +1 -3
- package/locale/bn/package.json +14 -0
- package/locale/br/index.cjs +3 -0
- package/locale/br/index.cjs.js +3 -0
- package/locale/br/index.js +1 -3
- package/locale/br/package.json +14 -0
- package/locale/brx/index.cjs +3 -0
- package/locale/brx/index.cjs.js +3 -0
- package/locale/brx/index.js +1 -0
- package/locale/brx/package.json +14 -0
- package/locale/brx.json +159 -0
- package/locale/bs/index.cjs +3 -0
- package/locale/bs/index.cjs.js +3 -0
- package/locale/bs/index.js +1 -3
- package/locale/bs/package.json +14 -0
- package/locale/bs-Cyrl/index.cjs +3 -0
- package/locale/bs-Cyrl/index.cjs.js +3 -0
- package/locale/bs-Cyrl/index.js +1 -3
- package/locale/bs-Cyrl/package.json +14 -0
- package/locale/bs.json +1 -4
- package/locale/ca/index.cjs +3 -0
- package/locale/ca/index.cjs.js +3 -0
- package/locale/ca/index.js +1 -3
- package/locale/ca/package.json +14 -0
- package/locale/ccp/index.cjs +3 -0
- package/locale/ccp/index.cjs.js +3 -0
- package/locale/ccp/index.js +1 -3
- package/locale/ccp/package.json +14 -0
- package/locale/ce/index.cjs +3 -0
- package/locale/ce/index.cjs.js +3 -0
- package/locale/ce/index.js +1 -3
- package/locale/ce/package.json +14 -0
- package/locale/ceb/index.cjs +3 -0
- package/locale/ceb/index.cjs.js +3 -0
- package/locale/ceb/index.js +1 -3
- package/locale/ceb/package.json +14 -0
- package/locale/chr/index.cjs +3 -0
- package/locale/chr/index.cjs.js +3 -0
- package/locale/chr/index.js +1 -3
- package/locale/chr/package.json +14 -0
- package/locale/cs/index.cjs +3 -0
- package/locale/cs/index.cjs.js +3 -0
- package/locale/cs/index.js +1 -3
- package/locale/cs/package.json +14 -0
- package/locale/cy/index.cjs +3 -0
- package/locale/cy/index.cjs.js +3 -0
- package/locale/cy/index.js +1 -3
- package/locale/cy/package.json +14 -0
- package/locale/da/index.cjs +3 -0
- package/locale/da/index.cjs.js +3 -0
- package/locale/da/index.js +1 -3
- package/locale/da/package.json +14 -0
- package/locale/de/index.cjs +3 -0
- package/locale/de/index.cjs.js +3 -0
- package/locale/de/index.js +1 -3
- package/locale/de/package.json +14 -0
- package/locale/dsb/index.cjs +3 -0
- package/locale/dsb/index.cjs.js +3 -0
- package/locale/dsb/index.js +1 -3
- package/locale/dsb/package.json +14 -0
- package/locale/dsb.json +42 -42
- package/locale/dz/index.cjs +3 -0
- package/locale/dz/index.cjs.js +3 -0
- package/locale/dz/index.js +1 -3
- package/locale/dz/package.json +14 -0
- package/locale/ee/index.cjs +3 -0
- package/locale/ee/index.cjs.js +3 -0
- package/locale/ee/index.js +1 -3
- package/locale/ee/package.json +14 -0
- package/locale/el/index.cjs +3 -0
- package/locale/el/index.cjs.js +3 -0
- package/locale/el/index.js +1 -3
- package/locale/el/package.json +14 -0
- package/locale/el.json +2 -2
- package/locale/en/index.cjs +3 -0
- package/locale/en/index.cjs.js +3 -0
- package/locale/en/index.js +1 -3
- package/locale/en/package.json +14 -0
- package/locale/en-001/index.cjs +3 -0
- package/locale/en-001/index.cjs.js +3 -0
- package/locale/en-001/index.js +1 -3
- package/locale/en-001/package.json +14 -0
- package/locale/en-150/index.cjs +3 -0
- package/locale/en-150/index.cjs.js +3 -0
- package/locale/en-150/index.js +1 -3
- package/locale/en-150/package.json +14 -0
- package/locale/en-AG/index.cjs +3 -0
- package/locale/en-AG/index.cjs.js +3 -0
- package/locale/en-AG/index.js +1 -3
- package/locale/en-AG/package.json +14 -0
- package/locale/en-AI/index.cjs +3 -0
- package/locale/en-AI/index.cjs.js +3 -0
- package/locale/en-AI/index.js +1 -3
- package/locale/en-AI/package.json +14 -0
- package/locale/en-AT/index.cjs +3 -0
- package/locale/en-AT/index.cjs.js +3 -0
- package/locale/en-AT/index.js +1 -3
- package/locale/en-AT/package.json +14 -0
- package/locale/en-AU/index.cjs +3 -0
- package/locale/en-AU/index.cjs.js +3 -0
- package/locale/en-AU/index.js +1 -3
- package/locale/en-AU/package.json +14 -0
- package/locale/en-BB/index.cjs +3 -0
- package/locale/en-BB/index.cjs.js +3 -0
- package/locale/en-BB/index.js +1 -3
- package/locale/en-BB/package.json +14 -0
- package/locale/en-BE/index.cjs +3 -0
- package/locale/en-BE/index.cjs.js +3 -0
- package/locale/en-BE/index.js +1 -3
- package/locale/en-BE/package.json +14 -0
- package/locale/en-BM/index.cjs +3 -0
- package/locale/en-BM/index.cjs.js +3 -0
- package/locale/en-BM/index.js +1 -3
- package/locale/en-BM/package.json +14 -0
- package/locale/en-BS/index.cjs +3 -0
- package/locale/en-BS/index.cjs.js +3 -0
- package/locale/en-BS/index.js +1 -3
- package/locale/en-BS/package.json +14 -0
- package/locale/en-BW/index.cjs +3 -0
- package/locale/en-BW/index.cjs.js +3 -0
- package/locale/en-BW/index.js +1 -3
- package/locale/en-BW/package.json +14 -0
- package/locale/en-BZ/index.cjs +3 -0
- package/locale/en-BZ/index.cjs.js +3 -0
- package/locale/en-BZ/index.js +1 -3
- package/locale/en-BZ/package.json +14 -0
- package/locale/en-CA/index.cjs +3 -0
- package/locale/en-CA/index.cjs.js +3 -0
- package/locale/en-CA/index.js +1 -3
- package/locale/en-CA/package.json +14 -0
- package/locale/en-CA.json +56 -56
- package/locale/en-CC/index.cjs +3 -0
- package/locale/en-CC/index.cjs.js +3 -0
- package/locale/en-CC/index.js +1 -3
- package/locale/en-CC/package.json +14 -0
- package/locale/en-CH/index.cjs +3 -0
- package/locale/en-CH/index.cjs.js +3 -0
- package/locale/en-CH/index.js +1 -3
- package/locale/en-CH/package.json +14 -0
- package/locale/en-CK/index.cjs +3 -0
- package/locale/en-CK/index.cjs.js +3 -0
- package/locale/en-CK/index.js +1 -3
- package/locale/en-CK/package.json +14 -0
- package/locale/en-CM/index.cjs +3 -0
- package/locale/en-CM/index.cjs.js +3 -0
- package/locale/en-CM/index.js +1 -3
- package/locale/en-CM/package.json +14 -0
- package/locale/en-CX/index.cjs +3 -0
- package/locale/en-CX/index.cjs.js +3 -0
- package/locale/en-CX/index.js +1 -3
- package/locale/en-CX/package.json +14 -0
- package/locale/en-CY/index.cjs +3 -0
- package/locale/en-CY/index.cjs.js +3 -0
- package/locale/en-CY/index.js +1 -3
- package/locale/en-CY/package.json +14 -0
- package/locale/en-DE/index.cjs +3 -0
- package/locale/en-DE/index.cjs.js +3 -0
- package/locale/en-DE/index.js +1 -3
- package/locale/en-DE/package.json +14 -0
- package/locale/en-DG/index.cjs +3 -0
- package/locale/en-DG/index.cjs.js +3 -0
- package/locale/en-DG/index.js +1 -3
- package/locale/en-DG/package.json +14 -0
- package/locale/en-DK/index.cjs +3 -0
- package/locale/en-DK/index.cjs.js +3 -0
- package/locale/en-DK/index.js +1 -3
- package/locale/en-DK/package.json +14 -0
- package/locale/en-DM/index.cjs +3 -0
- package/locale/en-DM/index.cjs.js +3 -0
- package/locale/en-DM/index.js +1 -3
- package/locale/en-DM/package.json +14 -0
- package/locale/en-ER/index.cjs +3 -0
- package/locale/en-ER/index.cjs.js +3 -0
- package/locale/en-ER/index.js +1 -3
- package/locale/en-ER/package.json +14 -0
- package/locale/en-FI/index.cjs +3 -0
- package/locale/en-FI/index.cjs.js +3 -0
- package/locale/en-FI/index.js +1 -3
- package/locale/en-FI/package.json +14 -0
- package/locale/en-FJ/index.cjs +3 -0
- package/locale/en-FJ/index.cjs.js +3 -0
- package/locale/en-FJ/index.js +1 -3
- package/locale/en-FJ/package.json +14 -0
- package/locale/en-FK/index.cjs +3 -0
- package/locale/en-FK/index.cjs.js +3 -0
- package/locale/en-FK/index.js +1 -3
- package/locale/en-FK/package.json +14 -0
- package/locale/en-FM/index.cjs +3 -0
- package/locale/en-FM/index.cjs.js +3 -0
- package/locale/en-FM/index.js +1 -3
- package/locale/en-FM/package.json +14 -0
- package/locale/en-GB/index.cjs +3 -0
- package/locale/en-GB/index.cjs.js +3 -0
- package/locale/en-GB/index.js +1 -3
- package/locale/en-GB/package.json +14 -0
- package/locale/en-GD/index.cjs +3 -0
- package/locale/en-GD/index.cjs.js +3 -0
- package/locale/en-GD/index.js +1 -3
- package/locale/en-GD/package.json +14 -0
- package/locale/en-GG/index.cjs +3 -0
- package/locale/en-GG/index.cjs.js +3 -0
- package/locale/en-GG/index.js +1 -3
- package/locale/en-GG/package.json +14 -0
- package/locale/en-GH/index.cjs +3 -0
- package/locale/en-GH/index.cjs.js +3 -0
- package/locale/en-GH/index.js +1 -3
- package/locale/en-GH/package.json +14 -0
- package/locale/en-GI/index.cjs +3 -0
- package/locale/en-GI/index.cjs.js +3 -0
- package/locale/en-GI/index.js +1 -3
- package/locale/en-GI/package.json +14 -0
- package/locale/en-GM/index.cjs +3 -0
- package/locale/en-GM/index.cjs.js +3 -0
- package/locale/en-GM/index.js +1 -3
- package/locale/en-GM/package.json +14 -0
- package/locale/en-GY/index.cjs +3 -0
- package/locale/en-GY/index.cjs.js +3 -0
- package/locale/en-GY/index.js +1 -3
- package/locale/en-GY/package.json +14 -0
- package/locale/en-HK/index.cjs +3 -0
- package/locale/en-HK/index.cjs.js +3 -0
- package/locale/en-HK/index.js +1 -3
- package/locale/en-HK/package.json +14 -0
- package/locale/en-IE/index.cjs +3 -0
- package/locale/en-IE/index.cjs.js +3 -0
- package/locale/en-IE/index.js +1 -3
- package/locale/en-IE/package.json +14 -0
- package/locale/en-IL/index.cjs +3 -0
- package/locale/en-IL/index.cjs.js +3 -0
- package/locale/en-IL/index.js +1 -3
- package/locale/en-IL/package.json +14 -0
- package/locale/en-IM/index.cjs +3 -0
- package/locale/en-IM/index.cjs.js +3 -0
- package/locale/en-IM/index.js +1 -3
- package/locale/en-IM/package.json +14 -0
- package/locale/en-IN/index.cjs +3 -0
- package/locale/en-IN/index.cjs.js +3 -0
- package/locale/en-IN/index.js +1 -3
- package/locale/en-IN/package.json +14 -0
- package/locale/en-IO/index.cjs +3 -0
- package/locale/en-IO/index.cjs.js +3 -0
- package/locale/en-IO/index.js +1 -3
- package/locale/en-IO/package.json +14 -0
- package/locale/en-JE/index.cjs +3 -0
- package/locale/en-JE/index.cjs.js +3 -0
- package/locale/en-JE/index.js +1 -3
- package/locale/en-JE/package.json +14 -0
- package/locale/en-JM/index.cjs +3 -0
- package/locale/en-JM/index.cjs.js +3 -0
- package/locale/en-JM/index.js +1 -3
- package/locale/en-JM/package.json +14 -0
- package/locale/en-KE/index.cjs +3 -0
- package/locale/en-KE/index.cjs.js +3 -0
- package/locale/en-KE/index.js +1 -3
- package/locale/en-KE/package.json +14 -0
- package/locale/en-KI/index.cjs +3 -0
- package/locale/en-KI/index.cjs.js +3 -0
- package/locale/en-KI/index.js +1 -3
- package/locale/en-KI/package.json +14 -0
- package/locale/en-KN/index.cjs +3 -0
- package/locale/en-KN/index.cjs.js +3 -0
- package/locale/en-KN/index.js +1 -3
- package/locale/en-KN/package.json +14 -0
- package/locale/en-KY/index.cjs +3 -0
- package/locale/en-KY/index.cjs.js +3 -0
- package/locale/en-KY/index.js +1 -3
- package/locale/en-KY/package.json +14 -0
- package/locale/en-LC/index.cjs +3 -0
- package/locale/en-LC/index.cjs.js +3 -0
- package/locale/en-LC/index.js +1 -3
- package/locale/en-LC/package.json +14 -0
- package/locale/en-LR/index.cjs +3 -0
- package/locale/en-LR/index.cjs.js +3 -0
- package/locale/en-LR/index.js +1 -3
- package/locale/en-LR/package.json +14 -0
- package/locale/en-LS/index.cjs +3 -0
- package/locale/en-LS/index.cjs.js +3 -0
- package/locale/en-LS/index.js +1 -3
- package/locale/en-LS/package.json +14 -0
- package/locale/en-MG/index.cjs +3 -0
- package/locale/en-MG/index.cjs.js +3 -0
- package/locale/en-MG/index.js +1 -3
- package/locale/en-MG/package.json +14 -0
- package/locale/en-MO/index.cjs +3 -0
- package/locale/en-MO/index.cjs.js +3 -0
- package/locale/en-MO/index.js +1 -3
- package/locale/en-MO/package.json +14 -0
- package/locale/en-MS/index.cjs +3 -0
- package/locale/en-MS/index.cjs.js +3 -0
- package/locale/en-MS/index.js +1 -3
- package/locale/en-MS/package.json +14 -0
- package/locale/en-MT/index.cjs +3 -0
- package/locale/en-MT/index.cjs.js +3 -0
- package/locale/en-MT/index.js +1 -3
- package/locale/en-MT/package.json +14 -0
- package/locale/en-MU/index.cjs +3 -0
- package/locale/en-MU/index.cjs.js +3 -0
- package/locale/en-MU/index.js +1 -3
- package/locale/en-MU/package.json +14 -0
- package/locale/en-MV/index.cjs +3 -0
- package/locale/en-MV/index.cjs.js +3 -0
- package/locale/en-MV/index.js +1 -0
- package/locale/en-MV/package.json +14 -0
- package/locale/{en-PH.json → en-MV.json} +1 -1
- package/locale/en-MW/index.cjs +3 -0
- package/locale/en-MW/index.cjs.js +3 -0
- package/locale/en-MW/index.js +1 -3
- package/locale/en-MW/package.json +14 -0
- package/locale/en-MY/index.cjs +3 -0
- package/locale/en-MY/index.cjs.js +3 -0
- package/locale/en-MY/index.js +1 -3
- package/locale/en-MY/package.json +14 -0
- package/locale/en-NA/index.cjs +3 -0
- package/locale/en-NA/index.cjs.js +3 -0
- package/locale/en-NA/index.js +1 -3
- package/locale/en-NA/package.json +14 -0
- package/locale/en-NF/index.cjs +3 -0
- package/locale/en-NF/index.cjs.js +3 -0
- package/locale/en-NF/index.js +1 -3
- package/locale/en-NF/package.json +14 -0
- package/locale/en-NG/index.cjs +3 -0
- package/locale/en-NG/index.cjs.js +3 -0
- package/locale/en-NG/index.js +1 -3
- package/locale/en-NG/package.json +14 -0
- package/locale/en-NL/index.cjs +3 -0
- package/locale/en-NL/index.cjs.js +3 -0
- package/locale/en-NL/index.js +1 -3
- package/locale/en-NL/package.json +14 -0
- package/locale/en-NR/index.cjs +3 -0
- package/locale/en-NR/index.cjs.js +3 -0
- package/locale/en-NR/index.js +1 -3
- package/locale/en-NR/package.json +14 -0
- package/locale/en-NU/index.cjs +3 -0
- package/locale/en-NU/index.cjs.js +3 -0
- package/locale/en-NU/index.js +1 -3
- package/locale/en-NU/package.json +14 -0
- package/locale/en-NZ/index.cjs +3 -0
- package/locale/en-NZ/index.cjs.js +3 -0
- package/locale/en-NZ/index.js +1 -3
- package/locale/en-NZ/package.json +14 -0
- package/locale/en-PG/index.cjs +3 -0
- package/locale/en-PG/index.cjs.js +3 -0
- package/locale/en-PG/index.js +1 -3
- package/locale/en-PG/package.json +14 -0
- package/locale/en-PK/index.cjs +3 -0
- package/locale/en-PK/index.cjs.js +3 -0
- package/locale/en-PK/index.js +1 -3
- package/locale/en-PK/package.json +14 -0
- package/locale/en-PN/index.cjs +3 -0
- package/locale/en-PN/index.cjs.js +3 -0
- package/locale/en-PN/index.js +1 -3
- package/locale/en-PN/package.json +14 -0
- package/locale/en-PW/index.cjs +3 -0
- package/locale/en-PW/index.cjs.js +3 -0
- package/locale/en-PW/index.js +1 -3
- package/locale/en-PW/package.json +14 -0
- package/locale/en-RW/index.cjs +3 -0
- package/locale/en-RW/index.cjs.js +3 -0
- package/locale/en-RW/index.js +1 -3
- package/locale/en-RW/package.json +14 -0
- package/locale/en-SB/index.cjs +3 -0
- package/locale/en-SB/index.cjs.js +3 -0
- package/locale/en-SB/index.js +1 -3
- package/locale/en-SB/package.json +14 -0
- package/locale/en-SC/index.cjs +3 -0
- package/locale/en-SC/index.cjs.js +3 -0
- package/locale/en-SC/index.js +1 -3
- package/locale/en-SC/package.json +14 -0
- package/locale/en-SD/index.cjs +3 -0
- package/locale/en-SD/index.cjs.js +3 -0
- package/locale/en-SD/index.js +1 -3
- package/locale/en-SD/package.json +14 -0
- package/locale/en-SE/index.cjs +3 -0
- package/locale/en-SE/index.cjs.js +3 -0
- package/locale/en-SE/index.js +1 -3
- package/locale/en-SE/package.json +14 -0
- package/locale/en-SG/index.cjs +3 -0
- package/locale/en-SG/index.cjs.js +3 -0
- package/locale/en-SG/index.js +1 -3
- package/locale/en-SG/package.json +14 -0
- package/locale/en-SH/index.cjs +3 -0
- package/locale/en-SH/index.cjs.js +3 -0
- package/locale/en-SH/index.js +1 -3
- package/locale/en-SH/package.json +14 -0
- package/locale/en-SI/index.cjs +3 -0
- package/locale/en-SI/index.cjs.js +3 -0
- package/locale/en-SI/index.js +1 -3
- package/locale/en-SI/package.json +14 -0
- package/locale/en-SL/index.cjs +3 -0
- package/locale/en-SL/index.cjs.js +3 -0
- package/locale/en-SL/index.js +1 -3
- package/locale/en-SL/package.json +14 -0
- package/locale/en-SS/index.cjs +3 -0
- package/locale/en-SS/index.cjs.js +3 -0
- package/locale/en-SS/index.js +1 -3
- package/locale/en-SS/package.json +14 -0
- package/locale/en-SX/index.cjs +3 -0
- package/locale/en-SX/index.cjs.js +3 -0
- package/locale/en-SX/index.js +1 -3
- package/locale/en-SX/package.json +14 -0
- package/locale/en-SZ/index.cjs +3 -0
- package/locale/en-SZ/index.cjs.js +3 -0
- package/locale/en-SZ/index.js +1 -3
- package/locale/en-SZ/package.json +14 -0
- package/locale/en-TC/index.cjs +3 -0
- package/locale/en-TC/index.cjs.js +3 -0
- package/locale/en-TC/index.js +1 -3
- package/locale/en-TC/package.json +14 -0
- package/locale/en-TK/index.cjs +3 -0
- package/locale/en-TK/index.cjs.js +3 -0
- package/locale/en-TK/index.js +1 -3
- package/locale/en-TK/package.json +14 -0
- package/locale/en-TO/index.cjs +3 -0
- package/locale/en-TO/index.cjs.js +3 -0
- package/locale/en-TO/index.js +1 -3
- package/locale/en-TO/package.json +14 -0
- package/locale/en-TT/index.cjs +3 -0
- package/locale/en-TT/index.cjs.js +3 -0
- package/locale/en-TT/index.js +1 -3
- package/locale/en-TT/package.json +14 -0
- package/locale/en-TV/index.cjs +3 -0
- package/locale/en-TV/index.cjs.js +3 -0
- package/locale/en-TV/index.js +1 -3
- package/locale/en-TV/package.json +14 -0
- package/locale/en-TZ/index.cjs +3 -0
- package/locale/en-TZ/index.cjs.js +3 -0
- package/locale/en-TZ/index.js +1 -3
- package/locale/en-TZ/package.json +14 -0
- package/locale/en-UG/index.cjs +3 -0
- package/locale/en-UG/index.cjs.js +3 -0
- package/locale/en-UG/index.js +1 -3
- package/locale/en-UG/package.json +14 -0
- package/locale/en-VC/index.cjs +3 -0
- package/locale/en-VC/index.cjs.js +3 -0
- package/locale/en-VC/index.js +1 -3
- package/locale/en-VC/package.json +14 -0
- package/locale/en-VG/index.cjs +3 -0
- package/locale/en-VG/index.cjs.js +3 -0
- package/locale/en-VG/index.js +1 -3
- package/locale/en-VG/package.json +14 -0
- package/locale/en-VU/index.cjs +3 -0
- package/locale/en-VU/index.cjs.js +3 -0
- package/locale/en-VU/index.js +1 -3
- package/locale/en-VU/package.json +14 -0
- package/locale/en-WS/index.cjs +3 -0
- package/locale/en-WS/index.cjs.js +3 -0
- package/locale/en-WS/index.js +1 -3
- package/locale/en-WS/package.json +14 -0
- package/locale/en-ZA/index.cjs +3 -0
- package/locale/en-ZA/index.cjs.js +3 -0
- package/locale/en-ZA/index.js +1 -3
- package/locale/en-ZA/package.json +14 -0
- package/locale/en-ZM/index.cjs +3 -0
- package/locale/en-ZM/index.cjs.js +3 -0
- package/locale/en-ZM/index.js +1 -3
- package/locale/en-ZM/package.json +14 -0
- package/locale/en-ZW/index.cjs +3 -0
- package/locale/en-ZW/index.cjs.js +3 -0
- package/locale/en-ZW/index.js +1 -3
- package/locale/en-ZW/package.json +14 -0
- package/locale/es/index.cjs +3 -0
- package/locale/es/index.cjs.js +3 -0
- package/locale/es/index.js +1 -3
- package/locale/es/package.json +14 -0
- package/locale/es-419/index.cjs +3 -0
- package/locale/es-419/index.cjs.js +3 -0
- package/locale/es-419/index.js +1 -3
- package/locale/es-419/package.json +14 -0
- package/locale/es-AR/index.cjs +3 -0
- package/locale/es-AR/index.cjs.js +3 -0
- package/locale/es-AR/index.js +1 -3
- package/locale/es-AR/package.json +14 -0
- package/locale/es-BO/index.cjs +3 -0
- package/locale/es-BO/index.cjs.js +3 -0
- package/locale/es-BO/index.js +1 -3
- package/locale/es-BO/package.json +14 -0
- package/locale/es-BR/index.cjs +3 -0
- package/locale/es-BR/index.cjs.js +3 -0
- package/locale/es-BR/index.js +1 -3
- package/locale/es-BR/package.json +14 -0
- package/locale/es-BZ/index.cjs +3 -0
- package/locale/es-BZ/index.cjs.js +3 -0
- package/locale/es-BZ/index.js +1 -3
- package/locale/es-BZ/package.json +14 -0
- package/locale/es-CL/index.cjs +3 -0
- package/locale/es-CL/index.cjs.js +3 -0
- package/locale/es-CL/index.js +1 -3
- package/locale/es-CL/package.json +14 -0
- package/locale/es-CO/index.cjs +3 -0
- package/locale/es-CO/index.cjs.js +3 -0
- package/locale/es-CO/index.js +1 -3
- package/locale/es-CO/package.json +14 -0
- package/locale/es-CR/index.cjs +3 -0
- package/locale/es-CR/index.cjs.js +3 -0
- package/locale/es-CR/index.js +1 -3
- package/locale/es-CR/package.json +14 -0
- package/locale/es-CU/index.cjs +3 -0
- package/locale/es-CU/index.cjs.js +3 -0
- package/locale/es-CU/index.js +1 -3
- package/locale/es-CU/package.json +14 -0
- package/locale/es-DO/index.cjs +3 -0
- package/locale/es-DO/index.cjs.js +3 -0
- package/locale/es-DO/index.js +1 -3
- package/locale/es-DO/package.json +14 -0
- package/locale/es-EC/index.cjs +3 -0
- package/locale/es-EC/index.cjs.js +3 -0
- package/locale/es-EC/index.js +1 -3
- package/locale/es-EC/package.json +14 -0
- package/locale/es-GT/index.cjs +3 -0
- package/locale/es-GT/index.cjs.js +3 -0
- package/locale/es-GT/index.js +1 -3
- package/locale/es-GT/package.json +14 -0
- package/locale/es-HN/index.cjs +3 -0
- package/locale/es-HN/index.cjs.js +3 -0
- package/locale/es-HN/index.js +1 -3
- package/locale/es-HN/package.json +14 -0
- package/locale/es-MX/index.cjs +3 -0
- package/locale/es-MX/index.cjs.js +3 -0
- package/locale/es-MX/index.js +1 -3
- package/locale/es-MX/package.json +14 -0
- package/locale/es-NI/index.cjs +3 -0
- package/locale/es-NI/index.cjs.js +3 -0
- package/locale/es-NI/index.js +1 -3
- package/locale/es-NI/package.json +14 -0
- package/locale/es-PA/index.cjs +3 -0
- package/locale/es-PA/index.cjs.js +3 -0
- package/locale/es-PA/index.js +1 -3
- package/locale/es-PA/package.json +14 -0
- package/locale/es-PE/index.cjs +3 -0
- package/locale/es-PE/index.cjs.js +3 -0
- package/locale/es-PE/index.js +1 -3
- package/locale/es-PE/package.json +14 -0
- package/locale/es-PR/index.cjs +3 -0
- package/locale/es-PR/index.cjs.js +3 -0
- package/locale/es-PR/index.js +1 -3
- package/locale/es-PR/package.json +14 -0
- package/locale/es-PY/index.cjs +3 -0
- package/locale/es-PY/index.cjs.js +3 -0
- package/locale/es-PY/index.js +1 -3
- package/locale/es-PY/package.json +14 -0
- package/locale/es-SV/index.cjs +3 -0
- package/locale/es-SV/index.cjs.js +3 -0
- package/locale/es-SV/index.js +1 -3
- package/locale/es-SV/package.json +14 -0
- package/locale/es-US/index.cjs +3 -0
- package/locale/es-US/index.cjs.js +3 -0
- package/locale/es-US/index.js +1 -3
- package/locale/es-US/package.json +14 -0
- package/locale/es-US.json +3 -3
- package/locale/es-UY/index.cjs +3 -0
- package/locale/es-UY/index.cjs.js +3 -0
- package/locale/es-UY/index.js +1 -3
- package/locale/es-UY/package.json +14 -0
- package/locale/es-VE/index.cjs +3 -0
- package/locale/es-VE/index.cjs.js +3 -0
- package/locale/es-VE/index.js +1 -3
- package/locale/es-VE/package.json +14 -0
- package/locale/es.json +4 -16
- package/locale/et/index.cjs +3 -0
- package/locale/et/index.cjs.js +3 -0
- package/locale/et/index.js +1 -3
- package/locale/et/package.json +14 -0
- package/locale/eu/index.cjs +3 -0
- package/locale/eu/index.cjs.js +3 -0
- package/locale/eu/index.js +1 -3
- package/locale/eu/package.json +14 -0
- package/locale/eu.json +6 -6
- package/locale/fa/index.cjs +3 -0
- package/locale/fa/index.cjs.js +3 -0
- package/locale/fa/index.js +1 -3
- package/locale/fa/package.json +14 -0
- package/locale/ff-Adlm/index.cjs +3 -0
- package/locale/ff-Adlm/index.cjs.js +3 -0
- package/locale/ff-Adlm/index.js +1 -3
- package/locale/ff-Adlm/package.json +14 -0
- package/locale/ff-Adlm.json +34 -34
- package/locale/fi/index.cjs +3 -0
- package/locale/fi/index.cjs.js +3 -0
- package/locale/fi/index.js +1 -3
- package/locale/fi/package.json +14 -0
- package/locale/fil/index.cjs +3 -0
- package/locale/fil/index.cjs.js +3 -0
- package/locale/fil/index.js +1 -3
- package/locale/fil/package.json +14 -0
- package/locale/fil.json +2 -2
- package/locale/fo/index.cjs +3 -0
- package/locale/fo/index.cjs.js +3 -0
- package/locale/fo/index.js +1 -3
- package/locale/fo/package.json +14 -0
- package/locale/fr/index.cjs +3 -0
- package/locale/fr/index.cjs.js +3 -0
- package/locale/fr/index.js +1 -3
- package/locale/fr/package.json +14 -0
- package/locale/fr-CA/index.cjs +3 -0
- package/locale/fr-CA/index.cjs.js +3 -0
- package/locale/fr-CA/index.js +1 -3
- package/locale/fr-CA/package.json +14 -0
- package/locale/fur/index.cjs +3 -0
- package/locale/fur/index.cjs.js +3 -0
- package/locale/fur/index.js +1 -3
- package/locale/fur/package.json +14 -0
- package/locale/fy/index.cjs +3 -0
- package/locale/fy/index.cjs.js +3 -0
- package/locale/fy/index.js +1 -3
- package/locale/fy/package.json +14 -0
- package/locale/ga/index.cjs +3 -0
- package/locale/ga/index.cjs.js +3 -0
- package/locale/ga/index.js +1 -3
- package/locale/ga/package.json +14 -0
- package/locale/gd/index.cjs +3 -0
- package/locale/gd/index.cjs.js +3 -0
- package/locale/gd/index.js +1 -3
- package/locale/gd/package.json +14 -0
- package/locale/gl/index.cjs +3 -0
- package/locale/gl/index.cjs.js +3 -0
- package/locale/gl/index.js +1 -3
- package/locale/gl/package.json +14 -0
- package/locale/gu/index.cjs +3 -0
- package/locale/gu/index.cjs.js +3 -0
- package/locale/gu/index.js +1 -3
- package/locale/gu/package.json +14 -0
- package/locale/ha/index.cjs +3 -0
- package/locale/ha/index.cjs.js +3 -0
- package/locale/ha/index.js +1 -3
- package/locale/ha/package.json +14 -0
- package/locale/he/index.cjs +3 -0
- package/locale/he/index.cjs.js +3 -0
- package/locale/he/index.js +1 -3
- package/locale/he/package.json +14 -0
- package/locale/he.json +2 -2
- package/locale/hi/index.cjs +3 -0
- package/locale/hi/index.cjs.js +3 -0
- package/locale/hi/index.js +1 -3
- package/locale/hi/package.json +14 -0
- package/locale/hi-Latn/index.cjs +3 -0
- package/locale/hi-Latn/index.cjs.js +3 -0
- package/locale/hi-Latn/index.js +1 -0
- package/locale/hi-Latn/package.json +14 -0
- package/locale/hi-Latn.json +183 -0
- package/locale/hr/index.cjs +3 -0
- package/locale/hr/index.cjs.js +3 -0
- package/locale/hr/index.js +1 -3
- package/locale/hr/package.json +14 -0
- package/locale/hsb/index.cjs +3 -0
- package/locale/hsb/index.cjs.js +3 -0
- package/locale/hsb/index.js +1 -3
- package/locale/hsb/package.json +14 -0
- package/locale/hsb.json +42 -42
- package/locale/hu/index.cjs +3 -0
- package/locale/hu/index.cjs.js +3 -0
- package/locale/hu/index.js +1 -3
- package/locale/hu/package.json +14 -0
- package/locale/hy/index.cjs +3 -0
- package/locale/hy/index.cjs.js +3 -0
- package/locale/hy/index.js +1 -3
- package/locale/hy/package.json +14 -0
- package/locale/ia/index.cjs +3 -0
- package/locale/ia/index.cjs.js +3 -0
- package/locale/ia/index.js +1 -3
- package/locale/ia/package.json +14 -0
- package/locale/ia.json +121 -145
- package/locale/id/index.cjs +3 -0
- package/locale/id/index.cjs.js +3 -0
- package/locale/id/index.js +1 -3
- package/locale/id/package.json +14 -0
- package/locale/id.json +11 -11
- package/locale/ig/index.cjs +3 -0
- package/locale/ig/index.cjs.js +3 -0
- package/locale/ig/index.js +1 -3
- package/locale/ig/package.json +14 -0
- package/locale/is/index.cjs +3 -0
- package/locale/is/index.cjs.js +3 -0
- package/locale/is/index.js +1 -3
- package/locale/is/package.json +14 -0
- package/locale/is.json +8 -8
- package/locale/it/index.cjs +3 -0
- package/locale/it/index.cjs.js +3 -0
- package/locale/it/index.js +1 -3
- package/locale/it/package.json +14 -0
- package/locale/ja/index.cjs +3 -0
- package/locale/ja/index.cjs.js +3 -0
- package/locale/ja/index.js +1 -3
- package/locale/ja/package.json +14 -0
- package/locale/jgo/index.cjs +3 -0
- package/locale/jgo/index.cjs.js +3 -0
- package/locale/jgo/index.js +1 -3
- package/locale/jgo/package.json +14 -0
- package/locale/jv/index.cjs +3 -0
- package/locale/jv/index.cjs.js +3 -0
- package/locale/jv/index.js +1 -3
- package/locale/jv/package.json +14 -0
- package/locale/jv.json +6 -6
- package/locale/ka/index.cjs +3 -0
- package/locale/ka/index.cjs.js +3 -0
- package/locale/ka/index.js +1 -3
- package/locale/ka/package.json +14 -0
- package/locale/kea/index.cjs +3 -0
- package/locale/kea/index.cjs.js +3 -0
- package/locale/kea/index.js +1 -3
- package/locale/kea/package.json +14 -0
- package/locale/kgp/index.cjs +3 -0
- package/locale/kgp/index.cjs.js +3 -0
- package/locale/kgp/index.js +1 -0
- package/locale/kgp/package.json +14 -0
- package/locale/kgp.json +165 -0
- package/locale/kk/index.cjs +3 -0
- package/locale/kk/index.cjs.js +3 -0
- package/locale/kk/index.js +1 -3
- package/locale/kk/package.json +14 -0
- package/locale/kl/index.cjs +3 -0
- package/locale/kl/index.cjs.js +3 -0
- package/locale/kl/index.js +1 -3
- package/locale/kl/package.json +14 -0
- package/locale/km/index.cjs +3 -0
- package/locale/km/index.cjs.js +3 -0
- package/locale/km/index.js +1 -3
- package/locale/km/package.json +14 -0
- package/locale/kn/index.cjs +3 -0
- package/locale/kn/index.cjs.js +3 -0
- package/locale/kn/index.js +1 -3
- package/locale/kn/package.json +14 -0
- package/locale/ko/index.cjs +3 -0
- package/locale/ko/index.cjs.js +3 -0
- package/locale/ko/index.js +1 -3
- package/locale/ko/package.json +14 -0
- package/locale/kok/index.cjs +3 -0
- package/locale/kok/index.cjs.js +3 -0
- package/locale/kok/index.js +1 -3
- package/locale/kok/package.json +14 -0
- package/locale/ksh/index.cjs +3 -0
- package/locale/ksh/index.cjs.js +3 -0
- package/locale/ksh/index.js +1 -3
- package/locale/ksh/package.json +14 -0
- package/locale/ku/index.cjs +3 -0
- package/locale/ku/index.cjs.js +3 -0
- package/locale/ku/index.js +1 -3
- package/locale/ku/package.json +14 -0
- package/locale/ky/index.cjs +3 -0
- package/locale/ky/index.cjs.js +3 -0
- package/locale/ky/index.js +1 -3
- package/locale/ky/package.json +14 -0
- package/locale/lb/index.cjs +3 -0
- package/locale/lb/index.cjs.js +3 -0
- package/locale/lb/index.js +1 -3
- package/locale/lb/package.json +14 -0
- package/locale/lkt/index.cjs +3 -0
- package/locale/lkt/index.cjs.js +3 -0
- package/locale/lkt/index.js +1 -3
- package/locale/lkt/package.json +14 -0
- package/locale/lo/index.cjs +3 -0
- package/locale/lo/index.cjs.js +3 -0
- package/locale/lo/index.js +1 -3
- package/locale/lo/package.json +14 -0
- package/locale/lt/index.cjs +3 -0
- package/locale/lt/index.cjs.js +3 -0
- package/locale/lt/index.js +1 -3
- package/locale/lt/package.json +14 -0
- package/locale/lv/index.cjs +3 -0
- package/locale/lv/index.cjs.js +3 -0
- package/locale/lv/index.js +1 -3
- package/locale/lv/package.json +14 -0
- package/locale/mk/index.cjs +3 -0
- package/locale/mk/index.cjs.js +3 -0
- package/locale/mk/index.js +1 -3
- package/locale/mk/package.json +14 -0
- package/locale/ml/index.cjs +3 -0
- package/locale/ml/index.cjs.js +3 -0
- package/locale/ml/index.js +1 -3
- package/locale/ml/package.json +14 -0
- package/locale/mn/index.cjs +3 -0
- package/locale/mn/index.cjs.js +3 -0
- package/locale/mn/index.js +1 -3
- package/locale/mn/package.json +14 -0
- package/locale/mni/index.cjs +3 -0
- package/locale/mni/index.cjs.js +3 -0
- package/locale/mni/index.js +1 -0
- package/locale/mni/package.json +14 -0
- package/locale/mni.json +159 -0
- package/locale/mr/index.cjs +3 -0
- package/locale/mr/index.cjs.js +3 -0
- package/locale/mr/index.js +1 -3
- package/locale/mr/package.json +14 -0
- package/locale/ms/index.cjs +3 -0
- package/locale/ms/index.cjs.js +3 -0
- package/locale/ms/index.js +1 -3
- package/locale/ms/package.json +14 -0
- package/locale/mt/index.cjs +3 -0
- package/locale/mt/index.cjs.js +3 -0
- package/locale/mt/index.js +1 -3
- package/locale/mt/package.json +14 -0
- package/locale/my/index.cjs +3 -0
- package/locale/my/index.cjs.js +3 -0
- package/locale/my/index.js +1 -3
- package/locale/my/package.json +14 -0
- package/locale/mzn/index.cjs +3 -0
- package/locale/mzn/index.cjs.js +3 -0
- package/locale/mzn/index.js +1 -3
- package/locale/mzn/package.json +14 -0
- package/locale/nb/index.cjs +3 -0
- package/locale/nb/index.cjs.js +3 -0
- package/locale/nb/index.js +1 -3
- package/locale/nb/package.json +14 -0
- package/locale/nb.json +2 -2
- package/locale/ne/index.cjs +3 -0
- package/locale/ne/index.cjs.js +3 -0
- package/locale/ne/index.js +1 -3
- package/locale/ne/package.json +14 -0
- package/locale/nl/index.cjs +3 -0
- package/locale/nl/index.cjs.js +3 -0
- package/locale/nl/index.js +1 -3
- package/locale/nl/package.json +14 -0
- package/locale/nn/index.cjs +3 -0
- package/locale/nn/index.cjs.js +3 -0
- package/locale/nn/index.js +1 -3
- package/locale/nn/package.json +14 -0
- package/locale/nn.json +10 -10
- package/locale/no/index.cjs +3 -0
- package/locale/no/index.cjs.js +3 -0
- package/locale/no/index.js +1 -3
- package/locale/no/package.json +14 -0
- package/locale/no.json +2 -2
- package/locale/or/index.cjs +3 -0
- package/locale/or/index.cjs.js +3 -0
- package/locale/or/index.js +1 -3
- package/locale/or/package.json +14 -0
- package/locale/pa/index.cjs +3 -0
- package/locale/pa/index.cjs.js +3 -0
- package/locale/pa/index.js +1 -3
- package/locale/pa/package.json +14 -0
- package/locale/pcm/index.cjs +3 -0
- package/locale/pcm/index.cjs.js +3 -0
- package/locale/pcm/index.js +1 -3
- package/locale/pcm/package.json +14 -0
- package/locale/pl/index.cjs +3 -0
- package/locale/pl/index.cjs.js +3 -0
- package/locale/pl/index.js +1 -3
- package/locale/pl/package.json +14 -0
- package/locale/ps/index.cjs +3 -0
- package/locale/ps/index.cjs.js +3 -0
- package/locale/ps/index.js +1 -3
- package/locale/ps/package.json +14 -0
- package/locale/ps-PK/index.cjs +3 -0
- package/locale/ps-PK/index.cjs.js +3 -0
- package/locale/ps-PK/index.js +1 -3
- package/locale/ps-PK/package.json +14 -0
- package/locale/pt/index.cjs +3 -0
- package/locale/pt/index.cjs.js +3 -0
- package/locale/pt/index.js +1 -3
- package/locale/pt/package.json +14 -0
- package/locale/pt-AO/index.cjs +3 -0
- package/locale/pt-AO/index.cjs.js +3 -0
- package/locale/pt-AO/index.js +1 -3
- package/locale/pt-AO/package.json +14 -0
- package/locale/pt-CH/index.cjs +3 -0
- package/locale/pt-CH/index.cjs.js +3 -0
- package/locale/pt-CH/index.js +1 -3
- package/locale/pt-CH/package.json +14 -0
- package/locale/pt-CV/index.cjs +3 -0
- package/locale/pt-CV/index.cjs.js +3 -0
- package/locale/pt-CV/index.js +1 -3
- package/locale/pt-CV/package.json +14 -0
- package/locale/pt-GQ/index.cjs +3 -0
- package/locale/pt-GQ/index.cjs.js +3 -0
- package/locale/pt-GQ/index.js +1 -3
- package/locale/pt-GQ/package.json +14 -0
- package/locale/pt-GW/index.cjs +3 -0
- package/locale/pt-GW/index.cjs.js +3 -0
- package/locale/pt-GW/index.js +1 -3
- package/locale/pt-GW/package.json +14 -0
- package/locale/pt-LU/index.cjs +3 -0
- package/locale/pt-LU/index.cjs.js +3 -0
- package/locale/pt-LU/index.js +1 -3
- package/locale/pt-LU/package.json +14 -0
- package/locale/pt-MO/index.cjs +3 -0
- package/locale/pt-MO/index.cjs.js +3 -0
- package/locale/pt-MO/index.js +1 -3
- package/locale/pt-MO/package.json +14 -0
- package/locale/pt-MZ/index.cjs +3 -0
- package/locale/pt-MZ/index.cjs.js +3 -0
- package/locale/pt-MZ/index.js +1 -3
- package/locale/pt-MZ/package.json +14 -0
- package/locale/pt-PT/index.cjs +3 -0
- package/locale/pt-PT/index.cjs.js +3 -0
- package/locale/pt-PT/index.js +1 -3
- package/locale/pt-PT/package.json +14 -0
- package/locale/pt-ST/index.cjs +3 -0
- package/locale/pt-ST/index.cjs.js +3 -0
- package/locale/pt-ST/index.js +1 -3
- package/locale/pt-ST/package.json +14 -0
- package/locale/pt-TL/index.cjs +3 -0
- package/locale/pt-TL/index.cjs.js +3 -0
- package/locale/pt-TL/index.js +1 -3
- package/locale/pt-TL/package.json +14 -0
- package/locale/qu/index.cjs +3 -0
- package/locale/qu/index.cjs.js +3 -0
- package/locale/qu/index.js +1 -3
- package/locale/qu/package.json +14 -0
- package/locale/rm/index.cjs +3 -0
- package/locale/rm/index.cjs.js +3 -0
- package/locale/rm/index.js +1 -3
- package/locale/rm/package.json +14 -0
- package/locale/ro/index.cjs +3 -0
- package/locale/ro/index.cjs.js +3 -0
- package/locale/ro/index.js +1 -3
- package/locale/ro/package.json +14 -0
- package/locale/ru/index.cjs +3 -0
- package/locale/ru/index.cjs.js +3 -0
- package/locale/ru/index.js +1 -3
- package/locale/ru/package.json +14 -0
- package/locale/sah/index.cjs +3 -0
- package/locale/sah/index.cjs.js +3 -0
- package/locale/sah/index.js +1 -3
- package/locale/sah/package.json +14 -0
- package/locale/sc/index.cjs +3 -0
- package/locale/sc/index.cjs.js +3 -0
- package/locale/sc/index.js +1 -0
- package/locale/sc/package.json +14 -0
- package/locale/sc.json +249 -0
- package/locale/sd/index.cjs +3 -0
- package/locale/sd/index.cjs.js +3 -0
- package/locale/sd/index.js +1 -3
- package/locale/sd/package.json +14 -0
- package/locale/se/index.cjs +3 -0
- package/locale/se/index.cjs.js +3 -0
- package/locale/se/index.js +1 -3
- package/locale/se/package.json +14 -0
- package/locale/se-FI/index.cjs +3 -0
- package/locale/se-FI/index.cjs.js +3 -0
- package/locale/se-FI/index.js +1 -3
- package/locale/se-FI/package.json +14 -0
- package/locale/si/index.cjs +3 -0
- package/locale/si/index.cjs.js +3 -0
- package/locale/si/index.js +1 -3
- package/locale/si/package.json +14 -0
- package/locale/sk/index.cjs +3 -0
- package/locale/sk/index.cjs.js +3 -0
- package/locale/sk/index.js +1 -3
- package/locale/sk/package.json +14 -0
- package/locale/sl/index.cjs +3 -0
- package/locale/sl/index.cjs.js +3 -0
- package/locale/sl/index.js +1 -3
- package/locale/sl/package.json +14 -0
- package/locale/so/index.cjs +3 -0
- package/locale/so/index.cjs.js +3 -0
- package/locale/so/index.js +1 -3
- package/locale/so/package.json +14 -0
- package/locale/sq/index.cjs +3 -0
- package/locale/sq/index.cjs.js +3 -0
- package/locale/sq/index.js +1 -3
- package/locale/sq/package.json +14 -0
- package/locale/sr/index.cjs +3 -0
- package/locale/sr/index.cjs.js +3 -0
- package/locale/sr/index.js +1 -3
- package/locale/sr/package.json +14 -0
- package/locale/sr-Cyrl-BA/index.cjs +3 -0
- package/locale/sr-Cyrl-BA/index.cjs.js +3 -0
- package/locale/sr-Cyrl-BA/index.js +1 -3
- package/locale/sr-Cyrl-BA/package.json +14 -0
- package/locale/sr-Cyrl-BA.json +2 -2
- package/locale/sr-Latn/index.cjs +3 -0
- package/locale/sr-Latn/index.cjs.js +3 -0
- package/locale/sr-Latn/index.js +1 -3
- package/locale/sr-Latn/package.json +14 -0
- package/locale/sr-Latn-BA/index.cjs +3 -0
- package/locale/sr-Latn-BA/index.cjs.js +3 -0
- package/locale/sr-Latn-BA/index.js +1 -3
- package/locale/sr-Latn-BA/package.json +14 -0
- package/locale/sr-Latn-BA.json +2 -2
- package/locale/sr-Latn.json +3 -3
- package/locale/sr.json +3 -3
- package/locale/su/index.cjs +3 -0
- package/locale/su/index.cjs.js +3 -0
- package/locale/su/index.js +1 -3
- package/locale/su/package.json +14 -0
- package/locale/sv/index.cjs +3 -0
- package/locale/sv/index.cjs.js +3 -0
- package/locale/sv/index.js +1 -3
- package/locale/sv/package.json +14 -0
- package/locale/sw/index.cjs +3 -0
- package/locale/sw/index.cjs.js +3 -0
- package/locale/sw/index.js +1 -3
- package/locale/sw/package.json +14 -0
- package/locale/ta/index.cjs +3 -0
- package/locale/ta/index.cjs.js +3 -0
- package/locale/ta/index.js +1 -3
- package/locale/ta/package.json +14 -0
- package/locale/te/index.cjs +3 -0
- package/locale/te/index.cjs.js +3 -0
- package/locale/te/index.js +1 -3
- package/locale/te/package.json +14 -0
- package/locale/tg/index.cjs +3 -0
- package/locale/tg/index.cjs.js +3 -0
- package/locale/tg/index.js +1 -3
- package/locale/tg/package.json +14 -0
- package/locale/th/index.cjs +3 -0
- package/locale/th/index.cjs.js +3 -0
- package/locale/th/index.js +1 -3
- package/locale/th/package.json +14 -0
- package/locale/ti/index.cjs +3 -0
- package/locale/ti/index.cjs.js +3 -0
- package/locale/ti/index.js +1 -3
- package/locale/ti/package.json +14 -0
- package/locale/ti.json +1 -1
- package/locale/tk/index.cjs +3 -0
- package/locale/tk/index.cjs.js +3 -0
- package/locale/tk/index.js +1 -3
- package/locale/tk/package.json +14 -0
- package/locale/to/index.cjs +3 -0
- package/locale/to/index.cjs.js +3 -0
- package/locale/to/index.js +1 -3
- package/locale/to/package.json +14 -0
- package/locale/tr/index.cjs +3 -0
- package/locale/tr/index.cjs.js +3 -0
- package/locale/tr/index.js +1 -3
- package/locale/tr/package.json +14 -0
- package/locale/tt/index.cjs +3 -0
- package/locale/tt/index.cjs.js +3 -0
- package/locale/tt/index.js +1 -3
- package/locale/tt/package.json +14 -0
- package/locale/ug/index.cjs +3 -0
- package/locale/ug/index.cjs.js +3 -0
- package/locale/ug/index.js +1 -3
- package/locale/ug/package.json +14 -0
- package/locale/uk/index.cjs +3 -0
- package/locale/uk/index.cjs.js +3 -0
- package/locale/uk/index.js +1 -3
- package/locale/uk/package.json +14 -0
- package/locale/ur/index.cjs +3 -0
- package/locale/ur/index.cjs.js +3 -0
- package/locale/ur/index.js +1 -3
- package/locale/ur/package.json +14 -0
- package/locale/ur-IN/index.cjs +3 -0
- package/locale/ur-IN/index.cjs.js +3 -0
- package/locale/ur-IN/index.js +1 -3
- package/locale/ur-IN/package.json +14 -0
- package/locale/uz/index.cjs +3 -0
- package/locale/uz/index.cjs.js +3 -0
- package/locale/uz/index.js +1 -3
- package/locale/uz/package.json +14 -0
- package/locale/uz-Cyrl/index.cjs +3 -0
- package/locale/uz-Cyrl/index.cjs.js +3 -0
- package/locale/uz-Cyrl/index.js +1 -3
- package/locale/uz-Cyrl/package.json +14 -0
- package/locale/vi/index.cjs +3 -0
- package/locale/vi/index.cjs.js +3 -0
- package/locale/vi/index.js +1 -3
- package/locale/vi/package.json +14 -0
- package/locale/wae/index.cjs +3 -0
- package/locale/wae/index.cjs.js +3 -0
- package/locale/wae/index.js +1 -3
- package/locale/wae/package.json +14 -0
- package/locale/wo/index.cjs +3 -0
- package/locale/wo/index.cjs.js +3 -0
- package/locale/wo/index.js +1 -3
- package/locale/wo/package.json +14 -0
- package/locale/yi/index.cjs +3 -0
- package/locale/yi/index.cjs.js +3 -0
- package/locale/yi/index.js +1 -3
- package/locale/yi/package.json +14 -0
- package/locale/yo/index.cjs +3 -0
- package/locale/yo/index.cjs.js +3 -0
- package/locale/yo/index.js +1 -3
- package/locale/yo/package.json +14 -0
- package/locale/yo-BJ/index.cjs +3 -0
- package/locale/yo-BJ/index.cjs.js +3 -0
- package/locale/yo-BJ/index.js +1 -3
- package/locale/yo-BJ/package.json +14 -0
- package/locale/yrl/index.cjs +3 -0
- package/locale/yrl/index.cjs.js +3 -0
- package/locale/yrl/index.js +1 -0
- package/locale/yrl/package.json +14 -0
- package/locale/yrl.json +309 -0
- package/locale/yue/index.cjs +3 -0
- package/locale/yue/index.cjs.js +3 -0
- package/locale/yue/index.js +1 -3
- package/locale/yue/package.json +14 -0
- package/locale/yue-Hans/index.cjs +3 -0
- package/locale/yue-Hans/index.cjs.js +3 -0
- package/locale/yue-Hans/index.js +1 -3
- package/locale/yue-Hans/package.json +14 -0
- package/locale/zh/index.cjs +3 -0
- package/locale/zh/index.cjs.js +3 -0
- package/locale/zh/index.js +1 -3
- package/locale/zh/package.json +14 -0
- package/locale/zh-Hans-HK/index.cjs +3 -0
- package/locale/zh-Hans-HK/index.cjs.js +3 -0
- package/locale/zh-Hans-HK/index.js +1 -3
- package/locale/zh-Hans-HK/package.json +14 -0
- package/locale/zh-Hans-MO/index.cjs +3 -0
- package/locale/zh-Hans-MO/index.cjs.js +3 -0
- package/locale/zh-Hans-MO/index.js +1 -3
- package/locale/zh-Hans-MO/package.json +14 -0
- package/locale/zh-Hans-SG/index.cjs +3 -0
- package/locale/zh-Hans-SG/index.cjs.js +3 -0
- package/locale/zh-Hans-SG/index.js +1 -3
- package/locale/zh-Hans-SG/package.json +14 -0
- package/locale/zh-Hant/index.cjs +3 -0
- package/locale/zh-Hant/index.cjs.js +3 -0
- package/locale/zh-Hant/index.js +1 -3
- package/locale/zh-Hant/package.json +14 -0
- package/locale/zh-Hant-HK/index.cjs +3 -0
- package/locale/zh-Hant-HK/index.cjs.js +3 -0
- package/locale/zh-Hant-HK/index.js +1 -3
- package/locale/zh-Hant-HK/package.json +14 -0
- package/locale/zh-Hant-MO/index.cjs +3 -0
- package/locale/zh-Hant-MO/index.cjs.js +3 -0
- package/locale/zh-Hant-MO/index.js +1 -3
- package/locale/zh-Hant-MO/package.json +14 -0
- package/locale/zu/index.cjs +3 -0
- package/locale/zu/index.cjs.js +3 -0
- package/locale/zu/index.js +1 -3
- package/locale/zu/package.json +14 -0
- package/locale-more-styles/ckb/long-time.json +9 -0
- package/locale-more-styles/ckb/mini.json +9 -0
- package/locale-more-styles/ckb/now.json +7 -0
- package/locale-more-styles/ckb/short-time.json +12 -0
- package/modules/LocaleDataStore.js.map +1 -1
- package/modules/PropTypes.js +7 -1
- package/modules/PropTypes.js.map +1 -1
- package/modules/TimeAgo.js +25 -45
- package/modules/TimeAgo.js.map +1 -1
- package/modules/TimeAgo.test.js +7 -39
- package/modules/TimeAgo.test.js.map +1 -1
- package/modules/cache.js +8 -12
- package/modules/cache.js.map +1 -1
- package/modules/cache.test.js +1 -1
- package/modules/cache.test.js.map +1 -1
- package/modules/isStyleObject.js +15 -0
- package/modules/isStyleObject.js.map +1 -0
- package/modules/isStyleObject.test.js +34 -0
- package/modules/isStyleObject.test.js.map +1 -0
- package/modules/locale.js +9 -14
- package/modules/locale.js.map +1 -1
- package/modules/locale.test.js +2 -2
- package/modules/locale.test.js.map +1 -1
- package/modules/round.js.map +1 -1
- package/modules/steps/approximate.js +1 -1
- package/modules/steps/approximate.js.map +1 -1
- package/modules/steps/approximate.test.js +2 -2
- package/modules/steps/approximate.test.js.map +1 -1
- package/modules/steps/getStep.js +6 -4
- package/modules/steps/getStep.js.map +1 -1
- package/modules/steps/getStep.test.js +5 -5
- package/modules/steps/getStep.test.js.map +1 -1
- package/modules/steps/getStepDenominator.js +1 -1
- package/modules/steps/getStepDenominator.js.map +1 -1
- package/modules/steps/getStepDenominator.test.js +1 -1
- package/modules/steps/getStepDenominator.test.js.map +1 -1
- package/modules/steps/getStepMinTime.js +4 -4
- package/modules/steps/getStepMinTime.js.map +1 -1
- package/modules/steps/getStepMinTime.test.js +1 -1
- package/modules/steps/getStepMinTime.test.js.map +1 -1
- package/modules/steps/getTimeToNextUpdate.js +3 -3
- package/modules/steps/getTimeToNextUpdate.js.map +1 -1
- package/modules/steps/getTimeToNextUpdate.test.js +1 -1
- package/modules/steps/getTimeToNextUpdate.test.js.map +1 -1
- package/modules/steps/getTimeToNextUpdateForUnit.js +2 -2
- package/modules/steps/getTimeToNextUpdateForUnit.js.map +1 -1
- package/modules/steps/getTimeToNextUpdateForUnit.test.js +1 -1
- package/modules/steps/getTimeToNextUpdateForUnit.test.js.map +1 -1
- package/modules/steps/helpers.js.map +1 -1
- package/modules/steps/helpers.test.js +1 -1
- package/modules/steps/helpers.test.js.map +1 -1
- package/modules/steps/index.js +4 -4
- package/modules/steps/index.js.map +1 -1
- package/modules/steps/renameLegacyProperties.js +7 -7
- package/modules/steps/renameLegacyProperties.js.map +1 -1
- package/modules/steps/renameLegacyProperties.test.js +2 -2
- package/modules/steps/renameLegacyProperties.test.js.map +1 -1
- package/modules/steps/round.js.map +1 -1
- package/modules/steps/round.test.js +2 -2
- package/modules/steps/round.test.js.map +1 -1
- package/modules/steps/units.js.map +1 -1
- package/modules/style/approximate.js +1 -1
- package/modules/style/approximate.js.map +1 -1
- package/modules/style/approximateTime.js +1 -1
- package/modules/style/approximateTime.js.map +1 -1
- package/modules/style/approximateTime.test.js +11 -16
- package/modules/style/approximateTime.test.js.map +1 -1
- package/modules/style/getStyleByName.js +13 -13
- package/modules/style/getStyleByName.js.map +1 -1
- package/modules/style/mini.js.map +1 -1
- package/modules/style/mini.test.js +8 -6
- package/modules/style/mini.test.js.map +1 -1
- package/modules/style/miniMinute.js +5 -3
- package/modules/style/miniMinute.js.map +1 -1
- package/modules/style/miniMinute.test.js +8 -6
- package/modules/style/miniMinute.test.js.map +1 -1
- package/modules/style/miniMinuteNow.js +5 -3
- package/modules/style/miniMinuteNow.js.map +1 -1
- package/modules/style/miniMinuteNow.test.js +8 -6
- package/modules/style/miniMinuteNow.test.js.map +1 -1
- package/modules/style/miniNow.js +5 -3
- package/modules/style/miniNow.js.map +1 -1
- package/modules/style/miniNow.test.js +8 -6
- package/modules/style/miniNow.test.js.map +1 -1
- package/modules/style/renameLegacyProperties.js +4 -2
- package/modules/style/renameLegacyProperties.js.map +1 -1
- package/modules/style/renameLegacyProperties.test.js +2 -2
- package/modules/style/renameLegacyProperties.test.js.map +1 -1
- package/modules/style/round.js +1 -1
- package/modules/style/round.js.map +1 -1
- package/modules/style/round.test.js +17 -11
- package/modules/style/round.test.js.map +1 -1
- package/modules/style/roundMinute.js +5 -3
- package/modules/style/roundMinute.js.map +1 -1
- package/modules/style/roundMinute.test.js +8 -6
- package/modules/style/roundMinute.test.js.map +1 -1
- package/modules/style/twitter.js +13 -13
- package/modules/style/twitter.js.map +1 -1
- package/modules/style/twitter.test.js +9 -7
- package/modules/style/twitter.test.js.map +1 -1
- package/modules/style/twitterFirstMinute.js +7 -5
- package/modules/style/twitterFirstMinute.js.map +1 -1
- package/modules/style/twitterFirstMinute.test.js +10 -8
- package/modules/style/twitterFirstMinute.test.js.map +1 -1
- package/modules/style/twitterMinute.js +5 -3
- package/modules/style/twitterMinute.js.map +1 -1
- package/modules/style/twitterMinute.test.js +10 -8
- package/modules/style/twitterMinute.test.js.map +1 -1
- package/modules/style/twitterMinuteNow.js +5 -3
- package/modules/style/twitterMinuteNow.js.map +1 -1
- package/modules/style/twitterMinuteNow.test.js +10 -8
- package/modules/style/twitterMinuteNow.test.js.map +1 -1
- package/modules/style/twitterNow.js +5 -3
- package/modules/style/twitterNow.js.map +1 -1
- package/modules/style/twitterNow.test.js +10 -8
- package/modules/style/twitterNow.test.js.map +1 -1
- package/package.json +671 -75
- package/prop-types/index.cjs +2 -0
- package/prop-types/index.cjs.js +7 -0
- package/prop-types/index.js +1 -1
- package/prop-types/package.json +9 -3
- package/{rollup.config.js → rollup.config.mjs} +1 -1
- package/steps/index.cjs +1 -0
- package/steps/index.cjs.js +6 -0
- package/steps/index.js +1 -1
- package/steps/package.json +9 -3
- package/cache/index.commonjs.js +0 -2
- package/gradation/index.commonjs.js +0 -2
- package/index.commonjs.js +0 -9
- package/load-all-locales.js +0 -275
- package/locale/en-PH/index.js +0 -3
- package/prop-types/index.commonjs.js +0 -2
- package/steps/index.commonjs.js +0 -2
package/modules/TimeAgo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../source/TimeAgo.js"],"names":["RelativeTimeFormatPolyfill","Cache","chooseLocale","getStep","getStepDenominator","getTimeToNextUpdate","addLocaleData","getLocaleData","defaultStyle","getStyleByName","getRoundFunction","UNITS","TimeAgo","locales","polyfill","locale","concat","getDefaultLocale","Intl","NumberFormat","numberFormat","IntlRelativeTimeFormat","RelativeTimeFormat","IntlPluralRules","PluralRules","relativeTimeFormatCache","pluralRulesCache","input","style","options","isStyle","undefined","timestamp","getTimestamp","getLabels","flavour","labels","labelsType","now","Date","secondsPassed","future","nowLabel","getNowLabel","long","custom","date","time","elapsed","units","getTimeIntervalMeasurementUnits","round","gradation","steps","getNextStep","prevStep","step","nextStep","formattedDate","formatDateForStep","timeToNextUpdate","format","formatAs","unit","value","formatValue","Error","JSON","stringify","amount","Math","abs","granularity","valueForFormatting","sign","getFormatter","getFormattingRule","replace","formatNumber","formattingRules","pastOrFuture","quantifierRules","quantifier","getPluralRules","select","other","number","String","get","put","map","localeData","_labelsType","defaultLocale","setDefaultLocale","addDefaultLocale","defaultLocaleHasBeenSpecified","console","error","addLocale","addLabels","name","constructor","isMockedDate","getTime","object","allowedUnits","Object","keys","push","filter","indexOf","nowLabels","longLabels","past","second","current","OBJECT_CONSTRUCTOR","isObject","variable","isStyleObject","Array","isArray"],"mappings":"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","sourcesContent":["import RelativeTimeFormatPolyfill from 'relative-time-format'\r\n\r\nimport Cache from './cache'\r\nimport chooseLocale from './locale'\r\nimport getStep from './steps/getStep'\r\nimport getStepDenominator from './steps/getStepDenominator'\r\nimport getTimeToNextUpdate from './steps/getTimeToNextUpdate'\r\n\r\nimport {\r\n\taddLocaleData,\r\n\tgetLocaleData\r\n} from './LocaleDataStore'\r\n\r\nimport defaultStyle from './style/roundMinute'\r\nimport getStyleByName from './style/getStyleByName'\r\n\r\nimport { getRoundFunction } from './round'\r\n\r\n// Valid time units.\r\nconst UNITS = [\r\n\t'now',\r\n\t// The rest are the same as in `Intl.RelativeTimeFormat`.\r\n\t'second',\r\n\t'minute',\r\n\t'hour',\r\n\t'day',\r\n\t'week',\r\n\t'month',\r\n\t'quarter',\r\n\t'year'\r\n]\r\n\r\nexport default class TimeAgo {\r\n\t/**\r\n\t * @param {(string|string[])} locales=[] - Preferred locales (or locale).\r\n\t * @param {boolean} [polyfill] — Pass `false` to use native `Intl.RelativeTimeFormat` and `Intl.PluralRules` instead of the polyfills.\r\n\t */\r\n\tconstructor(locales = [], { polyfill } = {}) {\r\n\t\t// Convert `locales` to an array.\r\n\t\tif (typeof locales === 'string') {\r\n\t\t\tlocales = [locales]\r\n\t\t}\r\n\r\n\t\t// Choose the most appropriate locale\r\n\t\t// from the list of `locales` added by the user.\r\n\t\t// For example, new TimeAgo(\"en-US\") -> \"en\".\r\n\t\tthis.locale = chooseLocale(\r\n\t\t\tlocales.concat(TimeAgo.getDefaultLocale()),\r\n\t\t\tgetLocaleData\r\n\t\t)\r\n\r\n\t\tif (typeof Intl !== 'undefined') {\r\n\t\t\t// Use `Intl.NumberFormat` for formatting numbers (when available).\r\n\t\t\tif (Intl.NumberFormat) {\r\n\t\t\t\tthis.numberFormat = new Intl.NumberFormat(this.locale)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Some people have requested the ability to use native\r\n\t\t// `Intl.RelativeTimeFormat` and `Intl.PluralRules`\r\n\t\t// instead of the polyfills.\r\n\t\t// https://github.com/catamphetamine/javascript-time-ago/issues/21\r\n\t\tif (polyfill === false) {\r\n\t\t\tthis.IntlRelativeTimeFormat = Intl.RelativeTimeFormat\r\n\t\t\tthis.IntlPluralRules = Intl.PluralRules\r\n\t\t} else {\r\n\t\t\tthis.IntlRelativeTimeFormat = RelativeTimeFormatPolyfill\r\n\t\t\tthis.IntlPluralRules = RelativeTimeFormatPolyfill.PluralRules\r\n\t\t}\r\n\r\n\t\t// Cache `Intl.RelativeTimeFormat` instance.\r\n\t\tthis.relativeTimeFormatCache = new Cache()\r\n\r\n\t\t// Cache `Intl.PluralRules` instance.\r\n\t\tthis.pluralRulesCache = new Cache()\r\n\t}\r\n\r\n\t/**\r\n\t * Formats relative date/time.\r\n\t *\r\n\t * @param {number} [options.now] - Sets the current date timestamp.\r\n\t *\r\n\t * @param {boolean} [options.future] — Tells how to format value `0`:\r\n\t * as \"future\" (`true`) or \"past\" (`false`).\r\n\t * Is `false` by default, but should have been `true` actually,\r\n\t * in order to correspond to `Intl.RelativeTimeFormat`\r\n\t * that uses `future` formatting for `0` unless `-0` is passed.\r\n\t *\r\n\t * @param {string} [options.round] — Rounding method. Overrides the style's one.\r\n\t *\r\n\t * @param {boolean} [options.getTimeToNextUpdate] — Pass `true` to return `[formattedDate, timeToNextUpdate]` instead of just `formattedDate`.\r\n\t *\r\n\t * @return {string} The formatted relative date/time. If no eligible `step` is found, then an empty string is returned.\r\n\t */\r\n\tformat(input, style, options) {\r\n\t\tif (!options) {\r\n\t\t\tif (style && !isStyle(style)) {\r\n\t\t\t\toptions = style\r\n\t\t\t\tstyle = undefined\r\n\t\t\t} else {\r\n\t\t\t\toptions = {}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!style) {\r\n\t\t\tstyle = defaultStyle\r\n\t\t}\r\n\r\n\t\tif (typeof style === 'string') {\r\n\t\t\tstyle = getStyleByName(style)\r\n\t\t}\r\n\r\n\t\tconst timestamp = getTimestamp(input)\r\n\r\n\t\t// Get locale messages for this type of labels.\r\n\t\t// \"flavour\" is a legacy name for \"labels\".\r\n\t\tconst { labels, labelsType } = this.getLabels(style.flavour || style.labels)\r\n\r\n\t\tlet now\r\n\t\t// Can pass a custom `now`, e.g. for testing purposes.\r\n\t\t//\r\n\t\t// Legacy way was passing `now` in `style`.\r\n\t\t// That way is deprecated.\r\n\t\tif (style.now !== undefined) {\r\n\t\t\tnow = style.now\r\n\t\t}\r\n\t\t// The new way is passing `now` option to `.format()`.\r\n\t\tif (now === undefined && options.now !== undefined) {\r\n\t\t\tnow = options.now\r\n\t\t}\r\n\t\tif (now === undefined) {\r\n\t\t\tnow = Date.now()\r\n\t\t}\r\n\r\n\t\t// how much time has passed (in seconds)\r\n\t\tconst secondsPassed = (now - timestamp) / 1000 // in seconds\r\n\r\n\t\tconst future = options.future || secondsPassed < 0\r\n\r\n\t\tconst nowLabel = getNowLabel(\r\n\t\t\tlabels,\r\n\t\t\tgetLocaleData(this.locale).now,\r\n\t\t\tgetLocaleData(this.locale).long,\r\n\t\t\tfuture\r\n\t\t)\r\n\r\n\t\t// `custom` – A function of `{ elapsed, time, date, now, locale }`.\r\n\t\t//\r\n\t\t// Looks like `custom` function is deprecated and will be removed\r\n\t\t// in the next major version.\r\n\t\t//\r\n\t\t// If this function returns a value, then the `.format()` call will return that value.\r\n\t\t// Otherwise the relative date/time is formatted as usual.\r\n\t\t// This feature is currently not used anywhere and is here\r\n\t\t// just for providing the ultimate customization point\r\n\t\t// in case anyone would ever need that. Prefer using\r\n\t\t// `steps[step].format(value, locale)` instead.\r\n\t\t//\r\n\t\tif (style.custom) {\r\n\t\t\tconst custom = style.custom({\r\n\t\t\t\tnow,\r\n\t\t\t\tdate: new Date(timestamp),\r\n\t\t\t\ttime: timestamp,\r\n\t\t\t\telapsed: secondsPassed,\r\n\t\t\t\tlocale: this.locale\r\n\t\t\t})\r\n\t\t\tif (custom !== undefined) {\r\n\t\t\t\t// Won't return `timeToNextUpdate` here\r\n\t\t\t\t// because `custom()` seems deprecated.\r\n\t\t\t\treturn custom\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Get the list of available time interval units.\r\n\t\tconst units = getTimeIntervalMeasurementUnits(\r\n\t\t\t// Controlling `style.steps` through `style.units` seems to be deprecated:\r\n\t\t\t// create a new custom `style` instead.\r\n\t\t\tstyle.units,\r\n\t\t\tlabels,\r\n\t\t\tnowLabel\r\n\t\t)\r\n\r\n\t\t// // If no available time unit is suitable, just output an empty string.\r\n\t\t// if (units.length === 0) {\r\n\t\t// \tconsole.error(`None of the \"${units.join(', ')}\" time units have been found in \"${labelsType}\" labels for \"${this.locale}\" locale.`)\r\n\t\t// \treturn ''\r\n\t\t// }\r\n\r\n\t\tconst round = options.round || style.round\r\n\r\n\t\t// Choose the appropriate time measurement unit\r\n\t\t// and get the corresponding rounded time amount.\r\n\t\tconst [prevStep, step, nextStep] = getStep(\r\n\t\t\t// \"gradation\" is a legacy name for \"steps\".\r\n\t\t\t// For historical reasons, \"approximate\" steps are used by default.\r\n\t\t\t// In the next major version, there'll be no default for `steps`.\r\n\t\t\tstyle.gradation || style.steps || defaultStyle.steps,\r\n\t\t\tsecondsPassed,\r\n\t\t\t{ now, units, round, future, getNextStep: true }\r\n\t\t)\r\n\r\n\t\tconst formattedDate = this.formatDateForStep(timestamp, step, secondsPassed, {\r\n\t\t\tlabels,\r\n\t\t\tlabelsType,\r\n\t\t\tnowLabel,\r\n\t\t\tnow,\r\n\t\t\tfuture,\r\n\t\t\tround\r\n\t\t}) || ''\r\n\r\n\t\tif (options.getTimeToNextUpdate) {\r\n\t\t\tconst timeToNextUpdate = getTimeToNextUpdate(timestamp, step, {\r\n\t\t\t\tnextStep,\r\n\t\t\t\tprevStep,\r\n\t\t\t\tnow,\r\n\t\t\t\tfuture,\r\n\t\t\t\tround\r\n\t\t\t})\r\n\t\t\treturn [formattedDate, timeToNextUpdate]\r\n\t\t}\r\n\r\n\t\treturn formattedDate\r\n\t}\r\n\r\n\tformatDateForStep(timestamp, step, secondsPassed, {\r\n\t\tlabels,\r\n\t\tlabelsType,\r\n\t\tnowLabel,\r\n\t\tnow,\r\n\t\tfuture,\r\n\t\tround\r\n\t}) {\r\n\t\t// If no step matches, then output an empty string.\r\n\t\tif (!step) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (step.format) {\r\n\t\t\treturn step.format(timestamp, this.locale, {\r\n\t\t\t\tformatAs: (unit, value) => {\r\n\t\t\t\t\t// Mimicks `Intl.RelativeTimeFormat.format()`.\r\n\t\t\t\t\treturn this.formatValue(value, unit, {\r\n\t\t\t\t\t\tlabels,\r\n\t\t\t\t\t\tfuture\r\n\t\t\t\t\t})\r\n\t\t\t\t},\r\n\t\t\t\tnow,\r\n\t\t\t\tfuture\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\t// \"unit\" is now called \"formatAs\".\r\n\t\tconst unit = step.unit || step.formatAs\r\n\r\n\t\tif (!unit) {\r\n\t\t\tthrow new Error(`[javascript-time-ago] Each step must define either \\`formatAs\\` or \\`format()\\`. Step: ${JSON.stringify(step)}`)\r\n\t\t}\r\n\r\n\t\t// `Intl.RelativeTimeFormat` doesn't operate in \"now\" units.\r\n\t\t// Therefore, threat \"now\" as a special case.\r\n\t\tif (unit === 'now') {\r\n\t\t\treturn nowLabel\r\n\t\t}\r\n\r\n\t\t// Amount in units.\r\n\t\tlet amount = Math.abs(secondsPassed) / getStepDenominator(step)\r\n\r\n\t\t// Apply granularity to the time amount\r\n\t\t// (and fallback to the previous step\r\n\t\t// if the first level of granularity\r\n\t\t// isn't met by this amount)\r\n\t\t//\r\n\t\t// `granularity` — (advanced) Time interval value \"granularity\".\r\n\t\t// For example, it could be set to `5` for minutes to allow only 5-minute increments\r\n\t\t// when formatting time intervals: `0 minutes`, `5 minutes`, `10 minutes`, etc.\r\n\t\t// Perhaps this feature will be removed because there seem to be no use cases\r\n\t\t// of it in the real world.\r\n\t\t//\r\n\t\tif (step.granularity) {\r\n\t\t\t// Recalculate the amount of seconds passed based on granularity\r\n\t\t\tamount = getRoundFunction(round)(amount / step.granularity) * step.granularity\r\n\t\t}\r\n\r\n\t\tlet valueForFormatting = -1 * Math.sign(secondsPassed) * getRoundFunction(round)(amount)\r\n\r\n\t\t// By default, this library formats a `0` in \"past\" mode,\r\n\t\t// unless `future: true` option is passed.\r\n\t\t// This is different to `relative-time-format`'s behavior\r\n\t\t// which formats a `0` in \"future\" mode by default, unless it's a `-0`.\r\n\t\t// So, convert `0` to `-0` if `future: true` option wasn't passed.\r\n\t\t// `=== 0` matches both `0` and `-0`.\r\n\t\tif (valueForFormatting === 0) {\r\n\t\t\tif (future) {\r\n\t\t\t\tvalueForFormatting = 0\r\n\t\t\t} else {\r\n\t\t\t\tvalueForFormatting = -0\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tswitch (labelsType) {\r\n\t\t\tcase 'long':\r\n\t\t\tcase 'short':\r\n\t\t\tcase 'narrow':\r\n\t\t\t\t// Format the amount using `Intl.RelativeTimeFormat`.\r\n\t\t\t\treturn this.getFormatter(labelsType).format(valueForFormatting, unit)\r\n\t\t\tdefault:\r\n\t\t\t\t// Format the amount.\r\n\t\t\t\t// (mimicks `Intl.RelativeTimeFormat` behavior for other time label styles)\r\n\t\t\t\treturn this.formatValue(valueForFormatting, unit, {\r\n\t\t\t\t\tlabels,\r\n\t\t\t\t\tfuture\r\n\t\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Mimicks what `Intl.RelativeTimeFormat` does for additional locale styles.\r\n\t * @param {number} value\r\n\t * @param {string} unit\r\n\t * @param {object} options.labels — Relative time labels.\r\n\t * @param {boolean} [options.future] — Tells how to format value `0`: as \"future\" (`true`) or \"past\" (`false`). Is `false` by default, but should have been `true` actually.\r\n\t * @return {string}\r\n\t */\r\n\tformatValue(value, unit, { labels, future }) {\r\n\t\treturn this.getFormattingRule(labels, unit, value, { future })\r\n\t\t\t.replace('{0}', this.formatNumber(Math.abs(value)))\r\n\t}\r\n\r\n\t/**\r\n\t * Returns formatting rule for `value` in `units` (either in past or in future).\r\n\t * @param {object} formattingRules — Relative time labels for different units.\r\n\t * @param {string} unit - Time interval measurement unit.\r\n\t * @param {number} value - Time interval value.\r\n\t * @param {boolean} [options.future] — Tells how to format value `0`: as \"future\" (`true`) or \"past\" (`false`). Is `false` by default.\r\n\t * @return {string}\r\n\t * @example\r\n\t * // Returns \"{0} days ago\"\r\n\t * getFormattingRule(en.long, \"day\", -2, 'en')\r\n\t */\r\n\tgetFormattingRule(formattingRules, unit, value, { future }) {\r\n\t\t// Passing the language is required in order to\r\n\t\t// be able to correctly classify the `value` as a number.\r\n\t\tconst locale = this.locale\r\n\t\tformattingRules = formattingRules[unit]\r\n\t\t// Check for a special \"compacted\" rules case:\r\n\t\t// if formatting rules are the same for \"past\" and \"future\",\r\n\t\t// and also for all possible `value`s, then those rules are\r\n\t\t// stored as a single string.\r\n\t\tif (typeof formattingRules === 'string') {\r\n\t\t\treturn formattingRules\r\n\t\t}\r\n\t\t// Choose either \"past\" or \"future\" based on time `value` sign.\r\n\t\t// If \"past\" is same as \"future\" then they're stored as \"other\".\r\n\t\t// If there's only \"other\" then it's being collapsed.\r\n\t\tconst pastOrFuture = value === 0 ? (future ? 'future' : 'past') : (value < 0 ? 'past' : 'future')\r\n\t\tconst quantifierRules = formattingRules[pastOrFuture] || formattingRules\r\n\t\t// Bundle size optimization technique.\r\n\t\tif (typeof quantifierRules === 'string') {\r\n\t\t\treturn quantifierRules\r\n\t\t}\r\n\t\t// Quantify `value`.\r\n\t\tconst quantifier = this.getPluralRules().select(Math.abs(value))\r\n\t\t// \"other\" rule is supposed to always be present.\r\n\t\t// If only \"other\" rule is present then \"rules\" is not an object and is a string.\r\n\t\treturn quantifierRules[quantifier] || quantifierRules.other\r\n\t}\r\n\r\n\t/**\r\n\t * Formats a number into a string.\r\n\t * Uses `Intl.NumberFormat` when available.\r\n\t * @param {number} number\r\n\t * @return {string}\r\n\t */\r\n\tformatNumber(number) {\r\n\t\treturn this.numberFormat ? this.numberFormat.format(number) : String(number)\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an `Intl.RelativeTimeFormat` for a given `labelsType`.\r\n\t * @param {string} labelsType\r\n\t * @return {object} `Intl.RelativeTimeFormat` instance\r\n\t */\r\n\tgetFormatter(labelsType) {\r\n\t\t// `Intl.RelativeTimeFormat` instance creation is (hypothetically) assumed\r\n\t\t// a lengthy operation so the instances are cached and reused.\r\n\t\treturn this.relativeTimeFormatCache.get(this.locale, labelsType) ||\r\n\t\t\tthis.relativeTimeFormatCache.put(this.locale, labelsType, new this.IntlRelativeTimeFormat(this.locale, { style: labelsType }))\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an `Intl.PluralRules` instance.\r\n\t * @return {object} `Intl.PluralRules` instance\r\n\t */\r\n\tgetPluralRules() {\r\n\t\t// `Intl.PluralRules` instance creation is (hypothetically) assumed\r\n\t\t// a lengthy operation so the instances are cached and reused.\r\n\t\treturn this.pluralRulesCache.get(this.locale) ||\r\n\t\t\tthis.pluralRulesCache.put(this.locale, new this.IntlPluralRules(this.locale))\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Gets localized labels for this type of labels.\r\n\t *\r\n\t * @param {(string|string[])} labelsType - Relative date/time labels type.\r\n\t * If it's an array then all label types are tried\r\n\t * until a suitable one is found.\r\n\t *\r\n\t * @returns {Object} Returns an object of shape { labelsType, labels }\r\n\t */\r\n\tgetLabels(labelsType = []) {\r\n\t\t// Convert `labels` to an array.\r\n\t\tif (typeof labelsType === 'string') {\r\n\t\t\tlabelsType = [labelsType]\r\n\t\t}\r\n\r\n\t\t// Supports legacy \"tiny\" and \"mini-time\" label styles.\r\n\t\tlabelsType = labelsType.map((labelsType) => {\r\n\t\t\tswitch (labelsType) {\r\n\t\t\t\tcase 'tiny':\r\n\t\t\t\tcase 'mini-time':\r\n\t\t\t\t\treturn 'mini'\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn labelsType\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t// \"long\" labels type is the default one.\r\n\t\t// (it's always present for all languages)\r\n\t\tlabelsType = labelsType.concat('long')\r\n\r\n\t\t// Find a suitable labels type.\r\n\t\tconst localeData = getLocaleData(this.locale)\r\n\t\tfor (const _labelsType of labelsType) {\r\n\t\t\tif (localeData[_labelsType]) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tlabelsType: _labelsType,\r\n\t\t\t\t\tlabels: localeData[_labelsType]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Default locale global variable.\r\n */\r\nlet defaultLocale = 'en'\r\n\r\n/**\r\n * Gets default locale.\r\n * @return {string} locale\r\n */\r\nTimeAgo.getDefaultLocale = () => defaultLocale\r\n\r\n/**\r\n * Sets default locale.\r\n * @param {string} locale\r\n */\r\nTimeAgo.setDefaultLocale = (locale) => defaultLocale = locale\r\n\r\n/**\r\n * Adds locale data for a specific locale and marks the locale as default.\r\n * @param {Object} localeData\r\n */\r\nTimeAgo.addDefaultLocale = function(localeData) {\r\n\tif (defaultLocaleHasBeenSpecified) {\r\n\t\treturn console.error('[javascript-time-ago] `TimeAgo.addDefaultLocale()` can only be called once. To add other locales, use `TimeAgo.addLocale()`.')\r\n\t}\r\n\tdefaultLocaleHasBeenSpecified = true\r\n\tTimeAgo.setDefaultLocale(localeData.locale)\r\n\tTimeAgo.addLocale(localeData)\r\n}\r\n\r\nlet defaultLocaleHasBeenSpecified\r\n\r\n/**\r\n * Adds locale data for a specific locale.\r\n * @param {Object} localeData\r\n */\r\nTimeAgo.addLocale = function(localeData) {\r\n\taddLocaleData(localeData)\r\n\tRelativeTimeFormatPolyfill.addLocale(localeData)\r\n}\r\n\r\n/**\r\n * (legacy alias)\r\n * Adds locale data for a specific locale.\r\n * @param {Object} localeData\r\n * @deprecated\r\n */\r\nTimeAgo.locale = TimeAgo.addLocale\r\n\r\n/**\r\n * Adds custom labels to locale data.\r\n * @param {string} locale\r\n * @param {string} name\r\n * @param {object} labels\r\n */\r\nTimeAgo.addLabels = (locale, name, labels) => {\r\n\tlet localeData = getLocaleData(locale)\r\n\tif (!localeData) {\r\n\t\taddLocaleData({\r\n\t\t\tlocale\r\n\t\t})\r\n\t\tlocaleData = getLocaleData(locale)\r\n\t\t// throw new Error(`[javascript-time-ago] No data for locale \"${locale}\"`)\r\n\t}\r\n\tlocaleData[name] = labels\r\n}\r\n\r\n// Normalizes `.format()` `time` argument.\r\nfunction getTimestamp(input) {\r\n\tif (input.constructor === Date || isMockedDate(input)) {\r\n\t\treturn input.getTime()\r\n\t}\r\n\r\n\tif (typeof input === 'number') {\r\n\t\treturn input\r\n\t}\r\n\r\n\t// For some weird reason istanbul doesn't see this `throw` covered.\r\n\t/* istanbul ignore next */\r\n\tthrow new Error(`Unsupported relative time formatter input: ${typeof input}, ${input}`)\r\n}\r\n\r\n// During testing via some testing libraries `Date`s aren't actually `Date`s.\r\n// https://github.com/catamphetamine/javascript-time-ago/issues/22\r\nfunction isMockedDate(object) {\r\n\treturn typeof object === 'object' && typeof object.getTime === 'function'\r\n}\r\n\r\n// Get available time interval measurement units.\r\nfunction getTimeIntervalMeasurementUnits(allowedUnits, labels, nowLabel) {\r\n\t// Get all time interval measurement units that're available\r\n\t// in locale data for a given time labels style.\r\n\tlet units = Object.keys(labels)\r\n\r\n\t// `now` unit is handled separately and is shipped in its own `now.json` file.\r\n\t// `now.json` isn't present for all locales, so it could be substituted with\r\n\t// \".second.current\".\r\n\t// Add `now` unit if it's available in locale data.\r\n\tif (nowLabel) {\r\n\t\tunits.push('now')\r\n\t}\r\n\r\n\t// If only a specific set of available time measurement units can be used\r\n\t// then only those units are allowed (if they're present in locale data).\r\n\tif (allowedUnits) {\r\n\t\tunits = allowedUnits.filter(unit => unit === 'now' || units.indexOf(unit) >= 0)\r\n\t}\r\n\r\n\treturn units\r\n}\r\n\r\nfunction getNowLabel(labels, nowLabels, longLabels, future) {\r\n\tconst nowLabel = labels.now || (nowLabels && nowLabels.now)\r\n\t// Specific \"now\" message form extended locale data (if present).\r\n\tif (nowLabel) {\r\n\t\t// Bundle size optimization technique.\r\n\t\tif (typeof nowLabel === 'string') {\r\n\t\t\treturn nowLabel\r\n\t\t}\r\n\t\t// Not handling `value === 0` as `localeData.now.current` here\r\n\t\t// because it wouldn't make sense: \"now\" is a moment,\r\n\t\t// so one can't possibly differentiate between a\r\n\t\t// \"previous\" moment, a \"current\" moment and a \"next moment\".\r\n\t\t// It can only be differentiated between \"past\" and \"future\".\r\n\t\tif (future) {\r\n\t\t\treturn nowLabel.future\r\n\t\t} else {\r\n\t\t\treturn nowLabel.past\r\n\t\t}\r\n\t}\r\n\t// Use \".second.current\" as \"now\" message.\r\n\tif (longLabels && longLabels.second && longLabels.second.current) {\r\n\t\treturn longLabels.second.current\r\n\t}\r\n}\r\n\r\nconst OBJECT_CONSTRUCTOR = {}.constructor\r\nfunction isObject(object) {\r\n\treturn typeof object !== undefined && object !== null && object.constructor === OBJECT_CONSTRUCTOR\r\n}\r\n\r\nfunction isStyle(variable) {\r\n\treturn typeof variable === 'string' || isStyleObject(variable)\r\n}\r\n\r\nexport function isStyleObject(object) {\r\n\treturn isObject(object) && (\r\n\t\tArray.isArray(object.steps) ||\r\n\t\t// `gradation` property is deprecated: it has been renamed to `steps`.\r\n\t\tArray.isArray(object.gradation) ||\r\n\t\t// `flavour` property is deprecated: it has been renamed to `labels`.\r\n\t\tArray.isArray(object.flavour) ||\r\n\t\ttypeof object.flavour === 'string' ||\r\n\t\tArray.isArray(object.labels) ||\r\n\t\ttypeof object.labels === 'string' ||\r\n\t\t// `units` property is deprecated.\r\n\t\tArray.isArray(object.units) ||\r\n\t\t// `custom` property is deprecated.\r\n\t\ttypeof object.custom === 'function'\r\n\t)\r\n}"],"file":"TimeAgo.js"}
|
|
1
|
+
{"version":3,"file":"TimeAgo.js","names":["RelativeTimeFormatPolyfill","Cache","chooseLocale","isStyleObject","getStep","getStepDenominator","getTimeToNextUpdate","addLocaleData","getLocaleData","defaultStyle","getStyleByName","getRoundFunction","UNITS","TimeAgo","locales","polyfill","locale","concat","getDefaultLocale","Intl","NumberFormat","numberFormat","IntlRelativeTimeFormat","RelativeTimeFormat","IntlPluralRules","PluralRules","relativeTimeFormatCache","pluralRulesCache","input","style","options","isStyle","undefined","timestamp","getTimestamp","getLabels","flavour","labels","labelsType","now","Date","secondsPassed","future","nowLabel","getNowLabel","custom","date","time","elapsed","units","getTimeIntervalMeasurementUnits","round","gradation","steps","getNextStep","prevStep","step","nextStep","formattedDate","formatDateForStep","timeToNextUpdate","format","formatAs","unit","value","formatValue","Error","JSON","stringify","amount","Math","abs","granularity","valueForFormatting","sign","getFormatter","getFormattingRule","replace","formatNumber","formattingRules","pastOrFuture","quantifierRules","quantifier","getPluralRules","select","other","number","String","get","put","map","localeData","_labelsType","defaultLocale","setDefaultLocale","addDefaultLocale","defaultLocaleHasBeenSpecified","console","error","addLocale","addLabels","name","constructor","isMockedDate","getTime","object","allowedUnits","Object","keys","push","filter","indexOf","nowLabels","longLabels","past","second","current","variable"],"sources":["../source/TimeAgo.js"],"sourcesContent":["import RelativeTimeFormatPolyfill from 'relative-time-format'\r\n\r\nimport Cache from './cache.js'\r\nimport chooseLocale from './locale.js'\r\nimport isStyleObject from './isStyleObject.js'\r\n\r\nimport getStep from './steps/getStep.js'\r\nimport getStepDenominator from './steps/getStepDenominator.js'\r\nimport getTimeToNextUpdate from './steps/getTimeToNextUpdate.js'\r\n\r\nimport {\r\n\taddLocaleData,\r\n\tgetLocaleData\r\n} from './LocaleDataStore.js'\r\n\r\nimport defaultStyle from './style/roundMinute.js'\r\nimport getStyleByName from './style/getStyleByName.js'\r\n\r\nimport { getRoundFunction } from './round.js'\r\n\r\n// Valid time units.\r\nconst UNITS = [\r\n\t'now',\r\n\t// The rest are the same as in `Intl.RelativeTimeFormat`.\r\n\t'second',\r\n\t'minute',\r\n\t'hour',\r\n\t'day',\r\n\t'week',\r\n\t'month',\r\n\t'quarter',\r\n\t'year'\r\n]\r\n\r\nexport default class TimeAgo {\r\n\t/**\r\n\t * @param {(string|string[])} locales=[] - Preferred locales (or locale).\r\n\t * @param {boolean} [polyfill] — Pass `false` to use native `Intl.RelativeTimeFormat` and `Intl.PluralRules` instead of the polyfills.\r\n\t */\r\n\tconstructor(locales = [], { polyfill } = {}) {\r\n\t\t// Convert `locales` to an array.\r\n\t\tif (typeof locales === 'string') {\r\n\t\t\tlocales = [locales]\r\n\t\t}\r\n\r\n\t\t// Choose the most appropriate locale\r\n\t\t// from the list of `locales` added by the user.\r\n\t\t// For example, new TimeAgo(\"en-US\") -> \"en\".\r\n\t\tthis.locale = chooseLocale(\r\n\t\t\tlocales.concat(TimeAgo.getDefaultLocale()),\r\n\t\t\tgetLocaleData\r\n\t\t)\r\n\r\n\t\tif (typeof Intl !== 'undefined') {\r\n\t\t\t// Use `Intl.NumberFormat` for formatting numbers (when available).\r\n\t\t\tif (Intl.NumberFormat) {\r\n\t\t\t\tthis.numberFormat = new Intl.NumberFormat(this.locale)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Some people have requested the ability to use native\r\n\t\t// `Intl.RelativeTimeFormat` and `Intl.PluralRules`\r\n\t\t// instead of the polyfills.\r\n\t\t// https://github.com/catamphetamine/javascript-time-ago/issues/21\r\n\t\tif (polyfill === false) {\r\n\t\t\tthis.IntlRelativeTimeFormat = Intl.RelativeTimeFormat\r\n\t\t\tthis.IntlPluralRules = Intl.PluralRules\r\n\t\t} else {\r\n\t\t\tthis.IntlRelativeTimeFormat = RelativeTimeFormatPolyfill\r\n\t\t\tthis.IntlPluralRules = RelativeTimeFormatPolyfill.PluralRules\r\n\t\t}\r\n\r\n\t\t// Cache `Intl.RelativeTimeFormat` instance.\r\n\t\tthis.relativeTimeFormatCache = new Cache()\r\n\r\n\t\t// Cache `Intl.PluralRules` instance.\r\n\t\tthis.pluralRulesCache = new Cache()\r\n\t}\r\n\r\n\t/**\r\n\t * Formats relative date/time.\r\n\t *\r\n\t * @param {number} [options.now] - Sets the current date timestamp.\r\n\t *\r\n\t * @param {boolean} [options.future] — Tells how to format value `0`:\r\n\t * as \"future\" (`true`) or \"past\" (`false`).\r\n\t * Is `false` by default, but should have been `true` actually,\r\n\t * in order to correspond to `Intl.RelativeTimeFormat`\r\n\t * that uses `future` formatting for `0` unless `-0` is passed.\r\n\t *\r\n\t * @param {string} [options.round] — Rounding method. Overrides the style's one.\r\n\t *\r\n\t * @param {boolean} [options.getTimeToNextUpdate] — Pass `true` to return `[formattedDate, timeToNextUpdate]` instead of just `formattedDate`.\r\n\t *\r\n\t * @return {string} The formatted relative date/time. If no eligible `step` is found, then an empty string is returned.\r\n\t */\r\n\tformat(input, style, options) {\r\n\t\tif (!options) {\r\n\t\t\tif (style && !isStyle(style)) {\r\n\t\t\t\toptions = style\r\n\t\t\t\tstyle = undefined\r\n\t\t\t} else {\r\n\t\t\t\toptions = {}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!style) {\r\n\t\t\tstyle = defaultStyle\r\n\t\t}\r\n\r\n\t\tif (typeof style === 'string') {\r\n\t\t\tstyle = getStyleByName(style)\r\n\t\t}\r\n\r\n\t\tconst timestamp = getTimestamp(input)\r\n\r\n\t\t// Get locale messages for this type of labels.\r\n\t\t// \"flavour\" is a legacy name for \"labels\".\r\n\t\tconst { labels, labelsType } = this.getLabels(style.flavour || style.labels)\r\n\r\n\t\tlet now\r\n\t\t// Can pass a custom `now`, e.g. for testing purposes.\r\n\t\t//\r\n\t\t// Legacy way was passing `now` in `style`.\r\n\t\t// That way is deprecated.\r\n\t\tif (style.now !== undefined) {\r\n\t\t\tnow = style.now\r\n\t\t}\r\n\t\t// The new way is passing `now` option to `.format()`.\r\n\t\tif (now === undefined && options.now !== undefined) {\r\n\t\t\tnow = options.now\r\n\t\t}\r\n\t\tif (now === undefined) {\r\n\t\t\tnow = Date.now()\r\n\t\t}\r\n\r\n\t\t// how much time has passed (in seconds)\r\n\t\tconst secondsPassed = (now - timestamp) / 1000 // in seconds\r\n\r\n\t\tconst future = options.future || secondsPassed < 0\r\n\r\n\t\tconst nowLabel = getNowLabel(\r\n\t\t\tlabels,\r\n\t\t\tgetLocaleData(this.locale).now,\r\n\t\t\tgetLocaleData(this.locale).long,\r\n\t\t\tfuture\r\n\t\t)\r\n\r\n\t\t// `custom` – A function of `{ elapsed, time, date, now, locale }`.\r\n\t\t//\r\n\t\t// Looks like `custom` function is deprecated and will be removed\r\n\t\t// in the next major version.\r\n\t\t//\r\n\t\t// If this function returns a value, then the `.format()` call will return that value.\r\n\t\t// Otherwise the relative date/time is formatted as usual.\r\n\t\t// This feature is currently not used anywhere and is here\r\n\t\t// just for providing the ultimate customization point\r\n\t\t// in case anyone would ever need that. Prefer using\r\n\t\t// `steps[step].format(value, locale)` instead.\r\n\t\t//\r\n\t\tif (style.custom) {\r\n\t\t\tconst custom = style.custom({\r\n\t\t\t\tnow,\r\n\t\t\t\tdate: new Date(timestamp),\r\n\t\t\t\ttime: timestamp,\r\n\t\t\t\telapsed: secondsPassed,\r\n\t\t\t\tlocale: this.locale\r\n\t\t\t})\r\n\t\t\tif (custom !== undefined) {\r\n\t\t\t\t// Won't return `timeToNextUpdate` here\r\n\t\t\t\t// because `custom()` seems deprecated.\r\n\t\t\t\treturn custom\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Get the list of available time interval units.\r\n\t\tconst units = getTimeIntervalMeasurementUnits(\r\n\t\t\t// Controlling `style.steps` through `style.units` seems to be deprecated:\r\n\t\t\t// create a new custom `style` instead.\r\n\t\t\tstyle.units,\r\n\t\t\tlabels,\r\n\t\t\tnowLabel\r\n\t\t)\r\n\r\n\t\t// // If no available time unit is suitable, just output an empty string.\r\n\t\t// if (units.length === 0) {\r\n\t\t// \tconsole.error(`None of the \"${units.join(', ')}\" time units have been found in \"${labelsType}\" labels for \"${this.locale}\" locale.`)\r\n\t\t// \treturn ''\r\n\t\t// }\r\n\r\n\t\tconst round = options.round || style.round\r\n\r\n\t\t// Choose the appropriate time measurement unit\r\n\t\t// and get the corresponding rounded time amount.\r\n\t\tconst [prevStep, step, nextStep] = getStep(\r\n\t\t\t// \"gradation\" is a legacy name for \"steps\".\r\n\t\t\t// For historical reasons, \"approximate\" steps are used by default.\r\n\t\t\t// In the next major version, there'll be no default for `steps`.\r\n\t\t\tstyle.gradation || style.steps || defaultStyle.steps,\r\n\t\t\tsecondsPassed,\r\n\t\t\t{ now, units, round, future, getNextStep: true }\r\n\t\t)\r\n\r\n\t\tconst formattedDate = this.formatDateForStep(timestamp, step, secondsPassed, {\r\n\t\t\tlabels,\r\n\t\t\tlabelsType,\r\n\t\t\tnowLabel,\r\n\t\t\tnow,\r\n\t\t\tfuture,\r\n\t\t\tround\r\n\t\t}) || ''\r\n\r\n\t\tif (options.getTimeToNextUpdate) {\r\n\t\t\tconst timeToNextUpdate = getTimeToNextUpdate(timestamp, step, {\r\n\t\t\t\tnextStep,\r\n\t\t\t\tprevStep,\r\n\t\t\t\tnow,\r\n\t\t\t\tfuture,\r\n\t\t\t\tround\r\n\t\t\t})\r\n\t\t\treturn [formattedDate, timeToNextUpdate]\r\n\t\t}\r\n\r\n\t\treturn formattedDate\r\n\t}\r\n\r\n\tformatDateForStep(timestamp, step, secondsPassed, {\r\n\t\tlabels,\r\n\t\tlabelsType,\r\n\t\tnowLabel,\r\n\t\tnow,\r\n\t\tfuture,\r\n\t\tround\r\n\t}) {\r\n\t\t// If no step matches, then output an empty string.\r\n\t\tif (!step) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (step.format) {\r\n\t\t\treturn step.format(timestamp, this.locale, {\r\n\t\t\t\tformatAs: (unit, value) => {\r\n\t\t\t\t\t// Mimicks `Intl.RelativeTimeFormat.format()`.\r\n\t\t\t\t\treturn this.formatValue(value, unit, {\r\n\t\t\t\t\t\tlabels,\r\n\t\t\t\t\t\tfuture\r\n\t\t\t\t\t})\r\n\t\t\t\t},\r\n\t\t\t\tnow,\r\n\t\t\t\tfuture\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\t// \"unit\" is now called \"formatAs\".\r\n\t\tconst unit = step.unit || step.formatAs\r\n\r\n\t\tif (!unit) {\r\n\t\t\tthrow new Error(`[javascript-time-ago] Each step must define either \\`formatAs\\` or \\`format()\\`. Step: ${JSON.stringify(step)}`)\r\n\t\t}\r\n\r\n\t\t// `Intl.RelativeTimeFormat` doesn't operate in \"now\" units.\r\n\t\t// Therefore, threat \"now\" as a special case.\r\n\t\tif (unit === 'now') {\r\n\t\t\treturn nowLabel\r\n\t\t}\r\n\r\n\t\t// Amount in units.\r\n\t\tlet amount = Math.abs(secondsPassed) / getStepDenominator(step)\r\n\r\n\t\t// Apply granularity to the time amount\r\n\t\t// (and fallback to the previous step\r\n\t\t// if the first level of granularity\r\n\t\t// isn't met by this amount)\r\n\t\t//\r\n\t\t// `granularity` — (advanced) Time interval value \"granularity\".\r\n\t\t// For example, it could be set to `5` for minutes to allow only 5-minute increments\r\n\t\t// when formatting time intervals: `0 minutes`, `5 minutes`, `10 minutes`, etc.\r\n\t\t// Perhaps this feature will be removed because there seem to be no use cases\r\n\t\t// of it in the real world.\r\n\t\t//\r\n\t\tif (step.granularity) {\r\n\t\t\t// Recalculate the amount of seconds passed based on granularity\r\n\t\t\tamount = getRoundFunction(round)(amount / step.granularity) * step.granularity\r\n\t\t}\r\n\r\n\t\tlet valueForFormatting = -1 * Math.sign(secondsPassed) * getRoundFunction(round)(amount)\r\n\r\n\t\t// By default, this library formats a `0` in \"past\" mode,\r\n\t\t// unless `future: true` option is passed.\r\n\t\t// This is different to `relative-time-format`'s behavior\r\n\t\t// which formats a `0` in \"future\" mode by default, unless it's a `-0`.\r\n\t\t// So, convert `0` to `-0` if `future: true` option wasn't passed.\r\n\t\t// `=== 0` matches both `0` and `-0`.\r\n\t\tif (valueForFormatting === 0) {\r\n\t\t\tif (future) {\r\n\t\t\t\tvalueForFormatting = 0\r\n\t\t\t} else {\r\n\t\t\t\tvalueForFormatting = -0\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tswitch (labelsType) {\r\n\t\t\tcase 'long':\r\n\t\t\tcase 'short':\r\n\t\t\tcase 'narrow':\r\n\t\t\t\t// Format the amount using `Intl.RelativeTimeFormat`.\r\n\t\t\t\treturn this.getFormatter(labelsType).format(valueForFormatting, unit)\r\n\t\t\tdefault:\r\n\t\t\t\t// Format the amount.\r\n\t\t\t\t// (mimicks `Intl.RelativeTimeFormat` behavior for other time label styles)\r\n\t\t\t\treturn this.formatValue(valueForFormatting, unit, {\r\n\t\t\t\t\tlabels,\r\n\t\t\t\t\tfuture\r\n\t\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Mimicks what `Intl.RelativeTimeFormat` does for additional locale styles.\r\n\t * @param {number} value\r\n\t * @param {string} unit\r\n\t * @param {object} options.labels — Relative time labels.\r\n\t * @param {boolean} [options.future] — Tells how to format value `0`: as \"future\" (`true`) or \"past\" (`false`). Is `false` by default, but should have been `true` actually.\r\n\t * @return {string}\r\n\t */\r\n\tformatValue(value, unit, { labels, future }) {\r\n\t\treturn this.getFormattingRule(labels, unit, value, { future })\r\n\t\t\t.replace('{0}', this.formatNumber(Math.abs(value)))\r\n\t}\r\n\r\n\t/**\r\n\t * Returns formatting rule for `value` in `units` (either in past or in future).\r\n\t * @param {object} formattingRules — Relative time labels for different units.\r\n\t * @param {string} unit - Time interval measurement unit.\r\n\t * @param {number} value - Time interval value.\r\n\t * @param {boolean} [options.future] — Tells how to format value `0`: as \"future\" (`true`) or \"past\" (`false`). Is `false` by default.\r\n\t * @return {string}\r\n\t * @example\r\n\t * // Returns \"{0} days ago\"\r\n\t * getFormattingRule(en.long, \"day\", -2, 'en')\r\n\t */\r\n\tgetFormattingRule(formattingRules, unit, value, { future }) {\r\n\t\t// Passing the language is required in order to\r\n\t\t// be able to correctly classify the `value` as a number.\r\n\t\tconst locale = this.locale\r\n\t\tformattingRules = formattingRules[unit]\r\n\t\t// Check for a special \"compacted\" rules case:\r\n\t\t// if formatting rules are the same for \"past\" and \"future\",\r\n\t\t// and also for all possible `value`s, then those rules are\r\n\t\t// stored as a single string.\r\n\t\tif (typeof formattingRules === 'string') {\r\n\t\t\treturn formattingRules\r\n\t\t}\r\n\t\t// Choose either \"past\" or \"future\" based on time `value` sign.\r\n\t\t// If \"past\" is same as \"future\" then they're stored as \"other\".\r\n\t\t// If there's only \"other\" then it's being collapsed.\r\n\t\tconst pastOrFuture = value === 0 ? (future ? 'future' : 'past') : (value < 0 ? 'past' : 'future')\r\n\t\tconst quantifierRules = formattingRules[pastOrFuture] || formattingRules\r\n\t\t// Bundle size optimization technique.\r\n\t\tif (typeof quantifierRules === 'string') {\r\n\t\t\treturn quantifierRules\r\n\t\t}\r\n\t\t// Quantify `value`.\r\n\t\tconst quantifier = this.getPluralRules().select(Math.abs(value))\r\n\t\t// \"other\" rule is supposed to always be present.\r\n\t\t// If only \"other\" rule is present then \"rules\" is not an object and is a string.\r\n\t\treturn quantifierRules[quantifier] || quantifierRules.other\r\n\t}\r\n\r\n\t/**\r\n\t * Formats a number into a string.\r\n\t * Uses `Intl.NumberFormat` when available.\r\n\t * @param {number} number\r\n\t * @return {string}\r\n\t */\r\n\tformatNumber(number) {\r\n\t\treturn this.numberFormat ? this.numberFormat.format(number) : String(number)\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an `Intl.RelativeTimeFormat` for a given `labelsType`.\r\n\t * @param {string} labelsType\r\n\t * @return {object} `Intl.RelativeTimeFormat` instance\r\n\t */\r\n\tgetFormatter(labelsType) {\r\n\t\t// `Intl.RelativeTimeFormat` instance creation is (hypothetically) assumed\r\n\t\t// a lengthy operation so the instances are cached and reused.\r\n\t\treturn this.relativeTimeFormatCache.get(this.locale, labelsType) ||\r\n\t\t\tthis.relativeTimeFormatCache.put(this.locale, labelsType, new this.IntlRelativeTimeFormat(this.locale, { style: labelsType }))\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an `Intl.PluralRules` instance.\r\n\t * @return {object} `Intl.PluralRules` instance\r\n\t */\r\n\tgetPluralRules() {\r\n\t\t// `Intl.PluralRules` instance creation is (hypothetically) assumed\r\n\t\t// a lengthy operation so the instances are cached and reused.\r\n\t\treturn this.pluralRulesCache.get(this.locale) ||\r\n\t\t\tthis.pluralRulesCache.put(this.locale, new this.IntlPluralRules(this.locale))\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * Gets localized labels for this type of labels.\r\n\t *\r\n\t * @param {(string|string[])} labelsType - Relative date/time labels type.\r\n\t * If it's an array then all label types are tried\r\n\t * until a suitable one is found.\r\n\t *\r\n\t * @returns {Object} Returns an object of shape { labelsType, labels }\r\n\t */\r\n\tgetLabels(labelsType = []) {\r\n\t\t// Convert `labels` to an array.\r\n\t\tif (typeof labelsType === 'string') {\r\n\t\t\tlabelsType = [labelsType]\r\n\t\t}\r\n\r\n\t\t// Supports legacy \"tiny\" and \"mini-time\" label styles.\r\n\t\tlabelsType = labelsType.map((labelsType) => {\r\n\t\t\tswitch (labelsType) {\r\n\t\t\t\tcase 'tiny':\r\n\t\t\t\tcase 'mini-time':\r\n\t\t\t\t\treturn 'mini'\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn labelsType\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t// \"long\" labels type is the default one.\r\n\t\t// (it's always present for all languages)\r\n\t\tlabelsType = labelsType.concat('long')\r\n\r\n\t\t// Find a suitable labels type.\r\n\t\tconst localeData = getLocaleData(this.locale)\r\n\t\tfor (const _labelsType of labelsType) {\r\n\t\t\tif (localeData[_labelsType]) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tlabelsType: _labelsType,\r\n\t\t\t\t\tlabels: localeData[_labelsType]\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\n/**\r\n * Default locale global variable.\r\n */\r\nlet defaultLocale = 'en'\r\n\r\n/**\r\n * Gets default locale.\r\n * @return {string} locale\r\n */\r\nTimeAgo.getDefaultLocale = () => defaultLocale\r\n\r\n/**\r\n * Sets default locale.\r\n * @param {string} locale\r\n */\r\nTimeAgo.setDefaultLocale = (locale) => defaultLocale = locale\r\n\r\n/**\r\n * Adds locale data for a specific locale and marks the locale as default.\r\n * @param {Object} localeData\r\n */\r\nTimeAgo.addDefaultLocale = function(localeData) {\r\n\tif (defaultLocaleHasBeenSpecified) {\r\n\t\treturn console.error('[javascript-time-ago] `TimeAgo.addDefaultLocale()` can only be called once. To add other locales, use `TimeAgo.addLocale()`.')\r\n\t}\r\n\tdefaultLocaleHasBeenSpecified = true\r\n\tTimeAgo.setDefaultLocale(localeData.locale)\r\n\tTimeAgo.addLocale(localeData)\r\n}\r\n\r\nlet defaultLocaleHasBeenSpecified\r\n\r\n/**\r\n * Adds locale data for a specific locale.\r\n * @param {Object} localeData\r\n */\r\nTimeAgo.addLocale = function(localeData) {\r\n\taddLocaleData(localeData)\r\n\tRelativeTimeFormatPolyfill.addLocale(localeData)\r\n}\r\n\r\n/**\r\n * (legacy alias)\r\n * Adds locale data for a specific locale.\r\n * @param {Object} localeData\r\n * @deprecated\r\n */\r\nTimeAgo.locale = TimeAgo.addLocale\r\n\r\n/**\r\n * Adds custom labels to locale data.\r\n * @param {string} locale\r\n * @param {string} name\r\n * @param {object} labels\r\n */\r\nTimeAgo.addLabels = (locale, name, labels) => {\r\n\tlet localeData = getLocaleData(locale)\r\n\tif (!localeData) {\r\n\t\taddLocaleData({\r\n\t\t\tlocale\r\n\t\t})\r\n\t\tlocaleData = getLocaleData(locale)\r\n\t\t// throw new Error(`[javascript-time-ago] No data for locale \"${locale}\"`)\r\n\t}\r\n\tlocaleData[name] = labels\r\n}\r\n\r\n// Normalizes `.format()` `time` argument.\r\nfunction getTimestamp(input) {\r\n\tif (input.constructor === Date || isMockedDate(input)) {\r\n\t\treturn input.getTime()\r\n\t}\r\n\r\n\tif (typeof input === 'number') {\r\n\t\treturn input\r\n\t}\r\n\r\n\t// For some weird reason istanbul doesn't see this `throw` covered.\r\n\t/* istanbul ignore next */\r\n\tthrow new Error(`Unsupported relative time formatter input: ${typeof input}, ${input}`)\r\n}\r\n\r\n// During testing via some testing libraries `Date`s aren't actually `Date`s.\r\n// https://github.com/catamphetamine/javascript-time-ago/issues/22\r\nfunction isMockedDate(object) {\r\n\treturn typeof object === 'object' && typeof object.getTime === 'function'\r\n}\r\n\r\n// Get available time interval measurement units.\r\nfunction getTimeIntervalMeasurementUnits(allowedUnits, labels, nowLabel) {\r\n\t// Get all time interval measurement units that're available\r\n\t// in locale data for a given time labels style.\r\n\tlet units = Object.keys(labels)\r\n\r\n\t// `now` unit is handled separately and is shipped in its own `now.json` file.\r\n\t// `now.json` isn't present for all locales, so it could be substituted with\r\n\t// \".second.current\".\r\n\t// Add `now` unit if it's available in locale data.\r\n\tif (nowLabel) {\r\n\t\tunits.push('now')\r\n\t}\r\n\r\n\t// If only a specific set of available time measurement units can be used\r\n\t// then only those units are allowed (if they're present in locale data).\r\n\tif (allowedUnits) {\r\n\t\tunits = allowedUnits.filter(unit => unit === 'now' || units.indexOf(unit) >= 0)\r\n\t}\r\n\r\n\treturn units\r\n}\r\n\r\nfunction getNowLabel(labels, nowLabels, longLabels, future) {\r\n\tconst nowLabel = labels.now || (nowLabels && nowLabels.now)\r\n\t// Specific \"now\" message form extended locale data (if present).\r\n\tif (nowLabel) {\r\n\t\t// Bundle size optimization technique.\r\n\t\tif (typeof nowLabel === 'string') {\r\n\t\t\treturn nowLabel\r\n\t\t}\r\n\t\t// Not handling `value === 0` as `localeData.now.current` here\r\n\t\t// because it wouldn't make sense: \"now\" is a moment,\r\n\t\t// so one can't possibly differentiate between a\r\n\t\t// \"previous\" moment, a \"current\" moment and a \"next moment\".\r\n\t\t// It can only be differentiated between \"past\" and \"future\".\r\n\t\tif (future) {\r\n\t\t\treturn nowLabel.future\r\n\t\t} else {\r\n\t\t\treturn nowLabel.past\r\n\t\t}\r\n\t}\r\n\t// Use \".second.current\" as \"now\" message.\r\n\tif (longLabels && longLabels.second && longLabels.second.current) {\r\n\t\treturn longLabels.second.current\r\n\t}\r\n}\r\n\r\nfunction isStyle(variable) {\r\n\treturn typeof variable === 'string' || isStyleObject(variable)\r\n}"],"mappings":"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"}
|
package/modules/TimeAgo.test.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import TimeAgo
|
|
2
|
-
import { getLocaleData } from '
|
|
1
|
+
import TimeAgo from './TimeAgo.js';
|
|
2
|
+
import { getLocaleData } from './LocaleDataStore.js'; // Load locale specific relative date/time messages
|
|
3
3
|
|
|
4
|
-
import english from '../locale/en'; // Just so this function code is covered.
|
|
4
|
+
import english from '../locale/en.json'; // Just so this function code is covered.
|
|
5
5
|
|
|
6
6
|
TimeAgo.setDefaultLocale('en');
|
|
7
7
|
describe("javascript-time-ago", function () {
|
|
@@ -218,7 +218,7 @@ describe("javascript-time-ago", function () {
|
|
|
218
218
|
return timeAgo.format('Jan 14, 2017');
|
|
219
219
|
};
|
|
220
220
|
|
|
221
|
-
thrower.should
|
|
221
|
+
thrower.should["throw"]('Unsupported relative time formatter input: string, Jan 14, 2017');
|
|
222
222
|
});
|
|
223
223
|
it('should return an empty string if the specified units are not available in locale data', function () {
|
|
224
224
|
var timeAgo = new TimeAgo('en');
|
|
@@ -296,12 +296,12 @@ describe("javascript-time-ago", function () {
|
|
|
296
296
|
}).should.equal('2 г');
|
|
297
297
|
});
|
|
298
298
|
it('should have generated missing quantifier functions for locales that do not have it in CLDR data', function () {
|
|
299
|
-
new TimeAgo('ccp').format(Date.now() + 60 * 1000).should.
|
|
299
|
+
new TimeAgo('ccp').format(Date.now() + 60 * 1000).should.include(' 𑄟𑄨𑄚𑄨𑄘𑄬');
|
|
300
300
|
});
|
|
301
301
|
it('should throw for non-existing locales', function () {
|
|
302
302
|
(function () {
|
|
303
303
|
return TimeAgo.addLocale();
|
|
304
|
-
}).should
|
|
304
|
+
}).should["throw"]('No locale data passed');
|
|
305
305
|
});
|
|
306
306
|
it('should choose "future" variant of a label for `0` if "future: true" option is passed', function () {
|
|
307
307
|
TimeAgo.addLocale(english);
|
|
@@ -615,7 +615,7 @@ describe("javascript-time-ago", function () {
|
|
|
615
615
|
labels: 'long',
|
|
616
616
|
steps: [{}]
|
|
617
617
|
});
|
|
618
|
-
}).to
|
|
618
|
+
}).to["throw"]('Each step must define either `formatAs` or `format()`.');
|
|
619
619
|
});
|
|
620
620
|
it('should add default locale', function () {
|
|
621
621
|
TimeAgo.getDefaultLocale().should.equal('en');
|
|
@@ -658,36 +658,4 @@ describe("javascript-time-ago", function () {
|
|
|
658
658
|
}).should.equal('2m');
|
|
659
659
|
});
|
|
660
660
|
});
|
|
661
|
-
describe('isStyleObject', function () {
|
|
662
|
-
it('should detect a style object', function () {
|
|
663
|
-
isStyleObject({
|
|
664
|
-
gradation: []
|
|
665
|
-
}).should.equal(true);
|
|
666
|
-
isStyleObject({
|
|
667
|
-
steps: []
|
|
668
|
-
}).should.equal(true);
|
|
669
|
-
isStyleObject({
|
|
670
|
-
flavour: 'long'
|
|
671
|
-
}).should.equal(true);
|
|
672
|
-
isStyleObject({
|
|
673
|
-
flavour: ['long']
|
|
674
|
-
}).should.equal(true);
|
|
675
|
-
isStyleObject({
|
|
676
|
-
labels: 'long'
|
|
677
|
-
}).should.equal(true);
|
|
678
|
-
isStyleObject({
|
|
679
|
-
labels: ['long']
|
|
680
|
-
}).should.equal(true);
|
|
681
|
-
isStyleObject({
|
|
682
|
-
units: ['now']
|
|
683
|
-
}).should.equal(true);
|
|
684
|
-
isStyleObject({
|
|
685
|
-
future: true,
|
|
686
|
-
round: 'floor',
|
|
687
|
-
now: 0,
|
|
688
|
-
getTimeToNextUpdate: true
|
|
689
|
-
}).should.equal(false);
|
|
690
|
-
isStyleObject('round').should.equal(false);
|
|
691
|
-
});
|
|
692
|
-
});
|
|
693
661
|
//# sourceMappingURL=TimeAgo.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../source/TimeAgo.test.js"],"names":["TimeAgo","isStyleObject","getLocaleData","english","setDefaultLocale","describe","it","timeAgo","format","Date","now","should","equal","future","labels","steps","formatAs","flavour","gradation","englishNow","addLocale","undefined","NumberFormat","Intl","englishLongTimeMinute","minute","past","mockedDate","getTime","thrower","throw","units","custom","time","date","locale","style2","style","unit","factor","secondLabels","second","getTimeToNextUpdate","round","deep","minTime","polyfill","global","expect","to","getDefaultLocale","addDefaultLocale"],"mappings":"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","sourcesContent":["import TimeAgo, { isStyleObject } from '../source/TimeAgo'\r\nimport { getLocaleData } from '../source/LocaleDataStore'\r\n\r\n// Load locale specific relative date/time messages\r\nimport english from '../locale/en'\r\n\r\n// Just so this function code is covered.\r\nTimeAgo.setDefaultLocale('en')\r\n\r\ndescribe(`javascript-time-ago`, () => {\r\n\tit('should default to \"round-minute\" style', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now()).should.equal('just now')\r\n\t\ttimeAgo.format(Date.now() + 20 * 1000).should.equal('in a moment')\r\n\t\ttimeAgo.format(Date.now() + 1 * 60 * 1000).should.equal('in 1 minute')\r\n\t\ttimeAgo.format(Date.now() + 4 * 60 * 1000).should.equal('in 4 minutes')\r\n\t})\r\n\r\n\tit('should tell `options` argument from `style` argument', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), 'mini-now').should.equal('now')\r\n\t\ttimeAgo.format(0, { future: true, now: 0 }).should.equal('in a moment')\r\n\t\ttimeAgo.format(0, { labels: 'mini', steps: [{ formatAs: 'now' }, { formatAs: 'second' }] }, { future: true, now: 0 }).should.equal('now')\r\n\t\ttimeAgo.format(0, { labels: ['mini'], steps: [{ formatAs: 'now' }, { formatAs: 'second' }] }, { future: true, now: 0 }).should.equal('now')\r\n\t\t// `flavour` is a legacy name of `labels` property.\r\n\t\ttimeAgo.format(0, { flavour: 'mini' }, { future: true, now: 0 }).should.equal('now')\r\n\t\ttimeAgo.format(0, { flavour: ['mini'] }, { future: true, now: 0 }).should.equal('now')\r\n\t\ttimeAgo.format(0, { steps: [{ formatAs: 'minute' }] }, { future: true, now: 0 }).should.equal('in 0 minutes')\r\n\t\t// `gradation` is a legacy name of `steps` property.\r\n\t\ttimeAgo.format(0, { gradation: [{ formatAs: 'minute' }] }, { future: true, now: 0 }).should.equal('in 0 minutes')\r\n\t})\r\n\r\n\tit('should try various label types until an appropriate one is found', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), { labels: ['exotic', 'short'] }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should support the legacy name \"flavour\" of \"labels\"', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), { labels: ['exotic', 'short'] }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should fallback to \"second.current\" for \"now\" when \"now\" is not defined', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst englishNow = english.now\r\n\t\tdelete english.now\r\n\t\tTimeAgo.addLocale(english)\r\n\t\tenglish.now = undefined\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('now')\r\n\t\tenglish.now = englishNow\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should not use Intl.NumberFormat if it is not available', () => {\r\n\t\tconst NumberFormat = Intl.NumberFormat\r\n\t\tdelete Intl.NumberFormat\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now() + 60 * 1000, { labels: 'long-time' }).should.equal('1 minute')\r\n\t\tIntl.NumberFormat = NumberFormat\r\n\t})\r\n\r\n\tit('should work when \"past\"/\"future\" messages are same for all quantifiers', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now() + 365 * 24 * 60 * 60 * 1000, { labels: 'short' }).should.equal('in 1 yr.')\r\n\t})\r\n\r\n\tit('should work when \"now\" is a string (does not differentiate between \"past\" and \"future\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst englishNow = english.now\r\n\t\tenglish.now = { now: 'now' }\r\n\t\tTimeAgo.addLocale(english)\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('now')\r\n\t\tenglish.now = englishNow\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should work when a unit has formatting rules for \"past\" and \"future\" which are strings (style: not \"long\", not \"short\", not \"narrow\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst englishLongTimeMinute = english['long-time'].minute\r\n\t\tenglish['long-time'].minute = {\r\n\t\t\tpast: '{0} minute(s) ago',\r\n\t\t\tfuture: 'in {0} minute(s)'\r\n\t\t}\r\n\t\tTimeAgo.addLocale(english)\r\n\t\t// Past.\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, { labels: 'long-time' }).should.equal('1 minute(s) ago')\r\n\t\t// Future (covers an \"else\" branch).\r\n\t\ttimeAgo.format(Date.now() + 60 * 1000, { labels: 'long-time' }).should.equal('in 1 minute(s)')\r\n\t\t// Undo.\r\n\t\tenglish['long-time'].minute = englishLongTimeMinute\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, { labels: 'long-time' }).should.equal('1 minute')\r\n\t})\r\n\r\n\tit(`should format \"now\" for \"past\" time`, () =>\r\n\t{\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now() + 10, { labels: ['long'] }).should.equal('in a moment')\r\n\t})\r\n\r\n\tit('should accept a string style name argument', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// \"mini\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'mini').should.equal('0s')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'mini').should.equal('1s')\r\n\t\t// \"mini-now\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'mini-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'mini-now').should.equal('1s')\r\n\t\t// \"mini-minute-now\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'mini-minute-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'mini-minute-now').should.equal('1m')\r\n\t\t// \"mini-minute\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'mini-minute').should.equal('0m')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'mini-minute').should.equal('1m')\r\n\t\t// \"twitter\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'twitter').should.equal('0s')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'twitter').should.equal('1s')\r\n\t\t// \"twitter-now\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'twitter-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'twitter-now').should.equal('1s')\r\n\t\t// \"twitter-minute-now\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'twitter-minute-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'twitter-minute-now').should.equal('1m')\r\n\t\t// \"twitter-minute\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'twitter-minute').should.equal('0m')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'twitter-minute').should.equal('1m')\r\n\t\t// \"twitter-first-minute\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'twitter-first-minute').should.equal('')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'twitter-first-minute').should.equal('1m')\r\n\t\t// \"approximate\".\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'approximate').should.equal('just now')\r\n\t\t// \"convenient\" style was renamed to \"approximate\".\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'convenient').should.equal('just now')\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'round').should.equal('45 seconds ago')\r\n\t\t// \"default\" style was renamed to \"round\".\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'default').should.equal('45 seconds ago')\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'round-minute').should.equal('just now')\r\n\t\t// \"time\" style was renamed to \"approximate-time\".\r\n\t\ttimeAgo.format(Date.now() - 2 * 60 * 1000, 'time').should.equal('2 minutes')\r\n\t\ttimeAgo.format(Date.now() - 2 * 60 * 1000, 'approximate-time').should.equal('2 minutes')\r\n\t\ttimeAgo.format(Date.now(), 'exotic').should.equal('just now')\r\n\t})\r\n\r\n\tit('should accept empty constructor parameters', () => {\r\n\t\tconst timeAgo = new TimeAgo()\r\n\t\ttimeAgo.format(new Date()).should.equal('just now')\r\n\t})\r\n\r\n\tit('should accept \"mocked\" Dates when testing', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst mockedDate = { getTime: () => Date.now() }\r\n\t\ttimeAgo.format(mockedDate).should.equal('just now')\r\n\t})\r\n\r\n\tit('should not accept anything but Dates and timestamps', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst thrower = () => timeAgo.format('Jan 14, 2017')\r\n\t\tthrower.should.throw('Unsupported relative time formatter input: string, Jan 14, 2017')\r\n\t})\r\n\r\n\tit('should return an empty string if the specified units are not available in locale data', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), { units: ['femtosecond'] }).should.equal('')\r\n\t})\r\n\r\n\tit('should format for a style with \"custom\" function', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\r\n\t\t// `custom` returns a string\r\n\t\ttimeAgo.format(Date.now(), {\r\n\t\t\tcustom({ now, time, date, locale }) {\r\n\t\t\t\treturn locale\r\n\t\t\t}\r\n\t\t})\r\n\t\t.should.equal('en')\r\n\r\n\t\t// `custom` returns `undefined`\r\n\t\ttimeAgo.format(Date.now(), {\r\n\t\t\tcustom({ now, time, date, locale }) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t})\r\n\t\t.should.equal('just now')\r\n\t})\r\n\r\n\tit('should format future dates', () => {\r\n\t\tnew TimeAgo('en').format(Date.now() + 60 * 60 * 1000).should.equal('in 1 hour')\r\n\t\tnew TimeAgo('ru').format(Date.now() + 60 * 1000).should.equal('через 1 минуту')\r\n\t})\r\n\r\n\tit('should accept \"future\" option', () => {\r\n\t\t// \"now\" unit.\r\n\t\tnew TimeAgo('en').format(Date.now()).should.equal('just now')\r\n\t\tnew TimeAgo('en').format(Date.now(), 'approximate', { future: true }).should.equal('in a moment')\r\n\r\n\t\t// Non-\"now\" unit, \"long\" style.\r\n\t\t// const style = {\r\n\t\t// \tgradation: [{\r\n\t\t// \t\tfactor: 1,\r\n\t\t// \t\tunit: 'second'\r\n\t\t// \t}],\r\n\t\t// \tlabels: 'long'\r\n\t\t// }\r\n\t\t// new TimeAgo('en').format(Date.now(), style).should.equal('0 seconds ago')\r\n\t\t// new TimeAgo('en').format(Date.now(), style, { future: true }).should.equal('in 0 seconds')\r\n\r\n\t\t// Non-\"now\" unit, \"mini\" style.\r\n\t\tconst style2 = {\r\n\t\t\tstyle: [{\r\n\t\t\t\tunit: 'year'\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini'\r\n\t\t}\r\n\t\tnew TimeAgo('ru').format(Date.now() - 5 * 365 * 24 * 60 * 60 * 1000, style2).should.equal('5 л')\r\n\t\tnew TimeAgo('ru').format(Date.now() - 5 * 365 * 24 * 60 * 60 * 1000, style2, { future: true }).should.equal('5 л')\r\n\t})\r\n\r\n\tit('should support the legacy properties: \"gradation\", \"flavour\", \"factor\", \"unit\", \"\\'tiny\\'\" labels style', () => {\r\n\t\t// Non-\"now\" unit, \"tiny\" style.\r\n\t\tconst style = {\r\n\t\t\tgradation: [{\r\n\t\t\t\tfactor: 5,\r\n\t\t\t\tunit: 'year'\r\n\t\t\t}],\r\n\t\t\tflavour: 'tiny'\r\n\t\t}\r\n\t\tnew TimeAgo('ru').format(Date.now() - 10 * 1000, style).should.equal('2 г')\r\n\t\tnew TimeAgo('ru').format(Date.now() - 10 * 1000, style, { future: true }).should.equal('2 г')\r\n\t})\r\n\r\n\tit('should have generated missing quantifier functions for locales that do not have it in CLDR data', () => {\r\n\t\tnew TimeAgo('ccp').format(Date.now() + 60 * 1000).should.equal('1 𑄟𑄨𑄚𑄨𑄘𑄬')\r\n\t})\r\n\r\n\tit('should throw for non-existing locales', () => {\r\n\t\t(() => TimeAgo.addLocale()).should.throw('No locale data passed')\r\n\t})\r\n\r\n\tit('should choose \"future\" variant of a label for `0` if \"future: true\" option is passed', () => {\r\n\t\tTimeAgo.addLocale(english)\r\n\t\tconst secondLabels = english['mini'].second\r\n\t\tenglish['mini'].second = {\r\n\t\t\tpast: '{0} seconds ago',\r\n\t\t\tfuture: 'in {0} seconds'\r\n\t\t}\r\n\r\n\t\tnew TimeAgo('en').format(Date.now(), {\r\n\t\t\tsteps: [{\r\n\t\t\t\tunit: 'second'\r\n\t\t\t}],\r\n\t\t\t// Uses \"mini\" labels so that it doesn't use `Intl.RelativeTimeFormat`.\r\n\t\t\tlabels: 'mini'\r\n\t\t}).should.equal('0 seconds ago')\r\n\r\n\t\tnew TimeAgo('en').format(Date.now(), {\r\n\t\t\tsteps: [{\r\n\t\t\t\tunit: 'second'\r\n\t\t\t}],\r\n\t\t\t// Uses \"mini\" labels so that it doesn't use `Intl.RelativeTimeFormat`.\r\n\t\t\tlabels: 'mini'\r\n\t\t}, {\r\n\t\t\tfuture: true\r\n\t\t}).should.equal('in 0 seconds')\r\n\r\n\t\tenglish['mini'].second = secondLabels\r\n\t})\r\n\r\n\tit('should get time to next update (round: \"floor\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\ttimeAgo.format(1000, 'twitter', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (round: \"round\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\ttimeAgo.format(1000, 'twitter', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t501\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (\"mini-now\" style) (round: \"floor\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// In 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'59s',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// In 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t// Right after zero point.\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: true`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tfuture: true,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: false`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Right after zero point (past).\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000 - 1\r\n\t\t])\r\n\t\t// 1 second ago.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1000\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (\"mini-now\" style) (round: \"round\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// In 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t500 + 1\r\n\t\t])\r\n\t\t// Almost in 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 500 + 1\r\n\t\t}).should.deep.equal([\r\n\t\t\t'59s',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// In 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59.5 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59.5 * 1000 + 1\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t// Right after zero point.\r\n\t\t\t500\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: true`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tfuture: true\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: false`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t500\r\n\t\t])\r\n\t\t// Right after zero point (past).\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t500 - 1\r\n\t\t])\r\n\t\t// 1 second ago.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 500\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1000\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (first step has non-zero \"minTime\") (round: \"floor\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\r\n\t\t// Future.\r\n\t\t// Inside the first step.\r\n\t\t// Updates soon.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: -0.5 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t0.5 * 1000 + 1\r\n\t\t])\r\n\r\n\t\t// Future.\r\n\t\t// Outside of the first step.\r\n\t\t// Updates right after zero point.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60 * 1000\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 1 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'',\r\n\t\t\t59 * 1000 + 1\r\n\t\t])\r\n\r\n\t\t// Zero point.\r\n\t\t// Outside of the first step.\r\n\t\t// Updates at the first step's `minTime`.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'',\r\n\t\t\t60 * 1000\r\n\t\t])\r\n\r\n\t\t// Past.\r\n\t\t// Inside the first step.\r\n\t\t// Updates at the next minute.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 60 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t60 * 1000\r\n\t\t])\r\n\r\n\t\t// Almost in 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'59s',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// In 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 second.\r\n\t\t// Updates right after the zero point.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: true`.\r\n\t\t// Updates right after zero point.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tfuture: true,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: false`.\r\n\t\t// Updates at the next second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Right after zero point (past).\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000 - 1\r\n\t\t])\r\n\t\t// 1 second ago.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1000\r\n\t\t])\r\n\t})\r\n\r\n\tit('should pass `formatAs()` in `step.format()`', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{\r\n\t\t\t\tformat(date, locale, { formatAs }) {\r\n\t\t\t\t\treturn formatAs('second', 1)\r\n\t\t\t\t}\r\n\t\t\t}]\r\n\t\t}).should.equal('in 1 second')\r\n\t})\r\n\r\n\tit('should support `polyfill: false` option', () => {\r\n\t\tconst timeAgo = new TimeAgo('en', { polyfill: false })\r\n\t\t// Still uses \"now\" labels, even when not polyfilled.\r\n\t\ttimeAgo.format(0, 'round', { now: 0 }).should.equal('just now')\r\n\t\ttimeAgo.format(1000, 'round', { now: 0 }).should.equal('in 1 second')\r\n\t})\r\n\r\n\tit('should not use Intl.NumberFormat if it is not available', () => {\r\n\t\tconst Intl = global.Intl\r\n\t\tglobal.Intl = undefined\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(1000, 'round', { now: 0 }).should.equal('in 1 second')\r\n\t\tglobal.Intl = Intl\r\n\t})\r\n\r\n\tit('should format `0` in past mode by default', () => {\r\n\t\tnew TimeAgo('en').format(0, {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'second'\r\n\t\t\t}]\r\n\t\t}, { now: 0 }).should.equal('0 seconds ago')\r\n\t})\r\n\r\n\tit('should format `0` in future mode when `future: true` option was passed', () => {\r\n\t\tnew TimeAgo('en').format(0, {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'second'\r\n\t\t\t}]\r\n\t\t}, { now: 0, future: true }).should.equal('in 0 seconds')\r\n\t})\r\n\r\n\tit('should throw if a step does not define `formatAs` or `format()`', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\texpect(() => timeAgo.format(Date.now() + 1000, {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{}]\r\n\t\t})).to.throw('Each step must define either `formatAs` or `format()`.')\r\n\t})\r\n\r\n\tit('should add default locale', () => {\r\n\t\tTimeAgo.getDefaultLocale().should.equal('en')\r\n\t\tTimeAgo.addDefaultLocale({\r\n\t\t\tlocale: 'el'\r\n\t\t})\r\n\t\tTimeAgo.getDefaultLocale().should.equal('el')\r\n\t\t// expect(() => {\r\n\t\t\tTimeAgo.addDefaultLocale({\r\n\t\t\t\tlocale: 'el'\r\n\t\t\t})\r\n\t\t// }).to.throw('`TimeAgo.addDefaultLocale()` can only be called once')\r\n\t\tTimeAgo.setDefaultLocale('en')\r\n\t})\r\n\r\n\tit('should support \"floor\" rounding', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(0.9 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('0s')\r\n\t\ttimeAgo.format(1 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('1s')\r\n\t\ttimeAgo.format(1.9 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('1s')\r\n\t\ttimeAgo.format(2 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('2s')\r\n\t\ttimeAgo.format(1.9 * 60 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('1m')\r\n\t\ttimeAgo.format(2 * 60 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('2m')\r\n\t})\r\n})\r\n\r\ndescribe('isStyleObject', () => {\r\n\tit('should detect a style object', () => {\r\n\t\tisStyleObject({\r\n\t\t\tgradation: []\r\n\t\t}).should.equal(true)\r\n\t\tisStyleObject({\r\n\t\t\tsteps: []\r\n\t\t}).should.equal(true)\r\n\t\tisStyleObject({\r\n\t\t\tflavour: 'long'\r\n\t\t}).should.equal(true)\r\n\t\tisStyleObject({\r\n\t\t\tflavour: ['long']\r\n\t\t}).should.equal(true)\r\n\t\tisStyleObject({\r\n\t\t\tlabels: 'long'\r\n\t\t}).should.equal(true)\r\n\t\tisStyleObject({\r\n\t\t\tlabels: ['long']\r\n\t\t}).should.equal(true)\r\n\t\tisStyleObject({\r\n\t\t\tunits: ['now']\r\n\t\t}).should.equal(true)\r\n\t\tisStyleObject({\r\n\t\t\tfuture: true,\r\n\t\t\tround: 'floor',\r\n\t\t\tnow: 0,\r\n\t\t\tgetTimeToNextUpdate: true\r\n\t\t}).should.equal(false)\r\n\t\tisStyleObject('round').should.equal(false)\r\n\t})\r\n})"],"file":"TimeAgo.test.js"}
|
|
1
|
+
{"version":3,"file":"TimeAgo.test.js","names":["TimeAgo","getLocaleData","english","setDefaultLocale","describe","it","timeAgo","format","Date","now","should","equal","future","labels","steps","formatAs","flavour","gradation","englishNow","addLocale","undefined","NumberFormat","Intl","englishLongTimeMinute","minute","past","mockedDate","getTime","thrower","units","custom","time","date","locale","style2","style","unit","factor","include","secondLabels","second","getTimeToNextUpdate","round","deep","minTime","polyfill","global","expect","to","getDefaultLocale","addDefaultLocale"],"sources":["../source/TimeAgo.test.js"],"sourcesContent":["import TimeAgo from './TimeAgo.js'\r\nimport { getLocaleData } from './LocaleDataStore.js'\r\n\r\n// Load locale specific relative date/time messages\r\nimport english from '../locale/en.json'\r\n\r\n// Just so this function code is covered.\r\nTimeAgo.setDefaultLocale('en')\r\n\r\ndescribe(`javascript-time-ago`, () => {\r\n\tit('should default to \"round-minute\" style', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now()).should.equal('just now')\r\n\t\ttimeAgo.format(Date.now() + 20 * 1000).should.equal('in a moment')\r\n\t\ttimeAgo.format(Date.now() + 1 * 60 * 1000).should.equal('in 1 minute')\r\n\t\ttimeAgo.format(Date.now() + 4 * 60 * 1000).should.equal('in 4 minutes')\r\n\t})\r\n\r\n\tit('should tell `options` argument from `style` argument', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), 'mini-now').should.equal('now')\r\n\t\ttimeAgo.format(0, { future: true, now: 0 }).should.equal('in a moment')\r\n\t\ttimeAgo.format(0, { labels: 'mini', steps: [{ formatAs: 'now' }, { formatAs: 'second' }] }, { future: true, now: 0 }).should.equal('now')\r\n\t\ttimeAgo.format(0, { labels: ['mini'], steps: [{ formatAs: 'now' }, { formatAs: 'second' }] }, { future: true, now: 0 }).should.equal('now')\r\n\t\t// `flavour` is a legacy name of `labels` property.\r\n\t\ttimeAgo.format(0, { flavour: 'mini' }, { future: true, now: 0 }).should.equal('now')\r\n\t\ttimeAgo.format(0, { flavour: ['mini'] }, { future: true, now: 0 }).should.equal('now')\r\n\t\ttimeAgo.format(0, { steps: [{ formatAs: 'minute' }] }, { future: true, now: 0 }).should.equal('in 0 minutes')\r\n\t\t// `gradation` is a legacy name of `steps` property.\r\n\t\ttimeAgo.format(0, { gradation: [{ formatAs: 'minute' }] }, { future: true, now: 0 }).should.equal('in 0 minutes')\r\n\t})\r\n\r\n\tit('should try various label types until an appropriate one is found', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), { labels: ['exotic', 'short'] }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should support the legacy name \"flavour\" of \"labels\"', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), { labels: ['exotic', 'short'] }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should fallback to \"second.current\" for \"now\" when \"now\" is not defined', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst englishNow = english.now\r\n\t\tdelete english.now\r\n\t\tTimeAgo.addLocale(english)\r\n\t\tenglish.now = undefined\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('now')\r\n\t\tenglish.now = englishNow\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should not use Intl.NumberFormat if it is not available', () => {\r\n\t\tconst NumberFormat = Intl.NumberFormat\r\n\t\tdelete Intl.NumberFormat\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now() + 60 * 1000, { labels: 'long-time' }).should.equal('1 minute')\r\n\t\tIntl.NumberFormat = NumberFormat\r\n\t})\r\n\r\n\tit('should work when \"past\"/\"future\" messages are same for all quantifiers', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now() + 365 * 24 * 60 * 60 * 1000, { labels: 'short' }).should.equal('in 1 yr.')\r\n\t})\r\n\r\n\tit('should work when \"now\" is a string (does not differentiate between \"past\" and \"future\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst englishNow = english.now\r\n\t\tenglish.now = { now: 'now' }\r\n\t\tTimeAgo.addLocale(english)\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('now')\r\n\t\tenglish.now = englishNow\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should work when a unit has formatting rules for \"past\" and \"future\" which are strings (style: not \"long\", not \"short\", not \"narrow\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst englishLongTimeMinute = english['long-time'].minute\r\n\t\tenglish['long-time'].minute = {\r\n\t\t\tpast: '{0} minute(s) ago',\r\n\t\t\tfuture: 'in {0} minute(s)'\r\n\t\t}\r\n\t\tTimeAgo.addLocale(english)\r\n\t\t// Past.\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, { labels: 'long-time' }).should.equal('1 minute(s) ago')\r\n\t\t// Future (covers an \"else\" branch).\r\n\t\ttimeAgo.format(Date.now() + 60 * 1000, { labels: 'long-time' }).should.equal('in 1 minute(s)')\r\n\t\t// Undo.\r\n\t\tenglish['long-time'].minute = englishLongTimeMinute\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, { labels: 'long-time' }).should.equal('1 minute')\r\n\t})\r\n\r\n\tit(`should format \"now\" for \"past\" time`, () =>\r\n\t{\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now() + 10, { labels: ['long'] }).should.equal('in a moment')\r\n\t})\r\n\r\n\tit('should accept a string style name argument', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// \"mini\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'mini').should.equal('0s')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'mini').should.equal('1s')\r\n\t\t// \"mini-now\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'mini-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'mini-now').should.equal('1s')\r\n\t\t// \"mini-minute-now\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'mini-minute-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'mini-minute-now').should.equal('1m')\r\n\t\t// \"mini-minute\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'mini-minute').should.equal('0m')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'mini-minute').should.equal('1m')\r\n\t\t// \"twitter\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'twitter').should.equal('0s')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'twitter').should.equal('1s')\r\n\t\t// \"twitter-now\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'twitter-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'twitter-now').should.equal('1s')\r\n\t\t// \"twitter-minute-now\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'twitter-minute-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'twitter-minute-now').should.equal('1m')\r\n\t\t// \"twitter-minute\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'twitter-minute').should.equal('0m')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'twitter-minute').should.equal('1m')\r\n\t\t// \"twitter-first-minute\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'twitter-first-minute').should.equal('')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'twitter-first-minute').should.equal('1m')\r\n\t\t// \"approximate\".\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'approximate').should.equal('just now')\r\n\t\t// \"convenient\" style was renamed to \"approximate\".\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'convenient').should.equal('just now')\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'round').should.equal('45 seconds ago')\r\n\t\t// \"default\" style was renamed to \"round\".\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'default').should.equal('45 seconds ago')\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'round-minute').should.equal('just now')\r\n\t\t// \"time\" style was renamed to \"approximate-time\".\r\n\t\ttimeAgo.format(Date.now() - 2 * 60 * 1000, 'time').should.equal('2 minutes')\r\n\t\ttimeAgo.format(Date.now() - 2 * 60 * 1000, 'approximate-time').should.equal('2 minutes')\r\n\t\ttimeAgo.format(Date.now(), 'exotic').should.equal('just now')\r\n\t})\r\n\r\n\tit('should accept empty constructor parameters', () => {\r\n\t\tconst timeAgo = new TimeAgo()\r\n\t\ttimeAgo.format(new Date()).should.equal('just now')\r\n\t})\r\n\r\n\tit('should accept \"mocked\" Dates when testing', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst mockedDate = { getTime: () => Date.now() }\r\n\t\ttimeAgo.format(mockedDate).should.equal('just now')\r\n\t})\r\n\r\n\tit('should not accept anything but Dates and timestamps', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst thrower = () => timeAgo.format('Jan 14, 2017')\r\n\t\tthrower.should.throw('Unsupported relative time formatter input: string, Jan 14, 2017')\r\n\t})\r\n\r\n\tit('should return an empty string if the specified units are not available in locale data', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), { units: ['femtosecond'] }).should.equal('')\r\n\t})\r\n\r\n\tit('should format for a style with \"custom\" function', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\r\n\t\t// `custom` returns a string\r\n\t\ttimeAgo.format(Date.now(), {\r\n\t\t\tcustom({ now, time, date, locale }) {\r\n\t\t\t\treturn locale\r\n\t\t\t}\r\n\t\t})\r\n\t\t.should.equal('en')\r\n\r\n\t\t// `custom` returns `undefined`\r\n\t\ttimeAgo.format(Date.now(), {\r\n\t\t\tcustom({ now, time, date, locale }) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t})\r\n\t\t.should.equal('just now')\r\n\t})\r\n\r\n\tit('should format future dates', () => {\r\n\t\tnew TimeAgo('en').format(Date.now() + 60 * 60 * 1000).should.equal('in 1 hour')\r\n\t\tnew TimeAgo('ru').format(Date.now() + 60 * 1000).should.equal('через 1 минуту')\r\n\t})\r\n\r\n\tit('should accept \"future\" option', () => {\r\n\t\t// \"now\" unit.\r\n\t\tnew TimeAgo('en').format(Date.now()).should.equal('just now')\r\n\t\tnew TimeAgo('en').format(Date.now(), 'approximate', { future: true }).should.equal('in a moment')\r\n\r\n\t\t// Non-\"now\" unit, \"long\" style.\r\n\t\t// const style = {\r\n\t\t// \tgradation: [{\r\n\t\t// \t\tfactor: 1,\r\n\t\t// \t\tunit: 'second'\r\n\t\t// \t}],\r\n\t\t// \tlabels: 'long'\r\n\t\t// }\r\n\t\t// new TimeAgo('en').format(Date.now(), style).should.equal('0 seconds ago')\r\n\t\t// new TimeAgo('en').format(Date.now(), style, { future: true }).should.equal('in 0 seconds')\r\n\r\n\t\t// Non-\"now\" unit, \"mini\" style.\r\n\t\tconst style2 = {\r\n\t\t\tstyle: [{\r\n\t\t\t\tunit: 'year'\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini'\r\n\t\t}\r\n\t\tnew TimeAgo('ru').format(Date.now() - 5 * 365 * 24 * 60 * 60 * 1000, style2).should.equal('5 л')\r\n\t\tnew TimeAgo('ru').format(Date.now() - 5 * 365 * 24 * 60 * 60 * 1000, style2, { future: true }).should.equal('5 л')\r\n\t})\r\n\r\n\tit('should support the legacy properties: \"gradation\", \"flavour\", \"factor\", \"unit\", \"\\'tiny\\'\" labels style', () => {\r\n\t\t// Non-\"now\" unit, \"tiny\" style.\r\n\t\tconst style = {\r\n\t\t\tgradation: [{\r\n\t\t\t\tfactor: 5,\r\n\t\t\t\tunit: 'year'\r\n\t\t\t}],\r\n\t\t\tflavour: 'tiny'\r\n\t\t}\r\n\t\tnew TimeAgo('ru').format(Date.now() - 10 * 1000, style).should.equal('2 г')\r\n\t\tnew TimeAgo('ru').format(Date.now() - 10 * 1000, style, { future: true }).should.equal('2 г')\r\n\t})\r\n\r\n\tit('should have generated missing quantifier functions for locales that do not have it in CLDR data', () => {\r\n\t\tnew TimeAgo('ccp').format(Date.now() + 60 * 1000).should.include(' 𑄟𑄨𑄚𑄨𑄘𑄬')\r\n\t})\r\n\r\n\tit('should throw for non-existing locales', () => {\r\n\t\t(() => TimeAgo.addLocale()).should.throw('No locale data passed')\r\n\t})\r\n\r\n\tit('should choose \"future\" variant of a label for `0` if \"future: true\" option is passed', () => {\r\n\t\tTimeAgo.addLocale(english)\r\n\t\tconst secondLabels = english['mini'].second\r\n\t\tenglish['mini'].second = {\r\n\t\t\tpast: '{0} seconds ago',\r\n\t\t\tfuture: 'in {0} seconds'\r\n\t\t}\r\n\r\n\t\tnew TimeAgo('en').format(Date.now(), {\r\n\t\t\tsteps: [{\r\n\t\t\t\tunit: 'second'\r\n\t\t\t}],\r\n\t\t\t// Uses \"mini\" labels so that it doesn't use `Intl.RelativeTimeFormat`.\r\n\t\t\tlabels: 'mini'\r\n\t\t}).should.equal('0 seconds ago')\r\n\r\n\t\tnew TimeAgo('en').format(Date.now(), {\r\n\t\t\tsteps: [{\r\n\t\t\t\tunit: 'second'\r\n\t\t\t}],\r\n\t\t\t// Uses \"mini\" labels so that it doesn't use `Intl.RelativeTimeFormat`.\r\n\t\t\tlabels: 'mini'\r\n\t\t}, {\r\n\t\t\tfuture: true\r\n\t\t}).should.equal('in 0 seconds')\r\n\r\n\t\tenglish['mini'].second = secondLabels\r\n\t})\r\n\r\n\tit('should get time to next update (round: \"floor\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\ttimeAgo.format(1000, 'twitter', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (round: \"round\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\ttimeAgo.format(1000, 'twitter', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t501\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (\"mini-now\" style) (round: \"floor\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// In 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'59s',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// In 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t// Right after zero point.\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: true`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tfuture: true,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: false`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Right after zero point (past).\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000 - 1\r\n\t\t])\r\n\t\t// 1 second ago.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1000\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (\"mini-now\" style) (round: \"round\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// In 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t500 + 1\r\n\t\t])\r\n\t\t// Almost in 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 500 + 1\r\n\t\t}).should.deep.equal([\r\n\t\t\t'59s',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// In 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59.5 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59.5 * 1000 + 1\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t// Right after zero point.\r\n\t\t\t500\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: true`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tfuture: true\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: false`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t500\r\n\t\t])\r\n\t\t// Right after zero point (past).\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t500 - 1\r\n\t\t])\r\n\t\t// 1 second ago.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 500\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1000\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (first step has non-zero \"minTime\") (round: \"floor\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\r\n\t\t// Future.\r\n\t\t// Inside the first step.\r\n\t\t// Updates soon.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: -0.5 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t0.5 * 1000 + 1\r\n\t\t])\r\n\r\n\t\t// Future.\r\n\t\t// Outside of the first step.\r\n\t\t// Updates right after zero point.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60 * 1000\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 1 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'',\r\n\t\t\t59 * 1000 + 1\r\n\t\t])\r\n\r\n\t\t// Zero point.\r\n\t\t// Outside of the first step.\r\n\t\t// Updates at the first step's `minTime`.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'',\r\n\t\t\t60 * 1000\r\n\t\t])\r\n\r\n\t\t// Past.\r\n\t\t// Inside the first step.\r\n\t\t// Updates at the next minute.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 60 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t60 * 1000\r\n\t\t])\r\n\r\n\t\t// Almost in 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'59s',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// In 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 second.\r\n\t\t// Updates right after the zero point.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: true`.\r\n\t\t// Updates right after zero point.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tfuture: true,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: false`.\r\n\t\t// Updates at the next second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Right after zero point (past).\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000 - 1\r\n\t\t])\r\n\t\t// 1 second ago.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1000\r\n\t\t])\r\n\t})\r\n\r\n\tit('should pass `formatAs()` in `step.format()`', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{\r\n\t\t\t\tformat(date, locale, { formatAs }) {\r\n\t\t\t\t\treturn formatAs('second', 1)\r\n\t\t\t\t}\r\n\t\t\t}]\r\n\t\t}).should.equal('in 1 second')\r\n\t})\r\n\r\n\tit('should support `polyfill: false` option', () => {\r\n\t\tconst timeAgo = new TimeAgo('en', { polyfill: false })\r\n\t\t// Still uses \"now\" labels, even when not polyfilled.\r\n\t\ttimeAgo.format(0, 'round', { now: 0 }).should.equal('just now')\r\n\t\ttimeAgo.format(1000, 'round', { now: 0 }).should.equal('in 1 second')\r\n\t})\r\n\r\n\tit('should not use Intl.NumberFormat if it is not available', () => {\r\n\t\tconst Intl = global.Intl\r\n\t\tglobal.Intl = undefined\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(1000, 'round', { now: 0 }).should.equal('in 1 second')\r\n\t\tglobal.Intl = Intl\r\n\t})\r\n\r\n\tit('should format `0` in past mode by default', () => {\r\n\t\tnew TimeAgo('en').format(0, {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'second'\r\n\t\t\t}]\r\n\t\t}, { now: 0 }).should.equal('0 seconds ago')\r\n\t})\r\n\r\n\tit('should format `0` in future mode when `future: true` option was passed', () => {\r\n\t\tnew TimeAgo('en').format(0, {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'second'\r\n\t\t\t}]\r\n\t\t}, { now: 0, future: true }).should.equal('in 0 seconds')\r\n\t})\r\n\r\n\tit('should throw if a step does not define `formatAs` or `format()`', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\texpect(() => timeAgo.format(Date.now() + 1000, {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{}]\r\n\t\t})).to.throw('Each step must define either `formatAs` or `format()`.')\r\n\t})\r\n\r\n\tit('should add default locale', () => {\r\n\t\tTimeAgo.getDefaultLocale().should.equal('en')\r\n\t\tTimeAgo.addDefaultLocale({\r\n\t\t\tlocale: 'el'\r\n\t\t})\r\n\t\tTimeAgo.getDefaultLocale().should.equal('el')\r\n\t\t// expect(() => {\r\n\t\t\tTimeAgo.addDefaultLocale({\r\n\t\t\t\tlocale: 'el'\r\n\t\t\t})\r\n\t\t// }).to.throw('`TimeAgo.addDefaultLocale()` can only be called once')\r\n\t\tTimeAgo.setDefaultLocale('en')\r\n\t})\r\n\r\n\tit('should support \"floor\" rounding', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(0.9 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('0s')\r\n\t\ttimeAgo.format(1 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('1s')\r\n\t\ttimeAgo.format(1.9 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('1s')\r\n\t\ttimeAgo.format(2 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('2s')\r\n\t\ttimeAgo.format(1.9 * 60 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('1m')\r\n\t\ttimeAgo.format(2 * 60 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('2m')\r\n\t})\r\n})"],"mappings":"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"}
|
package/modules/cache.js
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
function _typeof(obj) {
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
2
|
|
|
3
3
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
4
4
|
|
|
5
5
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
6
6
|
|
|
7
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
8
|
-
|
|
9
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
7
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
10
8
|
|
|
11
9
|
/**
|
|
12
10
|
* A basic in-memory cache.
|
|
@@ -15,13 +13,11 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
15
13
|
* const cache = new Cache()
|
|
16
14
|
* const object = cache.get('key1', 'key2', ...) || cache.put('key1', 'key2', ..., createObject())
|
|
17
15
|
*/
|
|
18
|
-
var Cache =
|
|
19
|
-
/*#__PURE__*/
|
|
20
|
-
function () {
|
|
16
|
+
var Cache = /*#__PURE__*/function () {
|
|
21
17
|
function Cache() {
|
|
22
18
|
_classCallCheck(this, Cache);
|
|
23
19
|
|
|
24
|
-
|
|
20
|
+
this.cache = {};
|
|
25
21
|
}
|
|
26
22
|
|
|
27
23
|
_createClass(Cache, [{
|
|
@@ -33,8 +29,8 @@ function () {
|
|
|
33
29
|
keys[_key] = arguments[_key];
|
|
34
30
|
}
|
|
35
31
|
|
|
36
|
-
for (var _i = 0; _i <
|
|
37
|
-
var key =
|
|
32
|
+
for (var _i = 0, _keys = keys; _i < _keys.length; _i++) {
|
|
33
|
+
var key = _keys[_i];
|
|
38
34
|
|
|
39
35
|
if (_typeof(cache) !== 'object') {
|
|
40
36
|
return;
|
|
@@ -56,8 +52,8 @@ function () {
|
|
|
56
52
|
var lastKey = keys.pop();
|
|
57
53
|
var cache = this.cache;
|
|
58
54
|
|
|
59
|
-
for (var _i2 = 0; _i2 <
|
|
60
|
-
var key =
|
|
55
|
+
for (var _i2 = 0, _keys2 = keys; _i2 < _keys2.length; _i2++) {
|
|
56
|
+
var key = _keys2[_i2];
|
|
61
57
|
|
|
62
58
|
if (_typeof(cache[key]) !== 'object') {
|
|
63
59
|
cache[key] = {};
|
package/modules/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"cache.js","names":["Cache","cache","keys","key","value","pop","lastKey"],"sources":["../source/cache.js"],"sourcesContent":["/**\r\n * A basic in-memory cache.\r\n *\r\n * import Cache from 'javascript-time-ago/Cache'\r\n * const cache = new Cache()\r\n * const object = cache.get('key1', 'key2', ...) || cache.put('key1', 'key2', ..., createObject())\r\n */\r\nexport default class Cache {\r\n\tconstructor() {\r\n\t\tthis.cache = {}\r\n\t}\r\n\r\n\tget(...keys) {\r\n\t\tlet cache = this.cache\r\n\t\tfor (const key of keys) {\r\n\t\t\tif (typeof cache !== 'object') {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\tcache = cache[key]\r\n\t\t}\r\n\t\treturn cache\r\n\t}\r\n\r\n\tput(...keys) {\r\n\t\tconst value = keys.pop()\r\n\t\tconst lastKey = keys.pop()\r\n\t\tlet cache = this.cache\r\n\t\tfor (const key of keys) {\r\n\t\t\tif (typeof cache[key] !== 'object') {\r\n\t\t\t\tcache[key] = {}\r\n\t\t\t}\r\n\t\t\tcache = cache[key]\r\n\t\t}\r\n\t\treturn cache[lastKey] = value\r\n\t}\r\n}"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;IACqBA,K;EACpB,iBAAc;IAAA;;IACb,KAAKC,KAAL,GAAa,EAAb;EACA;;;;WAED,eAAa;MACZ,IAAIA,KAAK,GAAG,KAAKA,KAAjB;;MADY,kCAANC,IAAM;QAANA,IAAM;MAAA;;MAEZ,yBAAkBA,IAAlB,2BAAwB;QAAnB,IAAMC,GAAG,YAAT;;QACJ,IAAI,QAAOF,KAAP,MAAiB,QAArB,EAA+B;UAC9B;QACA;;QACDA,KAAK,GAAGA,KAAK,CAACE,GAAD,CAAb;MACA;;MACD,OAAOF,KAAP;IACA;;;WAED,eAAa;MAAA,mCAANC,IAAM;QAANA,IAAM;MAAA;;MACZ,IAAME,KAAK,GAAGF,IAAI,CAACG,GAAL,EAAd;MACA,IAAMC,OAAO,GAAGJ,IAAI,CAACG,GAAL,EAAhB;MACA,IAAIJ,KAAK,GAAG,KAAKA,KAAjB;;MACA,2BAAkBC,IAAlB,8BAAwB;QAAnB,IAAMC,GAAG,cAAT;;QACJ,IAAI,QAAOF,KAAK,CAACE,GAAD,CAAZ,MAAsB,QAA1B,EAAoC;UACnCF,KAAK,CAACE,GAAD,CAAL,GAAa,EAAb;QACA;;QACDF,KAAK,GAAGA,KAAK,CAACE,GAAD,CAAb;MACA;;MACD,OAAOF,KAAK,CAACK,OAAD,CAAL,GAAiBF,KAAxB;IACA;;;;;;SA3BmBJ,K"}
|
package/modules/cache.test.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"cache.test.js","names":["Cache","describe","it","cache","value","expect","get","to","be","undefined","put","equal"],"sources":["../source/cache.test.js"],"sourcesContent":["import Cache from './cache.js'\r\n\r\ndescribe('cache', () => {\r\n\tit('should cache', () => {\r\n\t\tconst cache = new Cache()\r\n\r\n\t\tconst value = {}\r\n\t\texpect(cache.get('123', '456')).to.be.undefined\r\n\t\texpect(cache.put('123', '456', value)).to.equal(value)\r\n\t\texpect(cache.get('123', '456')).to.equal(value)\r\n\r\n\t\texpect(cache.put('123', '789', 123)).to.equal(123)\r\n\t})\r\n})\r\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,YAAlB;AAEAC,QAAQ,CAAC,OAAD,EAAU,YAAM;EACvBC,EAAE,CAAC,cAAD,EAAiB,YAAM;IACxB,IAAMC,KAAK,GAAG,IAAIH,KAAJ,EAAd;IAEA,IAAMI,KAAK,GAAG,EAAd;IACAC,MAAM,CAACF,KAAK,CAACG,GAAN,CAAU,KAAV,EAAiB,KAAjB,CAAD,CAAN,CAAgCC,EAAhC,CAAmCC,EAAnC,CAAsCC,SAAtC;IACAJ,MAAM,CAACF,KAAK,CAACO,GAAN,CAAU,KAAV,EAAiB,KAAjB,EAAwBN,KAAxB,CAAD,CAAN,CAAuCG,EAAvC,CAA0CI,KAA1C,CAAgDP,KAAhD;IACAC,MAAM,CAACF,KAAK,CAACG,GAAN,CAAU,KAAV,EAAiB,KAAjB,CAAD,CAAN,CAAgCC,EAAhC,CAAmCI,KAAnC,CAAyCP,KAAzC;IAEAC,MAAM,CAACF,KAAK,CAACO,GAAN,CAAU,KAAV,EAAiB,KAAjB,EAAwB,GAAxB,CAAD,CAAN,CAAqCH,EAArC,CAAwCI,KAAxC,CAA8C,GAA9C;EACA,CATC,CAAF;AAUA,CAXO,CAAR"}
|