@visulima/humanizer 1.0.2 → 1.0.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/LICENSE.md +46 -0
- package/dist/index.cjs +1 -12
- package/dist/index.d.cts +2 -2
- package/dist/index.d.mts +38 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.mjs +1 -0
- package/dist/language/af.cjs +1 -9
- package/dist/language/af.d.cts +1 -1
- package/dist/language/af.d.mts +5 -0
- package/dist/language/af.d.ts +1 -1
- package/dist/language/af.mjs +1 -0
- package/dist/language/am.cjs +1 -0
- package/dist/language/am.d.cts +5 -0
- package/dist/language/am.d.mts +5 -0
- package/dist/language/am.d.ts +5 -0
- package/dist/language/am.mjs +1 -0
- package/dist/language/ar.cjs +1 -9
- package/dist/language/ar.d.cts +2 -1
- package/dist/language/ar.d.mts +21 -0
- package/dist/language/ar.d.ts +2 -1
- package/dist/language/ar.mjs +1 -0
- package/dist/language/bg.cjs +1 -10
- package/dist/language/bg.d.cts +1 -1
- package/dist/language/bg.d.mts +5 -0
- package/dist/language/bg.d.ts +1 -1
- package/dist/language/bg.mjs +1 -0
- package/dist/language/bn.cjs +1 -9
- package/dist/language/bn.d.cts +1 -1
- package/dist/language/bn.d.mts +5 -0
- package/dist/language/bn.d.ts +1 -1
- package/dist/language/bn.mjs +1 -0
- package/dist/language/ca.cjs +1 -9
- package/dist/language/ca.d.cts +1 -1
- package/dist/language/ca.d.mts +5 -0
- package/dist/language/ca.d.ts +1 -1
- package/dist/language/ca.mjs +1 -0
- package/dist/language/ckb.cjs +1 -9
- package/dist/language/ckb.d.cts +1 -1
- package/dist/language/ckb.d.mts +5 -0
- package/dist/language/ckb.d.ts +1 -1
- package/dist/language/ckb.mjs +1 -0
- package/dist/language/cs.cjs +1 -10
- package/dist/language/cs.d.cts +1 -1
- package/dist/language/cs.d.mts +5 -0
- package/dist/language/cs.d.ts +1 -1
- package/dist/language/cs.mjs +1 -0
- package/dist/language/cy.cjs +1 -9
- package/dist/language/cy.d.cts +1 -1
- package/dist/language/cy.d.mts +5 -0
- package/dist/language/cy.d.ts +1 -1
- package/dist/language/cy.mjs +1 -0
- package/dist/language/da.cjs +1 -9
- package/dist/language/da.d.cts +1 -1
- package/dist/language/da.d.mts +5 -0
- package/dist/language/da.d.ts +1 -1
- package/dist/language/da.mjs +1 -0
- package/dist/language/de.cjs +1 -9
- package/dist/language/de.d.cts +1 -1
- package/dist/language/de.d.mts +5 -0
- package/dist/language/de.d.ts +1 -1
- package/dist/language/de.mjs +1 -0
- package/dist/language/el.cjs +1 -9
- package/dist/language/el.d.cts +1 -1
- package/dist/language/el.d.mts +5 -0
- package/dist/language/el.d.ts +1 -1
- package/dist/language/el.mjs +1 -0
- package/dist/language/en.cjs +1 -13
- package/dist/language/en.d.cts +1 -1
- package/dist/language/en.d.mts +5 -0
- package/dist/language/en.d.ts +1 -1
- package/dist/language/en.mjs +1 -0
- package/dist/language/eo.cjs +1 -9
- package/dist/language/eo.d.cts +1 -1
- package/dist/language/eo.d.mts +5 -0
- package/dist/language/eo.d.ts +1 -1
- package/dist/language/eo.mjs +1 -0
- package/dist/language/es.cjs +1 -9
- package/dist/language/es.d.cts +1 -1
- package/dist/language/es.d.mts +5 -0
- package/dist/language/es.d.ts +1 -1
- package/dist/language/es.mjs +1 -0
- package/dist/language/et.cjs +1 -9
- package/dist/language/et.d.cts +1 -1
- package/dist/language/et.d.mts +5 -0
- package/dist/language/et.d.ts +1 -1
- package/dist/language/et.mjs +1 -0
- package/dist/language/eu.cjs +1 -9
- package/dist/language/eu.d.cts +1 -1
- package/dist/language/eu.d.mts +5 -0
- package/dist/language/eu.d.ts +1 -1
- package/dist/language/eu.mjs +1 -0
- package/dist/language/fa.cjs +1 -9
- package/dist/language/fa.d.cts +1 -1
- package/dist/language/fa.d.mts +5 -0
- package/dist/language/fa.d.ts +1 -1
- package/dist/language/fa.mjs +1 -0
- package/dist/language/fi.cjs +1 -9
- package/dist/language/fi.d.cts +1 -1
- package/dist/language/fi.d.mts +5 -0
- package/dist/language/fi.d.ts +1 -1
- package/dist/language/fi.mjs +1 -0
- package/dist/language/fo.cjs +1 -9
- package/dist/language/fo.d.cts +1 -1
- package/dist/language/fo.d.mts +5 -0
- package/dist/language/fo.d.ts +1 -1
- package/dist/language/fo.mjs +1 -0
- package/dist/language/fr.cjs +1 -9
- package/dist/language/fr.d.cts +1 -1
- package/dist/language/fr.d.mts +5 -0
- package/dist/language/fr.d.ts +1 -1
- package/dist/language/fr.mjs +1 -0
- package/dist/language/he.cjs +1 -9
- package/dist/language/he.d.cts +1 -1
- package/dist/language/he.d.mts +5 -0
- package/dist/language/he.d.ts +1 -1
- package/dist/language/he.mjs +1 -0
- package/dist/language/hi.cjs +1 -9
- package/dist/language/hi.d.cts +1 -1
- package/dist/language/hi.d.mts +5 -0
- package/dist/language/hi.d.ts +1 -1
- package/dist/language/hi.mjs +1 -0
- package/dist/language/hr.cjs +1 -9
- package/dist/language/hr.d.cts +1 -1
- package/dist/language/hr.d.mts +5 -0
- package/dist/language/hr.d.ts +1 -1
- package/dist/language/hr.mjs +1 -0
- package/dist/language/hu.cjs +1 -9
- package/dist/language/hu.d.cts +1 -1
- package/dist/language/hu.d.mts +5 -0
- package/dist/language/hu.d.ts +1 -1
- package/dist/language/hu.mjs +1 -0
- package/dist/language/id.cjs +1 -9
- package/dist/language/id.d.cts +1 -1
- package/dist/language/id.d.mts +5 -0
- package/dist/language/id.d.ts +1 -1
- package/dist/language/id.mjs +1 -0
- package/dist/language/is.cjs +1 -9
- package/dist/language/is.d.cts +1 -1
- package/dist/language/is.d.mts +5 -0
- package/dist/language/is.d.ts +1 -1
- package/dist/language/is.mjs +1 -0
- package/dist/language/it.cjs +1 -9
- package/dist/language/it.d.cts +1 -1
- package/dist/language/it.d.mts +5 -0
- package/dist/language/it.d.ts +1 -1
- package/dist/language/it.mjs +1 -0
- package/dist/language/ja.cjs +1 -9
- package/dist/language/ja.d.cts +1 -1
- package/dist/language/ja.d.mts +5 -0
- package/dist/language/ja.d.ts +1 -1
- package/dist/language/ja.mjs +1 -0
- package/dist/language/km.cjs +1 -9
- package/dist/language/km.d.cts +1 -1
- package/dist/language/km.d.mts +5 -0
- package/dist/language/km.d.ts +1 -1
- package/dist/language/km.mjs +1 -0
- package/dist/language/kn.cjs +1 -9
- package/dist/language/kn.d.cts +1 -1
- package/dist/language/kn.d.mts +5 -0
- package/dist/language/kn.d.ts +1 -1
- package/dist/language/kn.mjs +1 -0
- package/dist/language/ko.cjs +1 -9
- package/dist/language/ko.d.cts +1 -1
- package/dist/language/ko.d.mts +5 -0
- package/dist/language/ko.d.ts +1 -1
- package/dist/language/ko.mjs +1 -0
- package/dist/language/ku.cjs +1 -9
- package/dist/language/ku.d.cts +1 -1
- package/dist/language/ku.d.mts +5 -0
- package/dist/language/ku.d.ts +1 -1
- package/dist/language/ku.mjs +1 -0
- package/dist/language/lo.cjs +1 -9
- package/dist/language/lo.d.cts +1 -1
- package/dist/language/lo.d.mts +5 -0
- package/dist/language/lo.d.ts +1 -1
- package/dist/language/lo.mjs +1 -0
- package/dist/language/lt.cjs +1 -9
- package/dist/language/lt.d.cts +1 -1
- package/dist/language/lt.d.mts +5 -0
- package/dist/language/lt.d.ts +1 -1
- package/dist/language/lt.mjs +1 -0
- package/dist/language/lv.cjs +1 -9
- package/dist/language/lv.d.cts +1 -1
- package/dist/language/lv.d.mts +5 -0
- package/dist/language/lv.d.ts +1 -1
- package/dist/language/lv.mjs +1 -0
- package/dist/language/mk.cjs +1 -9
- package/dist/language/mk.d.cts +1 -1
- package/dist/language/mk.d.mts +5 -0
- package/dist/language/mk.d.ts +1 -1
- package/dist/language/mk.mjs +1 -0
- package/dist/language/mn.cjs +1 -9
- package/dist/language/mn.d.cts +1 -1
- package/dist/language/mn.d.mts +5 -0
- package/dist/language/mn.d.ts +1 -1
- package/dist/language/mn.mjs +1 -0
- package/dist/language/mr.cjs +1 -9
- package/dist/language/mr.d.cts +1 -1
- package/dist/language/mr.d.mts +5 -0
- package/dist/language/mr.d.ts +1 -1
- package/dist/language/mr.mjs +1 -0
- package/dist/language/ms.cjs +1 -9
- package/dist/language/ms.d.cts +1 -1
- package/dist/language/ms.d.mts +5 -0
- package/dist/language/ms.d.ts +1 -1
- package/dist/language/ms.mjs +1 -0
- package/dist/language/nl.cjs +1 -9
- package/dist/language/nl.d.cts +1 -1
- package/dist/language/nl.d.mts +5 -0
- package/dist/language/nl.d.ts +1 -1
- package/dist/language/nl.mjs +1 -0
- package/dist/language/no.cjs +1 -9
- package/dist/language/no.d.cts +1 -1
- package/dist/language/no.d.mts +5 -0
- package/dist/language/no.d.ts +1 -1
- package/dist/language/no.mjs +1 -0
- package/dist/language/pl.cjs +1 -9
- package/dist/language/pl.d.cts +1 -1
- package/dist/language/pl.d.mts +5 -0
- package/dist/language/pl.d.ts +1 -1
- package/dist/language/pl.mjs +1 -0
- package/dist/language/pt.cjs +1 -9
- package/dist/language/pt.d.cts +1 -1
- package/dist/language/pt.d.mts +5 -0
- package/dist/language/pt.d.ts +1 -1
- package/dist/language/pt.mjs +1 -0
- package/dist/language/ro.cjs +1 -9
- package/dist/language/ro.d.cts +1 -1
- package/dist/language/ro.d.mts +5 -0
- package/dist/language/ro.d.ts +1 -1
- package/dist/language/ro.mjs +1 -0
- package/dist/language/ru.cjs +1 -10
- package/dist/language/ru.d.cts +1 -1
- package/dist/language/ru.d.mts +5 -0
- package/dist/language/ru.d.ts +1 -1
- package/dist/language/ru.mjs +1 -0
- package/dist/language/sk.cjs +1 -10
- package/dist/language/sk.d.cts +1 -1
- package/dist/language/sk.d.mts +5 -0
- package/dist/language/sk.d.ts +1 -1
- package/dist/language/sk.mjs +1 -0
- package/dist/language/sl.cjs +1 -9
- package/dist/language/sl.d.cts +1 -1
- package/dist/language/sl.d.mts +5 -0
- package/dist/language/sl.d.ts +1 -1
- package/dist/language/sl.mjs +1 -0
- package/dist/language/sq.cjs +1 -9
- package/dist/language/sq.d.cts +1 -1
- package/dist/language/sq.d.mts +5 -0
- package/dist/language/sq.d.ts +1 -1
- package/dist/language/sq.mjs +1 -0
- package/dist/language/sr.cjs +1 -10
- package/dist/language/sr.d.cts +1 -1
- package/dist/language/sr.d.mts +5 -0
- package/dist/language/sr.d.ts +1 -1
- package/dist/language/sr.mjs +1 -0
- package/dist/language/sv.cjs +1 -9
- package/dist/language/sv.d.cts +1 -1
- package/dist/language/sv.d.mts +5 -0
- package/dist/language/sv.d.ts +1 -1
- package/dist/language/sv.mjs +1 -0
- package/dist/language/sw.cjs +1 -9
- package/dist/language/sw.d.cts +2 -1
- package/dist/language/sw.d.mts +21 -0
- package/dist/language/sw.d.ts +2 -1
- package/dist/language/sw.mjs +1 -0
- package/dist/language/ta.cjs +1 -9
- package/dist/language/ta.d.cts +1 -1
- package/dist/language/ta.d.mts +5 -0
- package/dist/language/ta.d.ts +1 -1
- package/dist/language/ta.mjs +1 -0
- package/dist/language/te.cjs +1 -9
- package/dist/language/te.d.cts +1 -1
- package/dist/language/te.d.mts +5 -0
- package/dist/language/te.d.ts +1 -1
- package/dist/language/te.mjs +1 -0
- package/dist/language/th.cjs +1 -9
- package/dist/language/th.d.cts +1 -1
- package/dist/language/th.d.mts +5 -0
- package/dist/language/th.d.ts +1 -1
- package/dist/language/th.mjs +1 -0
- package/dist/language/tr.cjs +1 -9
- package/dist/language/tr.d.cts +1 -1
- package/dist/language/tr.d.mts +5 -0
- package/dist/language/tr.d.ts +1 -1
- package/dist/language/tr.mjs +1 -0
- package/dist/language/uk.cjs +1 -10
- package/dist/language/uk.d.cts +1 -1
- package/dist/language/uk.d.mts +5 -0
- package/dist/language/uk.d.ts +1 -1
- package/dist/language/uk.mjs +1 -0
- package/dist/language/ur.cjs +1 -9
- package/dist/language/ur.d.cts +1 -1
- package/dist/language/ur.d.mts +5 -0
- package/dist/language/ur.d.ts +1 -1
- package/dist/language/ur.mjs +1 -0
- package/dist/language/util/create-duration-language.cjs +1 -0
- package/dist/language/util/create-duration-language.d.cts +5 -0
- package/dist/language/util/create-duration-language.d.mts +5 -0
- package/dist/language/util/create-duration-language.d.ts +5 -0
- package/dist/language/util/create-duration-language.mjs +1 -0
- package/dist/language/util/duration/get-czech-or-slovak-form.cjs +1 -0
- package/dist/language/util/duration/get-czech-or-slovak-form.d.cts +3 -0
- package/dist/language/util/duration/get-czech-or-slovak-form.d.mts +3 -0
- package/dist/language/util/duration/get-czech-or-slovak-form.d.ts +3 -0
- package/dist/language/util/duration/get-czech-or-slovak-form.mjs +1 -0
- package/dist/language/util/duration/get-slavic-form.cjs +1 -0
- package/dist/language/util/duration/get-slavic-form.d.cts +3 -0
- package/dist/language/util/duration/get-slavic-form.d.mts +3 -0
- package/dist/language/util/duration/get-slavic-form.d.ts +3 -0
- package/dist/language/util/duration/get-slavic-form.mjs +1 -0
- package/dist/language/util/validate-duration-language.cjs +1 -0
- package/dist/language/util/validate-duration-language.d.cts +5 -0
- package/dist/language/util/validate-duration-language.d.mts +5 -0
- package/dist/language/util/validate-duration-language.d.ts +5 -0
- package/dist/language/util/validate-duration-language.mjs +1 -0
- package/dist/language/uz.cjs +1 -9
- package/dist/language/uz.d.cts +1 -1
- package/dist/language/uz.d.mts +5 -0
- package/dist/language/uz.d.ts +1 -1
- package/dist/language/uz.mjs +1 -0
- package/dist/language/uz_CYR.cjs +1 -9
- package/dist/language/uz_CYR.d.cts +1 -1
- package/dist/language/uz_CYR.d.mts +5 -0
- package/dist/language/uz_CYR.d.ts +1 -1
- package/dist/language/uz_CYR.mjs +1 -0
- package/dist/language/vi.cjs +1 -9
- package/dist/language/vi.d.cts +1 -1
- package/dist/language/vi.d.mts +5 -0
- package/dist/language/vi.d.ts +1 -1
- package/dist/language/vi.mjs +1 -0
- package/dist/language/zh_CN.cjs +1 -9
- package/dist/language/zh_CN.d.cts +1 -1
- package/dist/language/zh_CN.d.mts +5 -0
- package/dist/language/zh_CN.d.ts +1 -1
- package/dist/language/zh_CN.mjs +1 -0
- package/dist/language/zh_TW.cjs +1 -9
- package/dist/language/zh_TW.d.cts +1 -1
- package/dist/language/zh_TW.d.mts +5 -0
- package/dist/language/zh_TW.d.ts +1 -1
- package/dist/language/zh_TW.mjs +1 -0
- package/dist/{types-nxmwwJwo.d.cts → shared/humanizer.Wuwd0WUC.d.cts} +1 -0
- package/dist/{types-nxmwwJwo.d.ts → shared/humanizer.Wuwd0WUC.d.mts} +1 -0
- package/dist/shared/humanizer.Wuwd0WUC.d.ts +64 -0
- package/package.json +15 -79
- package/dist/chunk-2O4I6OAE.cjs +0 -7
- package/dist/chunk-2O4I6OAE.cjs.map +0 -1
- package/dist/chunk-435FPGI5.cjs +0 -7
- package/dist/chunk-435FPGI5.cjs.map +0 -1
- package/dist/chunk-6XBKSCXN.cjs +0 -7
- package/dist/chunk-6XBKSCXN.cjs.map +0 -1
- package/dist/chunk-A5YF7CWO.js +0 -7
- package/dist/chunk-A5YF7CWO.js.map +0 -1
- package/dist/chunk-AVPLJXJK.js +0 -5
- package/dist/chunk-AVPLJXJK.js.map +0 -1
- package/dist/chunk-G52OTITJ.cjs +0 -9
- package/dist/chunk-G52OTITJ.cjs.map +0 -1
- package/dist/chunk-I3ABTD2S.js +0 -5
- package/dist/chunk-I3ABTD2S.js.map +0 -1
- package/dist/chunk-MPZEKYC6.js +0 -5
- package/dist/chunk-MPZEKYC6.js.map +0 -1
- package/dist/index.cjs.map +0 -1
- package/dist/index.js +0 -8
- package/dist/index.js.map +0 -1
- package/dist/language/af.cjs.map +0 -1
- package/dist/language/af.js +0 -7
- package/dist/language/af.js.map +0 -1
- package/dist/language/ar.cjs.map +0 -1
- package/dist/language/ar.js +0 -7
- package/dist/language/ar.js.map +0 -1
- package/dist/language/bg.cjs.map +0 -1
- package/dist/language/bg.js +0 -8
- package/dist/language/bg.js.map +0 -1
- package/dist/language/bn.cjs.map +0 -1
- package/dist/language/bn.js +0 -7
- package/dist/language/bn.js.map +0 -1
- package/dist/language/ca.cjs.map +0 -1
- package/dist/language/ca.js +0 -7
- package/dist/language/ca.js.map +0 -1
- package/dist/language/ckb.cjs.map +0 -1
- package/dist/language/ckb.js +0 -7
- package/dist/language/ckb.js.map +0 -1
- package/dist/language/cs.cjs.map +0 -1
- package/dist/language/cs.js +0 -8
- package/dist/language/cs.js.map +0 -1
- package/dist/language/cy.cjs.map +0 -1
- package/dist/language/cy.js +0 -7
- package/dist/language/cy.js.map +0 -1
- package/dist/language/da.cjs.map +0 -1
- package/dist/language/da.js +0 -7
- package/dist/language/da.js.map +0 -1
- package/dist/language/de.cjs.map +0 -1
- package/dist/language/de.js +0 -7
- package/dist/language/de.js.map +0 -1
- package/dist/language/el.cjs.map +0 -1
- package/dist/language/el.js +0 -7
- package/dist/language/el.js.map +0 -1
- package/dist/language/en.cjs.map +0 -1
- package/dist/language/en.js +0 -4
- package/dist/language/en.js.map +0 -1
- package/dist/language/eo.cjs.map +0 -1
- package/dist/language/eo.js +0 -7
- package/dist/language/eo.js.map +0 -1
- package/dist/language/es.cjs.map +0 -1
- package/dist/language/es.js +0 -7
- package/dist/language/es.js.map +0 -1
- package/dist/language/et.cjs.map +0 -1
- package/dist/language/et.js +0 -7
- package/dist/language/et.js.map +0 -1
- package/dist/language/eu.cjs.map +0 -1
- package/dist/language/eu.js +0 -7
- package/dist/language/eu.js.map +0 -1
- package/dist/language/fa.cjs.map +0 -1
- package/dist/language/fa.js +0 -7
- package/dist/language/fa.js.map +0 -1
- package/dist/language/fi.cjs.map +0 -1
- package/dist/language/fi.js +0 -7
- package/dist/language/fi.js.map +0 -1
- package/dist/language/fo.cjs.map +0 -1
- package/dist/language/fo.js +0 -7
- package/dist/language/fo.js.map +0 -1
- package/dist/language/fr.cjs.map +0 -1
- package/dist/language/fr.js +0 -7
- package/dist/language/fr.js.map +0 -1
- package/dist/language/he.cjs.map +0 -1
- package/dist/language/he.js +0 -7
- package/dist/language/he.js.map +0 -1
- package/dist/language/hi.cjs.map +0 -1
- package/dist/language/hi.js +0 -7
- package/dist/language/hi.js.map +0 -1
- package/dist/language/hr.cjs.map +0 -1
- package/dist/language/hr.js +0 -7
- package/dist/language/hr.js.map +0 -1
- package/dist/language/hu.cjs.map +0 -1
- package/dist/language/hu.js +0 -7
- package/dist/language/hu.js.map +0 -1
- package/dist/language/id.cjs.map +0 -1
- package/dist/language/id.js +0 -7
- package/dist/language/id.js.map +0 -1
- package/dist/language/is.cjs.map +0 -1
- package/dist/language/is.js +0 -7
- package/dist/language/is.js.map +0 -1
- package/dist/language/it.cjs.map +0 -1
- package/dist/language/it.js +0 -7
- package/dist/language/it.js.map +0 -1
- package/dist/language/ja.cjs.map +0 -1
- package/dist/language/ja.js +0 -7
- package/dist/language/ja.js.map +0 -1
- package/dist/language/km.cjs.map +0 -1
- package/dist/language/km.js +0 -7
- package/dist/language/km.js.map +0 -1
- package/dist/language/kn.cjs.map +0 -1
- package/dist/language/kn.js +0 -7
- package/dist/language/kn.js.map +0 -1
- package/dist/language/ko.cjs.map +0 -1
- package/dist/language/ko.js +0 -7
- package/dist/language/ko.js.map +0 -1
- package/dist/language/ku.cjs.map +0 -1
- package/dist/language/ku.js +0 -7
- package/dist/language/ku.js.map +0 -1
- package/dist/language/lo.cjs.map +0 -1
- package/dist/language/lo.js +0 -7
- package/dist/language/lo.js.map +0 -1
- package/dist/language/lt.cjs.map +0 -1
- package/dist/language/lt.js +0 -7
- package/dist/language/lt.js.map +0 -1
- package/dist/language/lv.cjs.map +0 -1
- package/dist/language/lv.js +0 -7
- package/dist/language/lv.js.map +0 -1
- package/dist/language/mk.cjs.map +0 -1
- package/dist/language/mk.js +0 -7
- package/dist/language/mk.js.map +0 -1
- package/dist/language/mn.cjs.map +0 -1
- package/dist/language/mn.js +0 -7
- package/dist/language/mn.js.map +0 -1
- package/dist/language/mr.cjs.map +0 -1
- package/dist/language/mr.js +0 -7
- package/dist/language/mr.js.map +0 -1
- package/dist/language/ms.cjs.map +0 -1
- package/dist/language/ms.js +0 -7
- package/dist/language/ms.js.map +0 -1
- package/dist/language/nl.cjs.map +0 -1
- package/dist/language/nl.js +0 -7
- package/dist/language/nl.js.map +0 -1
- package/dist/language/no.cjs.map +0 -1
- package/dist/language/no.js +0 -7
- package/dist/language/no.js.map +0 -1
- package/dist/language/pl.cjs.map +0 -1
- package/dist/language/pl.js +0 -7
- package/dist/language/pl.js.map +0 -1
- package/dist/language/pt.cjs.map +0 -1
- package/dist/language/pt.js +0 -7
- package/dist/language/pt.js.map +0 -1
- package/dist/language/ro.cjs.map +0 -1
- package/dist/language/ro.js +0 -7
- package/dist/language/ro.js.map +0 -1
- package/dist/language/ru.cjs.map +0 -1
- package/dist/language/ru.js +0 -8
- package/dist/language/ru.js.map +0 -1
- package/dist/language/sk.cjs.map +0 -1
- package/dist/language/sk.js +0 -8
- package/dist/language/sk.js.map +0 -1
- package/dist/language/sl.cjs.map +0 -1
- package/dist/language/sl.js +0 -7
- package/dist/language/sl.js.map +0 -1
- package/dist/language/sq.cjs.map +0 -1
- package/dist/language/sq.js +0 -7
- package/dist/language/sq.js.map +0 -1
- package/dist/language/sr.cjs.map +0 -1
- package/dist/language/sr.js +0 -8
- package/dist/language/sr.js.map +0 -1
- package/dist/language/sv.cjs.map +0 -1
- package/dist/language/sv.js +0 -7
- package/dist/language/sv.js.map +0 -1
- package/dist/language/sw.cjs.map +0 -1
- package/dist/language/sw.js +0 -7
- package/dist/language/sw.js.map +0 -1
- package/dist/language/ta.cjs.map +0 -1
- package/dist/language/ta.js +0 -7
- package/dist/language/ta.js.map +0 -1
- package/dist/language/te.cjs.map +0 -1
- package/dist/language/te.js +0 -7
- package/dist/language/te.js.map +0 -1
- package/dist/language/th.cjs.map +0 -1
- package/dist/language/th.js +0 -7
- package/dist/language/th.js.map +0 -1
- package/dist/language/tr.cjs.map +0 -1
- package/dist/language/tr.js +0 -7
- package/dist/language/tr.js.map +0 -1
- package/dist/language/uk.cjs.map +0 -1
- package/dist/language/uk.js +0 -8
- package/dist/language/uk.js.map +0 -1
- package/dist/language/ur.cjs.map +0 -1
- package/dist/language/ur.js +0 -7
- package/dist/language/ur.js.map +0 -1
- package/dist/language/uz.cjs.map +0 -1
- package/dist/language/uz.js +0 -7
- package/dist/language/uz.js.map +0 -1
- package/dist/language/uz_CYR.cjs.map +0 -1
- package/dist/language/uz_CYR.js +0 -7
- package/dist/language/uz_CYR.js.map +0 -1
- package/dist/language/vi.cjs.map +0 -1
- package/dist/language/vi.js +0 -7
- package/dist/language/vi.js.map +0 -1
- package/dist/language/zh_CN.cjs.map +0 -1
- package/dist/language/zh_CN.js +0 -7
- package/dist/language/zh_CN.js.map +0 -1
- package/dist/language/zh_TW.cjs.map +0 -1
- package/dist/language/zh_TW.js +0 -7
- package/dist/language/zh_TW.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@visulima/humanizer",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "Humanizer is a library for humanizing data in a human-readable form.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"visulima",
|
|
@@ -62,8 +62,8 @@
|
|
|
62
62
|
"default": "./dist/index.cjs"
|
|
63
63
|
},
|
|
64
64
|
"import": {
|
|
65
|
-
"types": "./dist/index.d.
|
|
66
|
-
"default": "./dist/index.
|
|
65
|
+
"types": "./dist/index.d.mts",
|
|
66
|
+
"default": "./dist/index.mjs"
|
|
67
67
|
}
|
|
68
68
|
},
|
|
69
69
|
"./language/*": {
|
|
@@ -72,15 +72,15 @@
|
|
|
72
72
|
"default": "./dist/language/*.cjs"
|
|
73
73
|
},
|
|
74
74
|
"import": {
|
|
75
|
-
"types": "./dist/language/*.d.
|
|
76
|
-
"default": "./dist/language/*.
|
|
75
|
+
"types": "./dist/language/*.d.mts",
|
|
76
|
+
"default": "./dist/language/*.mjs"
|
|
77
77
|
}
|
|
78
78
|
},
|
|
79
79
|
"./package.json": "./package.json"
|
|
80
80
|
},
|
|
81
81
|
"main": "dist/index.cjs",
|
|
82
|
-
"module": "dist/index.
|
|
83
|
-
"browser": "./dist/index.
|
|
82
|
+
"module": "dist/index.mjs",
|
|
83
|
+
"browser": "./dist/index.mjs",
|
|
84
84
|
"types": "dist/index.d.ts",
|
|
85
85
|
"files": [
|
|
86
86
|
"dist"
|
|
@@ -90,30 +90,31 @@
|
|
|
90
90
|
"@anolilab/prettier-config": "^5.0.14",
|
|
91
91
|
"@anolilab/semantic-release-pnpm": "^1.1.0",
|
|
92
92
|
"@anolilab/semantic-release-preset": "^8.1.0",
|
|
93
|
-
"@babel/core": "^7.24.
|
|
93
|
+
"@babel/core": "^7.24.6",
|
|
94
94
|
"@rushstack/eslint-plugin-security": "^0.8.1",
|
|
95
95
|
"@secretlint/secretlint-rule-preset-recommend": "^8.2.4",
|
|
96
96
|
"@types/micromatch": "^4.0.7",
|
|
97
97
|
"@types/ms": "^0.7.34",
|
|
98
98
|
"@types/node": "18.18.14",
|
|
99
|
+
"@visulima/packem": "^1.0.0-alpha.41",
|
|
99
100
|
"@visulima/path": "1.0.1",
|
|
100
101
|
"@vitest/coverage-v8": "^1.6.0",
|
|
101
102
|
"@vitest/ui": "^1.6.0",
|
|
102
103
|
"cross-env": "^7.0.3",
|
|
103
104
|
"csv-parse": "^5.5.6",
|
|
105
|
+
"esbuild": "^0.21.4",
|
|
104
106
|
"eslint": "^8.57.0",
|
|
105
|
-
"eslint-plugin-deprecation": "^
|
|
107
|
+
"eslint-plugin-deprecation": "^3.0.0",
|
|
106
108
|
"eslint-plugin-etc": "^2.0.3",
|
|
107
109
|
"eslint-plugin-import": "npm:eslint-plugin-i@^2.29.1",
|
|
108
110
|
"eslint-plugin-mdx": "^3.1.5",
|
|
109
111
|
"eslint-plugin-vitest": "^0.4.1",
|
|
110
112
|
"eslint-plugin-vitest-globals": "^1.5.0",
|
|
111
113
|
"ms": "^2.1.3",
|
|
112
|
-
"prettier": "^3.
|
|
114
|
+
"prettier": "^3.3.0",
|
|
113
115
|
"rimraf": "^5.0.7",
|
|
114
116
|
"secretlint": "8.2.3",
|
|
115
|
-
"semantic-release": "
|
|
116
|
-
"tsup": "^8.0.2",
|
|
117
|
+
"semantic-release": "23.1.1",
|
|
117
118
|
"typescript": "^5.4.5",
|
|
118
119
|
"vitest": "^1.6.0"
|
|
119
120
|
},
|
|
@@ -136,74 +137,9 @@
|
|
|
136
137
|
"info_on_disabling_etc_no_deprecated": false
|
|
137
138
|
}
|
|
138
139
|
},
|
|
139
|
-
"sources": [
|
|
140
|
-
"src/index.ts",
|
|
141
|
-
"src/language/af.ts",
|
|
142
|
-
"src/language/ar.ts",
|
|
143
|
-
"src/language/bn.ts",
|
|
144
|
-
"src/language/bg.ts",
|
|
145
|
-
"src/language/ca.ts",
|
|
146
|
-
"src/language/ckb.ts",
|
|
147
|
-
"src/language/cs.ts",
|
|
148
|
-
"src/language/cy.ts",
|
|
149
|
-
"src/language/da.ts",
|
|
150
|
-
"src/language/de.ts",
|
|
151
|
-
"src/language/el.ts",
|
|
152
|
-
"src/language/en.ts",
|
|
153
|
-
"src/language/eo.ts",
|
|
154
|
-
"src/language/es.ts",
|
|
155
|
-
"src/language/et.ts",
|
|
156
|
-
"src/language/eu.ts",
|
|
157
|
-
"src/language/fa.ts",
|
|
158
|
-
"src/language/fi.ts",
|
|
159
|
-
"src/language/fo.ts",
|
|
160
|
-
"src/language/fr.ts",
|
|
161
|
-
"src/language/he.ts",
|
|
162
|
-
"src/language/hi.ts",
|
|
163
|
-
"src/language/hr.ts",
|
|
164
|
-
"src/language/hu.ts",
|
|
165
|
-
"src/language/id.ts",
|
|
166
|
-
"src/language/is.ts",
|
|
167
|
-
"src/language/it.ts",
|
|
168
|
-
"src/language/ja.ts",
|
|
169
|
-
"src/language/km.ts",
|
|
170
|
-
"src/language/kn.ts",
|
|
171
|
-
"src/language/ko.ts",
|
|
172
|
-
"src/language/ku.ts",
|
|
173
|
-
"src/language/lo.ts",
|
|
174
|
-
"src/language/lt.ts",
|
|
175
|
-
"src/language/lv.ts",
|
|
176
|
-
"src/language/mk.ts",
|
|
177
|
-
"src/language/mn.ts",
|
|
178
|
-
"src/language/mr.ts",
|
|
179
|
-
"src/language/ms.ts",
|
|
180
|
-
"src/language/nl.ts",
|
|
181
|
-
"src/language/no.ts",
|
|
182
|
-
"src/language/pl.ts",
|
|
183
|
-
"src/language/pt.ts",
|
|
184
|
-
"src/language/ro.ts",
|
|
185
|
-
"src/language/ru.ts",
|
|
186
|
-
"src/language/sk.ts",
|
|
187
|
-
"src/language/sl.ts",
|
|
188
|
-
"src/language/sq.ts",
|
|
189
|
-
"src/language/sr.ts",
|
|
190
|
-
"src/language/sv.ts",
|
|
191
|
-
"src/language/sw.ts",
|
|
192
|
-
"src/language/ta.ts",
|
|
193
|
-
"src/language/te.ts",
|
|
194
|
-
"src/language/th.ts",
|
|
195
|
-
"src/language/tr.ts",
|
|
196
|
-
"src/language/uk.ts",
|
|
197
|
-
"src/language/ur.ts",
|
|
198
|
-
"src/language/uz.ts",
|
|
199
|
-
"src/language/uz_CYR.ts",
|
|
200
|
-
"src/language/vi.ts",
|
|
201
|
-
"src/language/zh_CN.ts",
|
|
202
|
-
"src/language/zh_TW.ts"
|
|
203
|
-
],
|
|
204
140
|
"scripts": {
|
|
205
|
-
"build": "cross-env NODE_ENV=development
|
|
206
|
-
"build:prod": "cross-env NODE_ENV=production
|
|
141
|
+
"build": "cross-env NODE_ENV=development packem build",
|
|
142
|
+
"build:prod": "cross-env NODE_ENV=production packem build",
|
|
207
143
|
"clean": "rimraf node_modules dist .eslintcache",
|
|
208
144
|
"dev": "pnpm run build --watch",
|
|
209
145
|
"lint:eslint": "eslint . --ext js,cjs,mjs,jsx,ts,tsx,json,yaml,yml,md,mdx --max-warnings=0 --config .eslintrc.cjs",
|
package/dist/chunk-2O4I6OAE.cjs
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var d=(r,u,e,o,D,g,U,f,t,i,a)=>{let n={d:o,h:D,m:g,mo:u,ms:f,s:U,w:e,y:r};return t!==void 0&&(n.future=t),i!==void 0&&(n.past=i),a!==void 0&&(n.decimal=a),n},p=d;
|
|
4
|
-
|
|
5
|
-
exports.a = p;
|
|
6
|
-
//# sourceMappingURL=out.js.map
|
|
7
|
-
//# sourceMappingURL=chunk-2O4I6OAE.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/language/util/create-duration-language.ts"],"names":["createDurationLanguage","y","mo","w","d","h","m","s","ms","future","past","decimal","result","create_duration_language_default"],"mappings":"AAEA,IAAMA,EAAyB,CAC3BC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,IACmB,CACnB,IAAMC,EAA2B,CAC7B,EAAAR,EACA,EAAAC,EACA,EAAAC,EACA,GAAAJ,EACA,GAAAM,EACA,EAAAD,EACA,EAAAJ,EACA,EAAAF,CACJ,EAEA,OAAIQ,IAAW,SACXG,EAAO,OAASH,GAGhBC,IAAS,SACTE,EAAO,KAAOF,GAGdC,IAAY,SACZC,EAAO,QAAUD,GAGdC,CACX,EAEOC,EAAQb","sourcesContent":["import type { DurationLanguage, DurationUnit } from \"../../types\";\n\nconst createDurationLanguage = (\n y: DurationUnit,\n mo: DurationUnit,\n w: DurationUnit,\n d: DurationUnit,\n h: DurationUnit,\n m: DurationUnit,\n s: DurationUnit,\n ms: DurationUnit,\n future?: string,\n past?: string,\n decimal?: string,\n): DurationLanguage => {\n const result: DurationLanguage = {\n d,\n h,\n m,\n mo,\n ms,\n s,\n w,\n y,\n };\n\n if (future !== undefined) {\n result.future = future;\n }\n\n if (past !== undefined) {\n result.past = past;\n }\n\n if (decimal !== undefined) {\n result.decimal = decimal;\n }\n\n return result;\n};\n\nexport default createDurationLanguage;\n"]}
|
package/dist/chunk-435FPGI5.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/language/util/duration/get-czech-or-slovak-form.ts"],"names":["getCzechOrSlovakForm","counter","get_czech_or_slovak_form_default"],"mappings":"AAAA,IAAMA,EAAwBC,GACtBA,IAAY,EACL,EAGP,KAAK,MAAMA,CAAO,IAAMA,EACjB,EAGPA,EAAU,IAAM,GAAKA,EAAU,IAAM,GAAKA,EAAU,IAAM,GACnD,EAGJ,EAGJC,EAAQF","sourcesContent":["const getCzechOrSlovakForm = (counter: number): number => {\n if (counter === 1) {\n return 0;\n }\n\n if (Math.floor(counter) !== counter) {\n return 1;\n }\n\n if (counter % 10 >= 2 && counter % 10 <= 4 && counter % 100 < 10) {\n return 2;\n }\n\n return 3;\n};\n\nexport default getCzechOrSlovakForm;\n"]}
|
package/dist/chunk-6XBKSCXN.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/language/util/duration/get-slavic-form.ts"],"names":["getSlavicForm","counter","get_slavic_form_default"],"mappings":"AAAA,IAAMA,EAAiBC,GACf,KAAK,MAAMA,CAAO,IAAMA,EACjB,EAGNA,EAAU,KAAO,GAAKA,EAAU,KAAO,IAAQA,EAAU,IAAM,GAAKA,EAAU,IAAM,GAAMA,EAAU,KAAO,EACrG,EAGPA,EAAU,KAAO,EACV,EAGPA,EAAU,EACH,EAGJ,EAGJC,EAAQF","sourcesContent":["const getSlavicForm = (counter: number): number => {\n if (Math.floor(counter) !== counter) {\n return 2;\n }\n\n if ((counter % 100 >= 5 && counter % 100 <= 20) || (counter % 10 >= 5 && counter % 10 <= 9) || counter % 10 === 0) {\n return 0;\n }\n\n if (counter % 10 === 1) {\n return 1;\n }\n\n if (counter > 1) {\n return 2;\n }\n\n return 0;\n};\n\nexport default getSlavicForm;\n"]}
|
package/dist/chunk-A5YF7CWO.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { a } from './chunk-MPZEKYC6.js';
|
|
2
|
-
|
|
3
|
-
var r=a(s=>`year${s===1?"":"s"}`,s=>`month${s===1?"":"s"}`,s=>`week${s===1?"":"s"}`,s=>`day${s===1?"":"s"}`,s=>`hour${s===1?"":"s"}`,s=>`minute${s===1?"":"s"}`,s=>`second${s===1?"":"s"}`,s=>`millisecond${s===1?"":"s"}`,"in %s","%s ago");
|
|
4
|
-
|
|
5
|
-
export { r as a };
|
|
6
|
-
//# sourceMappingURL=out.js.map
|
|
7
|
-
//# sourceMappingURL=chunk-A5YF7CWO.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/language/en.ts"],"names":["durationLanguage","create_duration_language_default","counter"],"mappings":"wCAEO,IAAMA,EAAmBC,EAC3BC,GAAY,OAAOA,IAAY,EAAI,GAAK,GAAG,GAC3CA,GAAY,QAAQA,IAAY,EAAI,GAAK,GAAG,GAC5CA,GAAY,OAAOA,IAAY,EAAI,GAAK,GAAG,GAC3CA,GAAY,MAAMA,IAAY,EAAI,GAAK,GAAG,GAC1CA,GAAY,OAAOA,IAAY,EAAI,GAAK,GAAG,GAC3CA,GAAY,SAASA,IAAY,EAAI,GAAK,GAAG,GAC7CA,GAAY,SAASA,IAAY,EAAI,GAAK,GAAG,GAC7CA,GAAY,cAAcA,IAAY,EAAI,GAAK,GAAG,GACnD,QACA,QACJ","sourcesContent":["import createDurationLanguage from \"./util/create-duration-language\";\n\nexport const durationLanguage = createDurationLanguage(\n (counter) => `year${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `month${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `week${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `day${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `hour${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `minute${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `second${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `millisecond${counter === 1 ? \"\" : \"s\"}`,\n \"in %s\",\n \"%s ago\",\n);\n"]}
|
package/dist/chunk-AVPLJXJK.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/language/util/duration/get-slavic-form.ts"],"names":["getSlavicForm","counter","get_slavic_form_default"],"mappings":"AAAA,IAAMA,EAAiBC,GACf,KAAK,MAAMA,CAAO,IAAMA,EACjB,EAGNA,EAAU,KAAO,GAAKA,EAAU,KAAO,IAAQA,EAAU,IAAM,GAAKA,EAAU,IAAM,GAAMA,EAAU,KAAO,EACrG,EAGPA,EAAU,KAAO,EACV,EAGPA,EAAU,EACH,EAGJ,EAGJC,EAAQF","sourcesContent":["const getSlavicForm = (counter: number): number => {\n if (Math.floor(counter) !== counter) {\n return 2;\n }\n\n if ((counter % 100 >= 5 && counter % 100 <= 20) || (counter % 10 >= 5 && counter % 10 <= 9) || counter % 10 === 0) {\n return 0;\n }\n\n if (counter % 10 === 1) {\n return 1;\n }\n\n if (counter > 1) {\n return 2;\n }\n\n return 0;\n};\n\nexport default getSlavicForm;\n"]}
|
package/dist/chunk-G52OTITJ.cjs
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunk2O4I6OAE_cjs = require('./chunk-2O4I6OAE.cjs');
|
|
4
|
-
|
|
5
|
-
var n=chunk2O4I6OAE_cjs.a(s=>`year${s===1?"":"s"}`,s=>`month${s===1?"":"s"}`,s=>`week${s===1?"":"s"}`,s=>`day${s===1?"":"s"}`,s=>`hour${s===1?"":"s"}`,s=>`minute${s===1?"":"s"}`,s=>`second${s===1?"":"s"}`,s=>`millisecond${s===1?"":"s"}`,"in %s","%s ago");
|
|
6
|
-
|
|
7
|
-
exports.a = n;
|
|
8
|
-
//# sourceMappingURL=out.js.map
|
|
9
|
-
//# sourceMappingURL=chunk-G52OTITJ.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/language/en.ts"],"names":["durationLanguage","create_duration_language_default","counter"],"mappings":"yCAEO,IAAMA,EAAmBC,EAC3BC,GAAY,OAAOA,IAAY,EAAI,GAAK,GAAG,GAC3CA,GAAY,QAAQA,IAAY,EAAI,GAAK,GAAG,GAC5CA,GAAY,OAAOA,IAAY,EAAI,GAAK,GAAG,GAC3CA,GAAY,MAAMA,IAAY,EAAI,GAAK,GAAG,GAC1CA,GAAY,OAAOA,IAAY,EAAI,GAAK,GAAG,GAC3CA,GAAY,SAASA,IAAY,EAAI,GAAK,GAAG,GAC7CA,GAAY,SAASA,IAAY,EAAI,GAAK,GAAG,GAC7CA,GAAY,cAAcA,IAAY,EAAI,GAAK,GAAG,GACnD,QACA,QACJ","sourcesContent":["import createDurationLanguage from \"./util/create-duration-language\";\n\nexport const durationLanguage = createDurationLanguage(\n (counter) => `year${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `month${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `week${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `day${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `hour${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `minute${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `second${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `millisecond${counter === 1 ? \"\" : \"s\"}`,\n \"in %s\",\n \"%s ago\",\n);\n"]}
|
package/dist/chunk-I3ABTD2S.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/language/util/duration/get-czech-or-slovak-form.ts"],"names":["getCzechOrSlovakForm","counter","get_czech_or_slovak_form_default"],"mappings":"AAAA,IAAMA,EAAwBC,GACtBA,IAAY,EACL,EAGP,KAAK,MAAMA,CAAO,IAAMA,EACjB,EAGPA,EAAU,IAAM,GAAKA,EAAU,IAAM,GAAKA,EAAU,IAAM,GACnD,EAGJ,EAGJC,EAAQF","sourcesContent":["const getCzechOrSlovakForm = (counter: number): number => {\n if (counter === 1) {\n return 0;\n }\n\n if (Math.floor(counter) !== counter) {\n return 1;\n }\n\n if (counter % 10 >= 2 && counter % 10 <= 4 && counter % 100 < 10) {\n return 2;\n }\n\n return 3;\n};\n\nexport default getCzechOrSlovakForm;\n"]}
|
package/dist/chunk-MPZEKYC6.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/language/util/create-duration-language.ts"],"names":["createDurationLanguage","y","mo","w","d","h","m","s","ms","future","past","decimal","result","create_duration_language_default"],"mappings":"AAEA,IAAMA,EAAyB,CAC3BC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,IACmB,CACnB,IAAMC,EAA2B,CAC7B,EAAAR,EACA,EAAAC,EACA,EAAAC,EACA,GAAAJ,EACA,GAAAM,EACA,EAAAD,EACA,EAAAJ,EACA,EAAAF,CACJ,EAEA,OAAIQ,IAAW,SACXG,EAAO,OAASH,GAGhBC,IAAS,SACTE,EAAO,KAAOF,GAGdC,IAAY,SACZC,EAAO,QAAUD,GAGdC,CACX,EAEOC,EAAQb","sourcesContent":["import type { DurationLanguage, DurationUnit } from \"../../types\";\n\nconst createDurationLanguage = (\n y: DurationUnit,\n mo: DurationUnit,\n w: DurationUnit,\n d: DurationUnit,\n h: DurationUnit,\n m: DurationUnit,\n s: DurationUnit,\n ms: DurationUnit,\n future?: string,\n past?: string,\n decimal?: string,\n): DurationLanguage => {\n const result: DurationLanguage = {\n d,\n h,\n m,\n mo,\n ms,\n s,\n w,\n y,\n };\n\n if (future !== undefined) {\n result.future = future;\n }\n\n if (past !== undefined) {\n result.past = past;\n }\n\n if (decimal !== undefined) {\n result.decimal = decimal;\n }\n\n return result;\n};\n\nexport default createDurationLanguage;\n"]}
|
package/dist/index.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bytes.ts","../src/language/util/validate-duration-language.ts","../src/duration.ts"],"names":["BYTE_SIZES","parseLocalizedNumber","stringNumber","locale","thousandSeparator","decimalSeparator","fromBase","base","parseBytes","value","options","config","groups","localizedNumber","type","level","unit","formatBytes","bytes","givenBase","decimals","long","requestedUnit","l10nOptions","absoluteBytes","space","requestedUnitIndex","fractionDigits","validateDurationLanguage","language","requiredProperties","property","validate_duration_language_default","toFixed","number_","fixed","matches","renderPiece","unitCount","unitName","maxDecimalPoints","spacer","decimal","digitReplacements","formattedCount","normalizedUnitCount","countString","char","languageWord","word","getPieces","ms","units","unitMeasures","largest","unitCounts","index","msRemaining","unitMs","unitsRemainingBeforeRound","index_","smallerUnitName","smallerUnitCount","rounded","previousUnitName","previousUnitMs","amountOfPreviousUnit","result","remainder","remainderUnitName","formatPieces","pieces","smallestUnitName","conjunction","serialComma","delimiter","adverb","renderedPieces","piece_","piece","duration","milliseconds","durationLanguage","absTime","duration_default"],"mappings":"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","sourcesContent":["import type { FormateByteOptions, ParseByteOptions } from \"./types\";\n\nconst BYTE_SIZES = [\n {\n long: \"Bytes\",\n short: \"Bytes\",\n },\n {\n long: \"Kilobytes\",\n short: \"KB\",\n },\n {\n long: \"Megabytes\",\n short: \"MB\",\n },\n {\n long: \"Gigabytes\",\n short: \"GB\",\n },\n {\n long: \"Terabytes\",\n short: \"TB\",\n },\n {\n long: \"Petabytes\",\n short: \"PB\",\n },\n {\n long: \"Exabytes\",\n short: \"EB\",\n },\n {\n long: \"Zettabytes\",\n short: \"ZB\",\n },\n {\n long: \"Yottabytes\",\n short: \"YB\",\n },\n] as const;\n\ntype ByteSize = (typeof BYTE_SIZES)[number][\"short\"];\ntype LongByteSize = (typeof BYTE_SIZES)[number][\"long\"];\n\ntype Unit = ByteSize | LongByteSize;\n\n/**\n * Parse a localized number to a float.\n * @param stringNumber - the localized number\n * @param locale - [optional] the locale that the number is represented in. Omit this parameter to use the current locale.\n */\nconst parseLocalizedNumber = (stringNumber: string, locale: string): number => {\n const thousandSeparator = new Intl.NumberFormat(locale).format(11_111).replaceAll(/\\p{Number}/gu, \"\");\n const decimalSeparator = new Intl.NumberFormat(locale).format(1.1).replaceAll(/\\p{Number}/gu, \"\");\n\n // eslint-disable-next-line @rushstack/security/no-unsafe-regexp,security/detect-non-literal-regexp\n return Number.parseFloat(stringNumber.replaceAll(new RegExp(`\\\\${thousandSeparator}`, \"g\"), \"\").replace(new RegExp(`\\\\${decimalSeparator}`), \".\"));\n};\n\nconst fromBase = (base: 2 | 10) => {\n if (base === 2) {\n return 1024;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (base === 10) {\n return 1000;\n }\n\n throw new TypeError(`Unsupported base.`);\n};\n\n/**\n * Parse the given bytesize string and return bytes.\n *\n * @param value - The string to parse\n * @param options - Options for the conversion from string to bytes\n * @throws Error if `value` is not a non-empty string or a number\n */\nexport const parseBytes = (value: string, options?: ParseByteOptions): number => {\n const config = {\n base: 2,\n locale: \"en-US\",\n ...options,\n } as Required<ParseByteOptions>;\n\n if (typeof value !== \"string\" || value.length === 0) {\n throw new TypeError(\"Value is not a string or is empty.\");\n }\n\n if (value.length > 100) {\n throw new TypeError(\"Value exceeds the maximum length of 100 characters.\");\n }\n\n const match =\n // eslint-disable-next-line regexp/no-super-linear-backtracking,regexp/no-unused-capturing-group,regexp/no-misleading-capturing-group,security/detect-unsafe-regex\n /^(?<value>-?(?:\\d+(([.,])\\d+)*)?[.,]?\\d+) *(?<type>bytes?|b|kb|kib|mb|mib|gb|gib|tb|tib|pb|pib|eb|eib|zb|zib|yb|yib|(kilo|kibi|mega|mebi|giga|gibi|tera|tebi|peta|pebi|exa|exbi|zetta|zebi|yotta|yobi)?bytes)?$/i.exec(\n value,\n );\n // Named capture groups need to be manually typed today.\n // https://github.com/microsoft/TypeScript/issues/32098\n const groups = match?.groups as { type?: string; value: string } | undefined;\n\n if (!groups) {\n return Number.NaN;\n }\n\n const localizedNumber = parseLocalizedNumber(groups.value, config.locale);\n const type = (groups.type ?? \"Bytes\")\n .toUpperCase()\n .replace(/^KIBI/, \"KILO\")\n .replace(/^MIBI/, \"MEGA\")\n .replace(/^GIBI/, \"GIGA\")\n .replace(/^TEBI/, \"TERA\")\n .replace(/^PEBI/, \"PETA\")\n .replace(/^EXBI/, \"EXA\")\n .replace(/^ZEBI/, \"ZETTA\")\n .replace(/^YIBI/, \"YOTTA\")\n .replace(/^(.)IB$/, \"$1B\") as Uppercase<Unit> | \"B\";\n const level = BYTE_SIZES.findIndex((unit) => (unit.short[0] as string).toUpperCase() === type[0]);\n const base = fromBase(config.base);\n\n return localizedNumber * base ** level;\n};\n\n/**\n * Formats the given bytes into a human-readable string.\n * Per default, it will use the closest unit to the given value.\n *\n * @param bytes - The bytes to format\n * @param options - Options for the conversion from bytes to string\n */\nexport const formatBytes = (bytes: number, options?: FormateByteOptions<ByteSize>): string => {\n if (typeof bytes !== \"number\" || !Number.isFinite(bytes)) {\n throw new TypeError(\"Bytesize is not a number.\");\n }\n\n const {\n base: givenBase,\n decimals,\n locale,\n long,\n unit: requestedUnit,\n ...l10nOptions\n } = {\n base: 2,\n decimals: 0,\n locale: \"en-US\",\n long: false,\n ...options,\n } as FormateByteOptions<ByteSize>;\n const base = fromBase(givenBase as 2 | 10);\n\n const absoluteBytes = Math.abs(bytes);\n const space = options?.space ?? true ? \" \" : \"\";\n\n const requestedUnitIndex = BYTE_SIZES.findIndex((unit) => unit.short === requestedUnit);\n\n if (bytes === 0) {\n const level = Math.min(0, Math.max(requestedUnitIndex, BYTE_SIZES.length - 1));\n\n // eslint-disable-next-line security/detect-object-injection,prefer-template\n return \"0\" + space + (BYTE_SIZES[level] as { long: string; short: string })[long ? \"long\" : \"short\"];\n }\n\n const level = requestedUnitIndex >= 0 ? requestedUnitIndex : Math.min(Math.floor(Math.log(absoluteBytes) / Math.log(base)), BYTE_SIZES.length - 1);\n // eslint-disable-next-line security/detect-object-injection\n const unit = (BYTE_SIZES[level] as { long: string; short: string })[long ? \"long\" : \"short\"];\n\n const value = bytes / base ** level;\n const fractionDigits = (decimals as number) < 0 ? undefined : decimals;\n const formattedValue = new Intl.NumberFormat(locale, {\n maximumFractionDigits: fractionDigits,\n minimumFractionDigits: fractionDigits,\n ...l10nOptions,\n }).format(value);\n\n return formattedValue + space + unit;\n};\n","import type { DurationLanguage } from \"../../types\";\n\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst validateDurationLanguage = (language: DurationLanguage): void => {\n const requiredProperties = [\"y\", \"mo\", \"w\", \"d\", \"h\", \"m\", \"s\", \"ms\", \"future\", \"past\"];\n\n // eslint-disable-next-line no-loops/no-loops,no-restricted-syntax\n for (const property of requiredProperties) {\n if (!Object.prototype.hasOwnProperty.call(language, property)) {\n throw new TypeError(`Missing required property: ${property}`);\n }\n }\n\n if (typeof language.future !== \"string\" || typeof language.past !== \"string\") {\n throw new TypeError(\"Properties future and past must be of type string\");\n }\n\n // eslint-disable-next-line no-loops/no-loops,no-restricted-syntax\n for (const property of [\"y\", \"mo\", \"w\", \"d\", \"h\", \"m\", \"s\", \"ms\"]) {\n if (typeof language[property as keyof typeof language] !== \"string\" && typeof language[property as keyof typeof language] !== \"function\") {\n throw new TypeError(`Property ${property} must be of type string or function`);\n }\n }\n\n if (language.decimal && typeof language.decimal !== \"string\") {\n throw new TypeError(\"Property decimal must be of type string\");\n }\n\n if (language.delimiter && typeof language.delimiter !== \"string\") {\n throw new TypeError(\"Property delimiter must be of type string\");\n }\n\n // eslint-disable-next-line no-underscore-dangle\n if (language._digitReplacements && !Array.isArray(language._digitReplacements)) {\n throw new TypeError(\"Property _digitReplacements must be an array\");\n }\n\n // eslint-disable-next-line no-underscore-dangle\n if (language._numberFirst && typeof language._numberFirst !== \"boolean\") {\n throw new TypeError(\"Property _numberFirst must be of type boolean\");\n }\n};\n\nexport default validateDurationLanguage;\n","import { durationLanguage } from \"./language/en\";\nimport validateDurationLanguage from \"./language/util/validate-duration-language\";\nimport type { DurationDigitReplacements, DurationLanguage, DurationOptions, DurationPiece, DurationUnitMeasures, DurationUnitName } from \"./types\";\n\ninterface InternalOptions {\n conjunction: string;\n decimal?: string;\n delimiter?: string;\n digitReplacements?: DurationDigitReplacements;\n fallbacks?: string[];\n language: DurationLanguage;\n largest?: number;\n maxDecimalPoints?: number;\n round: boolean;\n serialComma: boolean;\n spacer: string;\n timeAdverb: boolean;\n unitMeasures: DurationUnitMeasures;\n units: DurationUnitName[];\n}\n\nconst toFixed = (number_: number, fixed: number): number => {\n // eslint-disable-next-line no-param-reassign\n fixed = fixed || -1;\n\n // eslint-disable-next-line @rushstack/security/no-unsafe-regexp,security/detect-non-literal-regexp\n const matches = new RegExp(`^-?\\\\d+(?:.\\\\d{0,${fixed}})?`).exec(number_.toString());\n\n if (matches === null) {\n return number_; // can be undefined when num is Number.POSITIVE_INFINITY\n }\n\n return Number.parseFloat(matches[0]);\n};\n\nconst renderPiece = ({ unitCount, unitName }: DurationPiece, language: DurationLanguage, options: InternalOptions): string => {\n const { maxDecimalPoints, spacer } = options;\n\n let decimal = \".\";\n\n if (options.decimal !== undefined) {\n decimal = options.decimal;\n } else if (language.decimal !== undefined) {\n decimal = language.decimal;\n }\n\n let digitReplacements: DurationDigitReplacements | undefined;\n\n if (\"digitReplacements\" in options) {\n digitReplacements = options.digitReplacements;\n } else if (\"_digitReplacements\" in language) {\n // eslint-disable-next-line no-underscore-dangle\n digitReplacements = language._digitReplacements;\n }\n\n let formattedCount: string;\n\n let normalizedUnitCount = unitCount;\n\n if (maxDecimalPoints !== undefined) {\n // normalizedUnitCount = Math.floor(unitCount * 10 ** maxDecimalPoints) / 10 ** maxDecimalPoints;\n normalizedUnitCount = toFixed(unitCount, maxDecimalPoints);\n }\n\n const countString = normalizedUnitCount.toString();\n\n if (digitReplacements) {\n formattedCount = \"\";\n\n // eslint-disable-next-line no-loops/no-loops,no-restricted-syntax\n for (const char of countString) {\n // @ts-expect-error because `char` should always be 0-9 at this point.\n // eslint-disable-next-line security/detect-object-injection\n formattedCount += char === \".\" ? decimal : digitReplacements[char];\n }\n } else {\n formattedCount = countString.replace(\".\", decimal);\n }\n\n // eslint-disable-next-line security/detect-object-injection\n const languageWord = language[unitName];\n let word = languageWord as string;\n\n if (typeof languageWord === \"function\") {\n word = languageWord(unitCount) as string;\n }\n\n // eslint-disable-next-line no-underscore-dangle\n if (language._numberFirst) {\n return (word as string) + spacer + formattedCount;\n }\n\n return formattedCount + spacer + (word as string);\n};\n\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst getPieces = (ms: number, options: InternalOptions): DurationPiece[] => {\n const { units } = options;\n\n if (units.length === 0) {\n return [];\n }\n\n const { unitMeasures } = options;\n const largest = options.largest ?? Number.POSITIVE_INFINITY;\n\n // Get the counts for each unit. Doesn't round or truncate anything.\n // For example, might create an object like `{ y: 7, m: 6, w: 0, d: 5, h: 23.99 }`.\n const unitCounts: Partial<Record<DurationUnitName, number>> = {};\n\n let unitName: DurationUnitName;\n let index: number;\n let unitCount: number;\n let msRemaining: number = ms;\n\n // eslint-disable-next-line no-loops/no-loops,no-plusplus\n for (index = 0; index < units.length; index++) {\n // eslint-disable-next-line security/detect-object-injection\n unitName = units[index] as DurationUnitName;\n\n // eslint-disable-next-line security/detect-object-injection\n const unitMs = unitMeasures[unitName];\n const isLast = index === units.length - 1;\n\n unitCount = isLast ? msRemaining / unitMs : Math.floor(msRemaining / unitMs);\n // eslint-disable-next-line security/detect-object-injection\n unitCounts[unitName] = unitCount;\n\n msRemaining -= unitCount * unitMs;\n }\n\n if (options.round) {\n // Update counts based on the `largest` option.\n // For example, if `largest === 2` and `unitCount` is `{ y: 7, m: 6, w: 0, d: 5, h: 23.99 }`,\n // updates to something like `{ y: 7, m: 6.2 }`.\n let unitsRemainingBeforeRound = largest;\n\n // eslint-disable-next-line no-plusplus,no-loops/no-loops\n for (index = 0; index < units.length; index++) {\n // eslint-disable-next-line security/detect-object-injection\n unitName = units[index] as DurationUnitName;\n // eslint-disable-next-line security/detect-object-injection\n unitCount = unitCounts[unitName] as number;\n\n if (unitCount === 0) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n // eslint-disable-next-line no-plusplus\n unitsRemainingBeforeRound--;\n\n // \"Take\" the rest of the units into this one.\n if (unitsRemainingBeforeRound === 0) {\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-loops/no-loops,no-underscore-dangle,no-plusplus\n for (let index_ = index + 1; index_ < units.length; index_++) {\n // eslint-disable-next-line no-underscore-dangle,security/detect-object-injection\n const smallerUnitName = units[index_] as DurationUnitName;\n // eslint-disable-next-line security/detect-object-injection\n const smallerUnitCount = unitCounts[smallerUnitName] as number;\n\n // @ts-expect-error unitCounts[unitName] is defined\n // eslint-disable-next-line security/detect-object-injection\n unitCounts[unitName] += (smallerUnitCount * unitMeasures[smallerUnitName]) / unitMeasures[unitName];\n // eslint-disable-next-line security/detect-object-injection\n unitCounts[smallerUnitName] = 0;\n }\n\n break;\n }\n }\n\n // Round the last piece (which should be the only non-integer).\n //\n // This can be a little tricky if the last piece \"bubbles up\" to a larger\n // unit. For example, \"3 days, 23.99 hours\" should be rounded to \"4 days\".\n // It can also require multiple passes. For example, \"6 days, 23.99 hours\"\n // should become \"1 week\".\n // eslint-disable-next-line no-plusplus,no-loops/no-loops\n for (index = units.length - 1; index >= 0; index--) {\n // eslint-disable-next-line security/detect-object-injection\n unitName = units[index] as DurationUnitName;\n // eslint-disable-next-line security/detect-object-injection\n unitCount = unitCounts[unitName] as number;\n\n if (unitCount === 0) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n const rounded = Math.round(unitCount);\n\n // eslint-disable-next-line security/detect-object-injection\n unitCounts[unitName] = rounded;\n\n if (index === 0) {\n break;\n }\n\n const previousUnitName: DurationUnitName = units[index - 1] as DurationUnitName;\n // eslint-disable-next-line security/detect-object-injection\n const previousUnitMs = unitMeasures[previousUnitName];\n // eslint-disable-next-line security/detect-object-injection\n const amountOfPreviousUnit = Math.floor((rounded * unitMeasures[unitName]) / previousUnitMs);\n\n if (amountOfPreviousUnit) {\n // @ts-expect-error unitCounts[previousUnitName] is defined\n // eslint-disable-next-line security/detect-object-injection\n unitCounts[previousUnitName] += amountOfPreviousUnit;\n // eslint-disable-next-line security/detect-object-injection\n unitCounts[unitName] = 0;\n } else {\n break;\n }\n }\n }\n\n const result: DurationPiece[] = [];\n\n // eslint-disable-next-line no-plusplus,no-loops/no-loops\n for (index = 0; index < units.length && result.length < largest; index++) {\n // eslint-disable-next-line security/detect-object-injection\n unitName = units[index] as DurationUnitName;\n // eslint-disable-next-line security/detect-object-injection\n unitCount = unitCounts[unitName] as number;\n\n // If the result is not rounded, and `largest` option has been set, aggregate the rest and apply the\n // `maxDecimalPoints` to truncate the decimals\n if (unitCount && !options.round && result.length === largest - 1) {\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle\n let index_;\n let remainder = 0;\n\n // eslint-disable-next-line no-loops/no-loops,no-plusplus\n for (index_ = index + 1, units.length; index_ < units.length; index_++) {\n // eslint-disable-next-line no-underscore-dangle,security/detect-object-injection\n const remainderUnitName = units[index_] as DurationUnitName;\n\n // eslint-disable-next-line security/detect-object-injection\n remainder += (unitCounts[remainderUnitName] as number) * (options.unitMeasures[remainderUnitName] / options.unitMeasures[unitName]);\n }\n\n unitCount += remainder;\n\n if (options.maxDecimalPoints !== undefined) {\n unitCount = toFixed(unitCount, options.maxDecimalPoints);\n }\n }\n\n if (unitCount) {\n result.push({ unitCount, unitName });\n }\n }\n\n return result;\n};\n\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst formatPieces = (pieces: DurationPiece[], options: InternalOptions, ms: number): string => {\n const { language, units } = options;\n\n if (pieces.length === 0) {\n const smallestUnitName = units.at(-1) as DurationUnitName;\n\n return renderPiece({ unitCount: 0, unitName: smallestUnitName }, language, options);\n }\n\n const { conjunction, serialComma } = options;\n\n let delimiter = \", \";\n\n if (options.delimiter !== undefined) {\n delimiter = options.delimiter;\n } else if (language.delimiter !== undefined) {\n delimiter = language.delimiter;\n }\n\n // timeAdverb part\n let adverb = \"\";\n\n if (options.timeAdverb && ms !== 0) {\n adverb = language.future ?? \"\";\n\n if (ms < 0) {\n adverb = language.past ?? \"\";\n }\n }\n\n const renderedPieces: string[] = [];\n\n // eslint-disable-next-line no-loops/no-loops,@typescript-eslint/naming-convention,no-restricted-syntax,no-underscore-dangle\n for (const piece_ of pieces) {\n const piece = piece_ as DurationPiece;\n\n renderedPieces.push(renderPiece(piece, language, options));\n }\n\n let result: string;\n\n if (!conjunction || pieces.length === 1) {\n result = renderedPieces.join(delimiter);\n } else if (pieces.length === 2) {\n result = renderedPieces.join(conjunction);\n } else {\n result = renderedPieces.slice(0, -1).join(delimiter) + (serialComma ? \",\" : \"\") + conjunction + renderedPieces.at(-1);\n }\n\n if (adverb) {\n result = adverb.replace(\"%s\", result);\n }\n\n return result;\n};\n\nconst duration = (milliseconds: number, options?: DurationOptions): string => {\n if (Number.isNaN(milliseconds)) {\n throw new TypeError(\"Expected a valid number\");\n }\n\n if (typeof milliseconds !== \"number\") {\n throw new TypeError(\"Expected a number\");\n }\n\n const config = {\n conjunction: \"\",\n language: durationLanguage,\n round: false,\n serialComma: true,\n spacer: \" \",\n timeAdverb: false,\n unitMeasures: {\n d: 86_400_000,\n h: 3_600_000,\n m: 60_000,\n mo: 2_629_746_000, // 365.2425 / 12 = 30.436875 days\n ms: 1,\n s: 1000,\n w: 604_800_000,\n y: 31_556_952_000, // 365 + 1/4 - 1/100 + 1/400 (actual leap day rules) = 365.2425 days\n },\n units: [\"w\", \"d\", \"h\", \"m\", \"s\"],\n ...options,\n } as InternalOptions;\n\n validateDurationLanguage(config.language);\n\n // Has the nice side-effect of converting things to numbers. For example,\n // converts `\"123\"` and `Number(123)` to `123`.\n const absTime = Math.abs(milliseconds as number);\n\n const pieces = getPieces(absTime, config);\n\n return formatPieces(pieces, config, milliseconds as number);\n};\n\nexport default duration;\n"]}
|
package/dist/index.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { a } from './chunk-A5YF7CWO.js';
|
|
2
|
-
import './chunk-MPZEKYC6.js';
|
|
3
|
-
|
|
4
|
-
var g=[{long:"Bytes",short:"Bytes"},{long:"Kilobytes",short:"KB"},{long:"Megabytes",short:"MB"},{long:"Gigabytes",short:"GB"},{long:"Terabytes",short:"TB"},{long:"Petabytes",short:"PB"},{long:"Exabytes",short:"EB"},{long:"Zettabytes",short:"ZB"},{long:"Yottabytes",short:"YB"}],I=(e,r)=>{let t=new Intl.NumberFormat(r).format(11111).replaceAll(new RegExp("\\p{Number}","gu"),""),a=new Intl.NumberFormat(r).format(1.1).replaceAll(new RegExp("\\p{Number}","gu"),"");return Number.parseFloat(e.replaceAll(new RegExp(`\\${t}`,"g"),"").replace(new RegExp(`\\${a}`),"."))},N=e=>{if(e===2)return 1024;if(e===10)return 1e3;throw new TypeError("Unsupported base.")},P=(e,r)=>{let t={base:2,locale:"en-US",...r};if(typeof e!="string"||e.length===0)throw new TypeError("Value is not a string or is empty.");if(e.length>100)throw new TypeError("Value exceeds the maximum length of 100 characters.");let c=/^(?<value>-?(?:\d+(([.,])\d+)*)?[.,]?\d+) *(?<type>bytes?|b|kb|kib|mb|mib|gb|gib|tb|tib|pb|pib|eb|eib|zb|zib|yb|yib|(kilo|kibi|mega|mebi|giga|gibi|tera|tebi|peta|pebi|exa|exbi|zetta|zebi|yotta|yobi)?bytes)?$/i.exec(e)?.groups;if(!c)return Number.NaN;let s=I(c.value,t.locale),o=(c.type??"Bytes").toUpperCase().replace(/^KIBI/,"KILO").replace(/^MIBI/,"MEGA").replace(/^GIBI/,"GIGA").replace(/^TEBI/,"TERA").replace(/^PEBI/,"PETA").replace(/^EXBI/,"EXA").replace(/^ZEBI/,"ZETTA").replace(/^YIBI/,"YOTTA").replace(/^(.)IB$/,"$1B"),n=g.findIndex(p=>p.short[0].toUpperCase()===o[0]),i=N(t.base);return s*i**n},x=(e,r)=>{if(typeof e!="number"||!Number.isFinite(e))throw new TypeError("Bytesize is not a number.");let{base:t,decimals:a,locale:c,long:s,unit:o,...n}={base:2,decimals:0,locale:"en-US",long:!1,...r},i=N(t),p=Math.abs(e),l=r?.space??!0?" ":"",u=g.findIndex(y=>y.short===o);if(e===0){let y=Math.min(0,Math.max(u,g.length-1));return "0"+l+g[y][s?"long":"short"]}let m=u>=0?u:Math.min(Math.floor(Math.log(p)/Math.log(i)),g.length-1),f=g[m][s?"long":"short"],d=e/i**m,b=a<0?void 0:a;return new Intl.NumberFormat(c,{maximumFractionDigits:b,minimumFractionDigits:b,...n}).format(d)+l+f};var _=e=>{let r=["y","mo","w","d","h","m","s","ms","future","past"];for(let t of r)if(!Object.prototype.hasOwnProperty.call(e,t))throw new TypeError(`Missing required property: ${t}`);if(typeof e.future!="string"||typeof e.past!="string")throw new TypeError("Properties future and past must be of type string");for(let t of ["y","mo","w","d","h","m","s","ms"])if(typeof e[t]!="string"&&typeof e[t]!="function")throw new TypeError(`Property ${t} must be of type string or function`);if(e.decimal&&typeof e.decimal!="string")throw new TypeError("Property decimal must be of type string");if(e.delimiter&&typeof e.delimiter!="string")throw new TypeError("Property delimiter must be of type string");if(e._digitReplacements&&!Array.isArray(e._digitReplacements))throw new TypeError("Property _digitReplacements must be an array");if(e._numberFirst&&typeof e._numberFirst!="boolean")throw new TypeError("Property _numberFirst must be of type boolean")},w=_;var U=(e,r)=>{r=r||-1;let t=new RegExp(`^-?\\d+(?:.\\d{0,${r}})?`).exec(e.toString());return t===null?e:Number.parseFloat(t[0])},E=({unitCount:e,unitName:r},t,a)=>{let{maxDecimalPoints:c,spacer:s}=a,o=".";a.decimal!==void 0?o=a.decimal:t.decimal!==void 0&&(o=t.decimal);let n;"digitReplacements"in a?n=a.digitReplacements:"_digitReplacements"in t&&(n=t._digitReplacements);let i,p=e;c!==void 0&&(p=U(e,c));let l=p.toString();if(n){i="";for(let f of l)i+=f==="."?o:n[f];}else i=l.replace(".",o);let u=t[r],m=u;return typeof u=="function"&&(m=u(e)),t._numberFirst?m+s+i:i+s+m},T=(e,r)=>{let{units:t}=r;if(t.length===0)return [];let{unitMeasures:a}=r,c=r.largest??Number.POSITIVE_INFINITY,s={},o,n,i,p=e;for(n=0;n<t.length;n++){o=t[n];let u=a[o];i=n===t.length-1?p/u:Math.floor(p/u),s[o]=i,p-=i*u;}if(r.round){let u=c;for(n=0;n<t.length;n++)if(o=t[n],i=s[o],i!==0&&(u--,u===0)){for(let m=n+1;m<t.length;m++){let f=t[m],d=s[f];s[o]+=d*a[f]/a[o],s[f]=0;}break}for(n=t.length-1;n>=0;n--){if(o=t[n],i=s[o],i===0)continue;let m=Math.round(i);if(s[o]=m,n===0)break;let f=t[n-1],d=a[f],b=Math.floor(m*a[o]/d);if(b)s[f]+=b,s[o]=0;else break}}let l=[];for(n=0;n<t.length&&l.length<c;n++){if(o=t[n],i=s[o],i&&!r.round&&l.length===c-1){let u,m=0;for(u=n+1,t.length;u<t.length;u++){let f=t[u];m+=s[f]*(r.unitMeasures[f]/r.unitMeasures[o]);}i+=m,r.maxDecimalPoints!==void 0&&(i=U(i,r.maxDecimalPoints));}i&&l.push({unitCount:i,unitName:o});}return l},M=(e,r,t)=>{let{language:a,units:c}=r;if(e.length===0){let u=c.at(-1);return E({unitCount:0,unitName:u},a,r)}let{conjunction:s,serialComma:o}=r,n=", ";r.delimiter!==void 0?n=r.delimiter:a.delimiter!==void 0&&(n=a.delimiter);let i="";r.timeAdverb&&t!==0&&(i=a.future??"",t<0&&(i=a.past??""));let p=[];for(let u of e){let m=u;p.push(E(m,a,r));}let l;return !s||e.length===1?l=p.join(n):e.length===2?l=p.join(s):l=p.slice(0,-1).join(n)+(o?",":"")+s+p.at(-1),i&&(l=i.replace("%s",l)),l},O=(e,r)=>{if(Number.isNaN(e))throw new TypeError("Expected a valid number");if(typeof e!="number")throw new TypeError("Expected a number");let t={conjunction:"",language:a,round:!1,serialComma:!0,spacer:" ",timeAdverb:!1,unitMeasures:{d:864e5,h:36e5,m:6e4,mo:2629746e3,ms:1,s:1e3,w:6048e5,y:31556952e3},units:["w","d","h","m","s"],...r};w(t.language);let a$1=Math.abs(e),c=T(a$1,t);return M(c,t,e)},R=O;
|
|
5
|
-
|
|
6
|
-
export { R as duration, x as formatBytes, P as parseBytes };
|
|
7
|
-
//# sourceMappingURL=out.js.map
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/bytes.ts","../src/language/util/validate-duration-language.ts","../src/duration.ts"],"names":["BYTE_SIZES","parseLocalizedNumber","stringNumber","locale","thousandSeparator","decimalSeparator","fromBase","base","parseBytes","value","options","config","groups","localizedNumber","type","level","unit","formatBytes","bytes","givenBase","decimals","long","requestedUnit","l10nOptions","absoluteBytes","space","requestedUnitIndex","fractionDigits","validateDurationLanguage","language","requiredProperties","property","validate_duration_language_default","toFixed","number_","fixed","matches","renderPiece","unitCount","unitName","maxDecimalPoints","spacer","decimal","digitReplacements","formattedCount","normalizedUnitCount","countString","char","languageWord","word","getPieces","ms","units","unitMeasures","largest","unitCounts","index","msRemaining","unitMs","unitsRemainingBeforeRound","index_","smallerUnitName","smallerUnitCount","rounded","previousUnitName","previousUnitMs","amountOfPreviousUnit","result","remainder","remainderUnitName","formatPieces","pieces","smallestUnitName","conjunction","serialComma","delimiter","adverb","renderedPieces","piece_","piece","duration","milliseconds","durationLanguage","absTime","duration_default"],"mappings":"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","sourcesContent":["import type { FormateByteOptions, ParseByteOptions } from \"./types\";\n\nconst BYTE_SIZES = [\n {\n long: \"Bytes\",\n short: \"Bytes\",\n },\n {\n long: \"Kilobytes\",\n short: \"KB\",\n },\n {\n long: \"Megabytes\",\n short: \"MB\",\n },\n {\n long: \"Gigabytes\",\n short: \"GB\",\n },\n {\n long: \"Terabytes\",\n short: \"TB\",\n },\n {\n long: \"Petabytes\",\n short: \"PB\",\n },\n {\n long: \"Exabytes\",\n short: \"EB\",\n },\n {\n long: \"Zettabytes\",\n short: \"ZB\",\n },\n {\n long: \"Yottabytes\",\n short: \"YB\",\n },\n] as const;\n\ntype ByteSize = (typeof BYTE_SIZES)[number][\"short\"];\ntype LongByteSize = (typeof BYTE_SIZES)[number][\"long\"];\n\ntype Unit = ByteSize | LongByteSize;\n\n/**\n * Parse a localized number to a float.\n * @param stringNumber - the localized number\n * @param locale - [optional] the locale that the number is represented in. Omit this parameter to use the current locale.\n */\nconst parseLocalizedNumber = (stringNumber: string, locale: string): number => {\n const thousandSeparator = new Intl.NumberFormat(locale).format(11_111).replaceAll(/\\p{Number}/gu, \"\");\n const decimalSeparator = new Intl.NumberFormat(locale).format(1.1).replaceAll(/\\p{Number}/gu, \"\");\n\n // eslint-disable-next-line @rushstack/security/no-unsafe-regexp,security/detect-non-literal-regexp\n return Number.parseFloat(stringNumber.replaceAll(new RegExp(`\\\\${thousandSeparator}`, \"g\"), \"\").replace(new RegExp(`\\\\${decimalSeparator}`), \".\"));\n};\n\nconst fromBase = (base: 2 | 10) => {\n if (base === 2) {\n return 1024;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (base === 10) {\n return 1000;\n }\n\n throw new TypeError(`Unsupported base.`);\n};\n\n/**\n * Parse the given bytesize string and return bytes.\n *\n * @param value - The string to parse\n * @param options - Options for the conversion from string to bytes\n * @throws Error if `value` is not a non-empty string or a number\n */\nexport const parseBytes = (value: string, options?: ParseByteOptions): number => {\n const config = {\n base: 2,\n locale: \"en-US\",\n ...options,\n } as Required<ParseByteOptions>;\n\n if (typeof value !== \"string\" || value.length === 0) {\n throw new TypeError(\"Value is not a string or is empty.\");\n }\n\n if (value.length > 100) {\n throw new TypeError(\"Value exceeds the maximum length of 100 characters.\");\n }\n\n const match =\n // eslint-disable-next-line regexp/no-super-linear-backtracking,regexp/no-unused-capturing-group,regexp/no-misleading-capturing-group,security/detect-unsafe-regex\n /^(?<value>-?(?:\\d+(([.,])\\d+)*)?[.,]?\\d+) *(?<type>bytes?|b|kb|kib|mb|mib|gb|gib|tb|tib|pb|pib|eb|eib|zb|zib|yb|yib|(kilo|kibi|mega|mebi|giga|gibi|tera|tebi|peta|pebi|exa|exbi|zetta|zebi|yotta|yobi)?bytes)?$/i.exec(\n value,\n );\n // Named capture groups need to be manually typed today.\n // https://github.com/microsoft/TypeScript/issues/32098\n const groups = match?.groups as { type?: string; value: string } | undefined;\n\n if (!groups) {\n return Number.NaN;\n }\n\n const localizedNumber = parseLocalizedNumber(groups.value, config.locale);\n const type = (groups.type ?? \"Bytes\")\n .toUpperCase()\n .replace(/^KIBI/, \"KILO\")\n .replace(/^MIBI/, \"MEGA\")\n .replace(/^GIBI/, \"GIGA\")\n .replace(/^TEBI/, \"TERA\")\n .replace(/^PEBI/, \"PETA\")\n .replace(/^EXBI/, \"EXA\")\n .replace(/^ZEBI/, \"ZETTA\")\n .replace(/^YIBI/, \"YOTTA\")\n .replace(/^(.)IB$/, \"$1B\") as Uppercase<Unit> | \"B\";\n const level = BYTE_SIZES.findIndex((unit) => (unit.short[0] as string).toUpperCase() === type[0]);\n const base = fromBase(config.base);\n\n return localizedNumber * base ** level;\n};\n\n/**\n * Formats the given bytes into a human-readable string.\n * Per default, it will use the closest unit to the given value.\n *\n * @param bytes - The bytes to format\n * @param options - Options for the conversion from bytes to string\n */\nexport const formatBytes = (bytes: number, options?: FormateByteOptions<ByteSize>): string => {\n if (typeof bytes !== \"number\" || !Number.isFinite(bytes)) {\n throw new TypeError(\"Bytesize is not a number.\");\n }\n\n const {\n base: givenBase,\n decimals,\n locale,\n long,\n unit: requestedUnit,\n ...l10nOptions\n } = {\n base: 2,\n decimals: 0,\n locale: \"en-US\",\n long: false,\n ...options,\n } as FormateByteOptions<ByteSize>;\n const base = fromBase(givenBase as 2 | 10);\n\n const absoluteBytes = Math.abs(bytes);\n const space = options?.space ?? true ? \" \" : \"\";\n\n const requestedUnitIndex = BYTE_SIZES.findIndex((unit) => unit.short === requestedUnit);\n\n if (bytes === 0) {\n const level = Math.min(0, Math.max(requestedUnitIndex, BYTE_SIZES.length - 1));\n\n // eslint-disable-next-line security/detect-object-injection,prefer-template\n return \"0\" + space + (BYTE_SIZES[level] as { long: string; short: string })[long ? \"long\" : \"short\"];\n }\n\n const level = requestedUnitIndex >= 0 ? requestedUnitIndex : Math.min(Math.floor(Math.log(absoluteBytes) / Math.log(base)), BYTE_SIZES.length - 1);\n // eslint-disable-next-line security/detect-object-injection\n const unit = (BYTE_SIZES[level] as { long: string; short: string })[long ? \"long\" : \"short\"];\n\n const value = bytes / base ** level;\n const fractionDigits = (decimals as number) < 0 ? undefined : decimals;\n const formattedValue = new Intl.NumberFormat(locale, {\n maximumFractionDigits: fractionDigits,\n minimumFractionDigits: fractionDigits,\n ...l10nOptions,\n }).format(value);\n\n return formattedValue + space + unit;\n};\n","import type { DurationLanguage } from \"../../types\";\n\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst validateDurationLanguage = (language: DurationLanguage): void => {\n const requiredProperties = [\"y\", \"mo\", \"w\", \"d\", \"h\", \"m\", \"s\", \"ms\", \"future\", \"past\"];\n\n // eslint-disable-next-line no-loops/no-loops,no-restricted-syntax\n for (const property of requiredProperties) {\n if (!Object.prototype.hasOwnProperty.call(language, property)) {\n throw new TypeError(`Missing required property: ${property}`);\n }\n }\n\n if (typeof language.future !== \"string\" || typeof language.past !== \"string\") {\n throw new TypeError(\"Properties future and past must be of type string\");\n }\n\n // eslint-disable-next-line no-loops/no-loops,no-restricted-syntax\n for (const property of [\"y\", \"mo\", \"w\", \"d\", \"h\", \"m\", \"s\", \"ms\"]) {\n if (typeof language[property as keyof typeof language] !== \"string\" && typeof language[property as keyof typeof language] !== \"function\") {\n throw new TypeError(`Property ${property} must be of type string or function`);\n }\n }\n\n if (language.decimal && typeof language.decimal !== \"string\") {\n throw new TypeError(\"Property decimal must be of type string\");\n }\n\n if (language.delimiter && typeof language.delimiter !== \"string\") {\n throw new TypeError(\"Property delimiter must be of type string\");\n }\n\n // eslint-disable-next-line no-underscore-dangle\n if (language._digitReplacements && !Array.isArray(language._digitReplacements)) {\n throw new TypeError(\"Property _digitReplacements must be an array\");\n }\n\n // eslint-disable-next-line no-underscore-dangle\n if (language._numberFirst && typeof language._numberFirst !== \"boolean\") {\n throw new TypeError(\"Property _numberFirst must be of type boolean\");\n }\n};\n\nexport default validateDurationLanguage;\n","import { durationLanguage } from \"./language/en\";\nimport validateDurationLanguage from \"./language/util/validate-duration-language\";\nimport type { DurationDigitReplacements, DurationLanguage, DurationOptions, DurationPiece, DurationUnitMeasures, DurationUnitName } from \"./types\";\n\ninterface InternalOptions {\n conjunction: string;\n decimal?: string;\n delimiter?: string;\n digitReplacements?: DurationDigitReplacements;\n fallbacks?: string[];\n language: DurationLanguage;\n largest?: number;\n maxDecimalPoints?: number;\n round: boolean;\n serialComma: boolean;\n spacer: string;\n timeAdverb: boolean;\n unitMeasures: DurationUnitMeasures;\n units: DurationUnitName[];\n}\n\nconst toFixed = (number_: number, fixed: number): number => {\n // eslint-disable-next-line no-param-reassign\n fixed = fixed || -1;\n\n // eslint-disable-next-line @rushstack/security/no-unsafe-regexp,security/detect-non-literal-regexp\n const matches = new RegExp(`^-?\\\\d+(?:.\\\\d{0,${fixed}})?`).exec(number_.toString());\n\n if (matches === null) {\n return number_; // can be undefined when num is Number.POSITIVE_INFINITY\n }\n\n return Number.parseFloat(matches[0]);\n};\n\nconst renderPiece = ({ unitCount, unitName }: DurationPiece, language: DurationLanguage, options: InternalOptions): string => {\n const { maxDecimalPoints, spacer } = options;\n\n let decimal = \".\";\n\n if (options.decimal !== undefined) {\n decimal = options.decimal;\n } else if (language.decimal !== undefined) {\n decimal = language.decimal;\n }\n\n let digitReplacements: DurationDigitReplacements | undefined;\n\n if (\"digitReplacements\" in options) {\n digitReplacements = options.digitReplacements;\n } else if (\"_digitReplacements\" in language) {\n // eslint-disable-next-line no-underscore-dangle\n digitReplacements = language._digitReplacements;\n }\n\n let formattedCount: string;\n\n let normalizedUnitCount = unitCount;\n\n if (maxDecimalPoints !== undefined) {\n // normalizedUnitCount = Math.floor(unitCount * 10 ** maxDecimalPoints) / 10 ** maxDecimalPoints;\n normalizedUnitCount = toFixed(unitCount, maxDecimalPoints);\n }\n\n const countString = normalizedUnitCount.toString();\n\n if (digitReplacements) {\n formattedCount = \"\";\n\n // eslint-disable-next-line no-loops/no-loops,no-restricted-syntax\n for (const char of countString) {\n // @ts-expect-error because `char` should always be 0-9 at this point.\n // eslint-disable-next-line security/detect-object-injection\n formattedCount += char === \".\" ? decimal : digitReplacements[char];\n }\n } else {\n formattedCount = countString.replace(\".\", decimal);\n }\n\n // eslint-disable-next-line security/detect-object-injection\n const languageWord = language[unitName];\n let word = languageWord as string;\n\n if (typeof languageWord === \"function\") {\n word = languageWord(unitCount) as string;\n }\n\n // eslint-disable-next-line no-underscore-dangle\n if (language._numberFirst) {\n return (word as string) + spacer + formattedCount;\n }\n\n return formattedCount + spacer + (word as string);\n};\n\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst getPieces = (ms: number, options: InternalOptions): DurationPiece[] => {\n const { units } = options;\n\n if (units.length === 0) {\n return [];\n }\n\n const { unitMeasures } = options;\n const largest = options.largest ?? Number.POSITIVE_INFINITY;\n\n // Get the counts for each unit. Doesn't round or truncate anything.\n // For example, might create an object like `{ y: 7, m: 6, w: 0, d: 5, h: 23.99 }`.\n const unitCounts: Partial<Record<DurationUnitName, number>> = {};\n\n let unitName: DurationUnitName;\n let index: number;\n let unitCount: number;\n let msRemaining: number = ms;\n\n // eslint-disable-next-line no-loops/no-loops,no-plusplus\n for (index = 0; index < units.length; index++) {\n // eslint-disable-next-line security/detect-object-injection\n unitName = units[index] as DurationUnitName;\n\n // eslint-disable-next-line security/detect-object-injection\n const unitMs = unitMeasures[unitName];\n const isLast = index === units.length - 1;\n\n unitCount = isLast ? msRemaining / unitMs : Math.floor(msRemaining / unitMs);\n // eslint-disable-next-line security/detect-object-injection\n unitCounts[unitName] = unitCount;\n\n msRemaining -= unitCount * unitMs;\n }\n\n if (options.round) {\n // Update counts based on the `largest` option.\n // For example, if `largest === 2` and `unitCount` is `{ y: 7, m: 6, w: 0, d: 5, h: 23.99 }`,\n // updates to something like `{ y: 7, m: 6.2 }`.\n let unitsRemainingBeforeRound = largest;\n\n // eslint-disable-next-line no-plusplus,no-loops/no-loops\n for (index = 0; index < units.length; index++) {\n // eslint-disable-next-line security/detect-object-injection\n unitName = units[index] as DurationUnitName;\n // eslint-disable-next-line security/detect-object-injection\n unitCount = unitCounts[unitName] as number;\n\n if (unitCount === 0) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n // eslint-disable-next-line no-plusplus\n unitsRemainingBeforeRound--;\n\n // \"Take\" the rest of the units into this one.\n if (unitsRemainingBeforeRound === 0) {\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-loops/no-loops,no-underscore-dangle,no-plusplus\n for (let index_ = index + 1; index_ < units.length; index_++) {\n // eslint-disable-next-line no-underscore-dangle,security/detect-object-injection\n const smallerUnitName = units[index_] as DurationUnitName;\n // eslint-disable-next-line security/detect-object-injection\n const smallerUnitCount = unitCounts[smallerUnitName] as number;\n\n // @ts-expect-error unitCounts[unitName] is defined\n // eslint-disable-next-line security/detect-object-injection\n unitCounts[unitName] += (smallerUnitCount * unitMeasures[smallerUnitName]) / unitMeasures[unitName];\n // eslint-disable-next-line security/detect-object-injection\n unitCounts[smallerUnitName] = 0;\n }\n\n break;\n }\n }\n\n // Round the last piece (which should be the only non-integer).\n //\n // This can be a little tricky if the last piece \"bubbles up\" to a larger\n // unit. For example, \"3 days, 23.99 hours\" should be rounded to \"4 days\".\n // It can also require multiple passes. For example, \"6 days, 23.99 hours\"\n // should become \"1 week\".\n // eslint-disable-next-line no-plusplus,no-loops/no-loops\n for (index = units.length - 1; index >= 0; index--) {\n // eslint-disable-next-line security/detect-object-injection\n unitName = units[index] as DurationUnitName;\n // eslint-disable-next-line security/detect-object-injection\n unitCount = unitCounts[unitName] as number;\n\n if (unitCount === 0) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n const rounded = Math.round(unitCount);\n\n // eslint-disable-next-line security/detect-object-injection\n unitCounts[unitName] = rounded;\n\n if (index === 0) {\n break;\n }\n\n const previousUnitName: DurationUnitName = units[index - 1] as DurationUnitName;\n // eslint-disable-next-line security/detect-object-injection\n const previousUnitMs = unitMeasures[previousUnitName];\n // eslint-disable-next-line security/detect-object-injection\n const amountOfPreviousUnit = Math.floor((rounded * unitMeasures[unitName]) / previousUnitMs);\n\n if (amountOfPreviousUnit) {\n // @ts-expect-error unitCounts[previousUnitName] is defined\n // eslint-disable-next-line security/detect-object-injection\n unitCounts[previousUnitName] += amountOfPreviousUnit;\n // eslint-disable-next-line security/detect-object-injection\n unitCounts[unitName] = 0;\n } else {\n break;\n }\n }\n }\n\n const result: DurationPiece[] = [];\n\n // eslint-disable-next-line no-plusplus,no-loops/no-loops\n for (index = 0; index < units.length && result.length < largest; index++) {\n // eslint-disable-next-line security/detect-object-injection\n unitName = units[index] as DurationUnitName;\n // eslint-disable-next-line security/detect-object-injection\n unitCount = unitCounts[unitName] as number;\n\n // If the result is not rounded, and `largest` option has been set, aggregate the rest and apply the\n // `maxDecimalPoints` to truncate the decimals\n if (unitCount && !options.round && result.length === largest - 1) {\n // eslint-disable-next-line @typescript-eslint/naming-convention,no-underscore-dangle\n let index_;\n let remainder = 0;\n\n // eslint-disable-next-line no-loops/no-loops,no-plusplus\n for (index_ = index + 1, units.length; index_ < units.length; index_++) {\n // eslint-disable-next-line no-underscore-dangle,security/detect-object-injection\n const remainderUnitName = units[index_] as DurationUnitName;\n\n // eslint-disable-next-line security/detect-object-injection\n remainder += (unitCounts[remainderUnitName] as number) * (options.unitMeasures[remainderUnitName] / options.unitMeasures[unitName]);\n }\n\n unitCount += remainder;\n\n if (options.maxDecimalPoints !== undefined) {\n unitCount = toFixed(unitCount, options.maxDecimalPoints);\n }\n }\n\n if (unitCount) {\n result.push({ unitCount, unitName });\n }\n }\n\n return result;\n};\n\n// eslint-disable-next-line sonarjs/cognitive-complexity\nconst formatPieces = (pieces: DurationPiece[], options: InternalOptions, ms: number): string => {\n const { language, units } = options;\n\n if (pieces.length === 0) {\n const smallestUnitName = units.at(-1) as DurationUnitName;\n\n return renderPiece({ unitCount: 0, unitName: smallestUnitName }, language, options);\n }\n\n const { conjunction, serialComma } = options;\n\n let delimiter = \", \";\n\n if (options.delimiter !== undefined) {\n delimiter = options.delimiter;\n } else if (language.delimiter !== undefined) {\n delimiter = language.delimiter;\n }\n\n // timeAdverb part\n let adverb = \"\";\n\n if (options.timeAdverb && ms !== 0) {\n adverb = language.future ?? \"\";\n\n if (ms < 0) {\n adverb = language.past ?? \"\";\n }\n }\n\n const renderedPieces: string[] = [];\n\n // eslint-disable-next-line no-loops/no-loops,@typescript-eslint/naming-convention,no-restricted-syntax,no-underscore-dangle\n for (const piece_ of pieces) {\n const piece = piece_ as DurationPiece;\n\n renderedPieces.push(renderPiece(piece, language, options));\n }\n\n let result: string;\n\n if (!conjunction || pieces.length === 1) {\n result = renderedPieces.join(delimiter);\n } else if (pieces.length === 2) {\n result = renderedPieces.join(conjunction);\n } else {\n result = renderedPieces.slice(0, -1).join(delimiter) + (serialComma ? \",\" : \"\") + conjunction + renderedPieces.at(-1);\n }\n\n if (adverb) {\n result = adverb.replace(\"%s\", result);\n }\n\n return result;\n};\n\nconst duration = (milliseconds: number, options?: DurationOptions): string => {\n if (Number.isNaN(milliseconds)) {\n throw new TypeError(\"Expected a valid number\");\n }\n\n if (typeof milliseconds !== \"number\") {\n throw new TypeError(\"Expected a number\");\n }\n\n const config = {\n conjunction: \"\",\n language: durationLanguage,\n round: false,\n serialComma: true,\n spacer: \" \",\n timeAdverb: false,\n unitMeasures: {\n d: 86_400_000,\n h: 3_600_000,\n m: 60_000,\n mo: 2_629_746_000, // 365.2425 / 12 = 30.436875 days\n ms: 1,\n s: 1000,\n w: 604_800_000,\n y: 31_556_952_000, // 365 + 1/4 - 1/100 + 1/400 (actual leap day rules) = 365.2425 days\n },\n units: [\"w\", \"d\", \"h\", \"m\", \"s\"],\n ...options,\n } as InternalOptions;\n\n validateDurationLanguage(config.language);\n\n // Has the nice side-effect of converting things to numbers. For example,\n // converts `\"123\"` and `Number(123)` to `123`.\n const absTime = Math.abs(milliseconds as number);\n\n const pieces = getPieces(absTime, config);\n\n return formatPieces(pieces, config, milliseconds as number);\n};\n\nexport default duration;\n"]}
|
package/dist/language/af.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/language/af.ts"],"names":["durationLanguage","create_duration_language_default","counter"],"mappings":"qCAEO,IAAMA,EAAmBC,EAC5B,OACCC,GAAY,QAAQA,IAAY,EAAI,GAAK,GAAG,GAC5CA,GAAaA,IAAY,EAAI,OAAS,OACtCA,GAAaA,IAAY,EAAI,MAAQ,MACrCA,GAAaA,IAAY,EAAI,MAAQ,MACrCA,GAAaA,IAAY,EAAI,SAAW,SACxCA,GAAY,UAAUA,IAAY,EAAI,GAAK,GAAG,GAC9CA,GAAY,eAAeA,IAAY,EAAI,GAAK,GAAG,GACpD,SACA,YACA,GACJ","sourcesContent":["import createDurationLanguage from \"./util/create-duration-language\";\n\nexport const durationLanguage = createDurationLanguage(\n \"jaar\",\n (counter) => `maand${counter === 1 ? \"\" : \"e\"}`,\n (counter) => (counter === 1 ? \"week\" : \"weke\"),\n (counter) => (counter === 1 ? \"dag\" : \"dae\"),\n (counter) => (counter === 1 ? \"uur\" : \"ure\"),\n (counter) => (counter === 1 ? \"minuut\" : \"minute\"),\n (counter) => `sekonde${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `millisekonde${counter === 1 ? \"\" : \"s\"}`,\n \"oor %s\",\n \"%s gelede\",\n \",\",\n);\n"]}
|
package/dist/language/af.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { a } from '../chunk-MPZEKYC6.js';
|
|
2
|
-
|
|
3
|
-
var u=a("jaar",e=>`maand${e===1?"":"e"}`,e=>e===1?"week":"weke",e=>e===1?"dag":"dae",e=>e===1?"uur":"ure",e=>e===1?"minuut":"minute",e=>`sekonde${e===1?"":"s"}`,e=>`millisekonde${e===1?"":"s"}`,"oor %s","%s gelede",",");
|
|
4
|
-
|
|
5
|
-
export { u as durationLanguage };
|
|
6
|
-
//# sourceMappingURL=out.js.map
|
|
7
|
-
//# sourceMappingURL=af.js.map
|
package/dist/language/af.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/language/af.ts"],"names":["durationLanguage","create_duration_language_default","counter"],"mappings":"oCAEO,IAAMA,EAAmBC,EAC5B,OACCC,GAAY,QAAQA,IAAY,EAAI,GAAK,GAAG,GAC5CA,GAAaA,IAAY,EAAI,OAAS,OACtCA,GAAaA,IAAY,EAAI,MAAQ,MACrCA,GAAaA,IAAY,EAAI,MAAQ,MACrCA,GAAaA,IAAY,EAAI,SAAW,SACxCA,GAAY,UAAUA,IAAY,EAAI,GAAK,GAAG,GAC9CA,GAAY,eAAeA,IAAY,EAAI,GAAK,GAAG,GACpD,SACA,YACA,GACJ","sourcesContent":["import createDurationLanguage from \"./util/create-duration-language\";\n\nexport const durationLanguage = createDurationLanguage(\n \"jaar\",\n (counter) => `maand${counter === 1 ? \"\" : \"e\"}`,\n (counter) => (counter === 1 ? \"week\" : \"weke\"),\n (counter) => (counter === 1 ? \"dag\" : \"dae\"),\n (counter) => (counter === 1 ? \"uur\" : \"ure\"),\n (counter) => (counter === 1 ? \"minuut\" : \"minute\"),\n (counter) => `sekonde${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `millisekonde${counter === 1 ? \"\" : \"s\"}`,\n \"oor %s\",\n \"%s gelede\",\n \",\",\n);\n"]}
|
package/dist/language/ar.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/language/ar.ts"],"names":["getArabicForm","counter","durationLanguage","create_duration_language_default"],"mappings":"0CAEA,IAAMA,EAAiBC,GACfA,IAAY,EACL,EAGPA,EAAU,GAAKA,EAAU,GAClB,EAGJ,EAGEC,EAAmB,CAC5B,GAAGC,EACEF,GAAY,CAAC,qBAAO,iCAAS,gCAAO,EAAED,EAAcC,CAAO,CAAC,EAC5DA,GAAY,CAAC,qBAAO,iCAAS,0BAAM,EAAED,EAAcC,CAAO,CAAC,EAC3DA,GAAY,CAAC,iCAAS,6CAAW,sCAAQ,EAAED,EAAcC,CAAO,CAAC,EACjEA,GAAY,CAAC,qBAAO,iCAAS,0BAAM,EAAED,EAAcC,CAAO,CAAC,EAC3DA,GAAY,CAAC,2BAAQ,uCAAU,gCAAO,EAAED,EAAcC,CAAO,CAAC,EAC9DA,GAAY,CAAC,iCAAS,6CAAW,gCAAO,EAAED,EAAcC,CAAO,CAAC,EAChEA,GAAY,CAAC,iCAAS,6CAAW,gCAAO,EAAED,EAAcC,CAAO,CAAC,EAChEA,GAAY,CAAC,6EAAkB,mFAAmB,wFAAkB,EAAED,EAAcC,CAAO,CAAC,EAC7F,wBACA,wBACA,GACJ,EACA,mBAAoB,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,QAAG,EACrE,UAAW,UACf","sourcesContent":["import createDurationLanguage from \"./util/create-duration-language\";\n\nconst getArabicForm = (counter: number): number => {\n if (counter === 2) {\n return 1;\n }\n\n if (counter > 2 && counter < 11) {\n return 2;\n }\n\n return 0;\n};\n\nexport const durationLanguage = {\n ...createDurationLanguage(\n (counter) => [\"سنة\", \"سنتان\", \"سنوات\"][getArabicForm(counter)] as string,\n (counter) => [\"شهر\", \"شهران\", \"أشهر\"][getArabicForm(counter)] as string,\n (counter) => [\"أسبوع\", \"أسبوعين\", \"أسابيع\"][getArabicForm(counter)] as string,\n (counter) => [\"يوم\", \"يومين\", \"أيام\"][getArabicForm(counter)] as string,\n (counter) => [\"ساعة\", \"ساعتين\", \"ساعات\"][getArabicForm(counter)] as string,\n (counter) => [\"دقيقة\", \"دقيقتان\", \"دقائق\"][getArabicForm(counter)] as string,\n (counter) => [\"ثانية\", \"ثانيتان\", \"ثواني\"][getArabicForm(counter)] as string,\n (counter) => [\"جزء من الثانية\", \"جزآن من الثانية\", \"أجزاء من الثانية\"][getArabicForm(counter)] as string,\n \"بعد %s\",\n \"منذ %s\",\n \",\",\n ),\n _digitReplacements: [\"۰\", \"١\", \"٢\", \"٣\", \"٤\", \"٥\", \"٦\", \"٧\", \"٨\", \"٩\"],\n delimiter: \" ﻭ \",\n};\n"]}
|
package/dist/language/ar.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { a } from '../chunk-MPZEKYC6.js';
|
|
2
|
-
|
|
3
|
-
var s=r=>r===2?1:r>2&&r<11?2:0,e={...a(r=>["\u0633\u0646\u0629","\u0633\u0646\u062A\u0627\u0646","\u0633\u0646\u0648\u0627\u062A"][s(r)],r=>["\u0634\u0647\u0631","\u0634\u0647\u0631\u0627\u0646","\u0623\u0634\u0647\u0631"][s(r)],r=>["\u0623\u0633\u0628\u0648\u0639","\u0623\u0633\u0628\u0648\u0639\u064A\u0646","\u0623\u0633\u0627\u0628\u064A\u0639"][s(r)],r=>["\u064A\u0648\u0645","\u064A\u0648\u0645\u064A\u0646","\u0623\u064A\u0627\u0645"][s(r)],r=>["\u0633\u0627\u0639\u0629","\u0633\u0627\u0639\u062A\u064A\u0646","\u0633\u0627\u0639\u0627\u062A"][s(r)],r=>["\u062F\u0642\u064A\u0642\u0629","\u062F\u0642\u064A\u0642\u062A\u0627\u0646","\u062F\u0642\u0627\u0626\u0642"][s(r)],r=>["\u062B\u0627\u0646\u064A\u0629","\u062B\u0627\u0646\u064A\u062A\u0627\u0646","\u062B\u0648\u0627\u0646\u064A"][s(r)],r=>["\u062C\u0632\u0621 \u0645\u0646 \u0627\u0644\u062B\u0627\u0646\u064A\u0629","\u062C\u0632\u0622\u0646 \u0645\u0646 \u0627\u0644\u062B\u0627\u0646\u064A\u0629","\u0623\u062C\u0632\u0627\u0621 \u0645\u0646 \u0627\u0644\u062B\u0627\u0646\u064A\u0629"][s(r)],"\u0628\u0639\u062F %s","\u0645\u0646\u0630 %s",","),_digitReplacements:["\u06F0","\u0661","\u0662","\u0663","\u0664","\u0665","\u0666","\u0667","\u0668","\u0669"],delimiter:" \uFEED "};
|
|
4
|
-
|
|
5
|
-
export { e as durationLanguage };
|
|
6
|
-
//# sourceMappingURL=out.js.map
|
|
7
|
-
//# sourceMappingURL=ar.js.map
|
package/dist/language/ar.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/language/ar.ts"],"names":["getArabicForm","counter","durationLanguage","create_duration_language_default"],"mappings":"yCAEA,IAAMA,EAAiBC,GACfA,IAAY,EACL,EAGPA,EAAU,GAAKA,EAAU,GAClB,EAGJ,EAGEC,EAAmB,CAC5B,GAAGC,EACEF,GAAY,CAAC,qBAAO,iCAAS,gCAAO,EAAED,EAAcC,CAAO,CAAC,EAC5DA,GAAY,CAAC,qBAAO,iCAAS,0BAAM,EAAED,EAAcC,CAAO,CAAC,EAC3DA,GAAY,CAAC,iCAAS,6CAAW,sCAAQ,EAAED,EAAcC,CAAO,CAAC,EACjEA,GAAY,CAAC,qBAAO,iCAAS,0BAAM,EAAED,EAAcC,CAAO,CAAC,EAC3DA,GAAY,CAAC,2BAAQ,uCAAU,gCAAO,EAAED,EAAcC,CAAO,CAAC,EAC9DA,GAAY,CAAC,iCAAS,6CAAW,gCAAO,EAAED,EAAcC,CAAO,CAAC,EAChEA,GAAY,CAAC,iCAAS,6CAAW,gCAAO,EAAED,EAAcC,CAAO,CAAC,EAChEA,GAAY,CAAC,6EAAkB,mFAAmB,wFAAkB,EAAED,EAAcC,CAAO,CAAC,EAC7F,wBACA,wBACA,GACJ,EACA,mBAAoB,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,QAAG,EACrE,UAAW,UACf","sourcesContent":["import createDurationLanguage from \"./util/create-duration-language\";\n\nconst getArabicForm = (counter: number): number => {\n if (counter === 2) {\n return 1;\n }\n\n if (counter > 2 && counter < 11) {\n return 2;\n }\n\n return 0;\n};\n\nexport const durationLanguage = {\n ...createDurationLanguage(\n (counter) => [\"سنة\", \"سنتان\", \"سنوات\"][getArabicForm(counter)] as string,\n (counter) => [\"شهر\", \"شهران\", \"أشهر\"][getArabicForm(counter)] as string,\n (counter) => [\"أسبوع\", \"أسبوعين\", \"أسابيع\"][getArabicForm(counter)] as string,\n (counter) => [\"يوم\", \"يومين\", \"أيام\"][getArabicForm(counter)] as string,\n (counter) => [\"ساعة\", \"ساعتين\", \"ساعات\"][getArabicForm(counter)] as string,\n (counter) => [\"دقيقة\", \"دقيقتان\", \"دقائق\"][getArabicForm(counter)] as string,\n (counter) => [\"ثانية\", \"ثانيتان\", \"ثواني\"][getArabicForm(counter)] as string,\n (counter) => [\"جزء من الثانية\", \"جزآن من الثانية\", \"أجزاء من الثانية\"][getArabicForm(counter)] as string,\n \"بعد %s\",\n \"منذ %s\",\n \",\",\n ),\n _digitReplacements: [\"۰\", \"١\", \"٢\", \"٣\", \"٤\", \"٥\", \"٦\", \"٧\", \"٨\", \"٩\"],\n delimiter: \" ﻭ \",\n};\n"]}
|
package/dist/language/bg.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/language/bg.ts"],"names":["durationLanguage","create_duration_language_default","counter","get_slavic_form_default"],"mappings":"+EAGO,IAAMA,EAAmBC,EAC3BC,GAAY,CAAC,uCAAU,uCAAU,sCAAQ,EAAEC,EAAcD,CAAO,CAAC,EACjEA,GAAY,CAAC,uCAAU,iCAAS,sCAAQ,EAAEC,EAAcD,CAAO,CAAC,EAChEA,GAAY,CAAC,6CAAW,6CAAW,4CAAS,EAAEC,EAAcD,CAAO,CAAC,EACpEA,GAAY,CAAC,qBAAO,qBAAO,oBAAK,EAAEC,EAAcD,CAAO,CAAC,EACxDA,GAAY,CAAC,2BAAQ,qBAAO,0BAAM,EAAEC,EAAcD,CAAO,CAAC,EAC1DA,GAAY,CAAC,uCAAU,uCAAU,sCAAQ,EAAEC,EAAcD,CAAO,CAAC,EACjEA,GAAY,CAAC,6CAAW,6CAAW,4CAAS,EAAEC,EAAcD,CAAO,CAAC,EACpEA,GAAY,CAAC,qEAAe,qEAAe,oEAAa,EAAEC,EAAcD,CAAO,CAAC,EACjF,8BACA,oCACA,GACJ","sourcesContent":["import createDurationLanguage from \"./util/create-duration-language\";\nimport getSlavicForm from \"./util/duration/get-slavic-form\";\n\nexport const durationLanguage = createDurationLanguage(\n (counter) => [\"години\", \"година\", \"години\"][getSlavicForm(counter)] as string,\n (counter) => [\"месеца\", \"месец\", \"месеца\"][getSlavicForm(counter)] as string,\n (counter) => [\"седмици\", \"седмица\", \"седмици\"][getSlavicForm(counter)] as string,\n (counter) => [\"дни\", \"ден\", \"дни\"][getSlavicForm(counter)] as string,\n (counter) => [\"часа\", \"час\", \"часа\"][getSlavicForm(counter)] as string,\n (counter) => [\"минути\", \"минута\", \"минути\"][getSlavicForm(counter)] as string,\n (counter) => [\"секунди\", \"секунда\", \"секунди\"][getSlavicForm(counter)] as string,\n (counter) => [\"милисекунди\", \"милисекунда\", \"милисекунди\"][getSlavicForm(counter)] as string,\n \"след %s\",\n \"преди %s\",\n \",\",\n);\n"]}
|
package/dist/language/bg.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { a as a$1 } from '../chunk-AVPLJXJK.js';
|
|
2
|
-
import { a } from '../chunk-MPZEKYC6.js';
|
|
3
|
-
|
|
4
|
-
var o=a(s=>["\u0433\u043E\u0434\u0438\u043D\u0438","\u0433\u043E\u0434\u0438\u043D\u0430","\u0433\u043E\u0434\u0438\u043D\u0438"][a$1(s)],s=>["\u043C\u0435\u0441\u0435\u0446\u0430","\u043C\u0435\u0441\u0435\u0446","\u043C\u0435\u0441\u0435\u0446\u0430"][a$1(s)],s=>["\u0441\u0435\u0434\u043C\u0438\u0446\u0438","\u0441\u0435\u0434\u043C\u0438\u0446\u0430","\u0441\u0435\u0434\u043C\u0438\u0446\u0438"][a$1(s)],s=>["\u0434\u043D\u0438","\u0434\u0435\u043D","\u0434\u043D\u0438"][a$1(s)],s=>["\u0447\u0430\u0441\u0430","\u0447\u0430\u0441","\u0447\u0430\u0441\u0430"][a$1(s)],s=>["\u043C\u0438\u043D\u0443\u0442\u0438","\u043C\u0438\u043D\u0443\u0442\u0430","\u043C\u0438\u043D\u0443\u0442\u0438"][a$1(s)],s=>["\u0441\u0435\u043A\u0443\u043D\u0434\u0438","\u0441\u0435\u043A\u0443\u043D\u0434\u0430","\u0441\u0435\u043A\u0443\u043D\u0434\u0438"][a$1(s)],s=>["\u043C\u0438\u043B\u0438\u0441\u0435\u043A\u0443\u043D\u0434\u0438","\u043C\u0438\u043B\u0438\u0441\u0435\u043A\u0443\u043D\u0434\u0430","\u043C\u0438\u043B\u0438\u0441\u0435\u043A\u0443\u043D\u0434\u0438"][a$1(s)],"\u0441\u043B\u0435\u0434 %s","\u043F\u0440\u0435\u0434\u0438 %s",",");
|
|
5
|
-
|
|
6
|
-
export { o as durationLanguage };
|
|
7
|
-
//# sourceMappingURL=out.js.map
|
|
8
|
-
//# sourceMappingURL=bg.js.map
|
package/dist/language/bg.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/language/bg.ts"],"names":["durationLanguage","create_duration_language_default","counter","get_slavic_form_default"],"mappings":"6EAGO,IAAMA,EAAmBC,EAC3BC,GAAY,CAAC,uCAAU,uCAAU,sCAAQ,EAAEC,EAAcD,CAAO,CAAC,EACjEA,GAAY,CAAC,uCAAU,iCAAS,sCAAQ,EAAEC,EAAcD,CAAO,CAAC,EAChEA,GAAY,CAAC,6CAAW,6CAAW,4CAAS,EAAEC,EAAcD,CAAO,CAAC,EACpEA,GAAY,CAAC,qBAAO,qBAAO,oBAAK,EAAEC,EAAcD,CAAO,CAAC,EACxDA,GAAY,CAAC,2BAAQ,qBAAO,0BAAM,EAAEC,EAAcD,CAAO,CAAC,EAC1DA,GAAY,CAAC,uCAAU,uCAAU,sCAAQ,EAAEC,EAAcD,CAAO,CAAC,EACjEA,GAAY,CAAC,6CAAW,6CAAW,4CAAS,EAAEC,EAAcD,CAAO,CAAC,EACpEA,GAAY,CAAC,qEAAe,qEAAe,oEAAa,EAAEC,EAAcD,CAAO,CAAC,EACjF,8BACA,oCACA,GACJ","sourcesContent":["import createDurationLanguage from \"./util/create-duration-language\";\nimport getSlavicForm from \"./util/duration/get-slavic-form\";\n\nexport const durationLanguage = createDurationLanguage(\n (counter) => [\"години\", \"година\", \"години\"][getSlavicForm(counter)] as string,\n (counter) => [\"месеца\", \"месец\", \"месеца\"][getSlavicForm(counter)] as string,\n (counter) => [\"седмици\", \"седмица\", \"седмици\"][getSlavicForm(counter)] as string,\n (counter) => [\"дни\", \"ден\", \"дни\"][getSlavicForm(counter)] as string,\n (counter) => [\"часа\", \"час\", \"часа\"][getSlavicForm(counter)] as string,\n (counter) => [\"минути\", \"минута\", \"минути\"][getSlavicForm(counter)] as string,\n (counter) => [\"секунди\", \"секунда\", \"секунди\"][getSlavicForm(counter)] as string,\n (counter) => [\"милисекунди\", \"милисекунда\", \"милисекунди\"][getSlavicForm(counter)] as string,\n \"след %s\",\n \"преди %s\",\n \",\",\n);\n"]}
|
package/dist/language/bn.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/language/bn.ts"],"names":["durationLanguage","create_duration_language_default"],"mappings":"qCAEO,IAAMA,EAAmBC,EAAuB,qBAAO,qBAAO,uCAAU,qBAAO,iCAAS,iCAAS,6CAAW,qEAAe,wBAAU,uBAAQ","sourcesContent":["import createDurationLanguage from \"./util/create-duration-language\";\n\nexport const durationLanguage = createDurationLanguage(\"বছর\", \"মাস\", \"সপ্তাহ\", \"দিন\", \"ঘন্টা\", \"মিনিট\", \"সেকেন্ড\", \"মিলিসেকেন্ড\", \"%s পরে\", \"%s আগে\");\n"]}
|
package/dist/language/bn.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { a } from '../chunk-MPZEKYC6.js';
|
|
2
|
-
|
|
3
|
-
var e=a("\u09AC\u099B\u09B0","\u09AE\u09BE\u09B8","\u09B8\u09AA\u09CD\u09A4\u09BE\u09B9","\u09A6\u09BF\u09A8","\u0998\u09A8\u09CD\u099F\u09BE","\u09AE\u09BF\u09A8\u09BF\u099F","\u09B8\u09C7\u0995\u09C7\u09A8\u09CD\u09A1","\u09AE\u09BF\u09B2\u09BF\u09B8\u09C7\u0995\u09C7\u09A8\u09CD\u09A1","%s \u09AA\u09B0\u09C7","%s \u0986\u0997\u09C7");
|
|
4
|
-
|
|
5
|
-
export { e as durationLanguage };
|
|
6
|
-
//# sourceMappingURL=out.js.map
|
|
7
|
-
//# sourceMappingURL=bn.js.map
|
package/dist/language/bn.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/language/bn.ts"],"names":["durationLanguage","create_duration_language_default"],"mappings":"oCAEO,IAAMA,EAAmBC,EAAuB,qBAAO,qBAAO,uCAAU,qBAAO,iCAAS,iCAAS,6CAAW,qEAAe,wBAAU,uBAAQ","sourcesContent":["import createDurationLanguage from \"./util/create-duration-language\";\n\nexport const durationLanguage = createDurationLanguage(\"বছর\", \"মাস\", \"সপ্তাহ\", \"দিন\", \"ঘন্টা\", \"মিনিট\", \"সেকেন্ড\", \"মিলিসেকেন্ড\", \"%s পরে\", \"%s আগে\");\n"]}
|
package/dist/language/ca.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/language/ca.ts"],"names":["durationLanguage","create_duration_language_default","counter"],"mappings":"qCAEO,IAAMA,EAAmBC,EAC3BC,GAAY,MAAMA,IAAY,EAAI,GAAK,GAAG,GAC1CA,GAAY,MAAMA,IAAY,EAAI,GAAK,IAAI,GAC3CA,GAAY,SAASA,IAAY,EAAI,IAAM,IAAI,GAC/CA,GAAY,KAAKA,IAAY,EAAI,IAAM,IAAI,GAC3CA,GAAY,MAAMA,IAAY,EAAI,IAAM,IAAI,GAC5CA,GAAY,QAAQA,IAAY,EAAI,GAAK,GAAG,GAC5CA,GAAY,QAAQA,IAAY,EAAI,GAAK,GAAG,GAC5CA,GAAY,YAAYA,IAAY,EAAI,GAAK,GAAG,GACjD,eACA,QACA,GACJ","sourcesContent":["import createDurationLanguage from \"./util/create-duration-language\";\n\nexport const durationLanguage = createDurationLanguage(\n (counter) => `any${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `mes${counter === 1 ? \"\" : \"os\"}`,\n (counter) => `setman${counter === 1 ? \"a\" : \"es\"}`,\n (counter) => `di${counter === 1 ? \"a\" : \"es\"}`,\n (counter) => `hor${counter === 1 ? \"a\" : \"es\"}`,\n (counter) => `minut${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `segon${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `milisegon${counter === 1 ? \"\" : \"s\"}`,\n \"d'aquí %s\",\n \"fa %s\",\n \",\",\n);\n"]}
|
package/dist/language/ca.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { a } from '../chunk-MPZEKYC6.js';
|
|
2
|
-
|
|
3
|
-
var t=a(s=>`any${s===1?"":"s"}`,s=>`mes${s===1?"":"os"}`,s=>`setman${s===1?"a":"es"}`,s=>`di${s===1?"a":"es"}`,s=>`hor${s===1?"a":"es"}`,s=>`minut${s===1?"":"s"}`,s=>`segon${s===1?"":"s"}`,s=>`milisegon${s===1?"":"s"}`,"d'aqu\xED %s","fa %s",",");
|
|
4
|
-
|
|
5
|
-
export { t as durationLanguage };
|
|
6
|
-
//# sourceMappingURL=out.js.map
|
|
7
|
-
//# sourceMappingURL=ca.js.map
|
package/dist/language/ca.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/language/ca.ts"],"names":["durationLanguage","create_duration_language_default","counter"],"mappings":"oCAEO,IAAMA,EAAmBC,EAC3BC,GAAY,MAAMA,IAAY,EAAI,GAAK,GAAG,GAC1CA,GAAY,MAAMA,IAAY,EAAI,GAAK,IAAI,GAC3CA,GAAY,SAASA,IAAY,EAAI,IAAM,IAAI,GAC/CA,GAAY,KAAKA,IAAY,EAAI,IAAM,IAAI,GAC3CA,GAAY,MAAMA,IAAY,EAAI,IAAM,IAAI,GAC5CA,GAAY,QAAQA,IAAY,EAAI,GAAK,GAAG,GAC5CA,GAAY,QAAQA,IAAY,EAAI,GAAK,GAAG,GAC5CA,GAAY,YAAYA,IAAY,EAAI,GAAK,GAAG,GACjD,eACA,QACA,GACJ","sourcesContent":["import createDurationLanguage from \"./util/create-duration-language\";\n\nexport const durationLanguage = createDurationLanguage(\n (counter) => `any${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `mes${counter === 1 ? \"\" : \"os\"}`,\n (counter) => `setman${counter === 1 ? \"a\" : \"es\"}`,\n (counter) => `di${counter === 1 ? \"a\" : \"es\"}`,\n (counter) => `hor${counter === 1 ? \"a\" : \"es\"}`,\n (counter) => `minut${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `segon${counter === 1 ? \"\" : \"s\"}`,\n (counter) => `milisegon${counter === 1 ? \"\" : \"s\"}`,\n \"d'aquí %s\",\n \"fa %s\",\n \",\",\n);\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/language/ckb.ts"],"names":["durationLanguage","create_duration_language_default"],"mappings":"qCAEO,IAAMA,EAAmBC,EAAuB,qBAAO,2BAAQ,iCAAS,qBAAO,iCAAS,iCAAS,2BAAQ,oDAAa,kBAAS,wBAAU,GAAG","sourcesContent":["import createDurationLanguage from \"./util/create-duration-language\";\n\nexport const durationLanguage = createDurationLanguage(\"ساڵ\", \"مانگ\", \"هەفتە\", \"ڕۆژ\", \"کاژێر\", \"خولەک\", \"چرکە\", \"میلی چرکە\", \"لە s%\", \"پێش s%\", \".\");\n"]}
|
package/dist/language/ckb.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { a } from '../chunk-MPZEKYC6.js';
|
|
2
|
-
|
|
3
|
-
var e=a("\u0633\u0627\u06B5","\u0645\u0627\u0646\u06AF","\u0647\u06D5\u0641\u062A\u06D5","\u0695\u06C6\u0698","\u06A9\u0627\u0698\u06CE\u0631","\u062E\u0648\u0644\u06D5\u06A9","\u0686\u0631\u06A9\u06D5","\u0645\u06CC\u0644\u06CC \u0686\u0631\u06A9\u06D5","\u0644\u06D5 s%","\u067E\u06CE\u0634 s%",".");
|
|
4
|
-
|
|
5
|
-
export { e as durationLanguage };
|
|
6
|
-
//# sourceMappingURL=out.js.map
|
|
7
|
-
//# sourceMappingURL=ckb.js.map
|
package/dist/language/ckb.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/language/ckb.ts"],"names":["durationLanguage","create_duration_language_default"],"mappings":"oCAEO,IAAMA,EAAmBC,EAAuB,qBAAO,2BAAQ,iCAAS,qBAAO,iCAAS,iCAAS,2BAAQ,oDAAa,kBAAS,wBAAU,GAAG","sourcesContent":["import createDurationLanguage from \"./util/create-duration-language\";\n\nexport const durationLanguage = createDurationLanguage(\"ساڵ\", \"مانگ\", \"هەفتە\", \"ڕۆژ\", \"کاژێر\", \"خولەک\", \"چرکە\", \"میلی چرکە\", \"لە s%\", \"پێش s%\", \".\");\n"]}
|
package/dist/language/cs.cjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/language/cs.ts"],"names":["durationLanguage","create_duration_language_default","counter","get_czech_or_slovak_form_default"],"mappings":"oFAGO,IAAMA,EAAmBC,EAC3BC,GAAY,CAAC,MAAO,OAAQ,OAAQ,KAAK,EAAEC,EAAqBD,CAAO,CAAC,EACxEA,GAAY,CAAC,gBAAS,iBAAU,iBAAU,qBAAQ,EAAEC,EAAqBD,CAAO,CAAC,EACjFA,GAAY,CAAC,WAAS,WAAS,WAAS,eAAO,EAAEC,EAAqBD,CAAO,CAAC,EAC9EA,GAAY,CAAC,MAAO,MAAO,MAAO,QAAK,EAAEC,EAAqBD,CAAO,CAAC,EACtEA,GAAY,CAAC,SAAU,SAAU,SAAU,OAAO,EAAEC,EAAqBD,CAAO,CAAC,EACjFA,GAAY,CAAC,SAAU,SAAU,SAAU,OAAO,EAAEC,EAAqBD,CAAO,CAAC,EACjFA,GAAY,CAAC,UAAW,UAAW,UAAW,QAAQ,EAAEC,EAAqBD,CAAO,CAAC,EACrFA,GAAY,CAAC,cAAe,cAAe,cAAe,YAAY,EAAEC,EAAqBD,CAAO,CAAC,EACtG,QACA,eACA,GACJ","sourcesContent":["import createDurationLanguage from \"./util/create-duration-language\";\nimport getCzechOrSlovakForm from \"./util/duration/get-czech-or-slovak-form\";\n\nexport const durationLanguage = createDurationLanguage(\n (counter) => [\"rok\", \"roku\", \"roky\", \"let\"][getCzechOrSlovakForm(counter)] as string,\n (counter) => [\"měsíc\", \"měsíce\", \"měsíce\", \"měsíců\"][getCzechOrSlovakForm(counter)] as string,\n (counter) => [\"týden\", \"týdne\", \"týdny\", \"týdnů\"][getCzechOrSlovakForm(counter)] as string,\n (counter) => [\"den\", \"dne\", \"dny\", \"dní\"][getCzechOrSlovakForm(counter)] as string,\n (counter) => [\"hodina\", \"hodiny\", \"hodiny\", \"hodin\"][getCzechOrSlovakForm(counter)] as string,\n (counter) => [\"minuta\", \"minuty\", \"minuty\", \"minut\"][getCzechOrSlovakForm(counter)] as string,\n (counter) => [\"sekunda\", \"sekundy\", \"sekundy\", \"sekund\"][getCzechOrSlovakForm(counter)] as string,\n (counter) => [\"milisekunda\", \"milisekundy\", \"milisekundy\", \"milisekund\"][getCzechOrSlovakForm(counter)] as string,\n \"za %s\",\n \"před %s\",\n \",\",\n);\n"]}
|