javascript-time-ago 2.6.3 → 2.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +5 -0
- package/README.md +19 -24
- 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/commonjs/TimeAgo.js +1 -0
- package/commonjs/TimeAgo.js.map +1 -1
- package/commonjs/TimeAgo.test.js +12 -0
- package/commonjs/TimeAgo.test.js.map +1 -1
- package/load-all-locales/index.d.ts +0 -0
- package/locale/af/index.cjs +7 -0
- package/locale/af/index.js +6 -0
- package/locale/af/package.json +5 -5
- package/locale/ak/index.cjs +7 -0
- package/locale/ak/index.js +6 -0
- package/locale/ak/package.json +5 -5
- package/locale/am/index.cjs +7 -0
- package/locale/am/index.js +6 -0
- package/locale/am/package.json +5 -5
- package/locale/ar/index.cjs +7 -0
- package/locale/ar/index.js +6 -0
- package/locale/ar/package.json +5 -5
- package/locale/ar-AE/index.cjs +7 -0
- package/locale/ar-AE/index.js +6 -0
- package/locale/ar-AE/package.json +5 -5
- package/locale/as/index.cjs +7 -0
- package/locale/as/index.js +6 -0
- package/locale/as/package.json +5 -5
- package/locale/ast/index.cjs +7 -0
- package/locale/ast/index.js +6 -0
- package/locale/ast/package.json +5 -5
- package/locale/az/index.cjs +7 -0
- package/locale/az/index.js +6 -0
- package/locale/az/package.json +5 -5
- package/locale/ba/index.cjs +7 -0
- package/locale/ba/index.js +6 -0
- package/locale/ba/package.json +5 -5
- package/locale/bal-Latn/index.cjs +7 -0
- package/locale/bal-Latn/index.js +6 -0
- package/locale/bal-Latn/package.json +5 -5
- package/locale/be/index.cjs +7 -0
- package/locale/be/index.js +6 -0
- package/locale/be/package.json +5 -5
- package/locale/be-tarask/index.cjs +7 -0
- package/locale/be-tarask/index.js +6 -0
- package/locale/be-tarask/package.json +5 -5
- package/locale/bg/index.cjs +7 -0
- package/locale/bg/index.js +6 -0
- package/locale/bg/package.json +5 -5
- package/locale/bgc/index.cjs +7 -0
- package/locale/bgc/index.js +6 -0
- package/locale/bgc/package.json +5 -5
- package/locale/blo/index.cjs +7 -0
- package/locale/blo/index.js +6 -0
- package/locale/blo/package.json +5 -5
- package/locale/bn/index.cjs +7 -0
- package/locale/bn/index.js +6 -0
- package/locale/bn/package.json +5 -5
- package/locale/br/index.cjs +7 -0
- package/locale/br/index.js +6 -0
- package/locale/br/package.json +5 -5
- package/locale/brx/index.cjs +7 -0
- package/locale/brx/index.js +6 -0
- package/locale/brx/package.json +5 -5
- package/locale/bs/index.cjs +7 -0
- package/locale/bs/index.js +6 -0
- package/locale/bs/package.json +5 -5
- package/locale/bs-Cyrl/index.cjs +7 -0
- package/locale/bs-Cyrl/index.js +6 -0
- package/locale/bs-Cyrl/package.json +5 -5
- package/locale/bua/index.cjs +7 -0
- package/locale/bua/index.js +6 -0
- package/locale/bua/package.json +5 -5
- package/locale/ca/index.cjs +7 -0
- package/locale/ca/index.js +6 -0
- package/locale/ca/package.json +5 -5
- package/locale/ccp/index.cjs +7 -0
- package/locale/ccp/index.js +6 -0
- package/locale/ccp/package.json +5 -5
- package/locale/ce/index.cjs +7 -0
- package/locale/ce/index.js +6 -0
- package/locale/ce/package.json +5 -5
- package/locale/ceb/index.cjs +7 -0
- package/locale/ceb/index.js +6 -0
- package/locale/ceb/package.json +5 -5
- package/locale/chr/index.cjs +7 -0
- package/locale/chr/index.js +6 -0
- package/locale/chr/package.json +5 -5
- package/locale/cs/index.cjs +7 -0
- package/locale/cs/index.js +6 -0
- package/locale/cs/package.json +5 -5
- package/locale/csw/index.cjs +7 -0
- package/locale/csw/index.js +6 -0
- package/locale/csw/package.json +5 -5
- package/locale/cv/index.cjs +7 -0
- package/locale/cv/index.js +6 -0
- package/locale/cv/package.json +5 -5
- package/locale/cy/index.cjs +7 -0
- package/locale/cy/index.js +6 -0
- package/locale/cy/package.json +5 -5
- package/locale/da/index.cjs +7 -0
- package/locale/da/index.js +6 -0
- package/locale/da/package.json +5 -5
- package/locale/de/index.cjs +7 -0
- package/locale/de/index.js +6 -0
- package/locale/de/package.json +5 -5
- package/locale/doi/index.cjs +7 -0
- package/locale/doi/index.js +6 -0
- package/locale/doi/package.json +5 -5
- package/locale/dsb/index.cjs +7 -0
- package/locale/dsb/index.js +6 -0
- package/locale/dsb/package.json +5 -5
- package/locale/dz/index.cjs +7 -0
- package/locale/dz/index.js +6 -0
- package/locale/dz/package.json +5 -5
- package/locale/ee/index.cjs +7 -0
- package/locale/ee/index.js +6 -0
- package/locale/ee/package.json +5 -5
- package/locale/el/index.cjs +7 -0
- package/locale/el/index.js +6 -0
- package/locale/el/package.json +5 -5
- package/locale/en/index.cjs +7 -0
- package/locale/en/index.js +6 -0
- package/locale/en/package.json +5 -5
- package/locale/en-001/index.cjs +7 -0
- package/locale/en-001/index.js +6 -0
- package/locale/en-001/package.json +5 -5
- package/locale/en-150/index.cjs +7 -0
- package/locale/en-150/index.js +6 -0
- package/locale/en-150/package.json +5 -5
- package/locale/en-AG/index.cjs +7 -0
- package/locale/en-AG/index.js +6 -0
- package/locale/en-AG/package.json +5 -5
- package/locale/en-AI/index.cjs +7 -0
- package/locale/en-AI/index.js +6 -0
- package/locale/en-AI/package.json +5 -5
- package/locale/en-AT/index.cjs +7 -0
- package/locale/en-AT/index.js +6 -0
- package/locale/en-AT/package.json +5 -5
- package/locale/en-AU/index.cjs +7 -0
- package/locale/en-AU/index.js +6 -0
- package/locale/en-AU/package.json +5 -5
- package/locale/en-BB/index.cjs +7 -0
- package/locale/en-BB/index.js +6 -0
- package/locale/en-BB/package.json +5 -5
- package/locale/en-BE/index.cjs +7 -0
- package/locale/en-BE/index.js +6 -0
- package/locale/en-BE/package.json +5 -5
- package/locale/en-BM/index.cjs +7 -0
- package/locale/en-BM/index.js +6 -0
- package/locale/en-BM/package.json +5 -5
- package/locale/en-BS/index.cjs +7 -0
- package/locale/en-BS/index.js +6 -0
- package/locale/en-BS/package.json +5 -5
- package/locale/en-BW/index.cjs +7 -0
- package/locale/en-BW/index.js +6 -0
- package/locale/en-BW/package.json +5 -5
- package/locale/en-BZ/index.cjs +7 -0
- package/locale/en-BZ/index.js +6 -0
- package/locale/en-BZ/package.json +5 -5
- package/locale/en-CA/index.cjs +7 -0
- package/locale/en-CA/index.js +6 -0
- package/locale/en-CA/package.json +5 -5
- package/locale/en-CC/index.cjs +7 -0
- package/locale/en-CC/index.js +6 -0
- package/locale/en-CC/package.json +5 -5
- package/locale/en-CH/index.cjs +7 -0
- package/locale/en-CH/index.js +6 -0
- package/locale/en-CH/package.json +5 -5
- package/locale/en-CK/index.cjs +7 -0
- package/locale/en-CK/index.js +6 -0
- package/locale/en-CK/package.json +5 -5
- package/locale/en-CM/index.cjs +7 -0
- package/locale/en-CM/index.js +6 -0
- package/locale/en-CM/package.json +5 -5
- package/locale/en-CX/index.cjs +7 -0
- package/locale/en-CX/index.js +6 -0
- package/locale/en-CX/package.json +5 -5
- package/locale/en-CY/index.cjs +7 -0
- package/locale/en-CY/index.js +6 -0
- package/locale/en-CY/package.json +5 -5
- package/locale/en-CZ/index.cjs +7 -0
- package/locale/en-CZ/index.js +6 -0
- package/locale/en-CZ/package.json +5 -5
- package/locale/en-DE/index.cjs +7 -0
- package/locale/en-DE/index.js +6 -0
- package/locale/en-DE/package.json +5 -5
- package/locale/en-DG/index.cjs +7 -0
- package/locale/en-DG/index.js +6 -0
- package/locale/en-DG/package.json +5 -5
- package/locale/en-DK/index.cjs +7 -0
- package/locale/en-DK/index.js +6 -0
- package/locale/en-DK/package.json +5 -5
- package/locale/en-DM/index.cjs +7 -0
- package/locale/en-DM/index.js +6 -0
- package/locale/en-DM/package.json +5 -5
- package/locale/en-EE/index.cjs +7 -0
- package/locale/en-EE/index.js +6 -0
- package/locale/en-EE/package.json +5 -5
- package/locale/en-ER/index.cjs +7 -0
- package/locale/en-ER/index.js +6 -0
- package/locale/en-ER/package.json +5 -5
- package/locale/en-ES/index.cjs +7 -0
- package/locale/en-ES/index.js +6 -0
- package/locale/en-ES/package.json +5 -5
- package/locale/en-FI/index.cjs +7 -0
- package/locale/en-FI/index.js +6 -0
- package/locale/en-FI/package.json +5 -5
- package/locale/en-FJ/index.cjs +7 -0
- package/locale/en-FJ/index.js +6 -0
- package/locale/en-FJ/package.json +5 -5
- package/locale/en-FK/index.cjs +7 -0
- package/locale/en-FK/index.js +6 -0
- package/locale/en-FK/package.json +5 -5
- package/locale/en-FM/index.cjs +7 -0
- package/locale/en-FM/index.js +6 -0
- package/locale/en-FM/package.json +5 -5
- package/locale/en-FR/index.cjs +7 -0
- package/locale/en-FR/index.js +6 -0
- package/locale/en-FR/package.json +5 -5
- package/locale/en-GB/index.cjs +7 -0
- package/locale/en-GB/index.js +6 -0
- package/locale/en-GB/package.json +5 -5
- package/locale/en-GD/index.cjs +7 -0
- package/locale/en-GD/index.js +6 -0
- package/locale/en-GD/package.json +5 -5
- package/locale/en-GE/index.cjs +7 -0
- package/locale/en-GE/index.js +6 -0
- package/locale/en-GE/package.json +5 -5
- package/locale/en-GG/index.cjs +7 -0
- package/locale/en-GG/index.js +6 -0
- package/locale/en-GG/package.json +5 -5
- package/locale/en-GH/index.cjs +7 -0
- package/locale/en-GH/index.js +6 -0
- package/locale/en-GH/package.json +5 -5
- package/locale/en-GI/index.cjs +7 -0
- package/locale/en-GI/index.js +6 -0
- package/locale/en-GI/package.json +5 -5
- package/locale/en-GM/index.cjs +7 -0
- package/locale/en-GM/index.js +6 -0
- package/locale/en-GM/package.json +5 -5
- package/locale/en-GS/index.cjs +7 -0
- package/locale/en-GS/index.js +6 -0
- package/locale/en-GS/package.json +5 -5
- package/locale/en-GY/index.cjs +7 -0
- package/locale/en-GY/index.js +6 -0
- package/locale/en-GY/package.json +5 -5
- package/locale/en-HK/index.cjs +7 -0
- package/locale/en-HK/index.js +6 -0
- package/locale/en-HK/package.json +5 -5
- package/locale/en-HU/index.cjs +7 -0
- package/locale/en-HU/index.js +6 -0
- package/locale/en-HU/package.json +5 -5
- package/locale/en-ID/index.cjs +7 -0
- package/locale/en-ID/index.js +6 -0
- package/locale/en-ID/package.json +5 -5
- package/locale/en-IE/index.cjs +7 -0
- package/locale/en-IE/index.js +6 -0
- package/locale/en-IE/package.json +5 -5
- package/locale/en-IL/index.cjs +7 -0
- package/locale/en-IL/index.js +6 -0
- package/locale/en-IL/package.json +5 -5
- package/locale/en-IM/index.cjs +7 -0
- package/locale/en-IM/index.js +6 -0
- package/locale/en-IM/package.json +5 -5
- package/locale/en-IN/index.cjs +7 -0
- package/locale/en-IN/index.js +6 -0
- package/locale/en-IN/package.json +5 -5
- package/locale/en-IO/index.cjs +7 -0
- package/locale/en-IO/index.js +6 -0
- package/locale/en-IO/package.json +5 -5
- package/locale/en-IT/index.cjs +7 -0
- package/locale/en-IT/index.js +6 -0
- package/locale/en-IT/package.json +5 -5
- package/locale/en-JE/index.cjs +7 -0
- package/locale/en-JE/index.js +6 -0
- package/locale/en-JE/package.json +5 -5
- package/locale/en-JM/index.cjs +7 -0
- package/locale/en-JM/index.js +6 -0
- package/locale/en-JM/package.json +5 -5
- package/locale/en-KE/index.cjs +7 -0
- package/locale/en-KE/index.js +6 -0
- package/locale/en-KE/package.json +5 -5
- package/locale/en-KI/index.cjs +7 -0
- package/locale/en-KI/index.js +6 -0
- package/locale/en-KI/package.json +5 -5
- package/locale/en-KN/index.cjs +7 -0
- package/locale/en-KN/index.js +6 -0
- package/locale/en-KN/package.json +5 -5
- package/locale/en-KY/index.cjs +7 -0
- package/locale/en-KY/index.js +6 -0
- package/locale/en-KY/package.json +5 -5
- package/locale/en-LC/index.cjs +7 -0
- package/locale/en-LC/index.js +6 -0
- package/locale/en-LC/package.json +5 -5
- package/locale/en-LR/index.cjs +7 -0
- package/locale/en-LR/index.js +6 -0
- package/locale/en-LR/package.json +5 -5
- package/locale/en-LS/index.cjs +7 -0
- package/locale/en-LS/index.js +6 -0
- package/locale/en-LS/package.json +5 -5
- package/locale/en-LT/index.cjs +7 -0
- package/locale/en-LT/index.js +6 -0
- package/locale/en-LT/package.json +5 -5
- package/locale/en-LV/index.cjs +7 -0
- package/locale/en-LV/index.js +6 -0
- package/locale/en-LV/package.json +5 -5
- package/locale/en-MG/index.cjs +7 -0
- package/locale/en-MG/index.js +6 -0
- package/locale/en-MG/package.json +5 -5
- package/locale/en-MO/index.cjs +7 -0
- package/locale/en-MO/index.js +6 -0
- package/locale/en-MO/package.json +5 -5
- package/locale/en-MS/index.cjs +7 -0
- package/locale/en-MS/index.js +6 -0
- package/locale/en-MS/package.json +5 -5
- package/locale/en-MT/index.cjs +7 -0
- package/locale/en-MT/index.js +6 -0
- package/locale/en-MT/package.json +5 -5
- package/locale/en-MU/index.cjs +7 -0
- package/locale/en-MU/index.js +6 -0
- package/locale/en-MU/package.json +5 -5
- package/locale/en-MV/index.cjs +7 -0
- package/locale/en-MV/index.js +6 -0
- package/locale/en-MV/package.json +5 -5
- package/locale/en-MW/index.cjs +7 -0
- package/locale/en-MW/index.js +6 -0
- package/locale/en-MW/package.json +5 -5
- package/locale/en-MY/index.cjs +7 -0
- package/locale/en-MY/index.js +6 -0
- package/locale/en-MY/package.json +5 -5
- package/locale/en-NA/index.cjs +7 -0
- package/locale/en-NA/index.js +6 -0
- package/locale/en-NA/package.json +5 -5
- package/locale/en-NF/index.cjs +7 -0
- package/locale/en-NF/index.js +6 -0
- package/locale/en-NF/package.json +5 -5
- package/locale/en-NG/index.cjs +7 -0
- package/locale/en-NG/index.js +6 -0
- package/locale/en-NG/package.json +5 -5
- package/locale/en-NL/index.cjs +7 -0
- package/locale/en-NL/index.js +6 -0
- package/locale/en-NL/package.json +5 -5
- package/locale/en-NO/index.cjs +7 -0
- package/locale/en-NO/index.js +6 -0
- package/locale/en-NO/package.json +5 -5
- package/locale/en-NR/index.cjs +7 -0
- package/locale/en-NR/index.js +6 -0
- package/locale/en-NR/package.json +5 -5
- package/locale/en-NU/index.cjs +7 -0
- package/locale/en-NU/index.js +6 -0
- package/locale/en-NU/package.json +5 -5
- package/locale/en-NZ/index.cjs +7 -0
- package/locale/en-NZ/index.js +6 -0
- package/locale/en-NZ/package.json +5 -5
- package/locale/en-PG/index.cjs +7 -0
- package/locale/en-PG/index.js +6 -0
- package/locale/en-PG/package.json +5 -5
- package/locale/en-PK/index.cjs +7 -0
- package/locale/en-PK/index.js +6 -0
- package/locale/en-PK/package.json +5 -5
- package/locale/en-PL/index.cjs +7 -0
- package/locale/en-PL/index.js +6 -0
- package/locale/en-PL/package.json +5 -5
- package/locale/en-PN/index.cjs +7 -0
- package/locale/en-PN/index.js +6 -0
- package/locale/en-PN/package.json +5 -5
- package/locale/en-PT/index.cjs +7 -0
- package/locale/en-PT/index.js +6 -0
- package/locale/en-PT/package.json +5 -5
- package/locale/en-PW/index.cjs +7 -0
- package/locale/en-PW/index.js +6 -0
- package/locale/en-PW/package.json +5 -5
- package/locale/en-RO/index.cjs +7 -0
- package/locale/en-RO/index.js +6 -0
- package/locale/en-RO/package.json +5 -5
- package/locale/en-RW/index.cjs +7 -0
- package/locale/en-RW/index.js +6 -0
- package/locale/en-RW/package.json +5 -5
- package/locale/en-SB/index.cjs +7 -0
- package/locale/en-SB/index.js +6 -0
- package/locale/en-SB/package.json +5 -5
- package/locale/en-SC/index.cjs +7 -0
- package/locale/en-SC/index.js +6 -0
- package/locale/en-SC/package.json +5 -5
- package/locale/en-SD/index.cjs +7 -0
- package/locale/en-SD/index.js +6 -0
- package/locale/en-SD/package.json +5 -5
- package/locale/en-SE/index.cjs +7 -0
- package/locale/en-SE/index.js +6 -0
- package/locale/en-SE/package.json +5 -5
- package/locale/en-SG/index.cjs +7 -0
- package/locale/en-SG/index.js +6 -0
- package/locale/en-SG/package.json +5 -5
- package/locale/en-SH/index.cjs +7 -0
- package/locale/en-SH/index.js +6 -0
- package/locale/en-SH/package.json +5 -5
- package/locale/en-SI/index.cjs +7 -0
- package/locale/en-SI/index.js +6 -0
- package/locale/en-SI/package.json +5 -5
- package/locale/en-SK/index.cjs +7 -0
- package/locale/en-SK/index.js +6 -0
- package/locale/en-SK/package.json +5 -5
- package/locale/en-SL/index.cjs +7 -0
- package/locale/en-SL/index.js +6 -0
- package/locale/en-SL/package.json +5 -5
- package/locale/en-SS/index.cjs +7 -0
- package/locale/en-SS/index.js +6 -0
- package/locale/en-SS/package.json +5 -5
- package/locale/en-SX/index.cjs +7 -0
- package/locale/en-SX/index.js +6 -0
- package/locale/en-SX/package.json +5 -5
- package/locale/en-SZ/index.cjs +7 -0
- package/locale/en-SZ/index.js +6 -0
- package/locale/en-SZ/package.json +5 -5
- package/locale/en-TC/index.cjs +7 -0
- package/locale/en-TC/index.js +6 -0
- package/locale/en-TC/package.json +5 -5
- package/locale/en-TK/index.cjs +7 -0
- package/locale/en-TK/index.js +6 -0
- package/locale/en-TK/package.json +5 -5
- package/locale/en-TO/index.cjs +7 -0
- package/locale/en-TO/index.js +6 -0
- package/locale/en-TO/package.json +5 -5
- package/locale/en-TT/index.cjs +7 -0
- package/locale/en-TT/index.js +6 -0
- package/locale/en-TT/package.json +5 -5
- package/locale/en-TV/index.cjs +7 -0
- package/locale/en-TV/index.js +6 -0
- package/locale/en-TV/package.json +5 -5
- package/locale/en-TZ/index.cjs +7 -0
- package/locale/en-TZ/index.js +6 -0
- package/locale/en-TZ/package.json +5 -5
- package/locale/en-UA/index.cjs +7 -0
- package/locale/en-UA/index.js +6 -0
- package/locale/en-UA/package.json +5 -5
- package/locale/en-UG/index.cjs +7 -0
- package/locale/en-UG/index.js +6 -0
- package/locale/en-UG/package.json +5 -5
- package/locale/en-VC/index.cjs +7 -0
- package/locale/en-VC/index.js +6 -0
- package/locale/en-VC/package.json +5 -5
- package/locale/en-VG/index.cjs +7 -0
- package/locale/en-VG/index.js +6 -0
- package/locale/en-VG/package.json +5 -5
- package/locale/en-VU/index.cjs +7 -0
- package/locale/en-VU/index.js +6 -0
- package/locale/en-VU/package.json +5 -5
- package/locale/en-WS/index.cjs +7 -0
- package/locale/en-WS/index.js +6 -0
- package/locale/en-WS/package.json +5 -5
- package/locale/en-ZA/index.cjs +7 -0
- package/locale/en-ZA/index.js +6 -0
- package/locale/en-ZA/package.json +5 -5
- package/locale/en-ZM/index.cjs +7 -0
- package/locale/en-ZM/index.js +6 -0
- package/locale/en-ZM/package.json +5 -5
- package/locale/en-ZW/index.cjs +7 -0
- package/locale/en-ZW/index.js +6 -0
- package/locale/en-ZW/package.json +5 -5
- package/locale/eo/index.cjs +7 -0
- package/locale/eo/index.js +6 -0
- package/locale/eo/package.json +5 -5
- package/locale/es/index.cjs +7 -0
- package/locale/es/index.js +6 -0
- package/locale/es/package.json +5 -5
- package/locale/es-419/index.cjs +7 -0
- package/locale/es-419/index.js +6 -0
- package/locale/es-419/package.json +5 -5
- package/locale/es-AR/index.cjs +7 -0
- package/locale/es-AR/index.js +6 -0
- package/locale/es-AR/package.json +5 -5
- package/locale/es-BO/index.cjs +7 -0
- package/locale/es-BO/index.js +6 -0
- package/locale/es-BO/package.json +5 -5
- package/locale/es-BR/index.cjs +7 -0
- package/locale/es-BR/index.js +6 -0
- package/locale/es-BR/package.json +5 -5
- package/locale/es-BZ/index.cjs +7 -0
- package/locale/es-BZ/index.js +6 -0
- package/locale/es-BZ/package.json +5 -5
- package/locale/es-CL/index.cjs +7 -0
- package/locale/es-CL/index.js +6 -0
- package/locale/es-CL/package.json +5 -5
- package/locale/es-CO/index.cjs +7 -0
- package/locale/es-CO/index.js +6 -0
- package/locale/es-CO/package.json +5 -5
- package/locale/es-CR/index.cjs +7 -0
- package/locale/es-CR/index.js +6 -0
- package/locale/es-CR/package.json +5 -5
- package/locale/es-CU/index.cjs +7 -0
- package/locale/es-CU/index.js +6 -0
- package/locale/es-CU/package.json +5 -5
- package/locale/es-DO/index.cjs +7 -0
- package/locale/es-DO/index.js +6 -0
- package/locale/es-DO/package.json +5 -5
- package/locale/es-EC/index.cjs +7 -0
- package/locale/es-EC/index.js +6 -0
- package/locale/es-EC/package.json +5 -5
- package/locale/es-GT/index.cjs +7 -0
- package/locale/es-GT/index.js +6 -0
- package/locale/es-GT/package.json +5 -5
- package/locale/es-HN/index.cjs +7 -0
- package/locale/es-HN/index.js +6 -0
- package/locale/es-HN/package.json +5 -5
- package/locale/es-MX/index.cjs +7 -0
- package/locale/es-MX/index.js +6 -0
- package/locale/es-MX/package.json +5 -5
- package/locale/es-NI/index.cjs +7 -0
- package/locale/es-NI/index.js +6 -0
- package/locale/es-NI/package.json +5 -5
- package/locale/es-PA/index.cjs +7 -0
- package/locale/es-PA/index.js +6 -0
- package/locale/es-PA/package.json +5 -5
- package/locale/es-PE/index.cjs +7 -0
- package/locale/es-PE/index.js +6 -0
- package/locale/es-PE/package.json +5 -5
- package/locale/es-PR/index.cjs +7 -0
- package/locale/es-PR/index.js +6 -0
- package/locale/es-PR/package.json +5 -5
- package/locale/es-PY/index.cjs +7 -0
- package/locale/es-PY/index.js +6 -0
- package/locale/es-PY/package.json +5 -5
- package/locale/es-SV/index.cjs +7 -0
- package/locale/es-SV/index.js +6 -0
- package/locale/es-SV/package.json +5 -5
- package/locale/es-US/index.cjs +7 -0
- package/locale/es-US/index.js +6 -0
- package/locale/es-US/package.json +5 -5
- package/locale/es-UY/index.cjs +7 -0
- package/locale/es-UY/index.js +6 -0
- package/locale/es-UY/package.json +5 -5
- package/locale/es-VE/index.cjs +7 -0
- package/locale/es-VE/index.js +6 -0
- package/locale/es-VE/package.json +5 -5
- package/locale/et/index.cjs +7 -0
- package/locale/et/index.js +6 -0
- package/locale/et/package.json +5 -5
- package/locale/eu/index.cjs +7 -0
- package/locale/eu/index.js +6 -0
- package/locale/eu/package.json +5 -5
- package/locale/fa/index.cjs +7 -0
- package/locale/fa/index.js +6 -0
- package/locale/fa/package.json +5 -5
- package/locale/ff-Adlm/index.cjs +7 -0
- package/locale/ff-Adlm/index.js +6 -0
- package/locale/ff-Adlm/package.json +5 -5
- package/locale/fi/index.cjs +7 -0
- package/locale/fi/index.js +6 -0
- package/locale/fi/package.json +5 -5
- package/locale/fil/index.cjs +7 -0
- package/locale/fil/index.js +6 -0
- package/locale/fil/package.json +5 -5
- package/locale/fo/index.cjs +7 -0
- package/locale/fo/index.js +6 -0
- package/locale/fo/package.json +5 -5
- package/locale/fr/index.cjs +7 -0
- package/locale/fr/index.js +6 -0
- package/locale/fr/package.json +5 -5
- package/locale/fr-CA/index.cjs +7 -0
- package/locale/fr-CA/index.js +6 -0
- package/locale/fr-CA/package.json +5 -5
- package/locale/fur/index.cjs +7 -0
- package/locale/fur/index.js +6 -0
- package/locale/fur/package.json +5 -5
- package/locale/fy/index.cjs +7 -0
- package/locale/fy/index.js +6 -0
- package/locale/fy/package.json +5 -5
- package/locale/ga/index.cjs +7 -0
- package/locale/ga/index.js +6 -0
- package/locale/ga/package.json +5 -5
- package/locale/gd/index.cjs +7 -0
- package/locale/gd/index.js +6 -0
- package/locale/gd/package.json +5 -5
- package/locale/gl/index.cjs +7 -0
- package/locale/gl/index.js +6 -0
- package/locale/gl/package.json +5 -5
- package/locale/gu/index.cjs +7 -0
- package/locale/gu/index.js +6 -0
- package/locale/gu/package.json +5 -5
- package/locale/ha/index.cjs +7 -0
- package/locale/ha/index.js +6 -0
- package/locale/ha/package.json +5 -5
- package/locale/he/index.cjs +7 -0
- package/locale/he/index.js +6 -0
- package/locale/he/package.json +5 -5
- package/locale/hi/index.cjs +7 -0
- package/locale/hi/index.js +6 -0
- package/locale/hi/package.json +5 -5
- package/locale/hi-Latn/index.cjs +7 -0
- package/locale/hi-Latn/index.js +6 -0
- package/locale/hi-Latn/package.json +5 -5
- package/locale/hr/index.cjs +7 -0
- package/locale/hr/index.js +6 -0
- package/locale/hr/package.json +5 -5
- package/locale/hsb/index.cjs +7 -0
- package/locale/hsb/index.js +6 -0
- package/locale/hsb/package.json +5 -5
- package/locale/ht/index.cjs +7 -0
- package/locale/ht/index.js +6 -0
- package/locale/ht/package.json +5 -5
- package/locale/hu/index.cjs +7 -0
- package/locale/hu/index.js +6 -0
- package/locale/hu/package.json +5 -5
- package/locale/hy/index.cjs +7 -0
- package/locale/hy/index.js +6 -0
- package/locale/hy/package.json +5 -5
- package/locale/ia/index.cjs +7 -0
- package/locale/ia/index.js +6 -0
- package/locale/ia/package.json +5 -5
- package/locale/id/index.cjs +7 -0
- package/locale/id/index.js +6 -0
- package/locale/id/package.json +5 -5
- package/locale/ie/index.cjs +7 -0
- package/locale/ie/index.js +6 -0
- package/locale/ie/package.json +5 -5
- package/locale/ig/index.cjs +7 -0
- package/locale/ig/index.js +6 -0
- package/locale/ig/package.json +5 -5
- package/locale/ii/index.cjs +7 -0
- package/locale/ii/index.js +6 -0
- package/locale/ii/package.json +5 -5
- package/locale/is/index.cjs +7 -0
- package/locale/is/index.js +6 -0
- package/locale/is/package.json +5 -5
- package/locale/it/index.cjs +7 -0
- package/locale/it/index.js +6 -0
- package/locale/it/package.json +5 -5
- package/locale/ja/index.cjs +7 -0
- package/locale/ja/index.js +6 -0
- package/locale/ja/package.json +5 -5
- package/locale/jgo/index.cjs +7 -0
- package/locale/jgo/index.js +6 -0
- package/locale/jgo/package.json +5 -5
- package/locale/jv/index.cjs +7 -0
- package/locale/jv/index.js +6 -0
- package/locale/jv/package.json +5 -5
- package/locale/ka/index.cjs +7 -0
- package/locale/ka/index.js +6 -0
- package/locale/ka/package.json +5 -5
- package/locale/kaa/index.cjs +7 -0
- package/locale/kaa/index.js +6 -0
- package/locale/kaa/package.json +5 -5
- package/locale/kea/index.cjs +7 -0
- package/locale/kea/index.js +6 -0
- package/locale/kea/package.json +5 -5
- package/locale/kgp/index.cjs +7 -0
- package/locale/kgp/index.js +6 -0
- package/locale/kgp/package.json +5 -5
- package/locale/kk/index.cjs +7 -0
- package/locale/kk/index.js +6 -0
- package/locale/kk/package.json +5 -5
- package/locale/kk-Arab/index.cjs +7 -0
- package/locale/kk-Arab/index.js +6 -0
- package/locale/kk-Arab/package.json +5 -5
- package/locale/kl/index.cjs +7 -0
- package/locale/kl/index.js +6 -0
- package/locale/kl/package.json +5 -5
- package/locale/km/index.cjs +7 -0
- package/locale/km/index.js +6 -0
- package/locale/km/package.json +5 -5
- package/locale/kn/index.cjs +7 -0
- package/locale/kn/index.js +6 -0
- package/locale/kn/package.json +5 -5
- package/locale/ko/index.cjs +7 -0
- package/locale/ko/index.js +6 -0
- package/locale/ko/package.json +5 -5
- package/locale/kok/index.cjs +7 -0
- package/locale/kok/index.js +6 -0
- package/locale/kok/package.json +5 -5
- package/locale/kok-Latn/index.cjs +7 -0
- package/locale/kok-Latn/index.js +6 -0
- package/locale/kok-Latn/package.json +5 -5
- package/locale/ks/index.cjs +7 -0
- package/locale/ks/index.js +6 -0
- package/locale/ks/package.json +5 -5
- package/locale/ksh/index.cjs +7 -0
- package/locale/ksh/index.js +6 -0
- package/locale/ksh/package.json +5 -5
- package/locale/ku/index.cjs +7 -0
- package/locale/ku/index.js +6 -0
- package/locale/ku/package.json +5 -5
- package/locale/ky/index.cjs +7 -0
- package/locale/ky/index.js +6 -0
- package/locale/ky/package.json +5 -5
- package/locale/lb/index.cjs +7 -0
- package/locale/lb/index.js +6 -0
- package/locale/lb/package.json +5 -5
- package/locale/lkt/index.cjs +7 -0
- package/locale/lkt/index.js +6 -0
- package/locale/lkt/package.json +5 -5
- package/locale/lld/index.cjs +7 -0
- package/locale/lld/index.js +6 -0
- package/locale/lld/package.json +5 -5
- package/locale/lo/index.cjs +7 -0
- package/locale/lo/index.js +6 -0
- package/locale/lo/package.json +5 -5
- package/locale/lt/index.cjs +7 -0
- package/locale/lt/index.js +6 -0
- package/locale/lt/package.json +5 -5
- package/locale/lv/index.cjs +7 -0
- package/locale/lv/index.js +6 -0
- package/locale/lv/package.json +5 -5
- package/locale/mai/index.cjs +7 -0
- package/locale/mai/index.js +6 -0
- package/locale/mai/package.json +5 -5
- package/locale/mi/index.cjs +7 -0
- package/locale/mi/index.js +6 -0
- package/locale/mi/package.json +5 -5
- package/locale/mk/index.cjs +7 -0
- package/locale/mk/index.js +6 -0
- package/locale/mk/package.json +5 -5
- package/locale/ml/index.cjs +7 -0
- package/locale/ml/index.js +6 -0
- package/locale/ml/package.json +5 -5
- package/locale/mn/index.cjs +7 -0
- package/locale/mn/index.js +6 -0
- package/locale/mn/package.json +5 -5
- package/locale/mni/index.cjs +7 -0
- package/locale/mni/index.js +6 -0
- package/locale/mni/package.json +5 -5
- package/locale/mr/index.cjs +7 -0
- package/locale/mr/index.js +6 -0
- package/locale/mr/package.json +5 -5
- package/locale/ms/index.cjs +7 -0
- package/locale/ms/index.js +6 -0
- package/locale/ms/package.json +5 -5
- package/locale/ms-Arab/index.cjs +7 -0
- package/locale/ms-Arab/index.js +6 -0
- package/locale/ms-Arab/package.json +5 -5
- package/locale/mt/index.cjs +7 -0
- package/locale/mt/index.js +6 -0
- package/locale/mt/package.json +5 -5
- package/locale/my/index.cjs +7 -0
- package/locale/my/index.js +6 -0
- package/locale/my/package.json +5 -5
- package/locale/mzn/index.cjs +7 -0
- package/locale/mzn/index.js +6 -0
- package/locale/mzn/package.json +5 -5
- package/locale/nb/index.cjs +7 -0
- package/locale/nb/index.js +6 -0
- package/locale/nb/package.json +5 -5
- package/locale/ne/index.cjs +7 -0
- package/locale/ne/index.js +6 -0
- package/locale/ne/package.json +5 -5
- package/locale/nl/index.cjs +7 -0
- package/locale/nl/index.js +6 -0
- package/locale/nl/package.json +5 -5
- package/locale/nn/index.cjs +7 -0
- package/locale/nn/index.js +6 -0
- package/locale/nn/package.json +5 -5
- package/locale/no/index.cjs +7 -0
- package/locale/no/index.js +6 -0
- package/locale/no/package.json +5 -5
- package/locale/nqo/index.cjs +7 -0
- package/locale/nqo/index.js +6 -0
- package/locale/nqo/package.json +5 -5
- package/locale/nso/index.cjs +7 -0
- package/locale/nso/index.js +6 -0
- package/locale/nso/package.json +5 -5
- package/locale/om/index.cjs +7 -0
- package/locale/om/index.js +6 -0
- package/locale/om/package.json +5 -5
- package/locale/or/index.cjs +7 -0
- package/locale/or/index.js +6 -0
- package/locale/or/package.json +5 -5
- package/locale/pa/index.cjs +7 -0
- package/locale/pa/index.js +6 -0
- package/locale/pa/package.json +5 -5
- package/locale/pcm/index.cjs +7 -0
- package/locale/pcm/index.js +6 -0
- package/locale/pcm/package.json +5 -5
- package/locale/pl/index.cjs +7 -0
- package/locale/pl/index.js +6 -0
- package/locale/pl/package.json +5 -5
- package/locale/ps/index.cjs +7 -0
- package/locale/ps/index.js +6 -0
- package/locale/ps/package.json +5 -5
- package/locale/ps-PK/index.cjs +7 -0
- package/locale/ps-PK/index.js +6 -0
- package/locale/ps-PK/package.json +5 -5
- package/locale/pt/index.cjs +7 -0
- package/locale/pt/index.js +6 -0
- package/locale/pt/package.json +5 -5
- package/locale/pt-AO/index.cjs +7 -0
- package/locale/pt-AO/index.js +6 -0
- package/locale/pt-AO/package.json +5 -5
- package/locale/pt-CH/index.cjs +7 -0
- package/locale/pt-CH/index.js +6 -0
- package/locale/pt-CH/package.json +5 -5
- package/locale/pt-CV/index.cjs +7 -0
- package/locale/pt-CV/index.js +6 -0
- package/locale/pt-CV/package.json +5 -5
- package/locale/pt-GQ/index.cjs +7 -0
- package/locale/pt-GQ/index.js +6 -0
- package/locale/pt-GQ/package.json +5 -5
- package/locale/pt-GW/index.cjs +7 -0
- package/locale/pt-GW/index.js +6 -0
- package/locale/pt-GW/package.json +5 -5
- package/locale/pt-LU/index.cjs +7 -0
- package/locale/pt-LU/index.js +6 -0
- package/locale/pt-LU/package.json +5 -5
- package/locale/pt-MO/index.cjs +7 -0
- package/locale/pt-MO/index.js +6 -0
- package/locale/pt-MO/package.json +5 -5
- package/locale/pt-MZ/index.cjs +7 -0
- package/locale/pt-MZ/index.js +6 -0
- package/locale/pt-MZ/package.json +5 -5
- package/locale/pt-PT/index.cjs +7 -0
- package/locale/pt-PT/index.js +6 -0
- package/locale/pt-PT/package.json +5 -5
- package/locale/pt-ST/index.cjs +7 -0
- package/locale/pt-ST/index.js +6 -0
- package/locale/pt-ST/package.json +5 -5
- package/locale/pt-TL/index.cjs +7 -0
- package/locale/pt-TL/index.js +6 -0
- package/locale/pt-TL/package.json +5 -5
- package/locale/qu/index.cjs +7 -0
- package/locale/qu/index.js +6 -0
- package/locale/qu/package.json +5 -5
- package/locale/raj/index.cjs +7 -0
- package/locale/raj/index.js +6 -0
- package/locale/raj/package.json +5 -5
- package/locale/rhg/index.cjs +7 -0
- package/locale/rhg/index.js +6 -0
- package/locale/rhg/package.json +5 -5
- package/locale/rm/index.cjs +7 -0
- package/locale/rm/index.js +6 -0
- package/locale/rm/package.json +5 -5
- package/locale/ro/index.cjs +7 -0
- package/locale/ro/index.js +6 -0
- package/locale/ro/package.json +5 -5
- package/locale/ru/index.cjs +7 -0
- package/locale/ru/index.js +6 -0
- package/locale/ru/package.json +5 -5
- package/locale/rw/index.cjs +7 -0
- package/locale/rw/index.js +6 -0
- package/locale/rw/package.json +5 -5
- package/locale/sah/index.cjs +7 -0
- package/locale/sah/index.js +6 -0
- package/locale/sah/package.json +5 -5
- package/locale/sc/index.cjs +7 -0
- package/locale/sc/index.js +6 -0
- package/locale/sc/package.json +5 -5
- package/locale/scn/index.cjs +7 -0
- package/locale/scn/index.js +6 -0
- package/locale/scn/package.json +5 -5
- package/locale/sd/index.cjs +7 -0
- package/locale/sd/index.js +6 -0
- package/locale/sd/package.json +5 -5
- package/locale/sd-Deva/index.cjs +7 -0
- package/locale/sd-Deva/index.js +6 -0
- package/locale/sd-Deva/package.json +5 -5
- package/locale/se/index.cjs +7 -0
- package/locale/se/index.js +6 -0
- package/locale/se/package.json +5 -5
- package/locale/se-FI/index.cjs +7 -0
- package/locale/se-FI/index.js +6 -0
- package/locale/se-FI/package.json +5 -5
- package/locale/shn/index.cjs +7 -0
- package/locale/shn/index.js +6 -0
- package/locale/shn/package.json +5 -5
- package/locale/si/index.cjs +7 -0
- package/locale/si/index.js +6 -0
- package/locale/si/package.json +5 -5
- package/locale/sk/index.cjs +7 -0
- package/locale/sk/index.js +6 -0
- package/locale/sk/package.json +5 -5
- package/locale/sl/index.cjs +7 -0
- package/locale/sl/index.js +6 -0
- package/locale/sl/package.json +5 -5
- package/locale/so/index.cjs +7 -0
- package/locale/so/index.js +6 -0
- package/locale/so/package.json +5 -5
- package/locale/sq/index.cjs +7 -0
- package/locale/sq/index.js +6 -0
- package/locale/sq/package.json +5 -5
- package/locale/sr/index.cjs +7 -0
- package/locale/sr/index.js +6 -0
- package/locale/sr/package.json +5 -5
- package/locale/sr-Cyrl-BA/index.cjs +7 -0
- package/locale/sr-Cyrl-BA/index.js +6 -0
- package/locale/sr-Cyrl-BA/package.json +5 -5
- package/locale/sr-Latn/index.cjs +7 -0
- package/locale/sr-Latn/index.js +6 -0
- package/locale/sr-Latn/package.json +5 -5
- package/locale/sr-Latn-BA/index.cjs +7 -0
- package/locale/sr-Latn-BA/index.js +6 -0
- package/locale/sr-Latn-BA/package.json +5 -5
- package/locale/su/index.cjs +7 -0
- package/locale/su/index.js +6 -0
- package/locale/su/package.json +5 -5
- package/locale/sv/index.cjs +7 -0
- package/locale/sv/index.js +6 -0
- package/locale/sv/package.json +5 -5
- package/locale/sw/index.cjs +7 -0
- package/locale/sw/index.js +6 -0
- package/locale/sw/package.json +5 -5
- package/locale/syr/index.cjs +7 -0
- package/locale/syr/index.js +6 -0
- package/locale/syr/package.json +5 -5
- package/locale/ta/index.cjs +7 -0
- package/locale/ta/index.js +6 -0
- package/locale/ta/package.json +5 -5
- package/locale/te/index.cjs +7 -0
- package/locale/te/index.js +6 -0
- package/locale/te/package.json +5 -5
- package/locale/tg/index.cjs +7 -0
- package/locale/tg/index.js +6 -0
- package/locale/tg/package.json +5 -5
- package/locale/th/index.cjs +7 -0
- package/locale/th/index.js +6 -0
- package/locale/th/package.json +5 -5
- package/locale/ti/index.cjs +7 -0
- package/locale/ti/index.js +6 -0
- package/locale/ti/package.json +5 -5
- package/locale/tk/index.cjs +7 -0
- package/locale/tk/index.js +6 -0
- package/locale/tk/package.json +5 -5
- package/locale/tn/index.cjs +7 -0
- package/locale/tn/index.js +6 -0
- package/locale/tn/package.json +5 -5
- package/locale/to/index.cjs +7 -0
- package/locale/to/index.js +6 -0
- package/locale/to/package.json +5 -5
- package/locale/tok/index.cjs +7 -0
- package/locale/tok/index.js +6 -0
- package/locale/tok/package.json +5 -5
- package/locale/tr/index.cjs +7 -0
- package/locale/tr/index.js +6 -0
- package/locale/tr/package.json +5 -5
- package/locale/tt/index.cjs +7 -0
- package/locale/tt/index.js +6 -0
- package/locale/tt/package.json +5 -5
- package/locale/tyv/index.cjs +7 -0
- package/locale/tyv/index.js +6 -0
- package/locale/tyv/package.json +5 -5
- package/locale/ug/index.cjs +7 -0
- package/locale/ug/index.js +6 -0
- package/locale/ug/package.json +5 -5
- package/locale/uk/index.cjs +7 -0
- package/locale/uk/index.js +6 -0
- package/locale/uk/package.json +5 -5
- package/locale/ur/index.cjs +7 -0
- package/locale/ur/index.js +6 -0
- package/locale/ur/package.json +5 -5
- package/locale/ur-IN/index.cjs +7 -0
- package/locale/ur-IN/index.js +6 -0
- package/locale/ur-IN/package.json +5 -5
- package/locale/uz/index.cjs +7 -0
- package/locale/uz/index.js +6 -0
- package/locale/uz/package.json +5 -5
- package/locale/uz-Cyrl/index.cjs +7 -0
- package/locale/uz-Cyrl/index.js +6 -0
- package/locale/uz-Cyrl/package.json +5 -5
- package/locale/vec/index.cjs +7 -0
- package/locale/vec/index.js +6 -0
- package/locale/vec/package.json +5 -5
- package/locale/vi/index.cjs +7 -0
- package/locale/vi/index.js +6 -0
- package/locale/vi/package.json +5 -5
- package/locale/wae/index.cjs +7 -0
- package/locale/wae/index.js +6 -0
- package/locale/wae/package.json +5 -5
- package/locale/wo/index.cjs +7 -0
- package/locale/wo/index.js +6 -0
- package/locale/wo/package.json +5 -5
- package/locale/xh/index.cjs +7 -0
- package/locale/xh/index.js +6 -0
- package/locale/xh/package.json +5 -5
- package/locale/xnr/index.cjs +7 -0
- package/locale/xnr/index.js +6 -0
- package/locale/xnr/package.json +5 -5
- package/locale/yi/index.cjs +7 -0
- package/locale/yi/index.js +6 -0
- package/locale/yi/package.json +5 -5
- package/locale/yo/index.cjs +7 -0
- package/locale/yo/index.js +6 -0
- package/locale/yo/package.json +5 -5
- package/locale/yo-BJ/index.cjs +7 -0
- package/locale/yo-BJ/index.js +6 -0
- package/locale/yo-BJ/package.json +5 -5
- package/locale/yrl/index.cjs +7 -0
- package/locale/yrl/index.js +6 -0
- package/locale/yrl/package.json +5 -5
- package/locale/yue/index.cjs +7 -0
- package/locale/yue/index.js +6 -0
- package/locale/yue/package.json +5 -5
- package/locale/yue-Hans/index.cjs +7 -0
- package/locale/yue-Hans/index.js +6 -0
- package/locale/yue-Hans/package.json +5 -5
- package/locale/zh/index.cjs +7 -0
- package/locale/zh/index.js +6 -0
- package/locale/zh/package.json +5 -5
- package/locale/zh-Hans-HK/index.cjs +7 -0
- package/locale/zh-Hans-HK/index.js +6 -0
- package/locale/zh-Hans-HK/package.json +5 -5
- package/locale/zh-Hans-MO/index.cjs +7 -0
- package/locale/zh-Hans-MO/index.js +6 -0
- package/locale/zh-Hans-MO/package.json +5 -5
- package/locale/zh-Hans-SG/index.cjs +7 -0
- package/locale/zh-Hans-SG/index.js +6 -0
- package/locale/zh-Hans-SG/package.json +5 -5
- package/locale/zh-Hant/index.cjs +7 -0
- package/locale/zh-Hant/index.js +6 -0
- package/locale/zh-Hant/package.json +5 -5
- package/locale/zh-Hant-HK/index.cjs +7 -0
- package/locale/zh-Hant-HK/index.js +6 -0
- package/locale/zh-Hant-HK/package.json +5 -5
- package/locale/zh-Hant-MO/index.cjs +7 -0
- package/locale/zh-Hant-MO/index.js +6 -0
- package/locale/zh-Hant-MO/package.json +5 -5
- package/locale/zu/index.cjs +7 -0
- package/locale/zu/index.js +6 -0
- package/locale/zu/package.json +5 -5
- package/modules/TimeAgo.js +1 -0
- package/modules/TimeAgo.js.map +1 -1
- package/modules/TimeAgo.test.js +12 -0
- package/modules/TimeAgo.test.js.map +1 -1
- package/package.json +1347 -674
- package/scripts/generate-load-all-locales.js +3 -0
- package/scripts/generate-locale-messages.js +70 -48
- package/steps/index.d.ts +13 -0
package/commonjs/TimeAgo.js
CHANGED
package/commonjs/TimeAgo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeAgo.js","names":["_relativeTimeFormat","_interopRequireDefault","require","_cache","_locale","_isStyleObject","_getStep3","_getStepDenominator","_getTimeToNextUpdate","_LocaleDataStore","_roundMinute","_getStyleByName","_round","e","__esModule","_typeof","o","Symbol","iterator","constructor","prototype","_createForOfIteratorHelperLoose","r","t","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","done","value","TypeError","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","a","_arrayLikeToArray","toString","slice","name","from","test","n","l","i","u","f","Object","push","_classCallCheck","_defineProperties","enumerable","configurable","writable","defineProperty","_toPropertyKey","key","_createClass","_toPrimitive","toPrimitive","String","Number","TimeAgo","exports","locales","arguments","undefined","_ref","polyfill","locale","chooseLocale","concat","getDefaultLocale","getLocaleData","Intl","NumberFormat","numberFormat","IntlRelativeTimeFormat","RelativeTimeFormat","IntlPluralRules","PluralRules","RelativeTimeFormatPolyfill","relativeTimeFormatCache","Cache","pluralRulesCache","format","input","style","options","_this","isStyle","defaultStyle","getStyleByName","timestamp","getTimestamp","_this$getLabels","getLabels","flavour","labels","labelsType","round","now","nowRealWhenCalled","Date","getTextAndTextRefreshDelayGetterFunctions","_ref2","secondsPassed","future","nowLabel","getNowLabel","custom","text","date","time","elapsed","getText","getTextRefreshDelay","Error","units","getTimeIntervalMeasurementUnits","_getStep","getStep","gradation","steps","getNextStep","_getStep2","prevStep","step","nextStep","formatDateForStep","timeToNextUpdate","getTimeToNextUpdate","getTimeToNextUpdateUncapped","getSafeTimeoutDelay","_getTextAndTextRefres","refresh","defaultRefreshInterval","refreshTimer","scheduleRefresh","delay","setTimeoutSafe","_getTextAndTextRefres2","stopRefreshing","clearTimeout","_ref3","_this2","formatAs","unit","amount","formatValue","JSON","stringify","Math","abs","getStepDenominator","granularity","getRoundFunction","valueForFormatting","sign","getFormatter","_ref4","getFormattingRule","replace","formatNumber","formattingRules","_ref5","pastOrFuture","quantifierRules","quantifier","getPluralRules","select","other","number","get","put","map","localeData","_iterator","_step","_labelsType","defaultLocale","setDefaultLocale","addDefaultLocale","defaultLocaleHasBeenSpecified","console","warn","addLocale","addLocaleData","addLabels","isMockedDate","getTime","object","allowedUnits","keys","filter","indexOf","nowLabels","longLabels","past","second","current","variable","isStyleObject","func","setTimeout","min","SET_TIMEOUT_MAX_SAFE_DELAY"],"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\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|Date)} input — A `Date` or a javascript timestamp.\r\n\t *\r\n\t * @param {(string|object)} style — Date/time formatting style. Either one of the built-in style names or a \"custom\" style definition object having `steps: object[]` and `labels: string[]`.\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 * @param {boolean} [options.getTimeToNextUpdateUncapped] — Pass `true` to not apply the workaround for `setTimeout()` bug. https://stackoverflow.com/questions/3468607/why-does-settimeout-break-for-large-millisecond-delay-values\r\n\t *\r\n\t * @param {function} [options.refresh] — When `refresh` function is passed, it will be automatically called with a new text when it's time to refresh the label.\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\t// `round` setting could be passed as a parameter to `.format()` function\r\n\t\t// or be configured globally for a style.\r\n\t\tconst round = options.round || style.round\r\n\r\n\t\t// A developer can pass a custom `now`, e.g. for testing purposes.\r\n\t\tlet now\r\n\t\tconst nowRealWhenCalled = Date.now()\r\n\t\t// (deprecated)\r\n\t\t// Legacy way was passing `now` in `style`.\r\n\t\tif (style.now !== undefined) {\r\n\t\t\tnow = style.now\r\n\t\t}\r\n\t\t// One could pass `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\t// The default `now` is `Date.now()`.\r\n\t\tif (now === undefined) {\r\n\t\t\tnow = nowRealWhenCalled\r\n\t\t}\r\n\r\n\t\tconst getTextAndTextRefreshDelayGetterFunctions = ({ now }) => {\r\n\t\t\t// how much time has passed (in seconds)\r\n\t\t\tconst secondsPassed = (now - timestamp) / 1000 // in seconds\r\n\r\n\t\t\tconst future = options.future || secondsPassed < 0\r\n\r\n\t\t\tconst nowLabel = getNowLabel(\r\n\t\t\t\tlabels,\r\n\t\t\t\tgetLocaleData(this.locale).now,\r\n\t\t\t\tgetLocaleData(this.locale).long,\r\n\t\t\t\tfuture\r\n\t\t\t)\r\n\r\n\t\t\t// (deprecated)\r\n\t\t\t//\r\n\t\t\t// `custom` – A function of `{ elapsed, time, date, now, locale }`.\r\n\t\t\t//\r\n\t\t\t// If this function returns a value, then the `.format()` call will return that value.\r\n\t\t\t// Otherwise the relative date/time is formatted as usual.\r\n\t\t\t// This feature is currently not used anywhere and is here\r\n\t\t\t// just for providing the ultimate customization point\r\n\t\t\t// in case anyone would ever need that. Prefer using\r\n\t\t\t// `steps[step].format(value, locale)` instead.\r\n\t\t\t//\r\n\t\t\tif (style.custom) {\r\n\t\t\t\tconst text = style.custom({\r\n\t\t\t\t\tnow,\r\n\t\t\t\t\tdate: new Date(timestamp),\r\n\t\t\t\t\ttime: timestamp,\r\n\t\t\t\t\telapsed: secondsPassed,\r\n\t\t\t\t\tlocale: this.locale\r\n\t\t\t\t})\r\n\t\t\t\tif (text !== undefined) {\r\n\t\t\t\t\t// Won't return `timeToNextUpdate` here\r\n\t\t\t\t\t// because `custom()` seems deprecated.\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tgetText: () => text,\r\n\t\t\t\t\t\tgetTextRefreshDelay: () => {\r\n\t\t\t\t\t\t\tthrow new Error('`getTimeToNextUpdate: true` feature is not supported by legacy \"styles\" that have a `custom` function')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Get the list of available time interval units.\r\n\t\t\tconst units = getTimeIntervalMeasurementUnits(\r\n\t\t\t\t// Controlling `style.steps` through `style.units` seems to be deprecated:\r\n\t\t\t\t// create a new custom `style` instead.\r\n\t\t\t\tstyle.units,\r\n\t\t\t\tlabels,\r\n\t\t\t\tnowLabel\r\n\t\t\t)\r\n\r\n\t\t\t// Choose the appropriate time measurement unit\r\n\t\t\t// and get the corresponding rounded time amount.\r\n\t\t\tconst [prevStep, step, nextStep] = getStep(\r\n\t\t\t\t// \"gradation\" is a legacy name for \"steps\".\r\n\t\t\t\t// For historical reasons, \"approximate\" steps are used by default.\r\n\t\t\t\t// In the next major version, there'll be no default for `steps`.\r\n\t\t\t\tstyle.gradation || style.steps || defaultStyle.steps,\r\n\t\t\t\tsecondsPassed,\r\n\t\t\t\t{ now, units, round, future, getNextStep: true }\r\n\t\t\t)\r\n\r\n\t\t\tconst getText = () => {\r\n\t\t\t\treturn this.formatDateForStep(timestamp, step, secondsPassed, {\r\n\t\t\t\t\tlabels,\r\n\t\t\t\t\tlabelsType,\r\n\t\t\t\t\tnowLabel,\r\n\t\t\t\t\tnow,\r\n\t\t\t\t\tfuture,\r\n\t\t\t\t\tround\r\n\t\t\t\t}) || ''\r\n\t\t\t}\r\n\r\n\t\t\t// Returns the time (in milliseconds) after which the formatted date label should be refreshed.\r\n\t\t\t//\r\n\t\t\t// It will return `undefined` for a custom style\r\n\t\t\t// that doesn't meet the minimum requirements for this feature.\r\n\t\t\t// See the README for more details.\r\n\t\t\t//\r\n\t\t\tconst getTextRefreshDelay = () => {\r\n\t\t\t\tconst timeToNextUpdate = getTimeToNextUpdate(timestamp, step, {\r\n\t\t\t\t\tnextStep,\r\n\t\t\t\t\tprevStep,\r\n\t\t\t\t\tnow,\r\n\t\t\t\t\tfuture,\r\n\t\t\t\t\tround\r\n\t\t\t\t})\r\n\r\n\t\t\t\t// `timeToNextUpdate` could be `undefined` for a custom style\r\n\t\t\t\t// that doesn't meet the minimum requirements for this feature.\r\n\t\t\t\t// See the README for more details.\r\n\t\t\t\tif (typeof timeToNextUpdate === 'number') {\r\n\t\t\t\t\t// `setTimeout()` function has a bug when it fires immediately\r\n\t\t\t\t\t// when the delay is longer than about `24.85` days.\r\n\t\t\t\t\t// https://stackoverflow.com/questions/3468607/why-does-settimeout-break-for-large-millisecond-delay-values\r\n\t\t\t\t\t//\r\n\t\t\t\t\t// In order to not burden the end users of this library with manually working around that bug,\r\n\t\t\t\t\t// this library automatically caps the returned delay to a maximum value of about `24.85` days\r\n\t\t\t\t\t// which still works correctly with `setTimeout()` function and doesn't break it.\r\n\t\t\t\t\t//\r\n\t\t\t\t\t// The end user of this library could still disable this automatic workaround\r\n\t\t\t\t\t// by passing a `getTimeToNextUpdateUncapped: true` parameter.\r\n\t\t\t\t\t// In that case, it will return the original non-modified uncapped delay\r\n\t\t\t\t\t// which can be longer than `24.85` days and should be manually capped\r\n\t\t\t\t\t// by the developer if it's going to be used in a `setTimeout()` call.\r\n\t\t\t\t\t//\r\n\t\t\t\t\tif (options.getTimeToNextUpdateUncapped) {\r\n\t\t\t\t\t\treturn timeToNextUpdate\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn getSafeTimeoutDelay(timeToNextUpdate)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn { getText, getTextRefreshDelay }\r\n\t\t}\r\n\r\n\t\tconst { getText, getTextRefreshDelay } = getTextAndTextRefreshDelayGetterFunctions({ now })\r\n\r\n\t\tif (options.getTimeToNextUpdate) {\r\n\t\t\treturn [getText(), getTextRefreshDelay()]\r\n\t\t}\r\n\r\n\t\tif (options.refresh) {\r\n\t\t\t// `getTextRefreshDelay()` will return `undefined` for a custom style\r\n\t\t\t// that doesn't meet the minimum requirements for this feature.\r\n\t\t\t// See the README for more details.\r\n\t\t\t//\r\n\t\t\t// This is a \"sensible default\" interval for refreshing time labels\r\n\t\t\t// that use such custom style.\r\n\t\t\t//\r\n\t\t\tconst defaultRefreshInterval = 60 * 1000\r\n\r\n\t\t\t// If `refresh` function was passed, schedule it to be called when the time comes,\r\n\t\t\t// after which schedule the next refresh.\r\n\t\t\tlet refreshTimer\r\n\t\t\tconst scheduleRefresh = (delay = defaultRefreshInterval) => {\r\n\t\t\t\trefreshTimer = setTimeoutSafe(() => {\r\n\t\t\t\t\tconst { getText, getTextRefreshDelay } = getTextAndTextRefreshDelayGetterFunctions({\r\n\t\t\t\t\t\tnow: now + (Date.now() - nowRealWhenCalled)\r\n\t\t\t\t\t})\r\n\t\t\t\t\toptions.refresh(getText())\r\n\t\t\t\t\tscheduleRefresh(getTextRefreshDelay())\r\n\t\t\t\t}, delay)\r\n\t\t\t}\r\n\r\n\t\t\tscheduleRefresh(getTextRefreshDelay())\r\n\r\n\t\t\tconst stopRefreshing = () => {\r\n\t\t\t\tclearTimeout(refreshTimer)\r\n\t\t\t}\r\n\r\n\t\t\treturn [getText(), stopRefreshing]\r\n\t\t}\r\n\r\n\t\treturn getText()\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, amount) => {\r\n\t\t\t\t\t// Mimicks `Intl.RelativeTimeFormat.format()`.\r\n\t\t\t\t\treturn this.formatValue(amount, 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) => {\r\n\tdefaultLocale = locale\r\n}\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\t// Warn the user if they've previously already added a default locale (a different one).\r\n\tif (defaultLocaleHasBeenSpecified) {\r\n\t\tif (TimeAgo.getDefaultLocale() !== localeData.locale) {\r\n\t\t\tconsole.warn(`[javascript-time-ago] You're adding \"${localeData.locale}\" as the default locale but you have already added \"${TimeAgo.getDefaultLocale()}\" as the default locale. \"${localeData.locale}\" is the default locale now.`)\r\n\t\t}\r\n\t}\r\n\tdefaultLocaleHasBeenSpecified = true\r\n\r\n\t// `addDefaultLocale()` is just a shortcut to `addLocale()` + `setDefaultLocale()`.\r\n\tTimeAgo.addLocale(localeData)\r\n\tTimeAgo.setDefaultLocale(localeData.locale)\r\n}\r\n\r\nlet defaultLocaleHasBeenSpecified = false\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}\r\n\r\n// `setTimeout()` function has a bug when it fires immediately\r\n// when the delay is longer than about `24.85` days.\r\n// https://stackoverflow.com/questions/3468607/why-does-settimeout-break-for-large-millisecond-delay-values\r\n//\r\n// Since `renderLabel()` function uses `setTimeout()` for recursion,\r\n// that would mean infinite recursion.\r\n//\r\n// `setTimeoutSafe()` function works around that bug\r\n// by capping the delay at the maximum allowed value.\r\n//\r\nfunction setTimeoutSafe(func, delay) {\r\n return setTimeout(func, getSafeTimeoutDelay(delay))\r\n}\r\nfunction getSafeTimeoutDelay(delay) {\r\n return Math.min(delay, SET_TIMEOUT_MAX_SAFE_DELAY)\r\n}\r\nconst SET_TIMEOUT_MAX_SAFE_DELAY = 2147483647"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"TimeAgo.js","names":["_relativeTimeFormat","_interopRequireDefault","require","_cache","_locale","_isStyleObject","_getStep3","_getStepDenominator","_getTimeToNextUpdate","_LocaleDataStore","_roundMinute","_getStyleByName","_round","e","__esModule","_typeof","o","Symbol","iterator","constructor","prototype","_createForOfIteratorHelperLoose","r","t","call","next","bind","Array","isArray","_unsupportedIterableToArray","length","done","value","TypeError","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","a","_arrayLikeToArray","toString","slice","name","from","test","n","l","i","u","f","Object","push","_classCallCheck","_defineProperties","enumerable","configurable","writable","defineProperty","_toPropertyKey","key","_createClass","_toPrimitive","toPrimitive","String","Number","TimeAgo","exports","locales","arguments","undefined","_ref","polyfill","locale","chooseLocale","concat","getDefaultLocale","getLocaleData","Intl","NumberFormat","numberFormat","IntlRelativeTimeFormat","RelativeTimeFormat","IntlPluralRules","PluralRules","RelativeTimeFormatPolyfill","relativeTimeFormatCache","Cache","pluralRulesCache","format","input","style","options","_this","isStyle","defaultStyle","getStyleByName","timestamp","getTimestamp","_this$getLabels","getLabels","flavour","labels","labelsType","round","now","nowRealWhenCalled","Date","getTextAndTextRefreshDelayGetterFunctions","_ref2","secondsPassed","future","nowLabel","getNowLabel","custom","text","date","time","elapsed","getText","getTextRefreshDelay","Error","units","getTimeIntervalMeasurementUnits","_getStep","getStep","gradation","steps","getNextStep","_getStep2","prevStep","step","nextStep","formatDateForStep","timeToNextUpdate","getTimeToNextUpdate","getTimeToNextUpdateUncapped","getSafeTimeoutDelay","_getTextAndTextRefres","refresh","defaultRefreshInterval","refreshTimer","scheduleRefresh","delay","setTimeoutSafe","_getTextAndTextRefres2","stopRefreshing","clearTimeout","_ref3","_this2","formatAs","unit","amount","formatValue","JSON","stringify","Math","abs","getStepDenominator","granularity","getRoundFunction","valueForFormatting","sign","getFormatter","_ref4","getFormattingRule","replace","formatNumber","formattingRules","_ref5","pastOrFuture","quantifierRules","quantifier","getPluralRules","select","other","number","get","put","map","localeData","_iterator","_step","_labelsType","defaultLocale","setDefaultLocale","defaultLocaleHasBeenSpecified","addDefaultLocale","console","warn","addLocale","addLocaleData","addLabels","isMockedDate","getTime","object","allowedUnits","keys","filter","indexOf","nowLabels","longLabels","past","second","current","variable","isStyleObject","func","setTimeout","min","SET_TIMEOUT_MAX_SAFE_DELAY"],"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\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|Date)} input — A `Date` or a javascript timestamp.\r\n\t *\r\n\t * @param {(string|object)} style — Date/time formatting style. Either one of the built-in style names or a \"custom\" style definition object having `steps: object[]` and `labels: string[]`.\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 * @param {boolean} [options.getTimeToNextUpdateUncapped] — Pass `true` to not apply the workaround for `setTimeout()` bug. https://stackoverflow.com/questions/3468607/why-does-settimeout-break-for-large-millisecond-delay-values\r\n\t *\r\n\t * @param {function} [options.refresh] — When `refresh` function is passed, it will be automatically called with a new text when it's time to refresh the label.\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\t// `round` setting could be passed as a parameter to `.format()` function\r\n\t\t// or be configured globally for a style.\r\n\t\tconst round = options.round || style.round\r\n\r\n\t\t// A developer can pass a custom `now`, e.g. for testing purposes.\r\n\t\tlet now\r\n\t\tconst nowRealWhenCalled = Date.now()\r\n\t\t// (deprecated)\r\n\t\t// Legacy way was passing `now` in `style`.\r\n\t\tif (style.now !== undefined) {\r\n\t\t\tnow = style.now\r\n\t\t}\r\n\t\t// One could pass `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\t// The default `now` is `Date.now()`.\r\n\t\tif (now === undefined) {\r\n\t\t\tnow = nowRealWhenCalled\r\n\t\t}\r\n\r\n\t\tconst getTextAndTextRefreshDelayGetterFunctions = ({ now }) => {\r\n\t\t\t// how much time has passed (in seconds)\r\n\t\t\tconst secondsPassed = (now - timestamp) / 1000 // in seconds\r\n\r\n\t\t\tconst future = options.future || secondsPassed < 0\r\n\r\n\t\t\tconst nowLabel = getNowLabel(\r\n\t\t\t\tlabels,\r\n\t\t\t\tgetLocaleData(this.locale).now,\r\n\t\t\t\tgetLocaleData(this.locale).long,\r\n\t\t\t\tfuture\r\n\t\t\t)\r\n\r\n\t\t\t// (deprecated)\r\n\t\t\t//\r\n\t\t\t// `custom` – A function of `{ elapsed, time, date, now, locale }`.\r\n\t\t\t//\r\n\t\t\t// If this function returns a value, then the `.format()` call will return that value.\r\n\t\t\t// Otherwise the relative date/time is formatted as usual.\r\n\t\t\t// This feature is currently not used anywhere and is here\r\n\t\t\t// just for providing the ultimate customization point\r\n\t\t\t// in case anyone would ever need that. Prefer using\r\n\t\t\t// `steps[step].format(value, locale)` instead.\r\n\t\t\t//\r\n\t\t\tif (style.custom) {\r\n\t\t\t\tconst text = style.custom({\r\n\t\t\t\t\tnow,\r\n\t\t\t\t\tdate: new Date(timestamp),\r\n\t\t\t\t\ttime: timestamp,\r\n\t\t\t\t\telapsed: secondsPassed,\r\n\t\t\t\t\tlocale: this.locale\r\n\t\t\t\t})\r\n\t\t\t\tif (text !== undefined) {\r\n\t\t\t\t\t// Won't return `timeToNextUpdate` here\r\n\t\t\t\t\t// because `custom()` seems deprecated.\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tgetText: () => text,\r\n\t\t\t\t\t\tgetTextRefreshDelay: () => {\r\n\t\t\t\t\t\t\tthrow new Error('`getTimeToNextUpdate: true` feature is not supported by legacy \"styles\" that have a `custom` function')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Get the list of available time interval units.\r\n\t\t\tconst units = getTimeIntervalMeasurementUnits(\r\n\t\t\t\t// Controlling `style.steps` through `style.units` seems to be deprecated:\r\n\t\t\t\t// create a new custom `style` instead.\r\n\t\t\t\tstyle.units,\r\n\t\t\t\tlabels,\r\n\t\t\t\tnowLabel\r\n\t\t\t)\r\n\r\n\t\t\t// Choose the appropriate time measurement unit\r\n\t\t\t// and get the corresponding rounded time amount.\r\n\t\t\tconst [prevStep, step, nextStep] = getStep(\r\n\t\t\t\t// \"gradation\" is a legacy name for \"steps\".\r\n\t\t\t\t// For historical reasons, \"approximate\" steps are used by default.\r\n\t\t\t\t// In the next major version, there'll be no default for `steps`.\r\n\t\t\t\tstyle.gradation || style.steps || defaultStyle.steps,\r\n\t\t\t\tsecondsPassed,\r\n\t\t\t\t{ now, units, round, future, getNextStep: true }\r\n\t\t\t)\r\n\r\n\t\t\tconst getText = () => {\r\n\t\t\t\treturn this.formatDateForStep(timestamp, step, secondsPassed, {\r\n\t\t\t\t\tlabels,\r\n\t\t\t\t\tlabelsType,\r\n\t\t\t\t\tnowLabel,\r\n\t\t\t\t\tnow,\r\n\t\t\t\t\tfuture,\r\n\t\t\t\t\tround\r\n\t\t\t\t}) || ''\r\n\t\t\t}\r\n\r\n\t\t\t// Returns the time (in milliseconds) after which the formatted date label should be refreshed.\r\n\t\t\t//\r\n\t\t\t// It will return `undefined` for a custom style\r\n\t\t\t// that doesn't meet the minimum requirements for this feature.\r\n\t\t\t// See the README for more details.\r\n\t\t\t//\r\n\t\t\tconst getTextRefreshDelay = () => {\r\n\t\t\t\tconst timeToNextUpdate = getTimeToNextUpdate(timestamp, step, {\r\n\t\t\t\t\tnextStep,\r\n\t\t\t\t\tprevStep,\r\n\t\t\t\t\tnow,\r\n\t\t\t\t\tfuture,\r\n\t\t\t\t\tround\r\n\t\t\t\t})\r\n\r\n\t\t\t\t// `timeToNextUpdate` could be `undefined` for a custom style\r\n\t\t\t\t// that doesn't meet the minimum requirements for this feature.\r\n\t\t\t\t// See the README for more details.\r\n\t\t\t\tif (typeof timeToNextUpdate === 'number') {\r\n\t\t\t\t\t// `setTimeout()` function has a bug when it fires immediately\r\n\t\t\t\t\t// when the delay is longer than about `24.85` days.\r\n\t\t\t\t\t// https://stackoverflow.com/questions/3468607/why-does-settimeout-break-for-large-millisecond-delay-values\r\n\t\t\t\t\t//\r\n\t\t\t\t\t// In order to not burden the end users of this library with manually working around that bug,\r\n\t\t\t\t\t// this library automatically caps the returned delay to a maximum value of about `24.85` days\r\n\t\t\t\t\t// which still works correctly with `setTimeout()` function and doesn't break it.\r\n\t\t\t\t\t//\r\n\t\t\t\t\t// The end user of this library could still disable this automatic workaround\r\n\t\t\t\t\t// by passing a `getTimeToNextUpdateUncapped: true` parameter.\r\n\t\t\t\t\t// In that case, it will return the original non-modified uncapped delay\r\n\t\t\t\t\t// which can be longer than `24.85` days and should be manually capped\r\n\t\t\t\t\t// by the developer if it's going to be used in a `setTimeout()` call.\r\n\t\t\t\t\t//\r\n\t\t\t\t\tif (options.getTimeToNextUpdateUncapped) {\r\n\t\t\t\t\t\treturn timeToNextUpdate\r\n\t\t\t\t\t}\r\n\t\t\t\t\treturn getSafeTimeoutDelay(timeToNextUpdate)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn { getText, getTextRefreshDelay }\r\n\t\t}\r\n\r\n\t\tconst { getText, getTextRefreshDelay } = getTextAndTextRefreshDelayGetterFunctions({ now })\r\n\r\n\t\tif (options.getTimeToNextUpdate) {\r\n\t\t\treturn [getText(), getTextRefreshDelay()]\r\n\t\t}\r\n\r\n\t\tif (options.refresh) {\r\n\t\t\t// `getTextRefreshDelay()` will return `undefined` for a custom style\r\n\t\t\t// that doesn't meet the minimum requirements for this feature.\r\n\t\t\t// See the README for more details.\r\n\t\t\t//\r\n\t\t\t// This is a \"sensible default\" interval for refreshing time labels\r\n\t\t\t// that use such custom style.\r\n\t\t\t//\r\n\t\t\tconst defaultRefreshInterval = 60 * 1000\r\n\r\n\t\t\t// If `refresh` function was passed, schedule it to be called when the time comes,\r\n\t\t\t// after which schedule the next refresh.\r\n\t\t\tlet refreshTimer\r\n\t\t\tconst scheduleRefresh = (delay = defaultRefreshInterval) => {\r\n\t\t\t\trefreshTimer = setTimeoutSafe(() => {\r\n\t\t\t\t\tconst { getText, getTextRefreshDelay } = getTextAndTextRefreshDelayGetterFunctions({\r\n\t\t\t\t\t\tnow: now + (Date.now() - nowRealWhenCalled)\r\n\t\t\t\t\t})\r\n\t\t\t\t\toptions.refresh(getText())\r\n\t\t\t\t\tscheduleRefresh(getTextRefreshDelay())\r\n\t\t\t\t}, delay)\r\n\t\t\t}\r\n\r\n\t\t\tscheduleRefresh(getTextRefreshDelay())\r\n\r\n\t\t\tconst stopRefreshing = () => {\r\n\t\t\t\tclearTimeout(refreshTimer)\r\n\t\t\t}\r\n\r\n\t\t\treturn [getText(), stopRefreshing]\r\n\t\t}\r\n\r\n\t\treturn getText()\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, amount) => {\r\n\t\t\t\t\t// Mimicks `Intl.RelativeTimeFormat.format()`.\r\n\t\t\t\t\treturn this.formatValue(amount, 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) => {\r\n\tdefaultLocaleHasBeenSpecified = true\r\n\tdefaultLocale = locale\r\n}\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\t// Warn the user if they've previously already added a default locale (a different one).\r\n\tif (defaultLocaleHasBeenSpecified) {\r\n\t\tif (TimeAgo.getDefaultLocale() !== localeData.locale) {\r\n\t\t\tconsole.warn(`[javascript-time-ago] You're adding \"${localeData.locale}\" as the default locale but you have already added \"${TimeAgo.getDefaultLocale()}\" as the default locale. \"${localeData.locale}\" is the default locale now.`)\r\n\t\t}\r\n\t}\r\n\tdefaultLocaleHasBeenSpecified = true\r\n\r\n\t// `addDefaultLocale()` is just a shortcut to `addLocale()` + `setDefaultLocale()`.\r\n\tTimeAgo.addLocale(localeData)\r\n\tTimeAgo.setDefaultLocale(localeData.locale)\r\n}\r\n\r\nlet defaultLocaleHasBeenSpecified = false\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}\r\n\r\n// `setTimeout()` function has a bug when it fires immediately\r\n// when the delay is longer than about `24.85` days.\r\n// https://stackoverflow.com/questions/3468607/why-does-settimeout-break-for-large-millisecond-delay-values\r\n//\r\n// Since `renderLabel()` function uses `setTimeout()` for recursion,\r\n// that would mean infinite recursion.\r\n//\r\n// `setTimeoutSafe()` function works around that bug\r\n// by capping the delay at the maximum allowed value.\r\n//\r\nfunction setTimeoutSafe(func, delay) {\r\n return setTimeout(func, getSafeTimeoutDelay(delay))\r\n}\r\nfunction getSafeTimeoutDelay(delay) {\r\n return Math.min(delay, SET_TIMEOUT_MAX_SAFE_DELAY)\r\n}\r\nconst SET_TIMEOUT_MAX_SAFE_DELAY = 2147483647"],"mappings":";;;;;;AAAA,IAAAA,mBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,cAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAEA,IAAAI,SAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,mBAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,oBAAA,GAAAP,sBAAA,CAAAC,OAAA;AAEA,IAAAO,gBAAA,GAAAP,OAAA;AAKA,IAAAQ,YAAA,GAAAT,sBAAA,CAAAC,OAAA;AACA,IAAAS,eAAA,GAAAV,sBAAA,CAAAC,OAAA;AAEA,IAAAU,MAAA,GAAAV,OAAA;AAA6C,SAAAD,uBAAAY,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,gBAAAA,CAAA;AAAA,SAAAE,QAAAC,CAAA,sCAAAD,OAAA,wBAAAE,MAAA,uBAAAA,MAAA,CAAAC,QAAA,aAAAF,CAAA,kBAAAA,CAAA,gBAAAA,CAAA,WAAAA,CAAA,yBAAAC,MAAA,IAAAD,CAAA,CAAAG,WAAA,KAAAF,MAAA,IAAAD,CAAA,KAAAC,MAAA,CAAAG,SAAA,qBAAAJ,CAAA,KAAAD,OAAA,CAAAC,CAAA;AAAA,SAAAK,gCAAAC,CAAA,EAAAT,CAAA,QAAAU,CAAA,yBAAAN,MAAA,IAAAK,CAAA,CAAAL,MAAA,CAAAC,QAAA,KAAAI,CAAA,oBAAAC,CAAA,UAAAA,CAAA,GAAAA,CAAA,CAAAC,IAAA,CAAAF,CAAA,GAAAG,IAAA,CAAAC,IAAA,CAAAH,CAAA,OAAAI,KAAA,CAAAC,OAAA,CAAAN,CAAA,MAAAC,CAAA,GAAAM,2BAAA,CAAAP,CAAA,MAAAT,CAAA,IAAAS,CAAA,uBAAAA,CAAA,CAAAQ,MAAA,IAAAP,CAAA,KAAAD,CAAA,GAAAC,CAAA,OAAAP,CAAA,kCAAAA,CAAA,IAAAM,CAAA,CAAAQ,MAAA,KAAAC,IAAA,WAAAA,IAAA,MAAAC,KAAA,EAAAV,CAAA,CAAAN,CAAA,sBAAAiB,SAAA;AAAA,SAAAC,eAAAZ,CAAA,EAAAT,CAAA,WAAAsB,eAAA,CAAAb,CAAA,KAAAc,qBAAA,CAAAd,CAAA,EAAAT,CAAA,KAAAgB,2BAAA,CAAAP,CAAA,EAAAT,CAAA,KAAAwB,gBAAA;AAAA,SAAAA,iBAAA,cAAAJ,SAAA;AAAA,SAAAJ,4BAAAP,CAAA,EAAAgB,CAAA,QAAAhB,CAAA,2BAAAA,CAAA,SAAAiB,iBAAA,CAAAjB,CAAA,EAAAgB,CAAA,OAAAf,CAAA,MAAAiB,QAAA,CAAAhB,IAAA,CAAAF,CAAA,EAAAmB,KAAA,6BAAAlB,CAAA,IAAAD,CAAA,CAAAH,WAAA,KAAAI,CAAA,GAAAD,CAAA,CAAAH,WAAA,CAAAuB,IAAA,aAAAnB,CAAA,cAAAA,CAAA,GAAAI,KAAA,CAAAgB,IAAA,CAAArB,CAAA,oBAAAC,CAAA,+CAAAqB,IAAA,CAAArB,CAAA,IAAAgB,iBAAA,CAAAjB,CAAA,EAAAgB,CAAA;AAAA,SAAAC,kBAAAjB,CAAA,EAAAgB,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAhB,CAAA,CAAAQ,MAAA,MAAAQ,CAAA,GAAAhB,CAAA,CAAAQ,MAAA,YAAAjB,CAAA,MAAAgC,CAAA,GAAAlB,KAAA,CAAAW,CAAA,GAAAzB,CAAA,GAAAyB,CAAA,EAAAzB,CAAA,MAAAgC,CAAA,CAAAhC,CAAA,IAAAS,CAAA,CAAAT,CAAA,YAAAgC,CAAA;AAAA,SAAAT,sBAAAd,CAAA,EAAAwB,CAAA,QAAAvB,CAAA,WAAAD,CAAA,gCAAAL,MAAA,IAAAK,CAAA,CAAAL,MAAA,CAAAC,QAAA,KAAAI,CAAA,4BAAAC,CAAA,QAAAV,CAAA,EAAAgC,CAAA,EAAAE,CAAA,EAAAC,CAAA,EAAAV,CAAA,OAAAW,CAAA,OAAAjC,CAAA,iBAAA+B,CAAA,IAAAxB,CAAA,GAAAA,CAAA,CAAAC,IAAA,CAAAF,CAAA,GAAAG,IAAA,QAAAqB,CAAA,QAAAI,MAAA,CAAA3B,CAAA,MAAAA,CAAA,UAAA0B,CAAA,uBAAAA,CAAA,IAAApC,CAAA,GAAAkC,CAAA,CAAAvB,IAAA,CAAAD,CAAA,GAAAQ,IAAA,MAAAO,CAAA,CAAAa,IAAA,CAAAtC,CAAA,CAAAmB,KAAA,GAAAM,CAAA,CAAAR,MAAA,KAAAgB,CAAA,GAAAG,CAAA,sBAAA3B,CAAA,IAAAN,CAAA,OAAA6B,CAAA,GAAAvB,CAAA,yBAAA2B,CAAA,YAAA1B,CAAA,eAAAyB,CAAA,GAAAzB,CAAA,cAAA2B,MAAA,CAAAF,CAAA,MAAAA,CAAA,2BAAAhC,CAAA,QAAA6B,CAAA,aAAAP,CAAA;AAAA,SAAAH,gBAAAb,CAAA,QAAAK,KAAA,CAAAC,OAAA,CAAAN,CAAA,UAAAA,CAAA;AAAA,SAAA8B,gBAAAd,CAAA,EAAAO,CAAA,UAAAP,CAAA,YAAAO,CAAA,aAAAZ,SAAA;AAAA,SAAAoB,kBAAAxC,CAAA,EAAAS,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAD,CAAA,CAAAQ,MAAA,EAAAP,CAAA,UAAAP,CAAA,GAAAM,CAAA,CAAAC,CAAA,GAAAP,CAAA,CAAAsC,UAAA,GAAAtC,CAAA,CAAAsC,UAAA,QAAAtC,CAAA,CAAAuC,YAAA,kBAAAvC,CAAA,KAAAA,CAAA,CAAAwC,QAAA,QAAAN,MAAA,CAAAO,cAAA,CAAA5C,CAAA,EAAA6C,cAAA,CAAA1C,CAAA,CAAA2C,GAAA,GAAA3C,CAAA;AAAA,SAAA4C,aAAA/C,CAAA,EAAAS,CAAA,EAAAC,CAAA,WAAAD,CAAA,IAAA+B,iBAAA,CAAAxC,CAAA,CAAAO,SAAA,EAAAE,CAAA,GAAAC,CAAA,IAAA8B,iBAAA,CAAAxC,CAAA,EAAAU,CAAA,GAAA2B,MAAA,CAAAO,cAAA,CAAA5C,CAAA,iBAAA2C,QAAA,SAAA3C,CAAA;AAAA,SAAA6C,eAAAnC,CAAA,QAAAwB,CAAA,GAAAc,YAAA,CAAAtC,CAAA,gCAAAR,OAAA,CAAAgC,CAAA,IAAAA,CAAA,GAAAA,CAAA;AAAA,SAAAc,aAAAtC,CAAA,EAAAD,CAAA,oBAAAP,OAAA,CAAAQ,CAAA,MAAAA,CAAA,SAAAA,CAAA,MAAAV,CAAA,GAAAU,CAAA,CAAAN,MAAA,CAAA6C,WAAA,kBAAAjD,CAAA,QAAAkC,CAAA,GAAAlC,CAAA,CAAAW,IAAA,CAAAD,CAAA,EAAAD,CAAA,gCAAAP,OAAA,CAAAgC,CAAA,UAAAA,CAAA,YAAAd,SAAA,yEAAAX,CAAA,GAAAyC,MAAA,GAAAC,MAAA,EAAAzC,CAAA;AAAA,IAExB0C,OAAO,GAAAC,OAAA;EAC3B;AACD;AACA;AACA;EACC,SAAAD,QAAA,EAA6C;IAAA,IAAjCE,OAAO,GAAAC,SAAA,CAAAtC,MAAA,QAAAsC,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,EAAE;IAAA,IAAAE,IAAA,GAAAF,SAAA,CAAAtC,MAAA,QAAAsC,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAiB,CAAC,CAAC;MAAfG,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IAAAnB,eAAA,OAAAa,OAAA;IACnC;IACA,IAAI,OAAOE,OAAO,KAAK,QAAQ,EAAE;MAChCA,OAAO,GAAG,CAACA,OAAO,CAAC;IACpB;;IAEA;IACA;IACA;IACA,IAAI,CAACK,MAAM,GAAG,IAAAC,kBAAY,EACzBN,OAAO,CAACO,MAAM,CAACT,OAAO,CAACU,gBAAgB,CAAC,CAAC,CAAC,EAC1CC,8BACD,CAAC;IAED,IAAI,OAAOC,IAAI,KAAK,WAAW,EAAE;MAChC;MACA,IAAIA,IAAI,CAACC,YAAY,EAAE;QACtB,IAAI,CAACC,YAAY,GAAG,IAAIF,IAAI,CAACC,YAAY,CAAC,IAAI,CAACN,MAAM,CAAC;MACvD;IACD;;IAEA;IACA;IACA;IACA;IACA,IAAID,QAAQ,KAAK,KAAK,EAAE;MACvB,IAAI,CAACS,sBAAsB,GAAGH,IAAI,CAACI,kBAAkB;MACrD,IAAI,CAACC,eAAe,GAAGL,IAAI,CAACM,WAAW;IACxC,CAAC,MAAM;MACN,IAAI,CAACH,sBAAsB,GAAGI,8BAA0B;MACxD,IAAI,CAACF,eAAe,GAAGE,8BAA0B,CAACD,WAAW;IAC9D;;IAEA;IACA,IAAI,CAACE,uBAAuB,GAAG,IAAIC,iBAAK,CAAC,CAAC;;IAE1C;IACA,IAAI,CAACC,gBAAgB,GAAG,IAAID,iBAAK,CAAC,CAAC;EACpC;;EAEA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAxBC1B,YAAA,CAAAK,OAAA;IAAAN,GAAA;IAAA3B,KAAA,EAyBA,SAAAwD,OAAOC,KAAK,EAAEC,KAAK,EAAEC,OAAO,EAAE;MAAA,IAAAC,KAAA;MAC7B,IAAI,CAACD,OAAO,EAAE;QACb,IAAID,KAAK,IAAI,CAACG,OAAO,CAACH,KAAK,CAAC,EAAE;UAC7BC,OAAO,GAAGD,KAAK;UACfA,KAAK,GAAGrB,SAAS;QAClB,CAAC,MAAM;UACNsB,OAAO,GAAG,CAAC,CAAC;QACb;MACD;MAEA,IAAI,CAACD,KAAK,EAAE;QACXA,KAAK,GAAGI,uBAAY;MACrB;MAEA,IAAI,OAAOJ,KAAK,KAAK,QAAQ,EAAE;QAC9BA,KAAK,GAAG,IAAAK,0BAAc,EAACL,KAAK,CAAC;MAC9B;MAEA,IAAMM,SAAS,GAAGC,YAAY,CAACR,KAAK,CAAC;;MAErC;MACA;MACA,IAAAS,eAAA,GAA+B,IAAI,CAACC,SAAS,CAACT,KAAK,CAACU,OAAO,IAAIV,KAAK,CAACW,MAAM,CAAC;QAApEA,MAAM,GAAAH,eAAA,CAANG,MAAM;QAAEC,UAAU,GAAAJ,eAAA,CAAVI,UAAU;;MAE1B;MACA;MACA,IAAMC,KAAK,GAAGZ,OAAO,CAACY,KAAK,IAAIb,KAAK,CAACa,KAAK;;MAE1C;MACA,IAAIC,GAAG;MACP,IAAMC,iBAAiB,GAAGC,IAAI,CAACF,GAAG,CAAC,CAAC;MACpC;MACA;MACA,IAAId,KAAK,CAACc,GAAG,KAAKnC,SAAS,EAAE;QAC5BmC,GAAG,GAAGd,KAAK,CAACc,GAAG;MAChB;MACA;MACA,IAAIA,GAAG,KAAKnC,SAAS,IAAIsB,OAAO,CAACa,GAAG,KAAKnC,SAAS,EAAE;QACnDmC,GAAG,GAAGb,OAAO,CAACa,GAAG;MAClB;MACA;MACA,IAAIA,GAAG,KAAKnC,SAAS,EAAE;QACtBmC,GAAG,GAAGC,iBAAiB;MACxB;MAEA,IAAME,yCAAyC,GAAG,SAA5CA,yCAAyCA,CAAAC,KAAA,EAAgB;QAAA,IAAVJ,GAAG,GAAAI,KAAA,CAAHJ,GAAG;QACvD;QACA,IAAMK,aAAa,GAAG,CAACL,GAAG,GAAGR,SAAS,IAAI,IAAI,EAAC;;QAE/C,IAAMc,MAAM,GAAGnB,OAAO,CAACmB,MAAM,IAAID,aAAa,GAAG,CAAC;QAElD,IAAME,QAAQ,GAAGC,WAAW,CAC3BX,MAAM,EACN,IAAAzB,8BAAa,EAACgB,KAAI,CAACpB,MAAM,CAAC,CAACgC,GAAG,EAC9B,IAAA5B,8BAAa,EAACgB,KAAI,CAACpB,MAAM,CAAC,QAAK,EAC/BsC,MACD,CAAC;;QAED;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,IAAIpB,KAAK,CAACuB,MAAM,EAAE;UACjB,IAAMC,IAAI,GAAGxB,KAAK,CAACuB,MAAM,CAAC;YACzBT,GAAG,EAAHA,GAAG;YACHW,IAAI,EAAE,IAAIT,IAAI,CAACV,SAAS,CAAC;YACzBoB,IAAI,EAAEpB,SAAS;YACfqB,OAAO,EAAER,aAAa;YACtBrC,MAAM,EAAEoB,KAAI,CAACpB;UACd,CAAC,CAAC;UACF,IAAI0C,IAAI,KAAK7C,SAAS,EAAE;YACvB;YACA;YACA,OAAO;cACNiD,OAAO,EAAE,SAAAA,QAAA;gBAAA,OAAMJ,IAAI;cAAA;cACnBK,mBAAmB,EAAE,SAAAA,oBAAA,EAAM;gBAC1B,MAAM,IAAIC,KAAK,CAAC,uGAAuG,CAAC;cACzH;YACD,CAAC;UACF;QACD;;QAEA;QACA,IAAMC,KAAK,GAAGC,+BAA+B;QAC5C;QACA;QACAhC,KAAK,CAAC+B,KAAK,EACXpB,MAAM,EACNU,QACD,CAAC;;QAED;QACA;QACA,IAAAY,QAAA,GAAmC,IAAAC,oBAAO;UACzC;UACA;UACA;UACAlC,KAAK,CAACmC,SAAS,IAAInC,KAAK,CAACoC,KAAK,IAAIhC,uBAAY,CAACgC,KAAK,EACpDjB,aAAa,EACb;YAAEL,GAAG,EAAHA,GAAG;YAAEiB,KAAK,EAALA,KAAK;YAAElB,KAAK,EAALA,KAAK;YAAEO,MAAM,EAANA,MAAM;YAAEiB,WAAW,EAAE;UAAK,CAChD,CAAC;UAAAC,SAAA,GAAA9F,cAAA,CAAAyF,QAAA;UAPMM,QAAQ,GAAAD,SAAA;UAAEE,IAAI,GAAAF,SAAA;UAAEG,QAAQ,GAAAH,SAAA;QAS/B,IAAMV,OAAO,GAAG,SAAVA,OAAOA,CAAA,EAAS;UACrB,OAAO1B,KAAI,CAACwC,iBAAiB,CAACpC,SAAS,EAAEkC,IAAI,EAAErB,aAAa,EAAE;YAC7DR,MAAM,EAANA,MAAM;YACNC,UAAU,EAAVA,UAAU;YACVS,QAAQ,EAARA,QAAQ;YACRP,GAAG,EAAHA,GAAG;YACHM,MAAM,EAANA,MAAM;YACNP,KAAK,EAALA;UACD,CAAC,CAAC,IAAI,EAAE;QACT,CAAC;;QAED;QACA;QACA;QACA;QACA;QACA;QACA,IAAMgB,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAA,EAAS;UACjC,IAAMc,gBAAgB,GAAG,IAAAC,+BAAmB,EAACtC,SAAS,EAAEkC,IAAI,EAAE;YAC7DC,QAAQ,EAARA,QAAQ;YACRF,QAAQ,EAARA,QAAQ;YACRzB,GAAG,EAAHA,GAAG;YACHM,MAAM,EAANA,MAAM;YACNP,KAAK,EAALA;UACD,CAAC,CAAC;;UAEF;UACA;UACA;UACA,IAAI,OAAO8B,gBAAgB,KAAK,QAAQ,EAAE;YACzC;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA,IAAI1C,OAAO,CAAC4C,2BAA2B,EAAE;cACxC,OAAOF,gBAAgB;YACxB;YACA,OAAOG,mBAAmB,CAACH,gBAAgB,CAAC;UAC7C;QACD,CAAC;QAED,OAAO;UAAEf,OAAO,EAAPA,OAAO;UAAEC,mBAAmB,EAAnBA;QAAoB,CAAC;MACxC,CAAC;MAED,IAAAkB,qBAAA,GAAyC9B,yCAAyC,CAAC;UAAEH,GAAG,EAAHA;QAAI,CAAC,CAAC;QAAnFc,OAAO,GAAAmB,qBAAA,CAAPnB,OAAO;QAAEC,mBAAmB,GAAAkB,qBAAA,CAAnBlB,mBAAmB;MAEpC,IAAI5B,OAAO,CAAC2C,mBAAmB,EAAE;QAChC,OAAO,CAAChB,OAAO,CAAC,CAAC,EAAEC,mBAAmB,CAAC,CAAC,CAAC;MAC1C;MAEA,IAAI5B,OAAO,CAAC+C,OAAO,EAAE;QACpB;QACA;QACA;QACA;QACA;QACA;QACA;QACA,IAAMC,sBAAsB,GAAG,EAAE,GAAG,IAAI;;QAExC;QACA;QACA,IAAIC,YAAY;QAChB,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAuC;UAAA,IAAnCC,KAAK,GAAA1E,SAAA,CAAAtC,MAAA,QAAAsC,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAGuE,sBAAsB;UACtDC,YAAY,GAAGG,cAAc,CAAC,YAAM;YACnC,IAAAC,sBAAA,GAAyCrC,yCAAyC,CAAC;gBAClFH,GAAG,EAAEA,GAAG,IAAIE,IAAI,CAACF,GAAG,CAAC,CAAC,GAAGC,iBAAiB;cAC3C,CAAC,CAAC;cAFMa,OAAO,GAAA0B,sBAAA,CAAP1B,OAAO;cAAEC,mBAAmB,GAAAyB,sBAAA,CAAnBzB,mBAAmB;YAGpC5B,OAAO,CAAC+C,OAAO,CAACpB,OAAO,CAAC,CAAC,CAAC;YAC1BuB,eAAe,CAACtB,mBAAmB,CAAC,CAAC,CAAC;UACvC,CAAC,EAAEuB,KAAK,CAAC;QACV,CAAC;QAEDD,eAAe,CAACtB,mBAAmB,CAAC,CAAC,CAAC;QAEtC,IAAM0B,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAS;UAC5BC,YAAY,CAACN,YAAY,CAAC;QAC3B,CAAC;QAED,OAAO,CAACtB,OAAO,CAAC,CAAC,EAAE2B,cAAc,CAAC;MACnC;MAEA,OAAO3B,OAAO,CAAC,CAAC;IACjB;EAAC;IAAA3D,GAAA;IAAA3B,KAAA,EAED,SAAAoG,kBAAkBpC,SAAS,EAAEkC,IAAI,EAAErB,aAAa,EAAAsC,KAAA,EAO7C;MAAA,IAAAC,MAAA;MAAA,IANF/C,MAAM,GAAA8C,KAAA,CAAN9C,MAAM;QACNC,UAAU,GAAA6C,KAAA,CAAV7C,UAAU;QACVS,QAAQ,GAAAoC,KAAA,CAARpC,QAAQ;QACRP,GAAG,GAAA2C,KAAA,CAAH3C,GAAG;QACHM,MAAM,GAAAqC,KAAA,CAANrC,MAAM;QACNP,KAAK,GAAA4C,KAAA,CAAL5C,KAAK;MAEL;MACA,IAAI,CAAC2B,IAAI,EAAE;QACV;MACD;MAEA,IAAIA,IAAI,CAAC1C,MAAM,EAAE;QAChB,OAAO0C,IAAI,CAAC1C,MAAM,CAACQ,SAAS,EAAE,IAAI,CAACxB,MAAM,EAAE;UAC1C6E,QAAQ,EAAE,SAAAA,SAACC,IAAI,EAAEC,MAAM,EAAK;YAC3B;YACA,OAAOH,MAAI,CAACI,WAAW,CAACD,MAAM,EAAED,IAAI,EAAE;cACrCjD,MAAM,EAANA,MAAM;cACNS,MAAM,EAANA;YACD,CAAC,CAAC;UACH,CAAC;UACDN,GAAG,EAAHA,GAAG;UACHM,MAAM,EAANA;QACD,CAAC,CAAC;MACH;;MAEA;MACA,IAAMwC,IAAI,GAAGpB,IAAI,CAACoB,IAAI,IAAIpB,IAAI,CAACmB,QAAQ;MAEvC,IAAI,CAACC,IAAI,EAAE;QACV,MAAM,IAAI9B,KAAK,uFAAA9C,MAAA,CAA2F+E,IAAI,CAACC,SAAS,CAACxB,IAAI,CAAC,CAAE,CAAC;MAClI;;MAEA;MACA;MACA,IAAIoB,IAAI,KAAK,KAAK,EAAE;QACnB,OAAOvC,QAAQ;MAChB;;MAEA;MACA,IAAIwC,MAAM,GAAGI,IAAI,CAACC,GAAG,CAAC/C,aAAa,CAAC,GAAG,IAAAgD,8BAAkB,EAAC3B,IAAI,CAAC;;MAE/D;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,IAAIA,IAAI,CAAC4B,WAAW,EAAE;QACrB;QACAP,MAAM,GAAG,IAAAQ,uBAAgB,EAACxD,KAAK,CAAC,CAACgD,MAAM,GAAGrB,IAAI,CAAC4B,WAAW,CAAC,GAAG5B,IAAI,CAAC4B,WAAW;MAC/E;MAEA,IAAIE,kBAAkB,GAAG,CAAC,CAAC,GAAGL,IAAI,CAACM,IAAI,CAACpD,aAAa,CAAC,GAAG,IAAAkD,uBAAgB,EAACxD,KAAK,CAAC,CAACgD,MAAM,CAAC;;MAExF;MACA;MACA;MACA;MACA;MACA;MACA,IAAIS,kBAAkB,KAAK,CAAC,EAAE;QAC7B,IAAIlD,MAAM,EAAE;UACXkD,kBAAkB,GAAG,CAAC;QACvB,CAAC,MAAM;UACNA,kBAAkB,GAAG,CAAC,CAAC;QACxB;MACD;MAEA,QAAQ1D,UAAU;QACjB,KAAK,MAAM;QACX,KAAK,OAAO;QACZ,KAAK,QAAQ;UACZ;UACA,OAAO,IAAI,CAAC4D,YAAY,CAAC5D,UAAU,CAAC,CAACd,MAAM,CAACwE,kBAAkB,EAAEV,IAAI,CAAC;QACtE;UACC;UACA;UACA,OAAO,IAAI,CAACE,WAAW,CAACQ,kBAAkB,EAAEV,IAAI,EAAE;YACjDjD,MAAM,EAANA,MAAM;YACNS,MAAM,EAANA;UACD,CAAC,CAAC;MACJ;IACD;;IAEA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;EAPC;IAAAnD,GAAA;IAAA3B,KAAA,EAQA,SAAAwH,YAAYxH,KAAK,EAAEsH,IAAI,EAAAa,KAAA,EAAsB;MAAA,IAAlB9D,MAAM,GAAA8D,KAAA,CAAN9D,MAAM;QAAES,MAAM,GAAAqD,KAAA,CAANrD,MAAM;MACxC,OAAO,IAAI,CAACsD,iBAAiB,CAAC/D,MAAM,EAAEiD,IAAI,EAAEtH,KAAK,EAAE;QAAE8E,MAAM,EAANA;MAAO,CAAC,CAAC,CAC5DuD,OAAO,CAAC,KAAK,EAAE,IAAI,CAACC,YAAY,CAACX,IAAI,CAACC,GAAG,CAAC5H,KAAK,CAAC,CAAC,CAAC;IACrD;;IAEA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EAVC;IAAA2B,GAAA;IAAA3B,KAAA,EAWA,SAAAoI,kBAAkBG,eAAe,EAAEjB,IAAI,EAAEtH,KAAK,EAAAwI,KAAA,EAAc;MAAA,IAAV1D,MAAM,GAAA0D,KAAA,CAAN1D,MAAM;MACvD;MACA;MACA,IAAMtC,MAAM,GAAG,IAAI,CAACA,MAAM;MAC1B+F,eAAe,GAAGA,eAAe,CAACjB,IAAI,CAAC;MACvC;MACA;MACA;MACA;MACA,IAAI,OAAOiB,eAAe,KAAK,QAAQ,EAAE;QACxC,OAAOA,eAAe;MACvB;MACA;MACA;MACA;MACA,IAAME,YAAY,GAAGzI,KAAK,KAAK,CAAC,GAAI8E,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAK9E,KAAK,GAAG,CAAC,GAAG,MAAM,GAAG,QAAS;MACjG,IAAM0I,eAAe,GAAGH,eAAe,CAACE,YAAY,CAAC,IAAIF,eAAe;MACxE;MACA,IAAI,OAAOG,eAAe,KAAK,QAAQ,EAAE;QACxC,OAAOA,eAAe;MACvB;MACA;MACA,IAAMC,UAAU,GAAG,IAAI,CAACC,cAAc,CAAC,CAAC,CAACC,MAAM,CAAClB,IAAI,CAACC,GAAG,CAAC5H,KAAK,CAAC,CAAC;MAChE;MACA;MACA,OAAO0I,eAAe,CAACC,UAAU,CAAC,IAAID,eAAe,CAACI,KAAK;IAC5D;;IAEA;AACD;AACA;AACA;AACA;AACA;EALC;IAAAnH,GAAA;IAAA3B,KAAA,EAMA,SAAAsI,aAAaS,MAAM,EAAE;MACpB,OAAO,IAAI,CAAChG,YAAY,GAAG,IAAI,CAACA,YAAY,CAACS,MAAM,CAACuF,MAAM,CAAC,GAAGhH,MAAM,CAACgH,MAAM,CAAC;IAC7E;;IAEA;AACD;AACA;AACA;AACA;EAJC;IAAApH,GAAA;IAAA3B,KAAA,EAKA,SAAAkI,aAAa5D,UAAU,EAAE;MACxB;MACA;MACA,OAAO,IAAI,CAACjB,uBAAuB,CAAC2F,GAAG,CAAC,IAAI,CAACxG,MAAM,EAAE8B,UAAU,CAAC,IAC/D,IAAI,CAACjB,uBAAuB,CAAC4F,GAAG,CAAC,IAAI,CAACzG,MAAM,EAAE8B,UAAU,EAAE,IAAI,IAAI,CAACtB,sBAAsB,CAAC,IAAI,CAACR,MAAM,EAAE;QAAEkB,KAAK,EAAEY;MAAW,CAAC,CAAC,CAAC;IAChI;;IAEA;AACD;AACA;AACA;EAHC;IAAA3C,GAAA;IAAA3B,KAAA,EAIA,SAAA4I,eAAA,EAAiB;MAChB;MACA;MACA,OAAO,IAAI,CAACrF,gBAAgB,CAACyF,GAAG,CAAC,IAAI,CAACxG,MAAM,CAAC,IAC5C,IAAI,CAACe,gBAAgB,CAAC0F,GAAG,CAAC,IAAI,CAACzG,MAAM,EAAE,IAAI,IAAI,CAACU,eAAe,CAAC,IAAI,CAACV,MAAM,CAAC,CAAC;IAC/E;;IAGA;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EARC;IAAAb,GAAA;IAAA3B,KAAA,EASA,SAAAmE,UAAA,EAA2B;MAAA,IAAjBG,UAAU,GAAAlC,SAAA,CAAAtC,MAAA,QAAAsC,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,EAAE;MACxB;MACA,IAAI,OAAOkC,UAAU,KAAK,QAAQ,EAAE;QACnCA,UAAU,GAAG,CAACA,UAAU,CAAC;MAC1B;;MAEA;MACAA,UAAU,GAAGA,UAAU,CAAC4E,GAAG,CAAC,UAAC5E,UAAU,EAAK;QAC3C,QAAQA,UAAU;UACjB,KAAK,MAAM;UACX,KAAK,WAAW;YACf,OAAO,MAAM;UACd;YACC,OAAOA,UAAU;QACnB;MACD,CAAC,CAAC;;MAEF;MACA;MACAA,UAAU,GAAGA,UAAU,CAAC5B,MAAM,CAAC,MAAM,CAAC;;MAEtC;MACA,IAAMyG,UAAU,GAAG,IAAAvG,8BAAa,EAAC,IAAI,CAACJ,MAAM,CAAC;MAC7C,SAAA4G,SAAA,GAAA/J,+BAAA,CAA0BiF,UAAU,GAAA+E,KAAA,IAAAA,KAAA,GAAAD,SAAA,IAAArJ,IAAA,GAAE;QAAA,IAA3BuJ,WAAW,GAAAD,KAAA,CAAArJ,KAAA;QACrB,IAAImJ,UAAU,CAACG,WAAW,CAAC,EAAE;UAC5B,OAAO;YACNhF,UAAU,EAAEgF,WAAW;YACvBjF,MAAM,EAAE8E,UAAU,CAACG,WAAW;UAC/B,CAAC;QACF;MACD;IACD;EAAC;EAAA,OAAArH,OAAA;AAAA;AAGF;AACA;AACA;AACA,IAAIsH,aAAa,GAAG,IAAI;;AAExB;AACA;AACA;AACA;AACAtH,OAAO,CAACU,gBAAgB,GAAG;EAAA,OAAM4G,aAAa;AAAA;;AAE9C;AACA;AACA;AACA;AACAtH,OAAO,CAACuH,gBAAgB,GAAG,UAAChH,MAAM,EAAK;EACtCiH,6BAA6B,GAAG,IAAI;EACpCF,aAAa,GAAG/G,MAAM;AACvB,CAAC;;AAED;AACA;AACA;AACA;AACAP,OAAO,CAACyH,gBAAgB,GAAG,UAASP,UAAU,EAAE;EAC/C;EACA,IAAIM,6BAA6B,EAAE;IAClC,IAAIxH,OAAO,CAACU,gBAAgB,CAAC,CAAC,KAAKwG,UAAU,CAAC3G,MAAM,EAAE;MACrDmH,OAAO,CAACC,IAAI,0CAAAlH,MAAA,CAAyCyG,UAAU,CAAC3G,MAAM,4DAAAE,MAAA,CAAuDT,OAAO,CAACU,gBAAgB,CAAC,CAAC,kCAAAD,MAAA,CAA6ByG,UAAU,CAAC3G,MAAM,kCAA8B,CAAC;IACrO;EACD;EACAiH,6BAA6B,GAAG,IAAI;;EAEpC;EACAxH,OAAO,CAAC4H,SAAS,CAACV,UAAU,CAAC;EAC7BlH,OAAO,CAACuH,gBAAgB,CAACL,UAAU,CAAC3G,MAAM,CAAC;AAC5C,CAAC;AAED,IAAIiH,6BAA6B,GAAG,KAAK;;AAEzC;AACA;AACA;AACA;AACAxH,OAAO,CAAC4H,SAAS,GAAG,UAASV,UAAU,EAAE;EACxC,IAAAW,8BAAa,EAACX,UAAU,CAAC;EACzB/F,8BAA0B,CAACyG,SAAS,CAACV,UAAU,CAAC;AACjD,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACAlH,OAAO,CAACO,MAAM,GAAGP,OAAO,CAAC4H,SAAS;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA5H,OAAO,CAAC8H,SAAS,GAAG,UAACvH,MAAM,EAAE9B,IAAI,EAAE2D,MAAM,EAAK;EAC7C,IAAI8E,UAAU,GAAG,IAAAvG,8BAAa,EAACJ,MAAM,CAAC;EACtC,IAAI,CAAC2G,UAAU,EAAE;IAChB,IAAAW,8BAAa,EAAC;MACbtH,MAAM,EAANA;IACD,CAAC,CAAC;IACF2G,UAAU,GAAG,IAAAvG,8BAAa,EAACJ,MAAM,CAAC;IAClC;EACD;EACA2G,UAAU,CAACzI,IAAI,CAAC,GAAG2D,MAAM;AAC1B,CAAC;;AAED;AACA,SAASJ,YAAYA,CAACR,KAAK,EAAE;EAC5B,IAAIA,KAAK,CAACtE,WAAW,KAAKuF,IAAI,IAAIsF,YAAY,CAACvG,KAAK,CAAC,EAAE;IACtD,OAAOA,KAAK,CAACwG,OAAO,CAAC,CAAC;EACvB;EAEA,IAAI,OAAOxG,KAAK,KAAK,QAAQ,EAAE;IAC9B,OAAOA,KAAK;EACb;;EAEA;EACA;EACA,MAAM,IAAI+B,KAAK,+CAAA9C,MAAA,CAAA3D,OAAA,CAAsD0E,KAAK,SAAAf,MAAA,CAAKe,KAAK,CAAE,CAAC;AACxF;;AAEA;AACA;AACA,SAASuG,YAAYA,CAACE,MAAM,EAAE;EAC7B,OAAOnL,OAAA,CAAOmL,MAAM,MAAK,QAAQ,IAAI,OAAOA,MAAM,CAACD,OAAO,KAAK,UAAU;AAC1E;;AAEA;AACA,SAASvE,+BAA+BA,CAACyE,YAAY,EAAE9F,MAAM,EAAEU,QAAQ,EAAE;EACxE;EACA;EACA,IAAIU,KAAK,GAAGvE,MAAM,CAACkJ,IAAI,CAAC/F,MAAM,CAAC;;EAE/B;EACA;EACA;EACA;EACA,IAAIU,QAAQ,EAAE;IACbU,KAAK,CAACtE,IAAI,CAAC,KAAK,CAAC;EAClB;;EAEA;EACA;EACA,IAAIgJ,YAAY,EAAE;IACjB1E,KAAK,GAAG0E,YAAY,CAACE,MAAM,CAAC,UAAA/C,IAAI;MAAA,OAAIA,IAAI,KAAK,KAAK,IAAI7B,KAAK,CAAC6E,OAAO,CAAChD,IAAI,CAAC,IAAI,CAAC;IAAA,EAAC;EAChF;EAEA,OAAO7B,KAAK;AACb;AAEA,SAAST,WAAWA,CAACX,MAAM,EAAEkG,SAAS,EAAEC,UAAU,EAAE1F,MAAM,EAAE;EAC3D,IAAMC,QAAQ,GAAGV,MAAM,CAACG,GAAG,IAAK+F,SAAS,IAAIA,SAAS,CAAC/F,GAAI;EAC3D;EACA,IAAIO,QAAQ,EAAE;IACb;IACA,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE;MACjC,OAAOA,QAAQ;IAChB;IACA;IACA;IACA;IACA;IACA;IACA,IAAID,MAAM,EAAE;MACX,OAAOC,QAAQ,CAACD,MAAM;IACvB,CAAC,MAAM;MACN,OAAOC,QAAQ,CAAC0F,IAAI;IACrB;EACD;EACA;EACA,IAAID,UAAU,IAAIA,UAAU,CAACE,MAAM,IAAIF,UAAU,CAACE,MAAM,CAACC,OAAO,EAAE;IACjE,OAAOH,UAAU,CAACE,MAAM,CAACC,OAAO;EACjC;AACD;AAEA,SAAS9G,OAAOA,CAAC+G,QAAQ,EAAE;EAC1B,OAAO,OAAOA,QAAQ,KAAK,QAAQ,IAAI,IAAAC,yBAAa,EAACD,QAAQ,CAAC;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS7D,cAAcA,CAAC+D,IAAI,EAAEhE,KAAK,EAAE;EACnC,OAAOiE,UAAU,CAACD,IAAI,EAAEtE,mBAAmB,CAACM,KAAK,CAAC,CAAC;AACrD;AACA,SAASN,mBAAmBA,CAACM,KAAK,EAAE;EAClC,OAAOa,IAAI,CAACqD,GAAG,CAAClE,KAAK,EAAEmE,0BAA0B,CAAC;AACpD;AACA,IAAMA,0BAA0B,GAAG,UAAU","ignoreList":[]}
|
package/commonjs/TimeAgo.test.js
CHANGED
|
@@ -361,6 +361,18 @@ _TimeAgo["default"].setDefaultLocale('en');
|
|
|
361
361
|
var _timeAgo$format = timeAgo.format(1000, 'twitter', {
|
|
362
362
|
refresh: function refresh(text) {
|
|
363
363
|
if (refreshedTimes === 0) {
|
|
364
|
+
// This test sometimes throws an error for an unknown weird reason:
|
|
365
|
+
//
|
|
366
|
+
// "AssertionError: expected '1s' to equal '0s'".
|
|
367
|
+
//
|
|
368
|
+
// "Error: done() called multiple times in test <javascript-time-ago
|
|
369
|
+
// should refresh the label when `refresh` parameter is passed> of file
|
|
370
|
+
// c:\dev\javascript-time-ago\source\TimeAgo.test.js; in addition,
|
|
371
|
+
// done() received error: AssertionError: expected +0 to equal 1"
|
|
372
|
+
//
|
|
373
|
+
// In case it does that, just re-run the tests and somehow the error is gone.
|
|
374
|
+
// I didn't bother debugging the error because it's not clear how it's reproduced.
|
|
375
|
+
//
|
|
364
376
|
(0, _chai.expect)(text).to.equal('0s');
|
|
365
377
|
} else {
|
|
366
378
|
throw new Error('Refresh should have been cancelled');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeAgo.test.js","names":["_mocha","require","_chai","_TimeAgo","_interopRequireDefault","_en","e","__esModule","_slicedToArray","r","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","t","toString","call","slice","constructor","name","Array","from","test","length","n","l","Symbol","iterator","i","u","f","o","next","Object","done","push","value","isArray","TimeAgo","setDefaultLocale","describe","it","timeAgo","expect","format","Date","now","to","equal","future","labels","steps","formatAs","flavour","gradation","englishNow","english","addLocale","undefined","NumberFormat","Intl","englishLongTimeMinute","minute","past","mockedDate","getTime","thrower","units","custom","_ref","time","date","locale","_ref2","_ref3","getTimeToNextUpdate","style2","style","unit","factor","include","secondLabels","second","refreshedTimes","_timeAgo$format","refresh","text","Error","round","_timeAgo$format2","cancelRefresh","be","timeToNextUpdate","delay","then","deep","getTimeToNextUpdateUncapped","minTime","_ref4","polyfill","global","getDefaultLocale","addDefaultLocale","delayTime","Promise","resolve","setTimeout"],"sources":["../source/TimeAgo.test.js"],"sourcesContent":["import { describe, it } from 'mocha'\r\nimport { expect } from 'chai'\r\n\r\nimport TimeAgo from './TimeAgo.js'\r\n\r\n// Load locale specific relative date/time messages\r\nimport english from '../locale/en.json' with { type: '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\texpect(timeAgo.format(Date.now())).to.equal('just now')\r\n\t\texpect(timeAgo.format(Date.now() + 20 * 1000)).to.equal('in a moment')\r\n\t\texpect(timeAgo.format(Date.now() + 1 * 60 * 1000)).to.equal('in 1 minute')\r\n\t\texpect(timeAgo.format(Date.now() + 4 * 60 * 1000)).to.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\texpect(timeAgo.format(Date.now(), 'mini-now')).to.equal('now')\r\n\t\texpect(timeAgo.format(0, { future: true, now: 0 })).to.equal('in a moment')\r\n\t\texpect(timeAgo.format(0, { labels: 'mini', steps: [{ formatAs: 'now' }, { formatAs: 'second' }] }, { future: true, now: 0 })).to.equal('now')\r\n\t\texpect(timeAgo.format(0, { labels: ['mini'], steps: [{ formatAs: 'now' }, { formatAs: 'second' }] }, { future: true, now: 0 })).to.equal('now')\r\n\t\t// `flavour` is a legacy name of `labels` property.\r\n\t\texpect(timeAgo.format(0, { flavour: 'mini' }, { future: true, now: 0 })).to.equal('now')\r\n\t\texpect(timeAgo.format(0, { flavour: ['mini'] }, { future: true, now: 0 })).to.equal('now')\r\n\t\texpect(timeAgo.format(0, { steps: [{ formatAs: 'minute' }] }, { future: true, now: 0 })).to.equal('in 0 minutes')\r\n\t\t// `gradation` is a legacy name of `steps` property.\r\n\t\texpect(timeAgo.format(0, { gradation: [{ formatAs: 'minute' }] }, { future: true, now: 0 })).to.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\texpect(timeAgo.format(Date.now(), { labels: ['exotic', 'short'] })).to.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\texpect(timeAgo.format(Date.now(), { labels: ['exotic', 'short'] })).to.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\texpect(timeAgo.format(Date.now(), { labels: 'long' })).to.equal('now')\r\n\t\tenglish.now = englishNow\r\n\t\texpect(timeAgo.format(Date.now(), { labels: 'long' })).to.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\texpect(timeAgo.format(Date.now() + 60 * 1000, { labels: 'long-time' })).to.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\texpect(timeAgo.format(Date.now() + 365 * 24 * 60 * 60 * 1000, { labels: 'short' })).to.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\texpect(timeAgo.format(Date.now(), { labels: 'long' })).to.equal('now')\r\n\t\tenglish.now = englishNow\r\n\t\texpect(timeAgo.format(Date.now(), { labels: 'long' })).to.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\texpect(timeAgo.format(Date.now() - 60 * 1000, { labels: 'long-time' })).to.equal('1 minute(s) ago')\r\n\t\t// Future (covers an \"else\" branch).\r\n\t\texpect(timeAgo.format(Date.now() + 60 * 1000, { labels: 'long-time' })).to.equal('in 1 minute(s)')\r\n\t\t// Undo.\r\n\t\tenglish['long-time'].minute = englishLongTimeMinute\r\n\t\texpect(timeAgo.format(Date.now() - 60 * 1000, { labels: 'long-time' })).to.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\texpect(timeAgo.format(Date.now() + 10, { labels: ['long'] })).to.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\texpect(timeAgo.format(Date.now() - 0 * 1000, 'mini')).to.equal('0s')\r\n\t\texpect(timeAgo.format(Date.now() - 1 * 1000, 'mini')).to.equal('1s')\r\n\t\t// \"mini-now\".\r\n\t\texpect(timeAgo.format(Date.now() - 0 * 1000, 'mini-now')).to.equal('now')\r\n\t\texpect(timeAgo.format(Date.now() - 1 * 1000, 'mini-now')).to.equal('1s')\r\n\t\t// \"mini-minute-now\".\r\n\t\texpect(timeAgo.format(Date.now() - 29 * 1000, 'mini-minute-now')).to.equal('now')\r\n\t\texpect(timeAgo.format(Date.now() - 60 * 1000, 'mini-minute-now')).to.equal('1m')\r\n\t\t// \"mini-minute\".\r\n\t\texpect(timeAgo.format(Date.now() - 29 * 1000, 'mini-minute')).to.equal('0m')\r\n\t\texpect(timeAgo.format(Date.now() - 60 * 1000, 'mini-minute')).to.equal('1m')\r\n\t\t// \"twitter\".\r\n\t\texpect(timeAgo.format(Date.now() - 0 * 1000, 'twitter')).to.equal('0s')\r\n\t\texpect(timeAgo.format(Date.now() - 1 * 1000, 'twitter')).to.equal('1s')\r\n\t\t// \"twitter-now\".\r\n\t\texpect(timeAgo.format(Date.now() - 0 * 1000, 'twitter-now')).to.equal('now')\r\n\t\texpect(timeAgo.format(Date.now() - 1 * 1000, 'twitter-now')).to.equal('1s')\r\n\t\t// \"twitter-minute-now\".\r\n\t\texpect(timeAgo.format(Date.now() - 29 * 1000, 'twitter-minute-now')).to.equal('now')\r\n\t\texpect(timeAgo.format(Date.now() - 60 * 1000, 'twitter-minute-now')).to.equal('1m')\r\n\t\t// \"twitter-minute\".\r\n\t\texpect(timeAgo.format(Date.now() - 29 * 1000, 'twitter-minute')).to.equal('0m')\r\n\t\texpect(timeAgo.format(Date.now() - 60 * 1000, 'twitter-minute')).to.equal('1m')\r\n\t\t// \"twitter-first-minute\".\r\n\t\texpect(timeAgo.format(Date.now() - 29 * 1000, 'twitter-first-minute')).to.equal('')\r\n\t\texpect(timeAgo.format(Date.now() - 60 * 1000, 'twitter-first-minute')).to.equal('1m')\r\n\t\t// \"approximate\".\r\n\t\texpect(timeAgo.format(Date.now() - 45 * 1000, 'approximate')).to.equal('just now')\r\n\t\t// \"convenient\" style was renamed to \"approximate\".\r\n\t\texpect(timeAgo.format(Date.now() - 45 * 1000, 'convenient')).to.equal('just now')\r\n\t\texpect(timeAgo.format(Date.now() - 45 * 1000, 'round')).to.equal('45 seconds ago')\r\n\t\t// \"default\" style was renamed to \"round\".\r\n\t\texpect(timeAgo.format(Date.now() - 45 * 1000, 'default')).to.equal('45 seconds ago')\r\n\t\texpect(timeAgo.format(Date.now() - 29 * 1000, 'round-minute')).to.equal('just now')\r\n\t\t// \"time\" style was renamed to \"approximate-time\".\r\n\t\texpect(timeAgo.format(Date.now() - 2 * 60 * 1000, 'time')).to.equal('2 minutes')\r\n\t\texpect(timeAgo.format(Date.now() - 2 * 60 * 1000, 'approximate-time')).to.equal('2 minutes')\r\n\t\texpect(timeAgo.format(Date.now(), 'exotic')).to.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\texpect(timeAgo.format(new Date())).to.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\texpect(timeAgo.format(mockedDate)).to.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\texpect(thrower).to.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\texpect(timeAgo.format(Date.now(), { units: ['femtosecond'] })).to.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\texpect(timeAgo.format(Date.now(), {\r\n\t\t\t// `custom` returns a string\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).to.equal('en')\r\n\r\n\t\texpect(timeAgo.format(Date.now(), {\r\n\t\t\t// `custom` returns `undefined`\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).to.equal('just now')\r\n\t})\r\n\r\n\tit('should throw an error when formating for a style with \"custom\" function and `getTimeToNextUpdate: true` parameter is passed', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\r\n\t\texpect(() => {\r\n\t\t\ttimeAgo.format(Date.now(), {\r\n\t\t\t\t// `custom` returns a string.\r\n\t\t\t\tcustom({ now, time, date, locale }) {\r\n\t\t\t\t\treturn locale\r\n\t\t\t\t}\r\n\t\t\t}, {\r\n\t\t\t\tgetTimeToNextUpdate: true\r\n\t\t\t})\r\n\t\t}).to.throw('not supported')\r\n\t})\r\n\r\n\tit('should format future dates', () => {\r\n\t\texpect(new TimeAgo('en').format(Date.now() + 60 * 60 * 1000)).to.equal('in 1 hour')\r\n\t\texpect(new TimeAgo('ru').format(Date.now() + 60 * 1000)).to.equal('через 1 минуту')\r\n\t})\r\n\r\n\tit('should accept \"future\" option', () => {\r\n\t\t// \"now\" unit.\r\n\t\texpect(new TimeAgo('en').format(Date.now())).to.equal('just now')\r\n\t\texpect(new TimeAgo('en').format(Date.now(), 'approximate', { future: true })).to.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// expect(new TimeAgo('en').format(Date.now(), style)).to.equal('0 seconds ago')\r\n\t\t// expect(new TimeAgo('en').format(Date.now(), style, { future: true })).to.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\texpect(new TimeAgo('ru').format(Date.now() - 5 * 365 * 24 * 60 * 60 * 1000, style2)).to.equal('5 л')\r\n\t\texpect(new TimeAgo('ru').format(Date.now() - 5 * 365 * 24 * 60 * 60 * 1000, style2, { future: true })).to.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\texpect(new TimeAgo('ru').format(Date.now() - 10 * 1000, style)).to.equal('2 г')\r\n\t\texpect(new TimeAgo('ru').format(Date.now() - 10 * 1000, style, { future: true })).to.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\texpect(new TimeAgo('ccp').format(Date.now() + 60 * 1000)).to.include(' 𑄟𑄨𑄚𑄨𑄘𑄬')\r\n\t})\r\n\r\n\tit('should throw for non-existing locales', () => {\r\n\t\texpect(() => TimeAgo.addLocale()).to.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\texpect(new 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})).to.equal('0 seconds ago')\r\n\r\n\t\texpect(new 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})).to.equal('in 0 seconds')\r\n\r\n\t\tenglish['mini'].second = secondLabels\r\n\t})\r\n\r\n\tit('should refresh the label when `refresh` parameter is passed', () => {\r\n\t\tlet refreshedTimes = 0\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\tconst [text, cancelRefresh] = timeAgo.format(1000, 'twitter', {\r\n\t\t\trefresh: (text) => {\r\n\t\t\t\tif (refreshedTimes === 0) {\r\n\t\t\t\t\texpect(text).to.equal('0s')\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthrow new Error('Refresh should have been cancelled')\r\n\t\t\t\t}\r\n\t\t\t\trefreshedTimes++\r\n\t\t\t},\r\n\t\t\tnow: 0,\r\n\t\t\tround: 'floor'\r\n\t\t})\r\n\t\texpect(text).to.equal('1s')\r\n\t\texpect(cancelRefresh).to.be.a('function')\r\n\t\t// Sidenote: `timeToNextUpdate` is `1`.\r\n\t\tconst timeToNextUpdate = 1\r\n\t\treturn delay(timeToNextUpdate + 1).then(() => {\r\n\t\t\texpect(refreshedTimes).to.equal(1)\r\n\t\t\tcancelRefresh()\r\n\t\t})\r\n\t})\r\n\r\n\tit('should get time to next update (capped)', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\texpect(timeAgo.format(0.5 * 365 * 24 * 60 * 60 * 1000, 'twitter', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0,\r\n\t\t\tround: 'floor'\r\n\t\t})).to.deep.equal([\r\n\t\t\t'Jul 2',\r\n\t\t\t2147483647\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (capped)', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\texpect(timeAgo.format(0.5 * 365 * 24 * 60 * 60 * 1000, 'twitter', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tgetTimeToNextUpdateUncapped: true,\r\n\t\t\tnow: 0,\r\n\t\t\tround: 'floor'\r\n\t\t})).to.deep.equal([\r\n\t\t\t'Jul 2',\r\n\t\t\t15681600001\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (uncapped)', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\texpect(timeAgo.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})).to.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: \"floor\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\texpect(timeAgo.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})).to.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\texpect(timeAgo.format(1000, 'twitter', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0\r\n\t\t})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0\r\n\t\t})).to.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\texpect(timeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 500 + 1\r\n\t\t})).to.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\texpect(timeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59.5 * 1000\r\n\t\t})).to.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\texpect(timeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59.5 * 1000 + 1\r\n\t\t})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000\r\n\t\t})).to.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\texpect(timeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1\r\n\t\t})).to.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\texpect(timeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 500\r\n\t\t})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.format(0, 'round', { now: 0 })).to.equal('just now')\r\n\t\texpect(timeAgo.format(1000, 'round', { now: 0 })).to.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\texpect(timeAgo.format(1000, 'round', { now: 0 })).to.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\texpect(new 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 })).to.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\texpect(new 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 })).to.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\texpect(TimeAgo.getDefaultLocale()).to.equal('en')\r\n\t\tTimeAgo.addDefaultLocale({\r\n\t\t\tlocale: 'el'\r\n\t\t})\r\n\t\texpect(TimeAgo.getDefaultLocale()).to.equal('el')\r\n\t\t// Doesn't throw an error because the same locale is already specified as default.\r\n\t\tTimeAgo.addDefaultLocale({\r\n\t\t\tlocale: 'el'\r\n\t\t})\r\n\t\t// Could throw an error or output an error message because another locale is already specified as default.\r\n\t\t// expect(() => {\r\n\t\t\tTimeAgo.addDefaultLocale({\r\n\t\t\t\tlocale: 'es'\r\n\t\t\t})\r\n\t\t// }).to.throw('but you have already added \"el\" as the default locale.')\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\texpect(timeAgo.format(0.9 * 1000, 'twitter', { now: 0, round: 'floor' })).to.equal('0s')\r\n\t\texpect(timeAgo.format(1 * 1000, 'twitter', { now: 0, round: 'floor' })).to.equal('1s')\r\n\t\texpect(timeAgo.format(1.9 * 1000, 'twitter', { now: 0, round: 'floor' })).to.equal('1s')\r\n\t\texpect(timeAgo.format(2 * 1000, 'twitter', { now: 0, round: 'floor' })).to.equal('2s')\r\n\t\texpect(timeAgo.format(1.9 * 60 * 1000, 'twitter', { now: 0, round: 'floor' })).to.equal('1m')\r\n\t\texpect(timeAgo.format(2 * 60 * 1000, 'twitter', { now: 0, round: 'floor' })).to.equal('2m')\r\n\t})\r\n})\r\n\r\nfunction delay(delayTime) {\r\n\treturn new Promise((resolve) => {\r\n\t\tsetTimeout(resolve, delayTime)\r\n\t})\r\n}"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"TimeAgo.test.js","names":["_mocha","require","_chai","_TimeAgo","_interopRequireDefault","_en","e","__esModule","_slicedToArray","r","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","t","toString","call","slice","constructor","name","Array","from","test","length","n","l","Symbol","iterator","i","u","f","o","next","Object","done","push","value","isArray","TimeAgo","setDefaultLocale","describe","it","timeAgo","expect","format","Date","now","to","equal","future","labels","steps","formatAs","flavour","gradation","englishNow","english","addLocale","undefined","NumberFormat","Intl","englishLongTimeMinute","minute","past","mockedDate","getTime","thrower","units","custom","_ref","time","date","locale","_ref2","_ref3","getTimeToNextUpdate","style2","style","unit","factor","include","secondLabels","second","refreshedTimes","_timeAgo$format","refresh","text","Error","round","_timeAgo$format2","cancelRefresh","be","timeToNextUpdate","delay","then","deep","getTimeToNextUpdateUncapped","minTime","_ref4","polyfill","global","getDefaultLocale","addDefaultLocale","delayTime","Promise","resolve","setTimeout"],"sources":["../source/TimeAgo.test.js"],"sourcesContent":["import { describe, it } from 'mocha'\r\nimport { expect } from 'chai'\r\n\r\nimport TimeAgo from './TimeAgo.js'\r\n\r\n// Load locale specific relative date/time messages\r\nimport english from '../locale/en.json' with { type: '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\texpect(timeAgo.format(Date.now())).to.equal('just now')\r\n\t\texpect(timeAgo.format(Date.now() + 20 * 1000)).to.equal('in a moment')\r\n\t\texpect(timeAgo.format(Date.now() + 1 * 60 * 1000)).to.equal('in 1 minute')\r\n\t\texpect(timeAgo.format(Date.now() + 4 * 60 * 1000)).to.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\texpect(timeAgo.format(Date.now(), 'mini-now')).to.equal('now')\r\n\t\texpect(timeAgo.format(0, { future: true, now: 0 })).to.equal('in a moment')\r\n\t\texpect(timeAgo.format(0, { labels: 'mini', steps: [{ formatAs: 'now' }, { formatAs: 'second' }] }, { future: true, now: 0 })).to.equal('now')\r\n\t\texpect(timeAgo.format(0, { labels: ['mini'], steps: [{ formatAs: 'now' }, { formatAs: 'second' }] }, { future: true, now: 0 })).to.equal('now')\r\n\t\t// `flavour` is a legacy name of `labels` property.\r\n\t\texpect(timeAgo.format(0, { flavour: 'mini' }, { future: true, now: 0 })).to.equal('now')\r\n\t\texpect(timeAgo.format(0, { flavour: ['mini'] }, { future: true, now: 0 })).to.equal('now')\r\n\t\texpect(timeAgo.format(0, { steps: [{ formatAs: 'minute' }] }, { future: true, now: 0 })).to.equal('in 0 minutes')\r\n\t\t// `gradation` is a legacy name of `steps` property.\r\n\t\texpect(timeAgo.format(0, { gradation: [{ formatAs: 'minute' }] }, { future: true, now: 0 })).to.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\texpect(timeAgo.format(Date.now(), { labels: ['exotic', 'short'] })).to.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\texpect(timeAgo.format(Date.now(), { labels: ['exotic', 'short'] })).to.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\texpect(timeAgo.format(Date.now(), { labels: 'long' })).to.equal('now')\r\n\t\tenglish.now = englishNow\r\n\t\texpect(timeAgo.format(Date.now(), { labels: 'long' })).to.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\texpect(timeAgo.format(Date.now() + 60 * 1000, { labels: 'long-time' })).to.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\texpect(timeAgo.format(Date.now() + 365 * 24 * 60 * 60 * 1000, { labels: 'short' })).to.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\texpect(timeAgo.format(Date.now(), { labels: 'long' })).to.equal('now')\r\n\t\tenglish.now = englishNow\r\n\t\texpect(timeAgo.format(Date.now(), { labels: 'long' })).to.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\texpect(timeAgo.format(Date.now() - 60 * 1000, { labels: 'long-time' })).to.equal('1 minute(s) ago')\r\n\t\t// Future (covers an \"else\" branch).\r\n\t\texpect(timeAgo.format(Date.now() + 60 * 1000, { labels: 'long-time' })).to.equal('in 1 minute(s)')\r\n\t\t// Undo.\r\n\t\tenglish['long-time'].minute = englishLongTimeMinute\r\n\t\texpect(timeAgo.format(Date.now() - 60 * 1000, { labels: 'long-time' })).to.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\texpect(timeAgo.format(Date.now() + 10, { labels: ['long'] })).to.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\texpect(timeAgo.format(Date.now() - 0 * 1000, 'mini')).to.equal('0s')\r\n\t\texpect(timeAgo.format(Date.now() - 1 * 1000, 'mini')).to.equal('1s')\r\n\t\t// \"mini-now\".\r\n\t\texpect(timeAgo.format(Date.now() - 0 * 1000, 'mini-now')).to.equal('now')\r\n\t\texpect(timeAgo.format(Date.now() - 1 * 1000, 'mini-now')).to.equal('1s')\r\n\t\t// \"mini-minute-now\".\r\n\t\texpect(timeAgo.format(Date.now() - 29 * 1000, 'mini-minute-now')).to.equal('now')\r\n\t\texpect(timeAgo.format(Date.now() - 60 * 1000, 'mini-minute-now')).to.equal('1m')\r\n\t\t// \"mini-minute\".\r\n\t\texpect(timeAgo.format(Date.now() - 29 * 1000, 'mini-minute')).to.equal('0m')\r\n\t\texpect(timeAgo.format(Date.now() - 60 * 1000, 'mini-minute')).to.equal('1m')\r\n\t\t// \"twitter\".\r\n\t\texpect(timeAgo.format(Date.now() - 0 * 1000, 'twitter')).to.equal('0s')\r\n\t\texpect(timeAgo.format(Date.now() - 1 * 1000, 'twitter')).to.equal('1s')\r\n\t\t// \"twitter-now\".\r\n\t\texpect(timeAgo.format(Date.now() - 0 * 1000, 'twitter-now')).to.equal('now')\r\n\t\texpect(timeAgo.format(Date.now() - 1 * 1000, 'twitter-now')).to.equal('1s')\r\n\t\t// \"twitter-minute-now\".\r\n\t\texpect(timeAgo.format(Date.now() - 29 * 1000, 'twitter-minute-now')).to.equal('now')\r\n\t\texpect(timeAgo.format(Date.now() - 60 * 1000, 'twitter-minute-now')).to.equal('1m')\r\n\t\t// \"twitter-minute\".\r\n\t\texpect(timeAgo.format(Date.now() - 29 * 1000, 'twitter-minute')).to.equal('0m')\r\n\t\texpect(timeAgo.format(Date.now() - 60 * 1000, 'twitter-minute')).to.equal('1m')\r\n\t\t// \"twitter-first-minute\".\r\n\t\texpect(timeAgo.format(Date.now() - 29 * 1000, 'twitter-first-minute')).to.equal('')\r\n\t\texpect(timeAgo.format(Date.now() - 60 * 1000, 'twitter-first-minute')).to.equal('1m')\r\n\t\t// \"approximate\".\r\n\t\texpect(timeAgo.format(Date.now() - 45 * 1000, 'approximate')).to.equal('just now')\r\n\t\t// \"convenient\" style was renamed to \"approximate\".\r\n\t\texpect(timeAgo.format(Date.now() - 45 * 1000, 'convenient')).to.equal('just now')\r\n\t\texpect(timeAgo.format(Date.now() - 45 * 1000, 'round')).to.equal('45 seconds ago')\r\n\t\t// \"default\" style was renamed to \"round\".\r\n\t\texpect(timeAgo.format(Date.now() - 45 * 1000, 'default')).to.equal('45 seconds ago')\r\n\t\texpect(timeAgo.format(Date.now() - 29 * 1000, 'round-minute')).to.equal('just now')\r\n\t\t// \"time\" style was renamed to \"approximate-time\".\r\n\t\texpect(timeAgo.format(Date.now() - 2 * 60 * 1000, 'time')).to.equal('2 minutes')\r\n\t\texpect(timeAgo.format(Date.now() - 2 * 60 * 1000, 'approximate-time')).to.equal('2 minutes')\r\n\t\texpect(timeAgo.format(Date.now(), 'exotic')).to.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\texpect(timeAgo.format(new Date())).to.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\texpect(timeAgo.format(mockedDate)).to.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\texpect(thrower).to.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\texpect(timeAgo.format(Date.now(), { units: ['femtosecond'] })).to.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\texpect(timeAgo.format(Date.now(), {\r\n\t\t\t// `custom` returns a string\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).to.equal('en')\r\n\r\n\t\texpect(timeAgo.format(Date.now(), {\r\n\t\t\t// `custom` returns `undefined`\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).to.equal('just now')\r\n\t})\r\n\r\n\tit('should throw an error when formating for a style with \"custom\" function and `getTimeToNextUpdate: true` parameter is passed', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\r\n\t\texpect(() => {\r\n\t\t\ttimeAgo.format(Date.now(), {\r\n\t\t\t\t// `custom` returns a string.\r\n\t\t\t\tcustom({ now, time, date, locale }) {\r\n\t\t\t\t\treturn locale\r\n\t\t\t\t}\r\n\t\t\t}, {\r\n\t\t\t\tgetTimeToNextUpdate: true\r\n\t\t\t})\r\n\t\t}).to.throw('not supported')\r\n\t})\r\n\r\n\tit('should format future dates', () => {\r\n\t\texpect(new TimeAgo('en').format(Date.now() + 60 * 60 * 1000)).to.equal('in 1 hour')\r\n\t\texpect(new TimeAgo('ru').format(Date.now() + 60 * 1000)).to.equal('через 1 минуту')\r\n\t})\r\n\r\n\tit('should accept \"future\" option', () => {\r\n\t\t// \"now\" unit.\r\n\t\texpect(new TimeAgo('en').format(Date.now())).to.equal('just now')\r\n\t\texpect(new TimeAgo('en').format(Date.now(), 'approximate', { future: true })).to.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// expect(new TimeAgo('en').format(Date.now(), style)).to.equal('0 seconds ago')\r\n\t\t// expect(new TimeAgo('en').format(Date.now(), style, { future: true })).to.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\texpect(new TimeAgo('ru').format(Date.now() - 5 * 365 * 24 * 60 * 60 * 1000, style2)).to.equal('5 л')\r\n\t\texpect(new TimeAgo('ru').format(Date.now() - 5 * 365 * 24 * 60 * 60 * 1000, style2, { future: true })).to.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\texpect(new TimeAgo('ru').format(Date.now() - 10 * 1000, style)).to.equal('2 г')\r\n\t\texpect(new TimeAgo('ru').format(Date.now() - 10 * 1000, style, { future: true })).to.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\texpect(new TimeAgo('ccp').format(Date.now() + 60 * 1000)).to.include(' 𑄟𑄨𑄚𑄨𑄘𑄬')\r\n\t})\r\n\r\n\tit('should throw for non-existing locales', () => {\r\n\t\texpect(() => TimeAgo.addLocale()).to.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\texpect(new 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})).to.equal('0 seconds ago')\r\n\r\n\t\texpect(new 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})).to.equal('in 0 seconds')\r\n\r\n\t\tenglish['mini'].second = secondLabels\r\n\t})\r\n\r\n\tit('should refresh the label when `refresh` parameter is passed', () => {\r\n\t\tlet refreshedTimes = 0\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\tconst [text, cancelRefresh] = timeAgo.format(1000, 'twitter', {\r\n\t\t\trefresh: (text) => {\r\n\t\t\t\tif (refreshedTimes === 0) {\r\n\t\t\t\t\t// This test sometimes throws an error for an unknown weird reason:\r\n\t\t\t\t\t//\r\n\t\t\t\t\t// \"AssertionError: expected '1s' to equal '0s'\".\r\n\t\t\t\t\t//\r\n\t\t\t\t\t// \"Error: done() called multiple times in test <javascript-time-ago\r\n\t\t\t\t\t// should refresh the label when `refresh` parameter is passed> of file\r\n\t\t\t\t\t// c:\\dev\\javascript-time-ago\\source\\TimeAgo.test.js; in addition,\r\n\t\t\t\t\t// done() received error: AssertionError: expected +0 to equal 1\"\r\n\t\t\t\t\t//\r\n\t\t\t\t\t// In case it does that, just re-run the tests and somehow the error is gone.\r\n\t\t\t\t\t// I didn't bother debugging the error because it's not clear how it's reproduced.\r\n\t\t\t\t\t//\r\n\t\t\t\t\texpect(text).to.equal('0s')\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthrow new Error('Refresh should have been cancelled')\r\n\t\t\t\t}\r\n\t\t\t\trefreshedTimes++\r\n\t\t\t},\r\n\t\t\tnow: 0,\r\n\t\t\tround: 'floor'\r\n\t\t})\r\n\t\texpect(text).to.equal('1s')\r\n\t\texpect(cancelRefresh).to.be.a('function')\r\n\t\t// Sidenote: `timeToNextUpdate` is `1`.\r\n\t\tconst timeToNextUpdate = 1\r\n\t\treturn delay(timeToNextUpdate + 1).then(() => {\r\n\t\t\texpect(refreshedTimes).to.equal(1)\r\n\t\t\tcancelRefresh()\r\n\t\t})\r\n\t})\r\n\r\n\tit('should get time to next update (capped)', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\texpect(timeAgo.format(0.5 * 365 * 24 * 60 * 60 * 1000, 'twitter', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0,\r\n\t\t\tround: 'floor'\r\n\t\t})).to.deep.equal([\r\n\t\t\t'Jul 2',\r\n\t\t\t2147483647\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (capped)', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\texpect(timeAgo.format(0.5 * 365 * 24 * 60 * 60 * 1000, 'twitter', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tgetTimeToNextUpdateUncapped: true,\r\n\t\t\tnow: 0,\r\n\t\t\tround: 'floor'\r\n\t\t})).to.deep.equal([\r\n\t\t\t'Jul 2',\r\n\t\t\t15681600001\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (uncapped)', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\texpect(timeAgo.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})).to.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: \"floor\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\texpect(timeAgo.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})).to.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\texpect(timeAgo.format(1000, 'twitter', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0\r\n\t\t})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0\r\n\t\t})).to.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\texpect(timeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 500 + 1\r\n\t\t})).to.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\texpect(timeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59.5 * 1000\r\n\t\t})).to.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\texpect(timeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59.5 * 1000 + 1\r\n\t\t})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000\r\n\t\t})).to.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\texpect(timeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1\r\n\t\t})).to.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\texpect(timeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 500\r\n\t\t})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.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})).to.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\texpect(timeAgo.format(0, 'round', { now: 0 })).to.equal('just now')\r\n\t\texpect(timeAgo.format(1000, 'round', { now: 0 })).to.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\texpect(timeAgo.format(1000, 'round', { now: 0 })).to.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\texpect(new 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 })).to.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\texpect(new 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 })).to.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\texpect(TimeAgo.getDefaultLocale()).to.equal('en')\r\n\t\tTimeAgo.addDefaultLocale({\r\n\t\t\tlocale: 'el'\r\n\t\t})\r\n\t\texpect(TimeAgo.getDefaultLocale()).to.equal('el')\r\n\t\t// Doesn't throw an error because the same locale is already specified as default.\r\n\t\tTimeAgo.addDefaultLocale({\r\n\t\t\tlocale: 'el'\r\n\t\t})\r\n\t\t// Could throw an error or output an error message because another locale is already specified as default.\r\n\t\t// expect(() => {\r\n\t\t\tTimeAgo.addDefaultLocale({\r\n\t\t\t\tlocale: 'es'\r\n\t\t\t})\r\n\t\t// }).to.throw('but you have already added \"el\" as the default locale.')\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\texpect(timeAgo.format(0.9 * 1000, 'twitter', { now: 0, round: 'floor' })).to.equal('0s')\r\n\t\texpect(timeAgo.format(1 * 1000, 'twitter', { now: 0, round: 'floor' })).to.equal('1s')\r\n\t\texpect(timeAgo.format(1.9 * 1000, 'twitter', { now: 0, round: 'floor' })).to.equal('1s')\r\n\t\texpect(timeAgo.format(2 * 1000, 'twitter', { now: 0, round: 'floor' })).to.equal('2s')\r\n\t\texpect(timeAgo.format(1.9 * 60 * 1000, 'twitter', { now: 0, round: 'floor' })).to.equal('1m')\r\n\t\texpect(timeAgo.format(2 * 60 * 1000, 'twitter', { now: 0, round: 'floor' })).to.equal('2m')\r\n\t})\r\n})\r\n\r\nfunction delay(delayTime) {\r\n\treturn new Promise((resolve) => {\r\n\t\tsetTimeout(resolve, delayTime)\r\n\t})\r\n}"],"mappings":"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","ignoreList":[]}
|
|
File without changes
|