javascript-time-ago 2.5.7 → 2.5.10
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/CODE_OF_CONDUCT.md +78 -0
- package/bin/generate-locale-messages.js +1 -1
- 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.test.js.map +1 -1
- package/load-all-locales/index.cjs +8 -0
- package/load-all-locales/index.cjs.js +8 -0
- package/load-all-locales/index.js +16 -0
- package/locale/af.json.d.ts +1 -1
- package/locale/am.json.d.ts +1 -1
- package/locale/ar-AE.json.d.ts +1 -1
- package/locale/ar.json.d.ts +1 -1
- package/locale/as.json.d.ts +1 -1
- package/locale/ast.json.d.ts +1 -1
- package/locale/az.json.d.ts +1 -1
- package/locale/be.json.d.ts +1 -1
- package/locale/bg.json.d.ts +1 -1
- package/locale/bgc/package.json +16 -0
- package/locale/bgc.json +159 -0
- package/locale/bgc.json.d.ts +4 -0
- package/locale/bgc.json.js +159 -0
- package/locale/bn.json.d.ts +1 -1
- package/locale/br.json.d.ts +1 -1
- package/locale/brx.json +66 -66
- package/locale/brx.json.d.ts +1 -1
- package/locale/brx.json.js +66 -66
- package/locale/bs-Cyrl.json.d.ts +1 -1
- package/locale/bs.json.d.ts +1 -1
- package/locale/ca.json.d.ts +1 -1
- package/locale/ccp.json.d.ts +1 -1
- package/locale/ce.json.d.ts +1 -1
- package/locale/ceb.json.d.ts +1 -1
- package/locale/chr.json.d.ts +1 -1
- package/locale/cs.json.d.ts +1 -1
- package/locale/cv/package.json +16 -0
- package/locale/cv.json +159 -0
- package/locale/cv.json.d.ts +4 -0
- package/locale/cv.json.js +159 -0
- package/locale/cy.json.d.ts +1 -1
- package/locale/da.json.d.ts +1 -1
- package/locale/de.json.d.ts +1 -1
- package/locale/dsb.json +6 -6
- package/locale/dsb.json.d.ts +1 -1
- package/locale/dsb.json.js +6 -6
- package/locale/dz.json.d.ts +1 -1
- package/locale/ee.json.d.ts +1 -1
- package/locale/el.json.d.ts +1 -1
- package/locale/en-001.json.d.ts +1 -1
- package/locale/en-150.json.d.ts +1 -1
- package/locale/en-AG.json.d.ts +1 -1
- package/locale/en-AI.json.d.ts +1 -1
- package/locale/en-AT.json.d.ts +1 -1
- package/locale/en-AU.json +1 -1
- package/locale/en-AU.json.d.ts +1 -1
- package/locale/en-AU.json.js +1 -1
- package/locale/en-BB.json.d.ts +1 -1
- package/locale/en-BE.json.d.ts +1 -1
- package/locale/en-BM.json.d.ts +1 -1
- package/locale/en-BS.json.d.ts +1 -1
- package/locale/en-BW.json.d.ts +1 -1
- package/locale/en-BZ.json.d.ts +1 -1
- package/locale/en-CA.json +2 -8
- package/locale/en-CA.json.d.ts +1 -1
- package/locale/en-CA.json.js +2 -8
- package/locale/en-CC.json.d.ts +1 -1
- package/locale/en-CH.json.d.ts +1 -1
- package/locale/en-CK.json.d.ts +1 -1
- package/locale/en-CM.json.d.ts +1 -1
- package/locale/en-CX.json.d.ts +1 -1
- package/locale/en-CY.json.d.ts +1 -1
- package/locale/en-DE.json.d.ts +1 -1
- package/locale/en-DG.json.d.ts +1 -1
- package/locale/en-DK.json.d.ts +1 -1
- package/locale/en-DM.json.d.ts +1 -1
- package/locale/en-ER.json.d.ts +1 -1
- package/locale/en-FI.json.d.ts +1 -1
- package/locale/en-FJ.json.d.ts +1 -1
- package/locale/en-FK.json.d.ts +1 -1
- package/locale/en-FM.json.d.ts +1 -1
- package/locale/en-GB.json.d.ts +1 -1
- package/locale/en-GD.json.d.ts +1 -1
- package/locale/en-GG.json.d.ts +1 -1
- package/locale/en-GH.json.d.ts +1 -1
- package/locale/en-GI.json.d.ts +1 -1
- package/locale/en-GM.json.d.ts +1 -1
- package/locale/en-GY.json.d.ts +1 -1
- package/locale/en-HK.json.d.ts +1 -1
- package/locale/en-IE.json.d.ts +1 -1
- package/locale/en-IL.json.d.ts +1 -1
- package/locale/en-IM.json.d.ts +1 -1
- package/locale/en-IN.json.d.ts +1 -1
- package/locale/en-IO.json.d.ts +1 -1
- package/locale/en-JE.json.d.ts +1 -1
- package/locale/en-JM.json.d.ts +1 -1
- package/locale/en-KE.json.d.ts +1 -1
- package/locale/en-KI.json.d.ts +1 -1
- package/locale/en-KN.json.d.ts +1 -1
- package/locale/en-KY.json.d.ts +1 -1
- package/locale/en-LC.json.d.ts +1 -1
- package/locale/en-LR.json.d.ts +1 -1
- package/locale/en-LS.json.d.ts +1 -1
- package/locale/en-MG.json.d.ts +1 -1
- package/locale/en-MO.json.d.ts +1 -1
- package/locale/en-MS.json.d.ts +1 -1
- package/locale/en-MT.json.d.ts +1 -1
- package/locale/en-MU.json.d.ts +1 -1
- package/locale/en-MV.json.d.ts +1 -1
- package/locale/en-MW.json.d.ts +1 -1
- package/locale/en-MY.json.d.ts +1 -1
- package/locale/en-NA.json.d.ts +1 -1
- package/locale/en-NF.json.d.ts +1 -1
- package/locale/en-NG.json.d.ts +1 -1
- package/locale/en-NL.json.d.ts +1 -1
- package/locale/en-NR.json.d.ts +1 -1
- package/locale/en-NU.json.d.ts +1 -1
- package/locale/en-NZ.json.d.ts +1 -1
- package/locale/en-PG.json.d.ts +1 -1
- package/locale/en-PK.json.d.ts +1 -1
- package/locale/en-PN.json.d.ts +1 -1
- package/locale/en-PW.json.d.ts +1 -1
- package/locale/en-RW.json.d.ts +1 -1
- package/locale/en-SB.json.d.ts +1 -1
- package/locale/en-SC.json.d.ts +1 -1
- package/locale/en-SD.json.d.ts +1 -1
- package/locale/en-SE.json.d.ts +1 -1
- package/locale/en-SG.json.d.ts +1 -1
- package/locale/en-SH.json.d.ts +1 -1
- package/locale/en-SI.json.d.ts +1 -1
- package/locale/en-SL.json.d.ts +1 -1
- package/locale/en-SS.json.d.ts +1 -1
- package/locale/en-SX.json.d.ts +1 -1
- package/locale/en-SZ.json.d.ts +1 -1
- package/locale/en-TC.json.d.ts +1 -1
- package/locale/en-TK.json.d.ts +1 -1
- package/locale/en-TO.json.d.ts +1 -1
- package/locale/en-TT.json.d.ts +1 -1
- package/locale/en-TV.json.d.ts +1 -1
- package/locale/en-TZ.json.d.ts +1 -1
- package/locale/en-UG.json.d.ts +1 -1
- package/locale/en-VC.json.d.ts +1 -1
- package/locale/en-VG.json.d.ts +1 -1
- package/locale/en-VU.json.d.ts +1 -1
- package/locale/en-WS.json.d.ts +1 -1
- package/locale/en-ZA.json.d.ts +1 -1
- package/locale/en-ZM.json.d.ts +1 -1
- package/locale/en-ZW.json.d.ts +1 -1
- package/locale/en.json +16 -28
- package/locale/en.json.d.ts +1 -1
- package/locale/en.json.js +16 -28
- package/locale/eo/package.json +16 -0
- package/locale/eo.json +275 -0
- package/locale/eo.json.d.ts +4 -0
- package/locale/eo.json.js +275 -0
- package/locale/es-419.json.d.ts +1 -1
- package/locale/es-AR.json.d.ts +1 -1
- package/locale/es-BO.json.d.ts +1 -1
- package/locale/es-BR.json.d.ts +1 -1
- package/locale/es-BZ.json.d.ts +1 -1
- package/locale/es-CL.json.d.ts +1 -1
- package/locale/es-CO.json.d.ts +1 -1
- package/locale/es-CR.json.d.ts +1 -1
- package/locale/es-CU.json.d.ts +1 -1
- package/locale/es-DO.json.d.ts +1 -1
- package/locale/es-EC.json.d.ts +1 -1
- package/locale/es-GT.json.d.ts +1 -1
- package/locale/es-HN.json.d.ts +1 -1
- package/locale/es-MX.json.d.ts +1 -1
- package/locale/es-NI.json.d.ts +1 -1
- package/locale/es-PA.json.d.ts +1 -1
- package/locale/es-PE.json.d.ts +1 -1
- package/locale/es-PR.json.d.ts +1 -1
- package/locale/es-PY.json.d.ts +1 -1
- package/locale/es-SV.json.d.ts +1 -1
- package/locale/es-US.json.d.ts +1 -1
- package/locale/es-UY.json.d.ts +1 -1
- package/locale/es-VE.json.d.ts +1 -1
- package/locale/es.json.d.ts +1 -1
- package/locale/et.json.d.ts +1 -1
- package/locale/eu.json.d.ts +1 -1
- package/locale/fa.json +2 -2
- package/locale/fa.json.d.ts +1 -1
- package/locale/fa.json.js +2 -2
- package/locale/ff-Adlm.json +4 -4
- package/locale/ff-Adlm.json.d.ts +1 -1
- package/locale/ff-Adlm.json.js +4 -4
- package/locale/fi.json.d.ts +1 -1
- package/locale/fil.json +52 -175
- package/locale/fil.json.d.ts +1 -1
- package/locale/fil.json.js +52 -175
- package/locale/fo.json.d.ts +1 -1
- package/locale/fr-CA.json.d.ts +1 -1
- package/locale/fr.json.d.ts +1 -1
- package/locale/fur.json.d.ts +1 -1
- package/locale/fy.json.d.ts +1 -1
- package/locale/ga.json +21 -7
- package/locale/ga.json.d.ts +1 -1
- package/locale/ga.json.js +21 -7
- package/locale/gd.json.d.ts +1 -1
- package/locale/gl.json.d.ts +1 -1
- package/locale/gu.json.d.ts +1 -1
- package/locale/ha.json.d.ts +1 -1
- package/locale/he.json.d.ts +1 -1
- package/locale/hi-Latn.json +75 -78
- package/locale/hi-Latn.json.d.ts +1 -1
- package/locale/hi-Latn.json.js +75 -78
- package/locale/hi.json.d.ts +1 -1
- package/locale/hr.json.d.ts +1 -1
- package/locale/hsb.json.d.ts +1 -1
- package/locale/hu.json +6 -6
- package/locale/hu.json.d.ts +1 -1
- package/locale/hu.json.js +6 -6
- package/locale/hy.json.d.ts +1 -1
- package/locale/ia.json.d.ts +1 -1
- package/locale/id.json.d.ts +1 -1
- package/locale/ig.json.d.ts +1 -1
- package/locale/is.json.d.ts +1 -1
- package/locale/it.json.d.ts +1 -1
- package/locale/ja.json.d.ts +1 -1
- package/locale/jgo.json.d.ts +1 -1
- package/locale/jv.json.d.ts +1 -1
- package/locale/ka.json.d.ts +1 -1
- package/locale/kea.json.d.ts +1 -1
- package/locale/kgp.json.d.ts +1 -1
- package/locale/kk.json.d.ts +1 -1
- package/locale/kl.json.d.ts +1 -1
- package/locale/km.json.d.ts +1 -1
- package/locale/kn.json.d.ts +1 -1
- package/locale/ko.json.d.ts +1 -1
- package/locale/kok.json.d.ts +1 -1
- package/locale/ks/package.json +16 -0
- package/locale/ks.json +159 -0
- package/locale/ks.json.d.ts +4 -0
- package/locale/ks.json.js +159 -0
- package/locale/ksh.json.d.ts +1 -1
- package/locale/ku.json.d.ts +1 -1
- package/locale/ky.json.d.ts +1 -1
- package/locale/lb.json.d.ts +1 -1
- package/locale/lkt.json.d.ts +1 -1
- package/locale/lo.json.d.ts +1 -1
- package/locale/lt.json.d.ts +1 -1
- package/locale/lv.json.d.ts +1 -1
- package/locale/mai/package.json +16 -0
- package/locale/mai.json +159 -0
- package/locale/mai.json.d.ts +4 -0
- package/locale/mai.json.js +159 -0
- package/locale/mi/package.json +16 -0
- package/locale/mi.json +159 -0
- package/locale/mi.json.d.ts +4 -0
- package/locale/mi.json.js +159 -0
- package/locale/mk.json +2 -2
- package/locale/mk.json.d.ts +1 -1
- package/locale/mk.json.js +2 -2
- package/locale/ml.json.d.ts +1 -1
- package/locale/mn.json.d.ts +1 -1
- package/locale/mni.json.d.ts +1 -1
- package/locale/mr.json.d.ts +1 -1
- package/locale/ms.json.d.ts +1 -1
- package/locale/mt.json +176 -55
- package/locale/mt.json.d.ts +1 -1
- package/locale/mt.json.js +176 -55
- package/locale/my.json.d.ts +1 -1
- package/locale/mzn.json.d.ts +1 -1
- package/locale/nb.json.d.ts +1 -1
- package/locale/ne.json.d.ts +1 -1
- package/locale/nl.json +4 -16
- package/locale/nl.json.d.ts +1 -1
- package/locale/nl.json.js +4 -16
- package/locale/nn.json.d.ts +1 -1
- package/locale/no.json.d.ts +1 -1
- package/locale/or.json +1 -4
- package/locale/or.json.d.ts +1 -1
- package/locale/or.json.js +1 -4
- package/locale/pa.json.d.ts +1 -1
- package/locale/pcm.json.d.ts +1 -1
- package/locale/pl.json.d.ts +1 -1
- package/locale/ps-PK.json.d.ts +1 -1
- package/locale/ps.json.d.ts +1 -1
- package/locale/pt-AO.json.d.ts +1 -1
- package/locale/pt-CH.json.d.ts +1 -1
- package/locale/pt-CV.json.d.ts +1 -1
- package/locale/pt-GQ.json.d.ts +1 -1
- package/locale/pt-GW.json.d.ts +1 -1
- package/locale/pt-LU.json.d.ts +1 -1
- package/locale/pt-MO.json.d.ts +1 -1
- package/locale/pt-MZ.json.d.ts +1 -1
- package/locale/pt-PT.json.d.ts +1 -1
- package/locale/pt-ST.json.d.ts +1 -1
- package/locale/pt-TL.json.d.ts +1 -1
- package/locale/pt.json.d.ts +1 -1
- package/locale/qu.json.d.ts +1 -1
- package/locale/raj/package.json +16 -0
- package/locale/raj.json +159 -0
- package/locale/raj.json.d.ts +4 -0
- package/locale/raj.json.js +159 -0
- package/locale/rm.json.d.ts +1 -1
- package/locale/ro.json.d.ts +1 -1
- package/locale/ru.json.d.ts +1 -1
- package/locale/sah.json.d.ts +1 -1
- package/locale/sc.json.d.ts +1 -1
- package/locale/sd.json.d.ts +1 -1
- package/locale/se-FI.json.d.ts +1 -1
- package/locale/se.json.d.ts +1 -1
- package/locale/si.json.d.ts +1 -1
- package/locale/sk.json.d.ts +1 -1
- package/locale/sl.json.d.ts +1 -1
- package/locale/so.json.d.ts +1 -1
- package/locale/sq.json.d.ts +1 -1
- package/locale/sr-Cyrl-BA.json +19 -19
- package/locale/sr-Cyrl-BA.json.d.ts +1 -1
- package/locale/sr-Cyrl-BA.json.js +19 -19
- package/locale/sr-Latn-BA.json +19 -19
- package/locale/sr-Latn-BA.json.d.ts +1 -1
- package/locale/sr-Latn-BA.json.js +19 -19
- package/locale/sr-Latn.json.d.ts +1 -1
- package/locale/sr.json.d.ts +1 -1
- package/locale/su.json.d.ts +1 -1
- package/locale/sv.json.d.ts +1 -1
- package/locale/sw.json.d.ts +1 -1
- package/locale/ta.json.d.ts +1 -1
- package/locale/te.json.d.ts +1 -1
- package/locale/tg.json.d.ts +1 -1
- package/locale/th.json.d.ts +1 -1
- package/locale/ti.json.d.ts +1 -1
- package/locale/tk.json.d.ts +1 -1
- package/locale/to.json.d.ts +1 -1
- package/locale/tr.json.d.ts +1 -1
- package/locale/tt.json.d.ts +1 -1
- package/locale/ug.json.d.ts +1 -1
- package/locale/uk.json +1 -4
- package/locale/uk.json.d.ts +1 -1
- package/locale/uk.json.js +1 -4
- package/locale/ur-IN.json.d.ts +1 -1
- package/locale/ur.json.d.ts +1 -1
- package/locale/uz-Cyrl.json.d.ts +1 -1
- package/locale/uz.json.d.ts +1 -1
- package/locale/vi.json.d.ts +1 -1
- package/locale/wae.json.d.ts +1 -1
- package/locale/wo.json.d.ts +1 -1
- package/locale/xh/package.json +16 -0
- package/locale/xh.json +159 -0
- package/locale/xh.json.d.ts +4 -0
- package/locale/xh.json.js +159 -0
- package/locale/yi.json.d.ts +1 -1
- package/locale/yo-BJ.json.d.ts +1 -1
- package/locale/yo.json.d.ts +1 -1
- package/locale/yrl.json.d.ts +1 -1
- package/locale/yue-Hans.json.d.ts +1 -1
- package/locale/yue.json.d.ts +1 -1
- package/locale/zh-Hans-HK.json.d.ts +1 -1
- package/locale/zh-Hans-MO.json.d.ts +1 -1
- package/locale/zh-Hans-SG.json.d.ts +1 -1
- package/locale/zh-Hant-HK.json.d.ts +1 -1
- package/locale/zh-Hant-MO.json.d.ts +1 -1
- package/locale/zh-Hant.json.d.ts +1 -1
- package/locale/zh.json.d.ts +1 -1
- package/locale/zu.json.d.ts +1 -1
- package/locale-more-styles/eo/long-time.json +30 -0
- package/locale-more-styles/eo/mini.json +9 -0
- package/locale-more-styles/eo/now.json +7 -0
- package/locale-more-styles/eo/short-time.json +9 -0
- package/modules/TimeAgo.test.js +1 -1
- package/modules/TimeAgo.test.js.map +1 -1
- package/package.json +67 -2
package/locale/yo-BJ.json.d.ts
CHANGED
package/locale/yo.json.d.ts
CHANGED
package/locale/yrl.json.d.ts
CHANGED
package/locale/yue.json.d.ts
CHANGED
package/locale/zh-Hant.json.d.ts
CHANGED
package/locale/zh.json.d.ts
CHANGED
package/locale/zu.json.d.ts
CHANGED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"year": {
|
|
3
|
+
"one": "{0} jaro",
|
|
4
|
+
"other": "{0} jaroj"
|
|
5
|
+
},
|
|
6
|
+
"month": {
|
|
7
|
+
"one": "{0} monato",
|
|
8
|
+
"other": "{0} monatoj"
|
|
9
|
+
},
|
|
10
|
+
"week": {
|
|
11
|
+
"one": "{0} semajno",
|
|
12
|
+
"other": "{0} semajnoj"
|
|
13
|
+
},
|
|
14
|
+
"day": {
|
|
15
|
+
"one": "{0} tago",
|
|
16
|
+
"other": "{0} tagoj"
|
|
17
|
+
},
|
|
18
|
+
"hour": {
|
|
19
|
+
"one": "{0} horo",
|
|
20
|
+
"other": "{0} horoj"
|
|
21
|
+
},
|
|
22
|
+
"minute": {
|
|
23
|
+
"one": "{0} minuto",
|
|
24
|
+
"other": "{0} minutoj"
|
|
25
|
+
},
|
|
26
|
+
"second": {
|
|
27
|
+
"one": "{0} sekundo",
|
|
28
|
+
"other": "{0} sekundoj"
|
|
29
|
+
}
|
|
30
|
+
}
|
package/modules/TimeAgo.test.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import TimeAgo from './TimeAgo.js';
|
|
2
2
|
import { getLocaleData } from './LocaleDataStore.js'; // Load locale specific relative date/time messages
|
|
3
3
|
|
|
4
|
-
import english from '../locale/en.json'; // Just so this function code is covered.
|
|
4
|
+
import english from '../locale/en.json' assert { type: 'json' }; // Just so this function code is covered.
|
|
5
5
|
|
|
6
6
|
TimeAgo.setDefaultLocale('en');
|
|
7
7
|
describe("javascript-time-ago", function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeAgo.test.js","names":["TimeAgo","getLocaleData","english","setDefaultLocale","describe","it","timeAgo","format","Date","now","should","equal","future","labels","steps","formatAs","flavour","gradation","englishNow","addLocale","undefined","NumberFormat","Intl","englishLongTimeMinute","minute","past","mockedDate","getTime","thrower","units","custom","time","date","locale","style2","style","unit","factor","include","secondLabels","second","getTimeToNextUpdate","round","deep","minTime","polyfill","global","expect","to","getDefaultLocale","addDefaultLocale"],"sources":["../source/TimeAgo.test.js"],"sourcesContent":["import TimeAgo from './TimeAgo.js'\r\nimport { getLocaleData } from './LocaleDataStore.js'\r\n\r\n// Load locale specific relative date/time messages\r\nimport english from '../locale/en.json'\r\n\r\n// Just so this function code is covered.\r\nTimeAgo.setDefaultLocale('en')\r\n\r\ndescribe(`javascript-time-ago`, () => {\r\n\tit('should default to \"round-minute\" style', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now()).should.equal('just now')\r\n\t\ttimeAgo.format(Date.now() + 20 * 1000).should.equal('in a moment')\r\n\t\ttimeAgo.format(Date.now() + 1 * 60 * 1000).should.equal('in 1 minute')\r\n\t\ttimeAgo.format(Date.now() + 4 * 60 * 1000).should.equal('in 4 minutes')\r\n\t})\r\n\r\n\tit('should tell `options` argument from `style` argument', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), 'mini-now').should.equal('now')\r\n\t\ttimeAgo.format(0, { future: true, now: 0 }).should.equal('in a moment')\r\n\t\ttimeAgo.format(0, { labels: 'mini', steps: [{ formatAs: 'now' }, { formatAs: 'second' }] }, { future: true, now: 0 }).should.equal('now')\r\n\t\ttimeAgo.format(0, { labels: ['mini'], steps: [{ formatAs: 'now' }, { formatAs: 'second' }] }, { future: true, now: 0 }).should.equal('now')\r\n\t\t// `flavour` is a legacy name of `labels` property.\r\n\t\ttimeAgo.format(0, { flavour: 'mini' }, { future: true, now: 0 }).should.equal('now')\r\n\t\ttimeAgo.format(0, { flavour: ['mini'] }, { future: true, now: 0 }).should.equal('now')\r\n\t\ttimeAgo.format(0, { steps: [{ formatAs: 'minute' }] }, { future: true, now: 0 }).should.equal('in 0 minutes')\r\n\t\t// `gradation` is a legacy name of `steps` property.\r\n\t\ttimeAgo.format(0, { gradation: [{ formatAs: 'minute' }] }, { future: true, now: 0 }).should.equal('in 0 minutes')\r\n\t})\r\n\r\n\tit('should try various label types until an appropriate one is found', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), { labels: ['exotic', 'short'] }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should support the legacy name \"flavour\" of \"labels\"', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), { labels: ['exotic', 'short'] }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should fallback to \"second.current\" for \"now\" when \"now\" is not defined', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst englishNow = english.now\r\n\t\tdelete english.now\r\n\t\tTimeAgo.addLocale(english)\r\n\t\tenglish.now = undefined\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('now')\r\n\t\tenglish.now = englishNow\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should not use Intl.NumberFormat if it is not available', () => {\r\n\t\tconst NumberFormat = Intl.NumberFormat\r\n\t\tdelete Intl.NumberFormat\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now() + 60 * 1000, { labels: 'long-time' }).should.equal('1 minute')\r\n\t\tIntl.NumberFormat = NumberFormat\r\n\t})\r\n\r\n\tit('should work when \"past\"/\"future\" messages are same for all quantifiers', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now() + 365 * 24 * 60 * 60 * 1000, { labels: 'short' }).should.equal('in 1 yr.')\r\n\t})\r\n\r\n\tit('should work when \"now\" is a string (does not differentiate between \"past\" and \"future\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst englishNow = english.now\r\n\t\tenglish.now = { now: 'now' }\r\n\t\tTimeAgo.addLocale(english)\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('now')\r\n\t\tenglish.now = englishNow\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should work when a unit has formatting rules for \"past\" and \"future\" which are strings (style: not \"long\", not \"short\", not \"narrow\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst englishLongTimeMinute = english['long-time'].minute\r\n\t\tenglish['long-time'].minute = {\r\n\t\t\tpast: '{0} minute(s) ago',\r\n\t\t\tfuture: 'in {0} minute(s)'\r\n\t\t}\r\n\t\tTimeAgo.addLocale(english)\r\n\t\t// Past.\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, { labels: 'long-time' }).should.equal('1 minute(s) ago')\r\n\t\t// Future (covers an \"else\" branch).\r\n\t\ttimeAgo.format(Date.now() + 60 * 1000, { labels: 'long-time' }).should.equal('in 1 minute(s)')\r\n\t\t// Undo.\r\n\t\tenglish['long-time'].minute = englishLongTimeMinute\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, { labels: 'long-time' }).should.equal('1 minute')\r\n\t})\r\n\r\n\tit(`should format \"now\" for \"past\" time`, () =>\r\n\t{\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now() + 10, { labels: ['long'] }).should.equal('in a moment')\r\n\t})\r\n\r\n\tit('should accept a string style name argument', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// \"mini\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'mini').should.equal('0s')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'mini').should.equal('1s')\r\n\t\t// \"mini-now\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'mini-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'mini-now').should.equal('1s')\r\n\t\t// \"mini-minute-now\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'mini-minute-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'mini-minute-now').should.equal('1m')\r\n\t\t// \"mini-minute\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'mini-minute').should.equal('0m')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'mini-minute').should.equal('1m')\r\n\t\t// \"twitter\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'twitter').should.equal('0s')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'twitter').should.equal('1s')\r\n\t\t// \"twitter-now\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'twitter-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'twitter-now').should.equal('1s')\r\n\t\t// \"twitter-minute-now\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'twitter-minute-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'twitter-minute-now').should.equal('1m')\r\n\t\t// \"twitter-minute\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'twitter-minute').should.equal('0m')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'twitter-minute').should.equal('1m')\r\n\t\t// \"twitter-first-minute\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'twitter-first-minute').should.equal('')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'twitter-first-minute').should.equal('1m')\r\n\t\t// \"approximate\".\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'approximate').should.equal('just now')\r\n\t\t// \"convenient\" style was renamed to \"approximate\".\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'convenient').should.equal('just now')\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'round').should.equal('45 seconds ago')\r\n\t\t// \"default\" style was renamed to \"round\".\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'default').should.equal('45 seconds ago')\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'round-minute').should.equal('just now')\r\n\t\t// \"time\" style was renamed to \"approximate-time\".\r\n\t\ttimeAgo.format(Date.now() - 2 * 60 * 1000, 'time').should.equal('2 minutes')\r\n\t\ttimeAgo.format(Date.now() - 2 * 60 * 1000, 'approximate-time').should.equal('2 minutes')\r\n\t\ttimeAgo.format(Date.now(), 'exotic').should.equal('just now')\r\n\t})\r\n\r\n\tit('should accept empty constructor parameters', () => {\r\n\t\tconst timeAgo = new TimeAgo()\r\n\t\ttimeAgo.format(new Date()).should.equal('just now')\r\n\t})\r\n\r\n\tit('should accept \"mocked\" Dates when testing', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst mockedDate = { getTime: () => Date.now() }\r\n\t\ttimeAgo.format(mockedDate).should.equal('just now')\r\n\t})\r\n\r\n\tit('should not accept anything but Dates and timestamps', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst thrower = () => timeAgo.format('Jan 14, 2017')\r\n\t\tthrower.should.throw('Unsupported relative time formatter input: string, Jan 14, 2017')\r\n\t})\r\n\r\n\tit('should return an empty string if the specified units are not available in locale data', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), { units: ['femtosecond'] }).should.equal('')\r\n\t})\r\n\r\n\tit('should format for a style with \"custom\" function', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\r\n\t\t// `custom` returns a string\r\n\t\ttimeAgo.format(Date.now(), {\r\n\t\t\tcustom({ now, time, date, locale }) {\r\n\t\t\t\treturn locale\r\n\t\t\t}\r\n\t\t})\r\n\t\t.should.equal('en')\r\n\r\n\t\t// `custom` returns `undefined`\r\n\t\ttimeAgo.format(Date.now(), {\r\n\t\t\tcustom({ now, time, date, locale }) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t})\r\n\t\t.should.equal('just now')\r\n\t})\r\n\r\n\tit('should format future dates', () => {\r\n\t\tnew TimeAgo('en').format(Date.now() + 60 * 60 * 1000).should.equal('in 1 hour')\r\n\t\tnew TimeAgo('ru').format(Date.now() + 60 * 1000).should.equal('через 1 минуту')\r\n\t})\r\n\r\n\tit('should accept \"future\" option', () => {\r\n\t\t// \"now\" unit.\r\n\t\tnew TimeAgo('en').format(Date.now()).should.equal('just now')\r\n\t\tnew TimeAgo('en').format(Date.now(), 'approximate', { future: true }).should.equal('in a moment')\r\n\r\n\t\t// Non-\"now\" unit, \"long\" style.\r\n\t\t// const style = {\r\n\t\t// \tgradation: [{\r\n\t\t// \t\tfactor: 1,\r\n\t\t// \t\tunit: 'second'\r\n\t\t// \t}],\r\n\t\t// \tlabels: 'long'\r\n\t\t// }\r\n\t\t// new TimeAgo('en').format(Date.now(), style).should.equal('0 seconds ago')\r\n\t\t// new TimeAgo('en').format(Date.now(), style, { future: true }).should.equal('in 0 seconds')\r\n\r\n\t\t// Non-\"now\" unit, \"mini\" style.\r\n\t\tconst style2 = {\r\n\t\t\tstyle: [{\r\n\t\t\t\tunit: 'year'\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini'\r\n\t\t}\r\n\t\tnew TimeAgo('ru').format(Date.now() - 5 * 365 * 24 * 60 * 60 * 1000, style2).should.equal('5 л')\r\n\t\tnew TimeAgo('ru').format(Date.now() - 5 * 365 * 24 * 60 * 60 * 1000, style2, { future: true }).should.equal('5 л')\r\n\t})\r\n\r\n\tit('should support the legacy properties: \"gradation\", \"flavour\", \"factor\", \"unit\", \"\\'tiny\\'\" labels style', () => {\r\n\t\t// Non-\"now\" unit, \"tiny\" style.\r\n\t\tconst style = {\r\n\t\t\tgradation: [{\r\n\t\t\t\tfactor: 5,\r\n\t\t\t\tunit: 'year'\r\n\t\t\t}],\r\n\t\t\tflavour: 'tiny'\r\n\t\t}\r\n\t\tnew TimeAgo('ru').format(Date.now() - 10 * 1000, style).should.equal('2 г')\r\n\t\tnew TimeAgo('ru').format(Date.now() - 10 * 1000, style, { future: true }).should.equal('2 г')\r\n\t})\r\n\r\n\tit('should have generated missing quantifier functions for locales that do not have it in CLDR data', () => {\r\n\t\tnew TimeAgo('ccp').format(Date.now() + 60 * 1000).should.include(' 𑄟𑄨𑄚𑄨𑄘𑄬')\r\n\t})\r\n\r\n\tit('should throw for non-existing locales', () => {\r\n\t\t(() => TimeAgo.addLocale()).should.throw('No locale data passed')\r\n\t})\r\n\r\n\tit('should choose \"future\" variant of a label for `0` if \"future: true\" option is passed', () => {\r\n\t\tTimeAgo.addLocale(english)\r\n\t\tconst secondLabels = english['mini'].second\r\n\t\tenglish['mini'].second = {\r\n\t\t\tpast: '{0} seconds ago',\r\n\t\t\tfuture: 'in {0} seconds'\r\n\t\t}\r\n\r\n\t\tnew TimeAgo('en').format(Date.now(), {\r\n\t\t\tsteps: [{\r\n\t\t\t\tunit: 'second'\r\n\t\t\t}],\r\n\t\t\t// Uses \"mini\" labels so that it doesn't use `Intl.RelativeTimeFormat`.\r\n\t\t\tlabels: 'mini'\r\n\t\t}).should.equal('0 seconds ago')\r\n\r\n\t\tnew TimeAgo('en').format(Date.now(), {\r\n\t\t\tsteps: [{\r\n\t\t\t\tunit: 'second'\r\n\t\t\t}],\r\n\t\t\t// Uses \"mini\" labels so that it doesn't use `Intl.RelativeTimeFormat`.\r\n\t\t\tlabels: 'mini'\r\n\t\t}, {\r\n\t\t\tfuture: true\r\n\t\t}).should.equal('in 0 seconds')\r\n\r\n\t\tenglish['mini'].second = secondLabels\r\n\t})\r\n\r\n\tit('should get time to next update (round: \"floor\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\ttimeAgo.format(1000, 'twitter', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (round: \"round\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\ttimeAgo.format(1000, 'twitter', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t501\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (\"mini-now\" style) (round: \"floor\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// In 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'59s',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// In 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t// Right after zero point.\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: true`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tfuture: true,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: false`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Right after zero point (past).\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000 - 1\r\n\t\t])\r\n\t\t// 1 second ago.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1000\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (\"mini-now\" style) (round: \"round\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// In 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t500 + 1\r\n\t\t])\r\n\t\t// Almost in 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 500 + 1\r\n\t\t}).should.deep.equal([\r\n\t\t\t'59s',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// In 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59.5 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59.5 * 1000 + 1\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t// Right after zero point.\r\n\t\t\t500\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: true`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tfuture: true\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: false`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t500\r\n\t\t])\r\n\t\t// Right after zero point (past).\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t500 - 1\r\n\t\t])\r\n\t\t// 1 second ago.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 500\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1000\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (first step has non-zero \"minTime\") (round: \"floor\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\r\n\t\t// Future.\r\n\t\t// Inside the first step.\r\n\t\t// Updates soon.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: -0.5 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t0.5 * 1000 + 1\r\n\t\t])\r\n\r\n\t\t// Future.\r\n\t\t// Outside of the first step.\r\n\t\t// Updates right after zero point.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60 * 1000\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 1 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'',\r\n\t\t\t59 * 1000 + 1\r\n\t\t])\r\n\r\n\t\t// Zero point.\r\n\t\t// Outside of the first step.\r\n\t\t// Updates at the first step's `minTime`.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'',\r\n\t\t\t60 * 1000\r\n\t\t])\r\n\r\n\t\t// Past.\r\n\t\t// Inside the first step.\r\n\t\t// Updates at the next minute.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 60 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t60 * 1000\r\n\t\t])\r\n\r\n\t\t// Almost in 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'59s',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// In 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 second.\r\n\t\t// Updates right after the zero point.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: true`.\r\n\t\t// Updates right after zero point.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tfuture: true,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: false`.\r\n\t\t// Updates at the next second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Right after zero point (past).\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000 - 1\r\n\t\t])\r\n\t\t// 1 second ago.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1000\r\n\t\t])\r\n\t})\r\n\r\n\tit('should pass `formatAs()` in `step.format()`', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{\r\n\t\t\t\tformat(date, locale, { formatAs }) {\r\n\t\t\t\t\treturn formatAs('second', 1)\r\n\t\t\t\t}\r\n\t\t\t}]\r\n\t\t}).should.equal('in 1 second')\r\n\t})\r\n\r\n\tit('should support `polyfill: false` option', () => {\r\n\t\tconst timeAgo = new TimeAgo('en', { polyfill: false })\r\n\t\t// Still uses \"now\" labels, even when not polyfilled.\r\n\t\ttimeAgo.format(0, 'round', { now: 0 }).should.equal('just now')\r\n\t\ttimeAgo.format(1000, 'round', { now: 0 }).should.equal('in 1 second')\r\n\t})\r\n\r\n\tit('should not use Intl.NumberFormat if it is not available', () => {\r\n\t\tconst Intl = global.Intl\r\n\t\tglobal.Intl = undefined\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(1000, 'round', { now: 0 }).should.equal('in 1 second')\r\n\t\tglobal.Intl = Intl\r\n\t})\r\n\r\n\tit('should format `0` in past mode by default', () => {\r\n\t\tnew TimeAgo('en').format(0, {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'second'\r\n\t\t\t}]\r\n\t\t}, { now: 0 }).should.equal('0 seconds ago')\r\n\t})\r\n\r\n\tit('should format `0` in future mode when `future: true` option was passed', () => {\r\n\t\tnew TimeAgo('en').format(0, {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'second'\r\n\t\t\t}]\r\n\t\t}, { now: 0, future: true }).should.equal('in 0 seconds')\r\n\t})\r\n\r\n\tit('should throw if a step does not define `formatAs` or `format()`', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\texpect(() => timeAgo.format(Date.now() + 1000, {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{}]\r\n\t\t})).to.throw('Each step must define either `formatAs` or `format()`.')\r\n\t})\r\n\r\n\tit('should add default locale', () => {\r\n\t\tTimeAgo.getDefaultLocale().should.equal('en')\r\n\t\tTimeAgo.addDefaultLocale({\r\n\t\t\tlocale: 'el'\r\n\t\t})\r\n\t\tTimeAgo.getDefaultLocale().should.equal('el')\r\n\t\t// expect(() => {\r\n\t\t\tTimeAgo.addDefaultLocale({\r\n\t\t\t\tlocale: 'el'\r\n\t\t\t})\r\n\t\t// }).to.throw('`TimeAgo.addDefaultLocale()` can only be called once')\r\n\t\tTimeAgo.setDefaultLocale('en')\r\n\t})\r\n\r\n\tit('should support \"floor\" rounding', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(0.9 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('0s')\r\n\t\ttimeAgo.format(1 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('1s')\r\n\t\ttimeAgo.format(1.9 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('1s')\r\n\t\ttimeAgo.format(2 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('2s')\r\n\t\ttimeAgo.format(1.9 * 60 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('1m')\r\n\t\ttimeAgo.format(2 * 60 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('2m')\r\n\t})\r\n})"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TimeAgo.test.js","names":["TimeAgo","getLocaleData","english","type","setDefaultLocale","describe","it","timeAgo","format","Date","now","should","equal","future","labels","steps","formatAs","flavour","gradation","englishNow","addLocale","undefined","NumberFormat","Intl","englishLongTimeMinute","minute","past","mockedDate","getTime","thrower","units","custom","time","date","locale","style2","style","unit","factor","include","secondLabels","second","getTimeToNextUpdate","round","deep","minTime","polyfill","global","expect","to","getDefaultLocale","addDefaultLocale"],"sources":["../source/TimeAgo.test.js"],"sourcesContent":["import TimeAgo from './TimeAgo.js'\r\nimport { getLocaleData } from './LocaleDataStore.js'\r\n\r\n// Load locale specific relative date/time messages\r\nimport english from '../locale/en.json' assert { 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\ttimeAgo.format(Date.now()).should.equal('just now')\r\n\t\ttimeAgo.format(Date.now() + 20 * 1000).should.equal('in a moment')\r\n\t\ttimeAgo.format(Date.now() + 1 * 60 * 1000).should.equal('in 1 minute')\r\n\t\ttimeAgo.format(Date.now() + 4 * 60 * 1000).should.equal('in 4 minutes')\r\n\t})\r\n\r\n\tit('should tell `options` argument from `style` argument', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), 'mini-now').should.equal('now')\r\n\t\ttimeAgo.format(0, { future: true, now: 0 }).should.equal('in a moment')\r\n\t\ttimeAgo.format(0, { labels: 'mini', steps: [{ formatAs: 'now' }, { formatAs: 'second' }] }, { future: true, now: 0 }).should.equal('now')\r\n\t\ttimeAgo.format(0, { labels: ['mini'], steps: [{ formatAs: 'now' }, { formatAs: 'second' }] }, { future: true, now: 0 }).should.equal('now')\r\n\t\t// `flavour` is a legacy name of `labels` property.\r\n\t\ttimeAgo.format(0, { flavour: 'mini' }, { future: true, now: 0 }).should.equal('now')\r\n\t\ttimeAgo.format(0, { flavour: ['mini'] }, { future: true, now: 0 }).should.equal('now')\r\n\t\ttimeAgo.format(0, { steps: [{ formatAs: 'minute' }] }, { future: true, now: 0 }).should.equal('in 0 minutes')\r\n\t\t// `gradation` is a legacy name of `steps` property.\r\n\t\ttimeAgo.format(0, { gradation: [{ formatAs: 'minute' }] }, { future: true, now: 0 }).should.equal('in 0 minutes')\r\n\t})\r\n\r\n\tit('should try various label types until an appropriate one is found', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), { labels: ['exotic', 'short'] }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should support the legacy name \"flavour\" of \"labels\"', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), { labels: ['exotic', 'short'] }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should fallback to \"second.current\" for \"now\" when \"now\" is not defined', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst englishNow = english.now\r\n\t\tdelete english.now\r\n\t\tTimeAgo.addLocale(english)\r\n\t\tenglish.now = undefined\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('now')\r\n\t\tenglish.now = englishNow\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should not use Intl.NumberFormat if it is not available', () => {\r\n\t\tconst NumberFormat = Intl.NumberFormat\r\n\t\tdelete Intl.NumberFormat\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now() + 60 * 1000, { labels: 'long-time' }).should.equal('1 minute')\r\n\t\tIntl.NumberFormat = NumberFormat\r\n\t})\r\n\r\n\tit('should work when \"past\"/\"future\" messages are same for all quantifiers', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now() + 365 * 24 * 60 * 60 * 1000, { labels: 'short' }).should.equal('in 1 yr.')\r\n\t})\r\n\r\n\tit('should work when \"now\" is a string (does not differentiate between \"past\" and \"future\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst englishNow = english.now\r\n\t\tenglish.now = { now: 'now' }\r\n\t\tTimeAgo.addLocale(english)\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('now')\r\n\t\tenglish.now = englishNow\r\n\t\ttimeAgo.format(Date.now(), { labels: 'long' }).should.equal('just now')\r\n\t})\r\n\r\n\tit('should work when a unit has formatting rules for \"past\" and \"future\" which are strings (style: not \"long\", not \"short\", not \"narrow\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst englishLongTimeMinute = english['long-time'].minute\r\n\t\tenglish['long-time'].minute = {\r\n\t\t\tpast: '{0} minute(s) ago',\r\n\t\t\tfuture: 'in {0} minute(s)'\r\n\t\t}\r\n\t\tTimeAgo.addLocale(english)\r\n\t\t// Past.\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, { labels: 'long-time' }).should.equal('1 minute(s) ago')\r\n\t\t// Future (covers an \"else\" branch).\r\n\t\ttimeAgo.format(Date.now() + 60 * 1000, { labels: 'long-time' }).should.equal('in 1 minute(s)')\r\n\t\t// Undo.\r\n\t\tenglish['long-time'].minute = englishLongTimeMinute\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, { labels: 'long-time' }).should.equal('1 minute')\r\n\t})\r\n\r\n\tit(`should format \"now\" for \"past\" time`, () =>\r\n\t{\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now() + 10, { labels: ['long'] }).should.equal('in a moment')\r\n\t})\r\n\r\n\tit('should accept a string style name argument', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// \"mini\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'mini').should.equal('0s')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'mini').should.equal('1s')\r\n\t\t// \"mini-now\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'mini-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'mini-now').should.equal('1s')\r\n\t\t// \"mini-minute-now\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'mini-minute-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'mini-minute-now').should.equal('1m')\r\n\t\t// \"mini-minute\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'mini-minute').should.equal('0m')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'mini-minute').should.equal('1m')\r\n\t\t// \"twitter\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'twitter').should.equal('0s')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'twitter').should.equal('1s')\r\n\t\t// \"twitter-now\".\r\n\t\ttimeAgo.format(Date.now() - 0 * 1000, 'twitter-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 1 * 1000, 'twitter-now').should.equal('1s')\r\n\t\t// \"twitter-minute-now\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'twitter-minute-now').should.equal('now')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'twitter-minute-now').should.equal('1m')\r\n\t\t// \"twitter-minute\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'twitter-minute').should.equal('0m')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'twitter-minute').should.equal('1m')\r\n\t\t// \"twitter-first-minute\".\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'twitter-first-minute').should.equal('')\r\n\t\ttimeAgo.format(Date.now() - 60 * 1000, 'twitter-first-minute').should.equal('1m')\r\n\t\t// \"approximate\".\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'approximate').should.equal('just now')\r\n\t\t// \"convenient\" style was renamed to \"approximate\".\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'convenient').should.equal('just now')\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'round').should.equal('45 seconds ago')\r\n\t\t// \"default\" style was renamed to \"round\".\r\n\t\ttimeAgo.format(Date.now() - 45 * 1000, 'default').should.equal('45 seconds ago')\r\n\t\ttimeAgo.format(Date.now() - 29 * 1000, 'round-minute').should.equal('just now')\r\n\t\t// \"time\" style was renamed to \"approximate-time\".\r\n\t\ttimeAgo.format(Date.now() - 2 * 60 * 1000, 'time').should.equal('2 minutes')\r\n\t\ttimeAgo.format(Date.now() - 2 * 60 * 1000, 'approximate-time').should.equal('2 minutes')\r\n\t\ttimeAgo.format(Date.now(), 'exotic').should.equal('just now')\r\n\t})\r\n\r\n\tit('should accept empty constructor parameters', () => {\r\n\t\tconst timeAgo = new TimeAgo()\r\n\t\ttimeAgo.format(new Date()).should.equal('just now')\r\n\t})\r\n\r\n\tit('should accept \"mocked\" Dates when testing', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst mockedDate = { getTime: () => Date.now() }\r\n\t\ttimeAgo.format(mockedDate).should.equal('just now')\r\n\t})\r\n\r\n\tit('should not accept anything but Dates and timestamps', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\tconst thrower = () => timeAgo.format('Jan 14, 2017')\r\n\t\tthrower.should.throw('Unsupported relative time formatter input: string, Jan 14, 2017')\r\n\t})\r\n\r\n\tit('should return an empty string if the specified units are not available in locale data', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), { units: ['femtosecond'] }).should.equal('')\r\n\t})\r\n\r\n\tit('should format for a style with \"custom\" function', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\r\n\t\t// `custom` returns a string\r\n\t\ttimeAgo.format(Date.now(), {\r\n\t\t\tcustom({ now, time, date, locale }) {\r\n\t\t\t\treturn locale\r\n\t\t\t}\r\n\t\t})\r\n\t\t.should.equal('en')\r\n\r\n\t\t// `custom` returns `undefined`\r\n\t\ttimeAgo.format(Date.now(), {\r\n\t\t\tcustom({ now, time, date, locale }) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t})\r\n\t\t.should.equal('just now')\r\n\t})\r\n\r\n\tit('should format future dates', () => {\r\n\t\tnew TimeAgo('en').format(Date.now() + 60 * 60 * 1000).should.equal('in 1 hour')\r\n\t\tnew TimeAgo('ru').format(Date.now() + 60 * 1000).should.equal('через 1 минуту')\r\n\t})\r\n\r\n\tit('should accept \"future\" option', () => {\r\n\t\t// \"now\" unit.\r\n\t\tnew TimeAgo('en').format(Date.now()).should.equal('just now')\r\n\t\tnew TimeAgo('en').format(Date.now(), 'approximate', { future: true }).should.equal('in a moment')\r\n\r\n\t\t// Non-\"now\" unit, \"long\" style.\r\n\t\t// const style = {\r\n\t\t// \tgradation: [{\r\n\t\t// \t\tfactor: 1,\r\n\t\t// \t\tunit: 'second'\r\n\t\t// \t}],\r\n\t\t// \tlabels: 'long'\r\n\t\t// }\r\n\t\t// new TimeAgo('en').format(Date.now(), style).should.equal('0 seconds ago')\r\n\t\t// new TimeAgo('en').format(Date.now(), style, { future: true }).should.equal('in 0 seconds')\r\n\r\n\t\t// Non-\"now\" unit, \"mini\" style.\r\n\t\tconst style2 = {\r\n\t\t\tstyle: [{\r\n\t\t\t\tunit: 'year'\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini'\r\n\t\t}\r\n\t\tnew TimeAgo('ru').format(Date.now() - 5 * 365 * 24 * 60 * 60 * 1000, style2).should.equal('5 л')\r\n\t\tnew TimeAgo('ru').format(Date.now() - 5 * 365 * 24 * 60 * 60 * 1000, style2, { future: true }).should.equal('5 л')\r\n\t})\r\n\r\n\tit('should support the legacy properties: \"gradation\", \"flavour\", \"factor\", \"unit\", \"\\'tiny\\'\" labels style', () => {\r\n\t\t// Non-\"now\" unit, \"tiny\" style.\r\n\t\tconst style = {\r\n\t\t\tgradation: [{\r\n\t\t\t\tfactor: 5,\r\n\t\t\t\tunit: 'year'\r\n\t\t\t}],\r\n\t\t\tflavour: 'tiny'\r\n\t\t}\r\n\t\tnew TimeAgo('ru').format(Date.now() - 10 * 1000, style).should.equal('2 г')\r\n\t\tnew TimeAgo('ru').format(Date.now() - 10 * 1000, style, { future: true }).should.equal('2 г')\r\n\t})\r\n\r\n\tit('should have generated missing quantifier functions for locales that do not have it in CLDR data', () => {\r\n\t\tnew TimeAgo('ccp').format(Date.now() + 60 * 1000).should.include(' 𑄟𑄨𑄚𑄨𑄘𑄬')\r\n\t})\r\n\r\n\tit('should throw for non-existing locales', () => {\r\n\t\t(() => TimeAgo.addLocale()).should.throw('No locale data passed')\r\n\t})\r\n\r\n\tit('should choose \"future\" variant of a label for `0` if \"future: true\" option is passed', () => {\r\n\t\tTimeAgo.addLocale(english)\r\n\t\tconst secondLabels = english['mini'].second\r\n\t\tenglish['mini'].second = {\r\n\t\t\tpast: '{0} seconds ago',\r\n\t\t\tfuture: 'in {0} seconds'\r\n\t\t}\r\n\r\n\t\tnew TimeAgo('en').format(Date.now(), {\r\n\t\t\tsteps: [{\r\n\t\t\t\tunit: 'second'\r\n\t\t\t}],\r\n\t\t\t// Uses \"mini\" labels so that it doesn't use `Intl.RelativeTimeFormat`.\r\n\t\t\tlabels: 'mini'\r\n\t\t}).should.equal('0 seconds ago')\r\n\r\n\t\tnew TimeAgo('en').format(Date.now(), {\r\n\t\t\tsteps: [{\r\n\t\t\t\tunit: 'second'\r\n\t\t\t}],\r\n\t\t\t// Uses \"mini\" labels so that it doesn't use `Intl.RelativeTimeFormat`.\r\n\t\t\tlabels: 'mini'\r\n\t\t}, {\r\n\t\t\tfuture: true\r\n\t\t}).should.equal('in 0 seconds')\r\n\r\n\t\tenglish['mini'].second = secondLabels\r\n\t})\r\n\r\n\tit('should get time to next update (round: \"floor\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\ttimeAgo.format(1000, 'twitter', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (round: \"round\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// in 1 second -> in 0 seconds.\r\n\t\ttimeAgo.format(1000, 'twitter', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t501\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (\"mini-now\" style) (round: \"floor\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// In 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'59s',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// In 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t// Right after zero point.\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: true`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tfuture: true,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: false`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Right after zero point (past).\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000 - 1\r\n\t\t])\r\n\t\t// 1 second ago.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1000\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (\"mini-now\" style) (round: \"round\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\t// In 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 0\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t500 + 1\r\n\t\t])\r\n\t\t// Almost in 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 500 + 1\r\n\t\t}).should.deep.equal([\r\n\t\t\t'59s',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// In 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59.5 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59.5 * 1000 + 1\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t// Right after zero point.\r\n\t\t\t500\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: true`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tfuture: true\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: false`.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t500\r\n\t\t])\r\n\t\t// Right after zero point (past).\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t500 - 1\r\n\t\t])\r\n\t\t// 1 second ago.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 500\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1000\r\n\t\t])\r\n\t})\r\n\r\n\tit('should get time to next update (first step has non-zero \"minTime\") (round: \"floor\")', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\r\n\t\t// Future.\r\n\t\t// Inside the first step.\r\n\t\t// Updates soon.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: -0.5 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t0.5 * 1000 + 1\r\n\t\t])\r\n\r\n\t\t// Future.\r\n\t\t// Outside of the first step.\r\n\t\t// Updates right after zero point.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60 * 1000\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 1 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'',\r\n\t\t\t59 * 1000 + 1\r\n\t\t])\r\n\r\n\t\t// Zero point.\r\n\t\t// Outside of the first step.\r\n\t\t// Updates at the first step's `minTime`.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'',\r\n\t\t\t60 * 1000\r\n\t\t])\r\n\r\n\t\t// Past.\r\n\t\t// Inside the first step.\r\n\t\t// Updates at the next minute.\r\n\t\ttimeAgo.format(60 * 1000, {\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'minute',\r\n\t\t\t\tminTime: 60\r\n\t\t\t}],\r\n\t\t\tlabels: 'mini',\r\n\t\t\tround: 'floor'\r\n\t\t}, {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 60 * 1000\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1m',\r\n\t\t\t60 * 1000\r\n\t\t])\r\n\r\n\t\t// Almost in 1 minute.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'59s',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// In 1 second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Almost in 1 second.\r\n\t\t// Updates right after the zero point.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 59 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: true`.\r\n\t\t// Updates right after zero point.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tfuture: true,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1\r\n\t\t])\r\n\t\t// Zero point (future to past).\r\n\t\t// `future: false`.\r\n\t\t// Updates at the next second.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000\r\n\t\t])\r\n\t\t// Right after zero point (past).\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'now',\r\n\t\t\t1000 - 1\r\n\t\t])\r\n\t\t// 1 second ago.\r\n\t\ttimeAgo.format(60 * 1000, 'mini-now', {\r\n\t\t\tgetTimeToNextUpdate: true,\r\n\t\t\tnow: 60 * 1000 + 1000,\r\n\t\t\tround: 'floor'\r\n\t\t}).should.deep.equal([\r\n\t\t\t'1s',\r\n\t\t\t1000\r\n\t\t])\r\n\t})\r\n\r\n\tit('should pass `formatAs()` in `step.format()`', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(Date.now(), {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{\r\n\t\t\t\tformat(date, locale, { formatAs }) {\r\n\t\t\t\t\treturn formatAs('second', 1)\r\n\t\t\t\t}\r\n\t\t\t}]\r\n\t\t}).should.equal('in 1 second')\r\n\t})\r\n\r\n\tit('should support `polyfill: false` option', () => {\r\n\t\tconst timeAgo = new TimeAgo('en', { polyfill: false })\r\n\t\t// Still uses \"now\" labels, even when not polyfilled.\r\n\t\ttimeAgo.format(0, 'round', { now: 0 }).should.equal('just now')\r\n\t\ttimeAgo.format(1000, 'round', { now: 0 }).should.equal('in 1 second')\r\n\t})\r\n\r\n\tit('should not use Intl.NumberFormat if it is not available', () => {\r\n\t\tconst Intl = global.Intl\r\n\t\tglobal.Intl = undefined\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(1000, 'round', { now: 0 }).should.equal('in 1 second')\r\n\t\tglobal.Intl = Intl\r\n\t})\r\n\r\n\tit('should format `0` in past mode by default', () => {\r\n\t\tnew TimeAgo('en').format(0, {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'second'\r\n\t\t\t}]\r\n\t\t}, { now: 0 }).should.equal('0 seconds ago')\r\n\t})\r\n\r\n\tit('should format `0` in future mode when `future: true` option was passed', () => {\r\n\t\tnew TimeAgo('en').format(0, {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{\r\n\t\t\t\tformatAs: 'second'\r\n\t\t\t}]\r\n\t\t}, { now: 0, future: true }).should.equal('in 0 seconds')\r\n\t})\r\n\r\n\tit('should throw if a step does not define `formatAs` or `format()`', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\texpect(() => timeAgo.format(Date.now() + 1000, {\r\n\t\t\tlabels: 'long',\r\n\t\t\tsteps: [{}]\r\n\t\t})).to.throw('Each step must define either `formatAs` or `format()`.')\r\n\t})\r\n\r\n\tit('should add default locale', () => {\r\n\t\tTimeAgo.getDefaultLocale().should.equal('en')\r\n\t\tTimeAgo.addDefaultLocale({\r\n\t\t\tlocale: 'el'\r\n\t\t})\r\n\t\tTimeAgo.getDefaultLocale().should.equal('el')\r\n\t\t// expect(() => {\r\n\t\t\tTimeAgo.addDefaultLocale({\r\n\t\t\t\tlocale: 'el'\r\n\t\t\t})\r\n\t\t// }).to.throw('`TimeAgo.addDefaultLocale()` can only be called once')\r\n\t\tTimeAgo.setDefaultLocale('en')\r\n\t})\r\n\r\n\tit('should support \"floor\" rounding', () => {\r\n\t\tconst timeAgo = new TimeAgo('en')\r\n\t\ttimeAgo.format(0.9 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('0s')\r\n\t\ttimeAgo.format(1 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('1s')\r\n\t\ttimeAgo.format(1.9 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('1s')\r\n\t\ttimeAgo.format(2 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('2s')\r\n\t\ttimeAgo.format(1.9 * 60 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('1m')\r\n\t\ttimeAgo.format(2 * 60 * 1000, 'twitter', { now: 0, round: 'floor' }).should.equal('2m')\r\n\t})\r\n})"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "javascript-time-ago",
|
|
3
|
-
"version": "2.5.
|
|
3
|
+
"version": "2.5.10",
|
|
4
4
|
"description": "Localized relative date/time formatting",
|
|
5
5
|
"main": "index.cjs",
|
|
6
6
|
"module": "index.js",
|
|
@@ -104,6 +104,14 @@
|
|
|
104
104
|
"import": "./locale/bg.json.js",
|
|
105
105
|
"require": "./locale/bg.json"
|
|
106
106
|
},
|
|
107
|
+
"./locale/bgc": {
|
|
108
|
+
"import": "./locale/bgc.json.js",
|
|
109
|
+
"require": "./locale/bgc.json"
|
|
110
|
+
},
|
|
111
|
+
"./locale/bgc.json": {
|
|
112
|
+
"import": "./locale/bgc.json.js",
|
|
113
|
+
"require": "./locale/bgc.json"
|
|
114
|
+
},
|
|
107
115
|
"./locale/bn": {
|
|
108
116
|
"import": "./locale/bn.json.js",
|
|
109
117
|
"require": "./locale/bn.json"
|
|
@@ -192,6 +200,14 @@
|
|
|
192
200
|
"import": "./locale/cs.json.js",
|
|
193
201
|
"require": "./locale/cs.json"
|
|
194
202
|
},
|
|
203
|
+
"./locale/cv": {
|
|
204
|
+
"import": "./locale/cv.json.js",
|
|
205
|
+
"require": "./locale/cv.json"
|
|
206
|
+
},
|
|
207
|
+
"./locale/cv.json": {
|
|
208
|
+
"import": "./locale/cv.json.js",
|
|
209
|
+
"require": "./locale/cv.json"
|
|
210
|
+
},
|
|
195
211
|
"./locale/cy": {
|
|
196
212
|
"import": "./locale/cy.json.js",
|
|
197
213
|
"require": "./locale/cy.json"
|
|
@@ -1016,6 +1032,14 @@
|
|
|
1016
1032
|
"import": "./locale/en.json.js",
|
|
1017
1033
|
"require": "./locale/en.json"
|
|
1018
1034
|
},
|
|
1035
|
+
"./locale/eo": {
|
|
1036
|
+
"import": "./locale/eo.json.js",
|
|
1037
|
+
"require": "./locale/eo.json"
|
|
1038
|
+
},
|
|
1039
|
+
"./locale/eo.json": {
|
|
1040
|
+
"import": "./locale/eo.json.js",
|
|
1041
|
+
"require": "./locale/eo.json"
|
|
1042
|
+
},
|
|
1019
1043
|
"./locale/es-419": {
|
|
1020
1044
|
"import": "./locale/es-419.json.js",
|
|
1021
1045
|
"require": "./locale/es-419.json"
|
|
@@ -1528,6 +1552,14 @@
|
|
|
1528
1552
|
"import": "./locale/kok.json.js",
|
|
1529
1553
|
"require": "./locale/kok.json"
|
|
1530
1554
|
},
|
|
1555
|
+
"./locale/ks": {
|
|
1556
|
+
"import": "./locale/ks.json.js",
|
|
1557
|
+
"require": "./locale/ks.json"
|
|
1558
|
+
},
|
|
1559
|
+
"./locale/ks.json": {
|
|
1560
|
+
"import": "./locale/ks.json.js",
|
|
1561
|
+
"require": "./locale/ks.json"
|
|
1562
|
+
},
|
|
1531
1563
|
"./locale/ksh": {
|
|
1532
1564
|
"import": "./locale/ksh.json.js",
|
|
1533
1565
|
"require": "./locale/ksh.json"
|
|
@@ -1592,6 +1624,22 @@
|
|
|
1592
1624
|
"import": "./locale/lv.json.js",
|
|
1593
1625
|
"require": "./locale/lv.json"
|
|
1594
1626
|
},
|
|
1627
|
+
"./locale/mai": {
|
|
1628
|
+
"import": "./locale/mai.json.js",
|
|
1629
|
+
"require": "./locale/mai.json"
|
|
1630
|
+
},
|
|
1631
|
+
"./locale/mai.json": {
|
|
1632
|
+
"import": "./locale/mai.json.js",
|
|
1633
|
+
"require": "./locale/mai.json"
|
|
1634
|
+
},
|
|
1635
|
+
"./locale/mi": {
|
|
1636
|
+
"import": "./locale/mi.json.js",
|
|
1637
|
+
"require": "./locale/mi.json"
|
|
1638
|
+
},
|
|
1639
|
+
"./locale/mi.json": {
|
|
1640
|
+
"import": "./locale/mi.json.js",
|
|
1641
|
+
"require": "./locale/mi.json"
|
|
1642
|
+
},
|
|
1595
1643
|
"./locale/mk": {
|
|
1596
1644
|
"import": "./locale/mk.json.js",
|
|
1597
1645
|
"require": "./locale/mk.json"
|
|
@@ -1856,6 +1904,14 @@
|
|
|
1856
1904
|
"import": "./locale/qu.json.js",
|
|
1857
1905
|
"require": "./locale/qu.json"
|
|
1858
1906
|
},
|
|
1907
|
+
"./locale/raj": {
|
|
1908
|
+
"import": "./locale/raj.json.js",
|
|
1909
|
+
"require": "./locale/raj.json"
|
|
1910
|
+
},
|
|
1911
|
+
"./locale/raj.json": {
|
|
1912
|
+
"import": "./locale/raj.json.js",
|
|
1913
|
+
"require": "./locale/raj.json"
|
|
1914
|
+
},
|
|
1859
1915
|
"./locale/rm": {
|
|
1860
1916
|
"import": "./locale/rm.json.js",
|
|
1861
1917
|
"require": "./locale/rm.json"
|
|
@@ -2160,6 +2216,14 @@
|
|
|
2160
2216
|
"import": "./locale/wo.json.js",
|
|
2161
2217
|
"require": "./locale/wo.json"
|
|
2162
2218
|
},
|
|
2219
|
+
"./locale/xh": {
|
|
2220
|
+
"import": "./locale/xh.json.js",
|
|
2221
|
+
"require": "./locale/xh.json"
|
|
2222
|
+
},
|
|
2223
|
+
"./locale/xh.json": {
|
|
2224
|
+
"import": "./locale/xh.json.js",
|
|
2225
|
+
"require": "./locale/xh.json"
|
|
2226
|
+
},
|
|
2163
2227
|
"./locale/yi": {
|
|
2164
2228
|
"import": "./locale/yi.json.js",
|
|
2165
2229
|
"require": "./locale/yi.json"
|
|
@@ -2279,12 +2343,13 @@
|
|
|
2279
2343
|
"./load-all-locales/index.cjs.js"
|
|
2280
2344
|
],
|
|
2281
2345
|
"dependencies": {
|
|
2282
|
-
"relative-time-format": "^1.1.
|
|
2346
|
+
"relative-time-format": "^1.1.6"
|
|
2283
2347
|
},
|
|
2284
2348
|
"devDependencies": {
|
|
2285
2349
|
"@babel/cli": "^7.17.10",
|
|
2286
2350
|
"@babel/core": "^7.17.12",
|
|
2287
2351
|
"@babel/node": "^7.17.10",
|
|
2352
|
+
"@babel/plugin-syntax-import-assertions": "^7.20.0",
|
|
2288
2353
|
"@babel/plugin-transform-destructuring": "^7.17.12",
|
|
2289
2354
|
"@babel/plugin-transform-for-of": "^7.17.12",
|
|
2290
2355
|
"@babel/polyfill": "^7.0.0",
|