n2words 3.1.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +44 -0
- package/LICENSE +1 -1
- package/README.md +64 -184
- package/dist/am-ET.js +2 -0
- package/dist/am-ET.umd.js +2 -0
- package/dist/am-Latn-ET.js +2 -0
- package/dist/am-Latn-ET.umd.js +2 -0
- package/dist/ar-SA.js +2 -0
- package/dist/ar-SA.umd.js +2 -0
- package/dist/az-AZ.js +2 -0
- package/dist/az-AZ.umd.js +2 -0
- package/dist/bn-BD.js +2 -0
- package/dist/bn-BD.umd.js +2 -0
- package/dist/cs-CZ.js +2 -0
- package/dist/cs-CZ.umd.js +2 -0
- package/dist/da-DK.js +2 -0
- package/dist/da-DK.umd.js +2 -0
- package/dist/de-DE.js +2 -0
- package/dist/de-DE.umd.js +2 -0
- package/dist/el-GR.js +2 -0
- package/dist/el-GR.umd.js +2 -0
- package/dist/en-AU.js +2 -0
- package/dist/en-AU.umd.js +2 -0
- package/dist/en-BD.js +2 -0
- package/dist/en-BD.umd.js +2 -0
- package/dist/en-CA.js +2 -0
- package/dist/en-CA.umd.js +2 -0
- package/dist/en-GB.js +2 -0
- package/dist/en-GB.umd.js +2 -0
- package/dist/en-GH.js +2 -0
- package/dist/en-GH.umd.js +2 -0
- package/dist/en-IE.js +2 -0
- package/dist/en-IE.umd.js +2 -0
- package/dist/en-IN.js +2 -0
- package/dist/en-IN.umd.js +2 -0
- package/dist/en-KE.js +2 -0
- package/dist/en-KE.umd.js +2 -0
- package/dist/en-MY.js +2 -0
- package/dist/en-MY.umd.js +2 -0
- package/dist/en-NG.js +2 -0
- package/dist/en-NG.umd.js +2 -0
- package/dist/en-NZ.js +2 -0
- package/dist/en-NZ.umd.js +2 -0
- package/dist/en-PH.js +2 -0
- package/dist/en-PH.umd.js +2 -0
- package/dist/en-PK.js +2 -0
- package/dist/en-PK.umd.js +2 -0
- package/dist/en-SG.js +2 -0
- package/dist/en-SG.umd.js +2 -0
- package/dist/en-US.js +2 -0
- package/dist/en-US.umd.js +2 -0
- package/dist/en-ZA.js +2 -0
- package/dist/en-ZA.umd.js +2 -0
- package/dist/es-ES.js +2 -0
- package/dist/es-ES.umd.js +2 -0
- package/dist/es-MX.js +2 -0
- package/dist/es-MX.umd.js +2 -0
- package/dist/es-US.js +2 -0
- package/dist/es-US.umd.js +2 -0
- package/dist/fa-IR.js +2 -0
- package/dist/fa-IR.umd.js +2 -0
- package/dist/fi-FI.js +2 -0
- package/dist/fi-FI.umd.js +2 -0
- package/dist/fil-PH.js +2 -0
- package/dist/fil-PH.umd.js +2 -0
- package/dist/fr-BE.js +2 -0
- package/dist/fr-BE.umd.js +2 -0
- package/dist/fr-FR.js +2 -0
- package/dist/fr-FR.umd.js +2 -0
- package/dist/gu-IN.js +2 -0
- package/dist/gu-IN.umd.js +2 -0
- package/dist/ha-NG.js +2 -0
- package/dist/ha-NG.umd.js +2 -0
- package/dist/hbo-IL.js +2 -0
- package/dist/hbo-IL.umd.js +2 -0
- package/dist/he-IL.js +2 -0
- package/dist/he-IL.umd.js +2 -0
- package/dist/hi-IN.js +2 -0
- package/dist/hi-IN.umd.js +2 -0
- package/dist/hr-HR.js +2 -0
- package/dist/hr-HR.umd.js +2 -0
- package/dist/hu-HU.js +2 -0
- package/dist/hu-HU.umd.js +2 -0
- package/dist/id-ID.js +2 -0
- package/dist/id-ID.umd.js +2 -0
- package/dist/it-IT.js +2 -0
- package/dist/it-IT.umd.js +2 -0
- package/dist/ja-JP.js +2 -0
- package/dist/ja-JP.umd.js +2 -0
- package/dist/ka-GE.js +2 -0
- package/dist/ka-GE.umd.js +2 -0
- package/dist/kn-IN.js +2 -0
- package/dist/kn-IN.umd.js +2 -0
- package/dist/ko-KR.js +2 -0
- package/dist/ko-KR.umd.js +2 -0
- package/dist/lt-LT.js +2 -0
- package/dist/lt-LT.umd.js +2 -0
- package/dist/lv-LV.js +2 -0
- package/dist/lv-LV.umd.js +2 -0
- package/dist/mr-IN.js +2 -0
- package/dist/mr-IN.umd.js +2 -0
- package/dist/ms-MY.js +2 -0
- package/dist/ms-MY.umd.js +2 -0
- package/dist/nb-NO.js +2 -0
- package/dist/nb-NO.umd.js +2 -0
- package/dist/nl-NL.js +2 -0
- package/dist/nl-NL.umd.js +2 -0
- package/dist/pa-IN.js +2 -0
- package/dist/pa-IN.umd.js +2 -0
- package/dist/pl-PL.js +2 -0
- package/dist/pl-PL.umd.js +2 -0
- package/dist/pt-PT.js +2 -0
- package/dist/pt-PT.umd.js +2 -0
- package/dist/ro-RO.js +2 -0
- package/dist/ro-RO.umd.js +2 -0
- package/dist/ru-RU.js +2 -0
- package/dist/ru-RU.umd.js +2 -0
- package/dist/sr-Cyrl-RS.js +2 -0
- package/dist/sr-Cyrl-RS.umd.js +2 -0
- package/dist/sr-Latn-RS.js +2 -0
- package/dist/sr-Latn-RS.umd.js +2 -0
- package/dist/sv-SE.js +2 -0
- package/dist/sv-SE.umd.js +2 -0
- package/dist/sw-KE.js +2 -0
- package/dist/sw-KE.umd.js +2 -0
- package/dist/ta-IN.js +2 -0
- package/dist/ta-IN.umd.js +2 -0
- package/dist/te-IN.js +2 -0
- package/dist/te-IN.umd.js +2 -0
- package/dist/th-TH.js +2 -0
- package/dist/th-TH.umd.js +2 -0
- package/dist/tr-TR.js +2 -0
- package/dist/tr-TR.umd.js +2 -0
- package/dist/uk-UA.js +2 -0
- package/dist/uk-UA.umd.js +2 -0
- package/dist/ur-PK.js +2 -0
- package/dist/ur-PK.umd.js +2 -0
- package/dist/vi-VN.js +2 -0
- package/dist/vi-VN.umd.js +2 -0
- package/dist/yo-NG.js +2 -0
- package/dist/yo-NG.umd.js +2 -0
- package/dist/zh-Hans-CN.js +2 -0
- package/dist/zh-Hans-CN.umd.js +2 -0
- package/dist/zh-Hant-TW.js +2 -0
- package/dist/zh-Hant-TW.umd.js +2 -0
- package/package.json +47 -82
- package/src/am-ET.d.ts +40 -0
- package/src/am-ET.js +269 -0
- package/src/am-Latn-ET.d.ts +35 -0
- package/src/am-Latn-ET.js +264 -0
- package/src/ar-SA.d.ts +49 -0
- package/{lib/languages/ar.js → src/ar-SA.js} +177 -15
- package/src/az-AZ.d.ts +37 -0
- package/src/az-AZ.js +312 -0
- package/src/bn-BD.d.ts +36 -0
- package/{lib/languages/bn.js → src/bn-BD.js} +110 -6
- package/src/cs-CZ.d.ts +49 -0
- package/{lib/languages/cs.js → src/cs-CZ.js} +240 -14
- package/src/da-DK.d.ts +44 -0
- package/{lib/languages/da.js → src/da-DK.js} +131 -11
- package/src/de-DE.d.ts +57 -0
- package/src/de-DE.js +603 -0
- package/src/el-GR.d.ts +40 -0
- package/src/el-GR.js +418 -0
- package/src/en-AU.d.ts +47 -0
- package/src/en-AU.js +423 -0
- package/src/en-BD.d.ts +49 -0
- package/src/en-BD.js +415 -0
- package/src/en-CA.d.ts +63 -0
- package/src/en-CA.js +518 -0
- package/src/en-GB.d.ts +56 -0
- package/src/en-GB.js +469 -0
- package/src/en-GH.d.ts +11 -0
- package/src/en-GH.js +345 -0
- package/src/en-IE.d.ts +56 -0
- package/src/en-IE.js +479 -0
- package/src/en-IN.d.ts +49 -0
- package/src/en-IN.js +415 -0
- package/src/en-KE.d.ts +11 -0
- package/src/en-KE.js +345 -0
- package/src/en-MY.d.ts +11 -0
- package/src/en-MY.js +347 -0
- package/src/en-NG.d.ts +56 -0
- package/src/en-NG.js +479 -0
- package/src/en-NZ.d.ts +11 -0
- package/{lib/languages/en.js → src/en-NZ.js} +164 -31
- package/src/en-PH.d.ts +11 -0
- package/src/en-PH.js +345 -0
- package/src/en-PK.d.ts +49 -0
- package/src/en-PK.js +415 -0
- package/src/en-SG.d.ts +11 -0
- package/src/en-SG.js +345 -0
- package/src/en-US.d.ts +63 -0
- package/src/en-US.js +516 -0
- package/src/en-ZA.d.ts +56 -0
- package/src/en-ZA.js +478 -0
- package/src/es-ES.d.ts +65 -0
- package/src/es-ES.js +541 -0
- package/src/es-MX.d.ts +58 -0
- package/{lib/languages/es.js → src/es-MX.js} +228 -18
- package/src/es-US.d.ts +58 -0
- package/src/es-US.js +446 -0
- package/src/fa-IR.d.ts +38 -0
- package/src/fa-IR.js +246 -0
- package/src/fi-FI.d.ts +46 -0
- package/{lib/languages/fi.js → src/fi-FI.js} +152 -11
- package/src/fil-PH.d.ts +37 -0
- package/{lib/languages/fil.js → src/fil-PH.js} +144 -8
- package/src/fr-BE.d.ts +49 -0
- package/{lib/languages → src}/fr-BE.js +175 -13
- package/src/fr-FR.d.ts +63 -0
- package/{lib/languages/fr.js → src/fr-FR.js} +182 -16
- package/src/gu-IN.d.ts +35 -0
- package/{lib/languages/gu.js → src/gu-IN.js} +115 -6
- package/src/ha-NG.d.ts +37 -0
- package/{lib/languages/ha.js → src/ha-NG.js} +107 -8
- package/src/hbo-IL.d.ts +39 -0
- package/{lib/languages/hbo.js → src/hbo-IL.js} +211 -19
- package/src/he-IL.d.ts +37 -0
- package/src/he-IL.js +537 -0
- package/src/hi-IN.d.ts +36 -0
- package/{lib/languages/hi.js → src/hi-IN.js} +116 -6
- package/src/hr-HR.d.ts +42 -0
- package/src/hr-HR.js +463 -0
- package/src/hu-HU.d.ts +38 -0
- package/{lib/languages/hu.js → src/hu-HU.js} +164 -6
- package/src/id-ID.d.ts +38 -0
- package/{lib/languages/id.js → src/id-ID.js} +99 -8
- package/src/it-IT.d.ts +59 -0
- package/{lib/languages/it.js → src/it-IT.js} +179 -15
- package/src/ja-JP.d.ts +49 -0
- package/{lib/languages/ja.js → src/ja-JP.js} +111 -12
- package/src/ka-GE.d.ts +44 -0
- package/{lib/languages/ka.js → src/ka-GE.js} +113 -11
- package/src/kn-IN.d.ts +35 -0
- package/{lib/languages/kn.js → src/kn-IN.js} +115 -6
- package/src/ko-KR.d.ts +45 -0
- package/{lib/languages/ko.js → src/ko-KR.js} +94 -12
- package/src/lt-LT.d.ts +49 -0
- package/src/lt-LT.js +543 -0
- package/src/lv-LV.d.ts +49 -0
- package/src/lv-LV.js +595 -0
- package/src/mr-IN.d.ts +36 -0
- package/{lib/languages/mr.js → src/mr-IN.js} +116 -6
- package/src/ms-MY.d.ts +37 -0
- package/{lib/languages/ms.js → src/ms-MY.js} +111 -8
- package/src/nb-NO.d.ts +44 -0
- package/{lib/languages/nb.js → src/nb-NO.js} +153 -11
- package/src/nl-NL.d.ts +54 -0
- package/{lib/languages/nl.js → src/nl-NL.js} +260 -18
- package/src/pa-IN.d.ts +36 -0
- package/{lib/languages/pa.js → src/pa-IN.js} +116 -6
- package/src/pl-PL.d.ts +55 -0
- package/src/pl-PL.js +585 -0
- package/src/pt-PT.d.ts +45 -0
- package/{lib/languages/pt.js → src/pt-PT.js} +234 -12
- package/src/ro-RO.d.ts +44 -0
- package/{lib/languages/ro.js → src/ro-RO.js} +212 -18
- package/src/ru-RU.d.ts +50 -0
- package/src/ru-RU.js +535 -0
- package/src/sr-Cyrl-RS.d.ts +49 -0
- package/src/sr-Cyrl-RS.js +503 -0
- package/src/sr-Latn-RS.d.ts +49 -0
- package/src/sr-Latn-RS.js +503 -0
- package/src/sv-SE.d.ts +44 -0
- package/{lib/languages/sv.js → src/sv-SE.js} +136 -11
- package/src/sw-KE.d.ts +37 -0
- package/{lib/languages/sw.js → src/sw-KE.js} +117 -6
- package/src/ta-IN.d.ts +35 -0
- package/{lib/languages/ta.js → src/ta-IN.js} +109 -6
- package/src/te-IN.d.ts +35 -0
- package/{lib/languages/te.js → src/te-IN.js} +115 -6
- package/src/th-TH.d.ts +38 -0
- package/{lib/languages/th.js → src/th-TH.js} +99 -6
- package/src/tr-TR.d.ts +48 -0
- package/{lib/languages/tr.js → src/tr-TR.js} +168 -23
- package/src/uk-UA.d.ts +42 -0
- package/src/uk-UA.js +463 -0
- package/src/ur-PK.d.ts +36 -0
- package/{lib/languages/ur.js → src/ur-PK.js} +116 -6
- package/src/utils/expand-scientific.d.ts +32 -0
- package/src/utils/expand-scientific.js +65 -0
- package/src/utils/parse-cardinal.d.ts +14 -0
- package/{lib/utils/parse-numeric.js → src/utils/parse-cardinal.js} +14 -44
- package/src/utils/parse-currency.d.ts +14 -0
- package/src/utils/parse-currency.js +91 -0
- package/src/utils/parse-ordinal.d.ts +10 -0
- package/src/utils/parse-ordinal.js +103 -0
- package/src/vi-VN.d.ts +48 -0
- package/{lib/languages/vi.js → src/vi-VN.js} +102 -11
- package/src/yo-NG.d.ts +37 -0
- package/{lib/languages/yo.js → src/yo-NG.js} +109 -9
- package/src/zh-Hans-CN.d.ts +48 -0
- package/{lib/languages/zh-Hans.js → src/zh-Hans-CN.js} +140 -8
- package/src/zh-Hant-TW.d.ts +50 -0
- package/{lib/languages/zh-Hant.js → src/zh-Hant-TW.js} +139 -8
- package/dist/languages/am-Latn.js +0 -3
- package/dist/languages/am-Latn.js.map +0 -1
- package/dist/languages/am.js +0 -3
- package/dist/languages/am.js.map +0 -1
- package/dist/languages/ar.js +0 -3
- package/dist/languages/ar.js.map +0 -1
- package/dist/languages/az.js +0 -3
- package/dist/languages/az.js.map +0 -1
- package/dist/languages/bn.js +0 -3
- package/dist/languages/bn.js.map +0 -1
- package/dist/languages/cs.js +0 -3
- package/dist/languages/cs.js.map +0 -1
- package/dist/languages/da.js +0 -3
- package/dist/languages/da.js.map +0 -1
- package/dist/languages/de.js +0 -3
- package/dist/languages/de.js.map +0 -1
- package/dist/languages/el.js +0 -3
- package/dist/languages/el.js.map +0 -1
- package/dist/languages/en.js +0 -3
- package/dist/languages/en.js.map +0 -1
- package/dist/languages/es.js +0 -3
- package/dist/languages/es.js.map +0 -1
- package/dist/languages/fa.js +0 -3
- package/dist/languages/fa.js.map +0 -1
- package/dist/languages/fi.js +0 -3
- package/dist/languages/fi.js.map +0 -1
- package/dist/languages/fil.js +0 -3
- package/dist/languages/fil.js.map +0 -1
- package/dist/languages/fr-BE.js +0 -3
- package/dist/languages/fr-BE.js.map +0 -1
- package/dist/languages/fr.js +0 -3
- package/dist/languages/fr.js.map +0 -1
- package/dist/languages/gu.js +0 -3
- package/dist/languages/gu.js.map +0 -1
- package/dist/languages/ha.js +0 -3
- package/dist/languages/ha.js.map +0 -1
- package/dist/languages/hbo.js +0 -3
- package/dist/languages/hbo.js.map +0 -1
- package/dist/languages/he.js +0 -3
- package/dist/languages/he.js.map +0 -1
- package/dist/languages/hi.js +0 -3
- package/dist/languages/hi.js.map +0 -1
- package/dist/languages/hr.js +0 -3
- package/dist/languages/hr.js.map +0 -1
- package/dist/languages/hu.js +0 -3
- package/dist/languages/hu.js.map +0 -1
- package/dist/languages/id.js +0 -3
- package/dist/languages/id.js.map +0 -1
- package/dist/languages/it.js +0 -3
- package/dist/languages/it.js.map +0 -1
- package/dist/languages/ja.js +0 -3
- package/dist/languages/ja.js.map +0 -1
- package/dist/languages/ka.js +0 -3
- package/dist/languages/ka.js.map +0 -1
- package/dist/languages/kn.js +0 -3
- package/dist/languages/kn.js.map +0 -1
- package/dist/languages/ko.js +0 -3
- package/dist/languages/ko.js.map +0 -1
- package/dist/languages/lt.js +0 -3
- package/dist/languages/lt.js.map +0 -1
- package/dist/languages/lv.js +0 -3
- package/dist/languages/lv.js.map +0 -1
- package/dist/languages/mr.js +0 -3
- package/dist/languages/mr.js.map +0 -1
- package/dist/languages/ms.js +0 -3
- package/dist/languages/ms.js.map +0 -1
- package/dist/languages/nb.js +0 -3
- package/dist/languages/nb.js.map +0 -1
- package/dist/languages/nl.js +0 -3
- package/dist/languages/nl.js.map +0 -1
- package/dist/languages/pa.js +0 -3
- package/dist/languages/pa.js.map +0 -1
- package/dist/languages/pl.js +0 -3
- package/dist/languages/pl.js.map +0 -1
- package/dist/languages/pt.js +0 -3
- package/dist/languages/pt.js.map +0 -1
- package/dist/languages/ro.js +0 -3
- package/dist/languages/ro.js.map +0 -1
- package/dist/languages/ru.js +0 -3
- package/dist/languages/ru.js.map +0 -1
- package/dist/languages/sr-Cyrl.js +0 -3
- package/dist/languages/sr-Cyrl.js.map +0 -1
- package/dist/languages/sr-Latn.js +0 -3
- package/dist/languages/sr-Latn.js.map +0 -1
- package/dist/languages/sv.js +0 -3
- package/dist/languages/sv.js.map +0 -1
- package/dist/languages/sw.js +0 -3
- package/dist/languages/sw.js.map +0 -1
- package/dist/languages/ta.js +0 -3
- package/dist/languages/ta.js.map +0 -1
- package/dist/languages/te.js +0 -3
- package/dist/languages/te.js.map +0 -1
- package/dist/languages/th.js +0 -3
- package/dist/languages/th.js.map +0 -1
- package/dist/languages/tr.js +0 -3
- package/dist/languages/tr.js.map +0 -1
- package/dist/languages/uk.js +0 -3
- package/dist/languages/uk.js.map +0 -1
- package/dist/languages/ur.js +0 -3
- package/dist/languages/ur.js.map +0 -1
- package/dist/languages/vi.js +0 -3
- package/dist/languages/vi.js.map +0 -1
- package/dist/languages/yo.js +0 -3
- package/dist/languages/yo.js.map +0 -1
- package/dist/languages/zh-Hans.js +0 -3
- package/dist/languages/zh-Hans.js.map +0 -1
- package/dist/languages/zh-Hant.js +0 -3
- package/dist/languages/zh-Hant.js.map +0 -1
- package/dist/n2words.js +0 -3
- package/dist/n2words.js.map +0 -1
- package/lib/languages/am-Latn.d.ts +0 -7
- package/lib/languages/am-Latn.js +0 -159
- package/lib/languages/am.d.ts +0 -7
- package/lib/languages/am.js +0 -159
- package/lib/languages/ar.d.ts +0 -17
- package/lib/languages/az.d.ts +0 -7
- package/lib/languages/az.js +0 -171
- package/lib/languages/bn.d.ts +0 -7
- package/lib/languages/cs.d.ts +0 -18
- package/lib/languages/da.d.ts +0 -14
- package/lib/languages/de.d.ts +0 -17
- package/lib/languages/de.js +0 -320
- package/lib/languages/el.d.ts +0 -14
- package/lib/languages/el.js +0 -236
- package/lib/languages/en.d.ts +0 -17
- package/lib/languages/es.d.ts +0 -21
- package/lib/languages/fa.d.ts +0 -7
- package/lib/languages/fa.js +0 -134
- package/lib/languages/fi.d.ts +0 -14
- package/lib/languages/fil.d.ts +0 -7
- package/lib/languages/fr-BE.d.ts +0 -11
- package/lib/languages/fr.d.ts +0 -21
- package/lib/languages/gu.d.ts +0 -7
- package/lib/languages/ha.d.ts +0 -7
- package/lib/languages/hbo.d.ts +0 -13
- package/lib/languages/he.d.ts +0 -13
- package/lib/languages/he.js +0 -265
- package/lib/languages/hi.d.ts +0 -7
- package/lib/languages/hr.d.ts +0 -11
- package/lib/languages/hr.js +0 -224
- package/lib/languages/hu.d.ts +0 -7
- package/lib/languages/id.d.ts +0 -7
- package/lib/languages/it.d.ts +0 -19
- package/lib/languages/ja.d.ts +0 -17
- package/lib/languages/ka.d.ts +0 -17
- package/lib/languages/kn.d.ts +0 -7
- package/lib/languages/ko.d.ts +0 -14
- package/lib/languages/lt.d.ts +0 -18
- package/lib/languages/lt.js +0 -301
- package/lib/languages/lv.d.ts +0 -18
- package/lib/languages/lv.js +0 -312
- package/lib/languages/mr.d.ts +0 -7
- package/lib/languages/ms.d.ts +0 -7
- package/lib/languages/nb.d.ts +0 -14
- package/lib/languages/nl.d.ts +0 -26
- package/lib/languages/pa.d.ts +0 -7
- package/lib/languages/pl.d.ts +0 -22
- package/lib/languages/pl.js +0 -317
- package/lib/languages/pt.d.ts +0 -17
- package/lib/languages/ro.d.ts +0 -18
- package/lib/languages/ru.d.ts +0 -11
- package/lib/languages/ru.js +0 -245
- package/lib/languages/sr-Cyrl.d.ts +0 -11
- package/lib/languages/sr-Cyrl.js +0 -221
- package/lib/languages/sr-Latn.d.ts +0 -11
- package/lib/languages/sr-Latn.js +0 -221
- package/lib/languages/sv.d.ts +0 -14
- package/lib/languages/sw.d.ts +0 -7
- package/lib/languages/ta.d.ts +0 -7
- package/lib/languages/te.d.ts +0 -7
- package/lib/languages/th.d.ts +0 -7
- package/lib/languages/tr.d.ts +0 -18
- package/lib/languages/uk.d.ts +0 -11
- package/lib/languages/uk.js +0 -224
- package/lib/languages/ur.d.ts +0 -7
- package/lib/languages/vi.d.ts +0 -17
- package/lib/languages/yo.d.ts +0 -7
- package/lib/languages/zh-Hans.d.ts +0 -11
- package/lib/languages/zh-Hant.d.ts +0 -11
- package/lib/n2words.d.ts +0 -55
- package/lib/n2words.js +0 -126
- package/lib/utils/parse-numeric.d.ts +0 -17
- /package/{lib → src}/utils/is-plain-object.d.ts +0 -0
- /package/{lib → src}/utils/is-plain-object.js +0 -0
- /package/{lib → src}/utils/validate-options.d.ts +0 -0
- /package/{lib → src}/utils/validate-options.js +0 -0
package/dist/ur-PK.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! n2words/ur-PK v4.0.0 | MIT License | github.com/forzagreen/n2words */
|
|
2
|
+
function e(e){let[n,r]=e.toLowerCase().split("e");const t=parseInt(r,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const s=n.indexOf("."),o=-1===s?n:n.slice(0,s)+n.slice(s+1),u=(-1===s?n.length:s)+t;return u>=o.length?i+o+"0".repeat(u-o.length):u<=0?i+"0."+"0".repeat(-u)+o:i+o.slice(0,u)+"."+o.slice(u)}function n(n){const t=n.toString();return r(t)?e(t):t}function r(e){return e.includes("e")||e.includes("E")}function t(e){const n="-"===e[0];n&&(e=e.slice(1));const r=e.indexOf(".");if(-1===r)return{isNegative:n,integerPart:BigInt(e)};const t=e.slice(0,r)||"0",i=e.slice(r+1);return{isNegative:n,integerPart:BigInt(t),decimalPart:i}}function i(n){let t=n.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid currency format: "${n}"`);r(t)&&(t=e(t));const i="-"===t[0];i&&(t=t.slice(1));const s=t.indexOf(".");if(-1===s)return{isNegative:i,dollars:BigInt(t),cents:0n};const o=t.slice(0,s)||"0",u=(t.slice(s+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(o),cents:BigInt(u)}}const s="منفی",o=["","پہلا","دوسرا","تیسرا","چوتھا","پانچواں","چھٹا"],u=["صفر","ایک","دو","تین","چار","پانچ","چھ","سات","آٹھ","نو","دس","گیارہ","بارہ","تیرہ","چودہ","پندرہ","سولہ","سترہ","اٹھارہ","انیس","بیس","اکیس","بائیس","تیئیس","چوبیس","پچیس","چھبیس","ستائیس","اٹھائیس","انتیس","تیس","اکتیس","بتیس","تینتیس","چونتیس","پینتیس","چھتیس","سینتیس","اڑتیس","انتالیس","چالیس","اکتالیس","بیالیس","تینتالیس","چوالیس","پینتالیس","چھالیس","سینتالیس","اڑتالیس","انچاس","پچاس","اکاون","باون","ترپن","چون","پچپن","چھپن","ستاون","اٹھاون","انسٹھ","ساٹھ","اکسٹھ","باسٹھ","ترسٹھ","چونسٹھ","پینسٹھ","چھیاسٹھ","سڑسٹھ","اڑسٹھ","انہتر","ستر","اکہتر","بہتر","تہتر","چوہتر","پچھتر","چھہتر","ستتر","اٹھہتر","اناسی","اسی","اکیاسی","بیاسی","تریاسی","چوراسی","پچاسی","چھیاسی","ستاسی","اٹھاسی","نواسی","نوے","اکانوے","بانوے","ترانوے","چورانوے","پچانوے","چھیانوے","ستانوے","اٹھانوے","ننانوے"],a=["","ہزار","لاکھ","کروڑ","ارب","کھرب","نیل","پدم","شنکھ"];function c(e){if(0===e)return"";if(e<100)return u[e];const n=Math.trunc(e/100),r=e%100;return 0===r?u[n]+" سو":u[n]+" سو "+u[r]}function g(e){if(0n===e)return"صفر";if(e<1000n)return c(Number(e));const n=[];n.push(Number(e%1000n));let r=e/1000n;for(;r>0n;)n.push(Number(r%100n)),r/=100n;const t=[];for(let e=n.length-1;e>=0;e--){const r=n[e];0!==r&&(t.push(0===e?c(r):u[r]),e>0&&a[e]&&t.push(a[e]))}return t.join(" ")}function l(i){const{isNegative:o,integerPart:u,decimalPart:a}=function(i){const s=typeof i;if("bigint"===s)return i<0n?{isNegative:!0,integerPart:-i}:{isNegative:!1,integerPart:i};if("number"===s){if(!Number.isFinite(i))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(i)?i<0?{isNegative:!0,integerPart:BigInt(-i)}:{isNegative:!1,integerPart:BigInt(i)}:t(n(i))}if("string"===s)return t(function(n){const t=n.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid number format: "${n}"`);return r(t)?e(t):t}(i));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${s}`)}(i);let c="";return o&&(c=s+" "),c+=g(u),a&&(c+=" اعشاریہ "+function(e){let n="",r=0;for(;r<e.length&&"0"===e[r];)n&&(n+=" "),n+="صفر",r++;const t=e.slice(r);return t&&(n&&(n+=" "),n+=g(BigInt(t))),n}(a)),c}function f(n){const t=function(n){const t=typeof n;if("bigint"===t){if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}if("number"===t){if(!Number.isFinite(n))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(n))throw new RangeError("Ordinals must be whole numbers");if(n<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(n)}if("string"===t)return function(n){const t=n.trim();if(0===t.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===t[0])throw new RangeError("Ordinals cannot be negative");if(t.includes("."))throw new RangeError("Ordinals must be whole numbers");if(r(t)){const n=e(t);if(n.includes("."))throw new RangeError("Ordinals must be whole numbers");const r=BigInt(n);if(r<=0n)throw new RangeError("Ordinals must be positive integers");return r}try{const e=BigInt(t);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(e){if(e instanceof RangeError)throw e;throw new RangeError(`Invalid ordinal format: "${n}"`)}}(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(n);return(i=t)>=1n&&i<=6n?o[Number(i)]:g(i)+"واں";var i}function m(e){const{isNegative:r,dollars:t,cents:o}=function(e){const r=typeof e;if("bigint"===r)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===r){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:i(n(e))}if("string"===r)return i(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(e);let u="";return r&&(u=s+" "),(t>0n||0n===o)&&(u+=g(t),u+=" "+(1n===t?"روپیہ":"روپے")),o>0n&&(t>0n&&(u+=" "),u+=g(o),u+=" "+(1n===o?"پیسہ":"پیسے")),u}export{l as toCardinal,m as toCurrency,f as toOrdinal};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! n2words/ur-PK v4.0.0 | MIT License | github.com/forzagreen/n2words */
|
|
2
|
+
var e,n;e=this,n=function(e){"use strict";function n(e){let[n,r]=e.toLowerCase().split("e");const t=parseInt(r,10);let i="";"-"===n[0]&&(i="-",n=n.slice(1));const s=n.indexOf("."),o=-1===s?n:n.slice(0,s)+n.slice(s+1),u=(-1===s?n.length:s)+t;return u>=o.length?i+o+"0".repeat(u-o.length):u<=0?i+"0."+"0".repeat(-u)+o:i+o.slice(0,u)+"."+o.slice(u)}function r(e){const r=e.toString();return t(r)?n(r):r}function t(e){return e.includes("e")||e.includes("E")}function i(e){const n="-"===e[0];n&&(e=e.slice(1));const r=e.indexOf(".");if(-1===r)return{isNegative:n,integerPart:BigInt(e)};const t=e.slice(0,r)||"0",i=e.slice(r+1);return{isNegative:n,integerPart:BigInt(t),decimalPart:i}}function s(e){let r=e.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid currency format: "${e}"`);t(r)&&(r=n(r));const i="-"===r[0];i&&(r=r.slice(1));const s=r.indexOf(".");if(-1===s)return{isNegative:i,dollars:BigInt(r),cents:0n};const o=r.slice(0,s)||"0",u=(r.slice(s+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(o),cents:BigInt(u)}}const o="منفی",u=["","پہلا","دوسرا","تیسرا","چوتھا","پانچواں","چھٹا"],a=["صفر","ایک","دو","تین","چار","پانچ","چھ","سات","آٹھ","نو","دس","گیارہ","بارہ","تیرہ","چودہ","پندرہ","سولہ","سترہ","اٹھارہ","انیس","بیس","اکیس","بائیس","تیئیس","چوبیس","پچیس","چھبیس","ستائیس","اٹھائیس","انتیس","تیس","اکتیس","بتیس","تینتیس","چونتیس","پینتیس","چھتیس","سینتیس","اڑتیس","انتالیس","چالیس","اکتالیس","بیالیس","تینتالیس","چوالیس","پینتالیس","چھالیس","سینتالیس","اڑتالیس","انچاس","پچاس","اکاون","باون","ترپن","چون","پچپن","چھپن","ستاون","اٹھاون","انسٹھ","ساٹھ","اکسٹھ","باسٹھ","ترسٹھ","چونسٹھ","پینسٹھ","چھیاسٹھ","سڑسٹھ","اڑسٹھ","انہتر","ستر","اکہتر","بہتر","تہتر","چوہتر","پچھتر","چھہتر","ستتر","اٹھہتر","اناسی","اسی","اکیاسی","بیاسی","تریاسی","چوراسی","پچاسی","چھیاسی","ستاسی","اٹھاسی","نواسی","نوے","اکانوے","بانوے","ترانوے","چورانوے","پچانوے","چھیانوے","ستانوے","اٹھانوے","ننانوے"],c=["","ہزار","لاکھ","کروڑ","ارب","کھرب","نیل","پدم","شنکھ"];function g(e){if(0===e)return"";if(e<100)return a[e];const n=Math.trunc(e/100),r=e%100;return 0===r?a[n]+" سو":a[n]+" سو "+a[r]}function l(e){if(0n===e)return"صفر";if(e<1000n)return g(Number(e));const n=[];n.push(Number(e%1000n));let r=e/1000n;for(;r>0n;)n.push(Number(r%100n)),r/=100n;const t=[];for(let e=n.length-1;e>=0;e--){const r=n[e];0!==r&&(t.push(0===e?g(r):a[r]),e>0&&c[e]&&t.push(c[e]))}return t.join(" ")}const f={urPK:function(e){const r=function(e){const r=typeof e;if("bigint"===r){if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}if("number"===r){if(!Number.isFinite(e))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(e))throw new RangeError("Ordinals must be whole numbers");if(e<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(e)}if("string"===r)return function(e){const r=e.trim();if(0===r.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===r[0])throw new RangeError("Ordinals cannot be negative");if(r.includes("."))throw new RangeError("Ordinals must be whole numbers");if(t(r)){const e=n(r);if(e.includes("."))throw new RangeError("Ordinals must be whole numbers");const t=BigInt(e);if(t<=0n)throw new RangeError("Ordinals must be positive integers");return t}try{const e=BigInt(r);if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}catch(n){if(n instanceof RangeError)throw n;throw new RangeError(`Invalid ordinal format: "${e}"`)}}(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(e);return(i=r)>=1n&&i<=6n?u[Number(i)]:l(i)+"واں";var i}};e.currency={urPK:function(e){const{isNegative:n,dollars:t,cents:i}=function(e){const n=typeof e;if("bigint"===n)return e<0n?{isNegative:!0,dollars:-e,cents:0n}:{isNegative:!1,dollars:e,cents:0n};if("number"===n){if(!Number.isFinite(e))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(e)?e<0?{isNegative:!0,dollars:BigInt(-e),cents:0n}:{isNegative:!1,dollars:BigInt(e),cents:0n}:s(r(e))}if("string"===n)return s(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${n}`)}(e);let u="";return n&&(u=o+" "),(t>0n||0n===i)&&(u+=l(t),u+=" "+(1n===t?"روپیہ":"روپے")),i>0n&&(t>0n&&(u+=" "),u+=l(i),u+=" "+(1n===i?"پیسہ":"پیسے")),u}},e.ordinal=f,e.urPK=function(e){const{isNegative:s,integerPart:u,decimalPart:a}=function(e){const s=typeof e;if("bigint"===s)return e<0n?{isNegative:!0,integerPart:-e}:{isNegative:!1,integerPart:e};if("number"===s){if(!Number.isFinite(e))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(e)?e<0?{isNegative:!0,integerPart:BigInt(-e)}:{isNegative:!1,integerPart:BigInt(e)}:i(r(e))}if("string"===s)return i(function(e){const r=e.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid number format: "${e}"`);return t(r)?n(r):r}(e));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${s}`)}(e);let c="";return s&&(c=o+" "),c+=l(u),a&&(c+=" اعشاریہ "+function(e){let n="",r=0;for(;r<e.length&&"0"===e[r];)n&&(n+=" "),n+="صفر",r++;const t=e.slice(r);return t&&(n&&(n+=" "),n+=l(BigInt(t))),n}(a)),c}},"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e="undefined"!=typeof globalThis?globalThis:e||self).n2words=e.n2words||{});
|
package/dist/vi-VN.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! n2words/vi-VN v4.0.0 | MIT License | github.com/forzagreen/n2words */
|
|
2
|
+
function n(n){let[e,t]=n.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===e[0]&&(i="-",e=e.slice(1));const o=e.indexOf("."),s=-1===o?e:e.slice(0,o)+e.slice(o+1),l=(-1===o?e.length:o)+r;return l>=s.length?i+s+"0".repeat(l-s.length):l<=0?i+"0."+"0".repeat(-l)+s:i+s.slice(0,l)+"."+s.slice(l)}function e(e){const r=e.toString();return t(r)?n(r):r}function t(n){return n.includes("e")||n.includes("E")}function r(n){const e="-"===n[0];e&&(n=n.slice(1));const t=n.indexOf(".");if(-1===t)return{isNegative:e,integerPart:BigInt(n)};const r=n.slice(0,t)||"0",i=n.slice(t+1);return{isNegative:e,integerPart:BigInt(r),decimalPart:i}}function i(e){let r=e.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid currency format: "${e}"`);t(r)&&(r=n(r));const i="-"===r[0];i&&(r=r.slice(1));const o=r.indexOf(".");if(-1===o)return{isNegative:i,dollars:BigInt(r),cents:0n};const s=r.slice(0,o)||"0",l=(r.slice(o+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(s),cents:BigInt(l)}}const o=["không","một","hai","ba","bốn","năm","sáu","bảy","tám","chín"],s=["","nghìn","triệu","tỷ","nghìn tỷ","trăm nghìn tỷ","Quintillion","Sextillion","Septillion","Octillion","Nonillion","Decillion","Undecillion","Duodecillion","Tredecillion","Quattuordecillion","Sexdecillion","Septendecillion","Octodecillion","Novemdecillion","Vigintillion"],l="không";function u(n){if(0===n)return o[0];if(n<10)return o[n];if(n<20){const e=n-10;return 0===e?"mười":5===e?"mười lăm":"mười "+o[e]}const e=n%10,t=Math.trunc(n/10),r=o[t]+" mươi";return 0===e?r:1===e?r+" mốt":5===e?r+" lăm":r+" "+o[e]}function c(n){if(0===n)return"";const e=Math.trunc(n/100),t=n%100;let r="";return e>0&&(r=o[e]+" trăm"),t>0&&(t<10?r?(r+=" lẻ ",r+=5===t?"năm":o[t]):r=o[t]:(r&&(r+=" "),r+=u(t))),r}function a(n){return 0===n?"":n<10?"lẻ "+(5===n?"năm":o[n]):"lẻ "+u(n)}function g(n){if(0n===n)return l;if(n<100n)return u(Number(n));if(n<1000n)return c(Number(n));if(n<1000000n){const e=Number(n/1000n),t=Number(n%1000n),r=c(e)+" "+s[1];return 0===t?r:t<100?r+" "+a(t):r+" "+c(t)}return function(n){const e=n.toString(),t=e.length,r=[],i=t%3;let o=0;for(i>0&&(r.push(Number(e.slice(0,i))),o=i);o<t;)r.push(Number(e.slice(o,o+3))),o+=3;const u=[];let g=r.length-1;for(let n=0;n<r.length;n++){const e=r[n];if(0!==e){const n=c(e);n&&u.push(g>0?n+" "+s[g]:n)}g--}const f=u.length;if(0===f)return l;if(1===f)return u[0];const m=r[r.length-1];if(m>0&&m<=99){let n=u[0];for(let e=1;e<f-1;e++)n+=" "+u[e];return n+" "+a(m)}let h=u[0];for(let n=1;n<f;n++)h+=" "+u[n];return h}(n)}function f(i){const{isNegative:o,integerPart:s,decimalPart:u}=function(i){const o=typeof i;if("bigint"===o)return i<0n?{isNegative:!0,integerPart:-i}:{isNegative:!1,integerPart:i};if("number"===o){if(!Number.isFinite(i))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(i)?i<0?{isNegative:!0,integerPart:BigInt(-i)}:{isNegative:!1,integerPart:BigInt(i)}:r(e(i))}if("string"===o)return r(function(e){const r=e.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid number format: "${e}"`);return t(r)?n(r):r}(i));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${o}`)}(i);let c="";return o&&(c="âm "),c+=g(s),u&&(c+=" phẩy "+function(n){let e="",t=0;for(;t<n.length&&"0"===n[t];)e&&(e+=" "),e+=l,t++;const r=n.slice(t);return r&&(e&&(e+=" "),e+=g(BigInt(r))),e}(u)),c}function m(e){const r=function(e){const r=typeof e;if("bigint"===r){if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}if("number"===r){if(!Number.isFinite(e))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(e))throw new RangeError("Ordinals must be whole numbers");if(e<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(e)}if("string"===r)return function(e){const r=e.trim();if(0===r.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===r[0])throw new RangeError("Ordinals cannot be negative");if(r.includes("."))throw new RangeError("Ordinals must be whole numbers");if(t(r)){const e=n(r);if(e.includes("."))throw new RangeError("Ordinals must be whole numbers");const t=BigInt(e);if(t<=0n)throw new RangeError("Ordinals must be positive integers");return t}try{const n=BigInt(r);if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}catch(n){if(n instanceof RangeError)throw n;throw new RangeError(`Invalid ordinal format: "${e}"`)}}(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(e);return 1n===(i=r)?"thứ nhất":"thứ "+g(i);var i}function h(n){const{isNegative:t,dollars:r}=function(n){const t=typeof n;if("bigint"===t)return n<0n?{isNegative:!0,dollars:-n,cents:0n}:{isNegative:!1,dollars:n,cents:0n};if("number"===t){if(!Number.isFinite(n))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(n)?n<0?{isNegative:!0,dollars:BigInt(-n),cents:0n}:{isNegative:!1,dollars:BigInt(n),cents:0n}:i(e(n))}if("string"===t)return i(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(n);let o="";return t&&(o="âm "),o+=g(r),o+=" đồng",o}export{f as toCardinal,h as toCurrency,m as toOrdinal};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! n2words/vi-VN v4.0.0 | MIT License | github.com/forzagreen/n2words */
|
|
2
|
+
var n,e;n=this,e=function(n){"use strict";function e(n){let[e,t]=n.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===e[0]&&(i="-",e=e.slice(1));const o=e.indexOf("."),s=-1===o?e:e.slice(0,o)+e.slice(o+1),l=(-1===o?e.length:o)+r;return l>=s.length?i+s+"0".repeat(l-s.length):l<=0?i+"0."+"0".repeat(-l)+s:i+s.slice(0,l)+"."+s.slice(l)}function t(n){const t=n.toString();return r(t)?e(t):t}function r(n){return n.includes("e")||n.includes("E")}function i(n){const e="-"===n[0];e&&(n=n.slice(1));const t=n.indexOf(".");if(-1===t)return{isNegative:e,integerPart:BigInt(n)};const r=n.slice(0,t)||"0",i=n.slice(t+1);return{isNegative:e,integerPart:BigInt(r),decimalPart:i}}function o(n){let t=n.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid currency format: "${n}"`);r(t)&&(t=e(t));const i="-"===t[0];i&&(t=t.slice(1));const o=t.indexOf(".");if(-1===o)return{isNegative:i,dollars:BigInt(t),cents:0n};const s=t.slice(0,o)||"0",l=(t.slice(o+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(s),cents:BigInt(l)}}const s=["không","một","hai","ba","bốn","năm","sáu","bảy","tám","chín"],l=["","nghìn","triệu","tỷ","nghìn tỷ","trăm nghìn tỷ","Quintillion","Sextillion","Septillion","Octillion","Nonillion","Decillion","Undecillion","Duodecillion","Tredecillion","Quattuordecillion","Sexdecillion","Septendecillion","Octodecillion","Novemdecillion","Vigintillion"],u="không";function c(n){if(0===n)return s[0];if(n<10)return s[n];if(n<20){const e=n-10;return 0===e?"mười":5===e?"mười lăm":"mười "+s[e]}const e=n%10,t=Math.trunc(n/10),r=s[t]+" mươi";return 0===e?r:1===e?r+" mốt":5===e?r+" lăm":r+" "+s[e]}function a(n){if(0===n)return"";const e=Math.trunc(n/100),t=n%100;let r="";return e>0&&(r=s[e]+" trăm"),t>0&&(t<10?r?(r+=" lẻ ",r+=5===t?"năm":s[t]):r=s[t]:(r&&(r+=" "),r+=c(t))),r}function g(n){return 0===n?"":n<10?"lẻ "+(5===n?"năm":s[n]):"lẻ "+c(n)}function f(n){if(0n===n)return u;if(n<100n)return c(Number(n));if(n<1000n)return a(Number(n));if(n<1000000n){const e=Number(n/1000n),t=Number(n%1000n),r=a(e)+" "+l[1];return 0===t?r:t<100?r+" "+g(t):r+" "+a(t)}return function(n){const e=n.toString(),t=e.length,r=[],i=t%3;let o=0;for(i>0&&(r.push(Number(e.slice(0,i))),o=i);o<t;)r.push(Number(e.slice(o,o+3))),o+=3;const s=[];let c=r.length-1;for(let n=0;n<r.length;n++){const e=r[n];if(0!==e){const n=a(e);n&&s.push(c>0?n+" "+l[c]:n)}c--}const f=s.length;if(0===f)return u;if(1===f)return s[0];const m=r[r.length-1];if(m>0&&m<=99){let n=s[0];for(let e=1;e<f-1;e++)n+=" "+s[e];return n+" "+g(m)}let d=s[0];for(let n=1;n<f;n++)d+=" "+s[n];return d}(n)}const m={viVN:function(n){const t=function(n){const t=typeof n;if("bigint"===t){if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}if("number"===t){if(!Number.isFinite(n))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(n))throw new RangeError("Ordinals must be whole numbers");if(n<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(n)}if("string"===t)return function(n){const t=n.trim();if(0===t.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===t[0])throw new RangeError("Ordinals cannot be negative");if(t.includes("."))throw new RangeError("Ordinals must be whole numbers");if(r(t)){const n=e(t);if(n.includes("."))throw new RangeError("Ordinals must be whole numbers");const r=BigInt(n);if(r<=0n)throw new RangeError("Ordinals must be positive integers");return r}try{const n=BigInt(t);if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}catch(e){if(e instanceof RangeError)throw e;throw new RangeError(`Invalid ordinal format: "${n}"`)}}(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(n);return 1n===(i=t)?"thứ nhất":"thứ "+f(i);var i}};n.currency={viVN:function(n){const{isNegative:e,dollars:r}=function(n){const e=typeof n;if("bigint"===e)return n<0n?{isNegative:!0,dollars:-n,cents:0n}:{isNegative:!1,dollars:n,cents:0n};if("number"===e){if(!Number.isFinite(n))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(n)?n<0?{isNegative:!0,dollars:BigInt(-n),cents:0n}:{isNegative:!1,dollars:BigInt(n),cents:0n}:o(t(n))}if("string"===e)return o(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${e}`)}(n);let i="";return e&&(i="âm "),i+=f(r),i+=" đồng",i}},n.ordinal=m,n.viVN=function(n){const{isNegative:o,integerPart:s,decimalPart:l}=function(n){const o=typeof n;if("bigint"===o)return n<0n?{isNegative:!0,integerPart:-n}:{isNegative:!1,integerPart:n};if("number"===o){if(!Number.isFinite(n))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(n)?n<0?{isNegative:!0,integerPart:BigInt(-n)}:{isNegative:!1,integerPart:BigInt(n)}:i(t(n))}if("string"===o)return i(function(n){const t=n.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid number format: "${n}"`);return r(t)?e(t):t}(n));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${o}`)}(n);let c="";return o&&(c="âm "),c+=f(s),l&&(c+=" phẩy "+function(n){let e="",t=0;for(;t<n.length&&"0"===n[t];)e&&(e+=" "),e+=u,t++;const r=n.slice(t);return r&&(e&&(e+=" "),e+=f(BigInt(r))),e}(l)),c}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).n2words=n.n2words||{});
|
package/dist/yo-NG.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! n2words/yo-NG v4.0.0 | MIT License | github.com/forzagreen/n2words */
|
|
2
|
+
function n(n){let[e,r]=n.toLowerCase().split("e");const t=parseInt(r,10);let i="";"-"===e[0]&&(i="-",e=e.slice(1));const s=e.indexOf("."),o=-1===s?e:e.slice(0,s)+e.slice(s+1),u=(-1===s?e.length:s)+t;return u>=o.length?i+o+"0".repeat(u-o.length):u<=0?i+"0."+"0".repeat(-u)+o:i+o.slice(0,u)+"."+o.slice(u)}function e(e){const t=e.toString();return r(t)?n(t):t}function r(n){return n.includes("e")||n.includes("E")}function t(n){const e="-"===n[0];e&&(n=n.slice(1));const r=n.indexOf(".");if(-1===r)return{isNegative:e,integerPart:BigInt(n)};const t=n.slice(0,r)||"0",i=n.slice(r+1);return{isNegative:e,integerPart:BigInt(t),decimalPart:i}}function i(e){let t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid currency format: "${e}"`);r(t)&&(t=n(t));const i="-"===t[0];i&&(t=t.slice(1));const s=t.indexOf(".");if(-1===s)return{isNegative:i,dollars:BigInt(t),cents:0n};const o=t.slice(0,s)||"0",u=(t.slice(s+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(o),cents:BigInt(u)}}const s=["","ọ̀kan","èjì","ẹ̀ta","ẹ̀rin","àrùn","ẹ̀fà","èje","ẹ̀jọ","ẹ̀sán","ẹ̀wá"],o=["","ọ̀kànlá","èjìlá","ẹ̀talá","ẹ̀rinlá"],u=["àrùndínlógún","ẹ̀rìndínlógún","ẹ̀tadínlógún","èjìdínlógún","ọ̀kàndínlógún"],g={20:"ogún",30:"ọgbọ̀n",40:"ogójì",50:"àádọ́ta",60:"ogóta",70:"àádọ́rin",80:"ogórin",90:"àádọ́rùn",100:"ọgọ́rùn"},a={20:"lógún",30:"lọgbọ̀n",40:"lógójì",50:"láàádọ́ta",60:"lógóta",70:"láàádọ́rin",80:"lógórin",90:"láàádọ́rùn",100:"lọ́gọ́rùn"},l={20:"dínlógún",30:"dínlọgbọ̀n",40:"dínlógójì",50:"dínláàádọ́ta",60:"dínlógóta",70:"dínláàádọ́rin",80:"dínlógórin",90:"dínláàádọ́rùn",100:"dínlọ́gọ́rùn"},c="ọgọ́rùn",f="igba",d="irinwó",b="ẹgbẹ̀rún",m="mílíọ̀nù",w="àìní",N="ó lé";function h(n){if(0===n)return"";if(n<=10)return s[n];if(n<=14)return o[n-10];if(n<=19)return u[n-15];if(n%10==0)return g[n];const e=10*Math.trunc(n/10),r=n%10;return r<=4?s[r]+" lé "+a[e]:s[10-r]+l[e+10]}function v(n){if(n<100)return h(n);const e=Math.trunc(n/100),r=n%100;let t;return 2===e&&0===r?f:4===e&&0===r?d:(t=1===e?c:2===e?f:4===e?d:s[e]+" "+c,r>0&&(t+=" ó lé "+h(r)),t)}function p(n){if(0n===n)return"òdo";if(n<100n)return h(Number(n));if(n<1000n)return v(Number(n));const e=[];let r=n;if(r>=1000000n){const n=r/1000000n;r%=1000000n,e.push(1n===n?m+" kan":m+" "+p(n))}if(r>=1000n){const n=r/1000n;r%=1000n,e.push(1n===n?b+" kan":10n===n?"ẹgbàárùn":20n===n?"ọ̀kẹ́":n<100n?b+" "+h(Number(n)):b+" "+v(Number(n)))}return r>0n&&e.push(r<100n?e.length>0?N+" "+h(Number(r)):h(Number(r)):e.length>0?N+" "+v(Number(r)):v(Number(r))),e.join(", ")}function I(i){const{isNegative:o,integerPart:u,decimalPart:g}=function(i){const s=typeof i;if("bigint"===s)return i<0n?{isNegative:!0,integerPart:-i}:{isNegative:!1,integerPart:i};if("number"===s){if(!Number.isFinite(i))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(i)?i<0?{isNegative:!0,integerPart:BigInt(-i)}:{isNegative:!1,integerPart:BigInt(i)}:t(e(i))}if("string"===s)return t(function(e){const t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid number format: "${e}"`);return r(t)?n(t):t}(i));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${s}`)}(i);let a="";return o&&(a=w+" "),a+=p(u),g&&(a+=" àmì "+function(n){const e=[];for(const r of n){const n=parseInt(r,10);e.push(0===n?"òdo":s[n])}return e.join(" ")}(g)),a}function E(e){const t=function(e){const t=typeof e;if("bigint"===t){if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}if("number"===t){if(!Number.isFinite(e))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(e))throw new RangeError("Ordinals must be whole numbers");if(e<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(e)}if("string"===t)return function(e){const t=e.trim();if(0===t.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===t[0])throw new RangeError("Ordinals cannot be negative");if(t.includes("."))throw new RangeError("Ordinals must be whole numbers");if(r(t)){const e=n(t);if(e.includes("."))throw new RangeError("Ordinals must be whole numbers");const r=BigInt(e);if(r<=0n)throw new RangeError("Ordinals must be positive integers");return r}try{const n=BigInt(t);if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}catch(n){if(n instanceof RangeError)throw n;throw new RangeError(`Invalid ordinal format: "${e}"`)}}(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e);return 1n===(i=t)?"àkọ́kọ́":2n===i?"ìkejì":"ìkẹ"+p(i);var i}function R(n){const{isNegative:r,dollars:t,cents:s}=function(n){const r=typeof n;if("bigint"===r)return n<0n?{isNegative:!0,dollars:-n,cents:0n}:{isNegative:!1,dollars:n,cents:0n};if("number"===r){if(!Number.isFinite(n))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(n)?n<0?{isNegative:!0,dollars:BigInt(-n),cents:0n}:{isNegative:!1,dollars:BigInt(n),cents:0n}:i(e(n))}if("string"===r)return i(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(n);let o="";return r&&(o=w+" "),(t>0n||0n===s)&&(o+=p(t)+" náírà"),s>0n&&(t>0n&&(o+=" àti "),o+=p(s)+" kọ́bọ̀"),o}export{I as toCardinal,R as toCurrency,E as toOrdinal};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! n2words/yo-NG v4.0.0 | MIT License | github.com/forzagreen/n2words */
|
|
2
|
+
var n,e;n=this,e=function(n){"use strict";function e(n){let[e,r]=n.toLowerCase().split("e");const t=parseInt(r,10);let i="";"-"===e[0]&&(i="-",e=e.slice(1));const o=e.indexOf("."),s=-1===o?e:e.slice(0,o)+e.slice(o+1),u=(-1===o?e.length:o)+t;return u>=s.length?i+s+"0".repeat(u-s.length):u<=0?i+"0."+"0".repeat(-u)+s:i+s.slice(0,u)+"."+s.slice(u)}function r(n){const r=n.toString();return t(r)?e(r):r}function t(n){return n.includes("e")||n.includes("E")}function i(n){const e="-"===n[0];e&&(n=n.slice(1));const r=n.indexOf(".");if(-1===r)return{isNegative:e,integerPart:BigInt(n)};const t=n.slice(0,r)||"0",i=n.slice(r+1);return{isNegative:e,integerPart:BigInt(t),decimalPart:i}}function o(n){let r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid currency format: "${n}"`);t(r)&&(r=e(r));const i="-"===r[0];i&&(r=r.slice(1));const o=r.indexOf(".");if(-1===o)return{isNegative:i,dollars:BigInt(r),cents:0n};const s=r.slice(0,o)||"0",u=(r.slice(o+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(s),cents:BigInt(u)}}const s=["","ọ̀kan","èjì","ẹ̀ta","ẹ̀rin","àrùn","ẹ̀fà","èje","ẹ̀jọ","ẹ̀sán","ẹ̀wá"],u=["","ọ̀kànlá","èjìlá","ẹ̀talá","ẹ̀rinlá"],a=["àrùndínlógún","ẹ̀rìndínlógún","ẹ̀tadínlógún","èjìdínlógún","ọ̀kàndínlógún"],l={20:"ogún",30:"ọgbọ̀n",40:"ogójì",50:"àádọ́ta",60:"ogóta",70:"àádọ́rin",80:"ogórin",90:"àádọ́rùn",100:"ọgọ́rùn"},g={20:"lógún",30:"lọgbọ̀n",40:"lógójì",50:"láàádọ́ta",60:"lógóta",70:"láàádọ́rin",80:"lógórin",90:"láàádọ́rùn",100:"lọ́gọ́rùn"},c={20:"dínlógún",30:"dínlọgbọ̀n",40:"dínlógójì",50:"dínláàádọ́ta",60:"dínlógóta",70:"dínláàádọ́rin",80:"dínlógórin",90:"dínláàádọ́rùn",100:"dínlọ́gọ́rùn"},f="ọgọ́rùn",d="igba",b="irinwó",m="ẹgbẹ̀rún",w="mílíọ̀nù",N="àìní",h="ó lé";function p(n){if(0===n)return"";if(n<=10)return s[n];if(n<=14)return u[n-10];if(n<=19)return a[n-15];if(n%10==0)return l[n];const e=10*Math.trunc(n/10),r=n%10;return r<=4?s[r]+" lé "+g[e]:s[10-r]+c[e+10]}function v(n){if(n<100)return p(n);const e=Math.trunc(n/100),r=n%100;let t;return 2===e&&0===r?d:4===e&&0===r?b:(t=1===e?f:2===e?d:4===e?b:s[e]+" "+f,r>0&&(t+=" ó lé "+p(r)),t)}function I(n){if(0n===n)return"òdo";if(n<100n)return p(Number(n));if(n<1000n)return v(Number(n));const e=[];let r=n;if(r>=1000000n){const n=r/1000000n;r%=1000000n,e.push(1n===n?w+" kan":w+" "+I(n))}if(r>=1000n){const n=r/1000n;r%=1000n,e.push(1n===n?m+" kan":10n===n?"ẹgbàárùn":20n===n?"ọ̀kẹ́":n<100n?m+" "+p(Number(n)):m+" "+v(Number(n)))}return r>0n&&e.push(r<100n?e.length>0?h+" "+p(Number(r)):p(Number(r)):e.length>0?h+" "+v(Number(r)):v(Number(r))),e.join(", ")}const y={yoNG:function(n){const r=function(n){const r=typeof n;if("bigint"===r){if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}if("number"===r){if(!Number.isFinite(n))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(n))throw new RangeError("Ordinals must be whole numbers");if(n<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(n)}if("string"===r)return function(n){const r=n.trim();if(0===r.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===r[0])throw new RangeError("Ordinals cannot be negative");if(r.includes("."))throw new RangeError("Ordinals must be whole numbers");if(t(r)){const n=e(r);if(n.includes("."))throw new RangeError("Ordinals must be whole numbers");const t=BigInt(n);if(t<=0n)throw new RangeError("Ordinals must be positive integers");return t}try{const n=BigInt(r);if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}catch(e){if(e instanceof RangeError)throw e;throw new RangeError(`Invalid ordinal format: "${n}"`)}}(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(n);return 1n===(i=r)?"àkọ́kọ́":2n===i?"ìkejì":"ìkẹ"+I(i);var i}};n.currency={yoNG:function(n){const{isNegative:e,dollars:t,cents:i}=function(n){const e=typeof n;if("bigint"===e)return n<0n?{isNegative:!0,dollars:-n,cents:0n}:{isNegative:!1,dollars:n,cents:0n};if("number"===e){if(!Number.isFinite(n))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(n)?n<0?{isNegative:!0,dollars:BigInt(-n),cents:0n}:{isNegative:!1,dollars:BigInt(n),cents:0n}:o(r(n))}if("string"===e)return o(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${e}`)}(n);let s="";return e&&(s=N+" "),(t>0n||0n===i)&&(s+=I(t)+" náírà"),i>0n&&(t>0n&&(s+=" àti "),s+=I(i)+" kọ́bọ̀"),s}},n.ordinal=y,n.yoNG=function(n){const{isNegative:o,integerPart:u,decimalPart:a}=function(n){const o=typeof n;if("bigint"===o)return n<0n?{isNegative:!0,integerPart:-n}:{isNegative:!1,integerPart:n};if("number"===o){if(!Number.isFinite(n))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(n)?n<0?{isNegative:!0,integerPart:BigInt(-n)}:{isNegative:!1,integerPart:BigInt(n)}:i(r(n))}if("string"===o)return i(function(n){const r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid number format: "${n}"`);return t(r)?e(r):r}(n));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${o}`)}(n);let l="";return o&&(l=N+" "),l+=I(u),a&&(l+=" àmì "+function(n){const e=[];for(const r of n){const n=parseInt(r,10);e.push(0===n?"òdo":s[n])}return e.join(" ")}(a)),l}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).n2words=n.n2words||{});
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! n2words/zh-Hans-CN v4.0.0 | MIT License | github.com/forzagreen/n2words */
|
|
2
|
+
function n(n){let[e,r]=n.toLowerCase().split("e");const t=parseInt(r,10);let i="";"-"===e[0]&&(i="-",e=e.slice(1));const o=e.indexOf("."),s=-1===o?e:e.slice(0,o)+e.slice(o+1),u=(-1===o?e.length:o)+t;return u>=s.length?i+s+"0".repeat(u-s.length):u<=0?i+"0."+"0".repeat(-u)+s:i+s.slice(0,u)+"."+s.slice(u)}function e(e){const t=e.toString();return r(t)?n(t):t}function r(n){return n.includes("e")||n.includes("E")}function t(n){const e="-"===n[0];e&&(n=n.slice(1));const r=n.indexOf(".");if(-1===r)return{isNegative:e,integerPart:BigInt(n)};const t=n.slice(0,r)||"0",i=n.slice(r+1);return{isNegative:e,integerPart:BigInt(t),decimalPart:i}}function i(e){let t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid currency format: "${e}"`);r(t)&&(t=n(t));const i="-"===t[0];i&&(t=t.slice(1));const o=t.indexOf(".");if(-1===o)return{isNegative:i,dollars:BigInt(t),cents:0n};const s=t.slice(0,o)||"0",u=(t.slice(o+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(s),cents:BigInt(u)}}function o(n){if(void 0===n)return{};if(function(n){if(null===n||"object"!=typeof n)return!1;const e=Object.getPrototypeOf(n);return null===e||e===Object.prototype}(n))return n;throw new TypeError("Invalid options: expected plain object or undefined, got "+typeof n)}const s=["零","一","二","三","四","五","六","七","八","九"],u=["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"],a="零";function c(n,e,r,t,i){if(0n===n)return"";let o="",s=!1;const u=n/1000n,c=n%1000n;u>0n&&(o=e[Number(u)]+i,s=c>0n&&c<100n);const l=c/100n,g=c%100n;l>0n?(s&&(o+=a),o+=e[Number(l)]+t,s=g>0n&&g<10n):u>0n&&g>0n&&(s=!0);const f=g/10n,b=g%10n;return f>0n?(s&&(o+=a),o+=e[Number(f)]+r,s=!1):(l>0n||u>0n)&&b>0n&&(s=!0),b>0n&&(s&&(o+=a),o+=e[Number(b)]),o}function l(n,e,r,t,i){if(0n===n)return"";if(n>=10000n){const o=n/10000n,s=n%10000n;let u=c(o,e,r,t,i)+"万";return s>0n&&((o%10n==0n||s<1000n)&&(u+=a),u+=c(s,e,r,t,i)),u}return c(n,e,r,t,i)}function g(n,e=!0){if(0n===n)return a;const r=e?u:s,t=e?"拾":"十",i=e?"佰":"百",o=e?"仟":"千";if(n>=100000000n){const e=n%100000000n;let s=l(n/100000000n,r,t,i,o)+"亿";return e>0n&&(e<10000000n&&(s+=a),s+=l(e,r,t,i,o)),s}return l(n,r,t,i,o)}function f(i,a){a=o(a);const{isNegative:c,integerPart:l,decimalPart:f}=function(i){const o=typeof i;if("bigint"===o)return i<0n?{isNegative:!0,integerPart:-i}:{isNegative:!1,integerPart:i};if("number"===o){if(!Number.isFinite(i))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(i)?i<0?{isNegative:!0,integerPart:BigInt(-i)}:{isNegative:!1,integerPart:BigInt(i)}:t(e(i))}if("string"===o)return t(function(e){const t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid number format: "${e}"`);return r(t)?n(t):t}(i));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${o}`)}(i),{formal:b=!0}=a;let m=c?"负":"";return m+=g(l,b),f&&(m+="点"+function(n,e){let r="";for(let t=0;t<n.length;t++)r+=e[Number(n[t])];return r}(f,b?u:s)),m}function b(e,t){t=o(t);const i=function(e){const t=typeof e;if("bigint"===t){if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}if("number"===t){if(!Number.isFinite(e))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(e))throw new RangeError("Ordinals must be whole numbers");if(e<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(e)}if("string"===t)return function(e){const t=e.trim();if(0===t.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===t[0])throw new RangeError("Ordinals cannot be negative");if(t.includes("."))throw new RangeError("Ordinals must be whole numbers");if(r(t)){const e=n(t);if(e.includes("."))throw new RangeError("Ordinals must be whole numbers");const r=BigInt(e);if(r<=0n)throw new RangeError("Ordinals must be positive integers");return r}try{const n=BigInt(t);if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}catch(n){if(n instanceof RangeError)throw n;throw new RangeError(`Invalid ordinal format: "${e}"`)}}(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e),{formal:s=!0}=t;return function(n,e){return"第"+g(n,e)}(i,s)}function m(n,r){r=o(r);const{isNegative:t,dollars:c,cents:l}=function(n){const r=typeof n;if("bigint"===r)return n<0n?{isNegative:!0,dollars:-n,cents:0n}:{isNegative:!1,dollars:n,cents:0n};if("number"===r){if(!Number.isFinite(n))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(n)?n<0?{isNegative:!0,dollars:BigInt(-n),cents:0n}:{isNegative:!1,dollars:BigInt(n),cents:0n}:i(e(n))}if("string"===r)return i(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(n),{formal:f=!0}=r,b=f?u:s,m=f?"圆":"元",d=l/10n,w=l%10n;let N="";return t&&(N="负"),c>0n&&(N+=g(c,f)+m),d>0n?N+=b[Number(d)]+"角":c>0n&&w>0n&&(N+=a),w>0n?N+=b[Number(w)]+"分":(c>0n||d>0n)&&(N+="整"),0n===c&&0n===d&&0n===w&&(N+=a+m+"整"),N}export{f as toCardinal,m as toCurrency,b as toOrdinal};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! n2words/zh-Hans-CN v4.0.0 | MIT License | github.com/forzagreen/n2words */
|
|
2
|
+
var n,e;n=this,e=function(n){"use strict";function e(n){let[e,r]=n.toLowerCase().split("e");const t=parseInt(r,10);let i="";"-"===e[0]&&(i="-",e=e.slice(1));const o=e.indexOf("."),s=-1===o?e:e.slice(0,o)+e.slice(o+1),u=(-1===o?e.length:o)+t;return u>=s.length?i+s+"0".repeat(u-s.length):u<=0?i+"0."+"0".repeat(-u)+s:i+s.slice(0,u)+"."+s.slice(u)}function r(n){const r=n.toString();return t(r)?e(r):r}function t(n){return n.includes("e")||n.includes("E")}function i(n){const e="-"===n[0];e&&(n=n.slice(1));const r=n.indexOf(".");if(-1===r)return{isNegative:e,integerPart:BigInt(n)};const t=n.slice(0,r)||"0",i=n.slice(r+1);return{isNegative:e,integerPart:BigInt(t),decimalPart:i}}function o(n){let r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid currency format: "${n}"`);t(r)&&(r=e(r));const i="-"===r[0];i&&(r=r.slice(1));const o=r.indexOf(".");if(-1===o)return{isNegative:i,dollars:BigInt(r),cents:0n};const s=r.slice(0,o)||"0",u=(r.slice(o+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(s),cents:BigInt(u)}}function s(n){if(void 0===n)return{};if(function(n){if(null===n||"object"!=typeof n)return!1;const e=Object.getPrototypeOf(n);return null===e||e===Object.prototype}(n))return n;throw new TypeError("Invalid options: expected plain object or undefined, got "+typeof n)}const u=["零","一","二","三","四","五","六","七","八","九"],a=["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"],c="零";function f(n,e,r,t,i){if(0n===n)return"";let o="",s=!1;const u=n/1000n,a=n%1000n;u>0n&&(o=e[Number(u)]+i,s=a>0n&&a<100n);const f=a/100n,l=a%100n;f>0n?(s&&(o+=c),o+=e[Number(f)]+t,s=l>0n&&l<10n):u>0n&&l>0n&&(s=!0);const g=l/10n,d=l%10n;return g>0n?(s&&(o+=c),o+=e[Number(g)]+r,s=!1):(f>0n||u>0n)&&d>0n&&(s=!0),d>0n&&(s&&(o+=c),o+=e[Number(d)]),o}function l(n,e,r,t,i){if(0n===n)return"";if(n>=10000n){const o=n/10000n,s=n%10000n;let u=f(o,e,r,t,i)+"万";return s>0n&&((o%10n==0n||s<1000n)&&(u+=c),u+=f(s,e,r,t,i)),u}return f(n,e,r,t,i)}function g(n,e=!0){if(0n===n)return c;const r=e?a:u,t=e?"拾":"十",i=e?"佰":"百",o=e?"仟":"千";if(n>=100000000n){const e=n%100000000n;let s=l(n/100000000n,r,t,i,o)+"亿";return e>0n&&(e<10000000n&&(s+=c),s+=l(e,r,t,i,o)),s}return l(n,r,t,i,o)}const d={zhHansCN:function(n,r){r=s(r);const i=function(n){const r=typeof n;if("bigint"===r){if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}if("number"===r){if(!Number.isFinite(n))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(n))throw new RangeError("Ordinals must be whole numbers");if(n<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(n)}if("string"===r)return function(n){const r=n.trim();if(0===r.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===r[0])throw new RangeError("Ordinals cannot be negative");if(r.includes("."))throw new RangeError("Ordinals must be whole numbers");if(t(r)){const n=e(r);if(n.includes("."))throw new RangeError("Ordinals must be whole numbers");const t=BigInt(n);if(t<=0n)throw new RangeError("Ordinals must be positive integers");return t}try{const n=BigInt(r);if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}catch(e){if(e instanceof RangeError)throw e;throw new RangeError(`Invalid ordinal format: "${n}"`)}}(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(n),{formal:o=!0}=r;return function(n,e){return"第"+g(n,e)}(i,o)}};n.currency={zhHansCN:function(n,e){e=s(e);const{isNegative:t,dollars:i,cents:f}=function(n){const e=typeof n;if("bigint"===e)return n<0n?{isNegative:!0,dollars:-n,cents:0n}:{isNegative:!1,dollars:n,cents:0n};if("number"===e){if(!Number.isFinite(n))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(n)?n<0?{isNegative:!0,dollars:BigInt(-n),cents:0n}:{isNegative:!1,dollars:BigInt(n),cents:0n}:o(r(n))}if("string"===e)return o(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${e}`)}(n),{formal:l=!0}=e,d=l?a:u,b=l?"圆":"元",m=f/10n,w=f%10n;let N="";return t&&(N="负"),i>0n&&(N+=g(i,l)+b),m>0n?N+=d[Number(m)]+"角":i>0n&&w>0n&&(N+=c),w>0n?N+=d[Number(w)]+"分":(i>0n||m>0n)&&(N+="整"),0n===i&&0n===m&&0n===w&&(N+=c+b+"整"),N}},n.ordinal=d,n.zhHansCN=function(n,o){o=s(o);const{isNegative:c,integerPart:f,decimalPart:l}=function(n){const o=typeof n;if("bigint"===o)return n<0n?{isNegative:!0,integerPart:-n}:{isNegative:!1,integerPart:n};if("number"===o){if(!Number.isFinite(n))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(n)?n<0?{isNegative:!0,integerPart:BigInt(-n)}:{isNegative:!1,integerPart:BigInt(n)}:i(r(n))}if("string"===o)return i(function(n){const r=n.trim();if(0===r.length||Number.isNaN(Number(r)))throw new RangeError(`Invalid number format: "${n}"`);return t(r)?e(r):r}(n));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${o}`)}(n),{formal:d=!0}=o;let b=c?"负":"";return b+=g(f,d),l&&(b+="点"+function(n,e){let r="";for(let t=0;t<n.length;t++)r+=e[Number(n[t])];return r}(l,d?a:u)),b}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).n2words=n.n2words||{});
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! n2words/zh-Hant-TW v4.0.0 | MIT License | github.com/forzagreen/n2words */
|
|
2
|
+
function n(n){let[e,r]=n.toLowerCase().split("e");const t=parseInt(r,10);let i="";"-"===e[0]&&(i="-",e=e.slice(1));const s=e.indexOf("."),o=-1===s?e:e.slice(0,s)+e.slice(s+1),u=(-1===s?e.length:s)+t;return u>=o.length?i+o+"0".repeat(u-o.length):u<=0?i+"0."+"0".repeat(-u)+o:i+o.slice(0,u)+"."+o.slice(u)}function e(e){const t=e.toString();return r(t)?n(t):t}function r(n){return n.includes("e")||n.includes("E")}function t(n){const e="-"===n[0];e&&(n=n.slice(1));const r=n.indexOf(".");if(-1===r)return{isNegative:e,integerPart:BigInt(n)};const t=n.slice(0,r)||"0",i=n.slice(r+1);return{isNegative:e,integerPart:BigInt(t),decimalPart:i}}function i(e){let t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid currency format: "${e}"`);r(t)&&(t=n(t));const i="-"===t[0];i&&(t=t.slice(1));const s=t.indexOf(".");if(-1===s)return{isNegative:i,dollars:BigInt(t),cents:0n};const o=t.slice(0,s)||"0",u=(t.slice(s+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(o),cents:BigInt(u)}}function s(n){if(void 0===n)return{};if(function(n){if(null===n||"object"!=typeof n)return!1;const e=Object.getPrototypeOf(n);return null===e||e===Object.prototype}(n))return n;throw new TypeError("Invalid options: expected plain object or undefined, got "+typeof n)}const o=["零","一","二","三","四","五","六","七","八","九"],u=["零","壹","貳","參","肆","伍","陸","柒","捌","玖"],c="零";function a(n,e=!0){if(0n===n)return c;const r=e?u:o,t=e?"拾":"十",i=e?"佰":"百",s=e?"仟":"千";function a(n){if(0n===n)return"";const e=[];let o=!1;const u=n/1000n,a=n%1000n;u>0n&&(e.push(r[Number(u)]+s),o=a>0n&&a<100n);const f=a/100n,g=a%100n;f>0n?(o&&(e.push(c),o=!1),e.push(r[Number(f)]+i),o=g>0n&&g<10n):u>0n&&g>0n&&(o=!0);const l=g/10n,b=g%10n;return l>0n?(o&&(e.push(c),o=!1),e.push(r[Number(l)]+t)):(f>0n||u>0n)&&b>0n&&(o=!0),b>0n&&(o&&e.push(c),e.push(r[Number(b)])),e.join("")}function f(n){if(0n===n)return"";const e=[];if(n>=10000n){const r=n/10000n,t=n%10000n;e.push(a(r)+"萬"),t>0n&&((r%10n==0n||t<1000n)&&e.push(c),e.push(a(t)))}else e.push(a(n));return e.join("")}const g=[];if(n>=100000000n){const e=n%100000000n,r=f(n/100000000n);g.push(r+"億"),e>0n&&(e<10000000n&&g.push(c),g.push(f(e)))}else g.push(f(n));return g.join("")}function f(i,c){c=s(c);const{isNegative:f,integerPart:g,decimalPart:l}=function(i){const s=typeof i;if("bigint"===s)return i<0n?{isNegative:!0,integerPart:-i}:{isNegative:!1,integerPart:i};if("number"===s){if(!Number.isFinite(i))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(i)?i<0?{isNegative:!0,integerPart:BigInt(-i)}:{isNegative:!1,integerPart:BigInt(i)}:t(e(i))}if("string"===s)return t(function(e){const t=e.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid number format: "${e}"`);return r(t)?n(t):t}(i));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${s}`)}(i),{formal:b=!0}=c;let m="";return f&&(m="負"),m+=a(g,b),l&&(m+="點"+function(n,e=!0){const r=e?u:o,t=[];for(const e of n)t.push(r[Number(e)]);return t}(l,b).join("")),m}function g(e,t){t=s(t);const i=function(e){const t=typeof e;if("bigint"===t){if(e<=0n)throw new RangeError("Ordinals must be positive integers");return e}if("number"===t){if(!Number.isFinite(e))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(e))throw new RangeError("Ordinals must be whole numbers");if(e<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(e)}if("string"===t)return function(e){const t=e.trim();if(0===t.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===t[0])throw new RangeError("Ordinals cannot be negative");if(t.includes("."))throw new RangeError("Ordinals must be whole numbers");if(r(t)){const e=n(t);if(e.includes("."))throw new RangeError("Ordinals must be whole numbers");const r=BigInt(e);if(r<=0n)throw new RangeError("Ordinals must be positive integers");return r}try{const n=BigInt(t);if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}catch(n){if(n instanceof RangeError)throw n;throw new RangeError(`Invalid ordinal format: "${e}"`)}}(e);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(e),{formal:o=!0}=t;return function(n,e=!0){return"第"+a(n,e)}(i,o)}function l(n,r){r=s(r);const{isNegative:t,dollars:f,cents:g}=function(n){const r=typeof n;if("bigint"===r)return n<0n?{isNegative:!0,dollars:-n,cents:0n}:{isNegative:!1,dollars:n,cents:0n};if("number"===r){if(!Number.isFinite(n))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(n)?n<0?{isNegative:!0,dollars:BigInt(-n),cents:0n}:{isNegative:!1,dollars:BigInt(n),cents:0n}:i(e(n))}if("string"===r)return i(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${r}`)}(n),{formal:l=!0}=r,b=l?"圓":"元",m=g/10n,p=g%10n;let d="";return t&&(d="負"),(f>0n||0n===g)&&(d+=a(f,l),d+=b),m>0n&&(d+=(l?u:o)[Number(m)]+"角"),p>0n?(f>0n&&0n===m&&(d+=c),d+=(l?u:o)[Number(p)]+"分"):d+="整",d}export{f as toCardinal,l as toCurrency,g as toOrdinal};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/*! n2words/zh-Hant-TW v4.0.0 | MIT License | github.com/forzagreen/n2words */
|
|
2
|
+
var n,e;n=this,e=function(n){"use strict";function e(n){let[e,t]=n.toLowerCase().split("e");const r=parseInt(t,10);let i="";"-"===e[0]&&(i="-",e=e.slice(1));const o=e.indexOf("."),s=-1===o?e:e.slice(0,o)+e.slice(o+1),u=(-1===o?e.length:o)+r;return u>=s.length?i+s+"0".repeat(u-s.length):u<=0?i+"0."+"0".repeat(-u)+s:i+s.slice(0,u)+"."+s.slice(u)}function t(n){const t=n.toString();return r(t)?e(t):t}function r(n){return n.includes("e")||n.includes("E")}function i(n){const e="-"===n[0];e&&(n=n.slice(1));const t=n.indexOf(".");if(-1===t)return{isNegative:e,integerPart:BigInt(n)};const r=n.slice(0,t)||"0",i=n.slice(t+1);return{isNegative:e,integerPart:BigInt(r),decimalPart:i}}function o(n){let t=n.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid currency format: "${n}"`);r(t)&&(t=e(t));const i="-"===t[0];i&&(t=t.slice(1));const o=t.indexOf(".");if(-1===o)return{isNegative:i,dollars:BigInt(t),cents:0n};const s=t.slice(0,o)||"0",u=(t.slice(o+1)+"00").slice(0,2);return{isNegative:i,dollars:BigInt(s),cents:BigInt(u)}}function s(n){if(void 0===n)return{};if(function(n){if(null===n||"object"!=typeof n)return!1;const e=Object.getPrototypeOf(n);return null===e||e===Object.prototype}(n))return n;throw new TypeError("Invalid options: expected plain object or undefined, got "+typeof n)}const u=["零","一","二","三","四","五","六","七","八","九"],c=["零","壹","貳","參","肆","伍","陸","柒","捌","玖"],a="零";function f(n,e=!0){if(0n===n)return a;const t=e?c:u,r=e?"拾":"十",i=e?"佰":"百",o=e?"仟":"千";function s(n){if(0n===n)return"";const e=[];let s=!1;const u=n/1000n,c=n%1000n;u>0n&&(e.push(t[Number(u)]+o),s=c>0n&&c<100n);const f=c/100n,l=c%100n;f>0n?(s&&(e.push(a),s=!1),e.push(t[Number(f)]+i),s=l>0n&&l<10n):u>0n&&l>0n&&(s=!0);const g=l/10n,d=l%10n;return g>0n?(s&&(e.push(a),s=!1),e.push(t[Number(g)]+r)):(f>0n||u>0n)&&d>0n&&(s=!0),d>0n&&(s&&e.push(a),e.push(t[Number(d)])),e.join("")}function f(n){if(0n===n)return"";const e=[];if(n>=10000n){const t=n/10000n,r=n%10000n;e.push(s(t)+"萬"),r>0n&&((t%10n==0n||r<1000n)&&e.push(a),e.push(s(r)))}else e.push(s(n));return e.join("")}const l=[];if(n>=100000000n){const e=n%100000000n,t=f(n/100000000n);l.push(t+"億"),e>0n&&(e<10000000n&&l.push(a),l.push(f(e)))}else l.push(f(n));return l.join("")}const l={zhHantTW:function(n,t){t=s(t);const i=function(n){const t=typeof n;if("bigint"===t){if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}if("number"===t){if(!Number.isFinite(n))throw new RangeError("Ordinals must be finite numbers");if(!Number.isInteger(n))throw new RangeError("Ordinals must be whole numbers");if(n<=0)throw new RangeError("Ordinals must be positive integers");return BigInt(n)}if("string"===t)return function(n){const t=n.trim();if(0===t.length)throw new RangeError("Ordinals cannot be empty strings");if("-"===t[0])throw new RangeError("Ordinals cannot be negative");if(t.includes("."))throw new RangeError("Ordinals must be whole numbers");if(r(t)){const n=e(t);if(n.includes("."))throw new RangeError("Ordinals must be whole numbers");const r=BigInt(n);if(r<=0n)throw new RangeError("Ordinals must be positive integers");return r}try{const n=BigInt(t);if(n<=0n)throw new RangeError("Ordinals must be positive integers");return n}catch(e){if(e instanceof RangeError)throw e;throw new RangeError(`Invalid ordinal format: "${n}"`)}}(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${t}`)}(n),{formal:o=!0}=t;return function(n,e=!0){return"第"+f(n,e)}(i,o)}};n.currency={zhHantTW:function(n,e){e=s(e);const{isNegative:r,dollars:i,cents:l}=function(n){const e=typeof n;if("bigint"===e)return n<0n?{isNegative:!0,dollars:-n,cents:0n}:{isNegative:!1,dollars:n,cents:0n};if("number"===e){if(!Number.isFinite(n))throw new RangeError("Currency must be a finite number");return Number.isSafeInteger(n)?n<0?{isNegative:!0,dollars:BigInt(-n),cents:0n}:{isNegative:!1,dollars:BigInt(n),cents:0n}:o(t(n))}if("string"===e)return o(n);throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${e}`)}(n),{formal:g=!0}=e,d=g?"圓":"元",b=l/10n,p=l%10n;let m="";return r&&(m="負"),(i>0n||0n===l)&&(m+=f(i,g),m+=d),b>0n&&(m+=(g?c:u)[Number(b)]+"角"),p>0n?(i>0n&&0n===b&&(m+=a),m+=(g?c:u)[Number(p)]+"分"):m+="整",m}},n.ordinal=l,n.zhHantTW=function(n,o){o=s(o);const{isNegative:a,integerPart:l,decimalPart:g}=function(n){const o=typeof n;if("bigint"===o)return n<0n?{isNegative:!0,integerPart:-n}:{isNegative:!1,integerPart:n};if("number"===o){if(!Number.isFinite(n))throw new RangeError("Number must be finite (NaN and Infinity are not supported)");return Number.isSafeInteger(n)?n<0?{isNegative:!0,integerPart:BigInt(-n)}:{isNegative:!1,integerPart:BigInt(n)}:i(t(n))}if("string"===o)return i(function(n){const t=n.trim();if(0===t.length||Number.isNaN(Number(t)))throw new RangeError(`Invalid number format: "${n}"`);return r(t)?e(t):t}(n));throw new TypeError(`Invalid value type: expected number, string, or bigint, received ${o}`)}(n),{formal:d=!0}=o;let b="";return a&&(b="負"),b+=f(l,d),g&&(b+="點"+function(n,e=!0){const t=e?c:u,r=[];for(const e of n)r.push(t[Number(e)]);return r}(g,d).join("")),b}},"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).n2words=n.n2words||{});
|
package/package.json
CHANGED
|
@@ -1,28 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n2words",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "Convert numbers to words in
|
|
3
|
+
"version": "4.0.0",
|
|
4
|
+
"description": "Convert numbers to words in 71 languages with zero dependencies. Supports BigInt, decimals, and browser/Node.js environments.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"number-to-words",
|
|
7
7
|
"num2words",
|
|
8
8
|
"n2words",
|
|
9
9
|
"to-words",
|
|
10
10
|
"spell-out",
|
|
11
|
-
"number-formatter",
|
|
12
11
|
"cardinal-numbers",
|
|
13
|
-
"
|
|
12
|
+
"ordinal-numbers",
|
|
13
|
+
"currency-to-words",
|
|
14
14
|
"i18n",
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
"multilingual",
|
|
18
|
-
"52-languages",
|
|
19
|
-
"bigint",
|
|
15
|
+
"tree-shakeable",
|
|
16
|
+
"zero-dependencies",
|
|
20
17
|
"esm",
|
|
21
18
|
"typescript",
|
|
22
|
-
"
|
|
23
|
-
"browser",
|
|
24
|
-
"nodejs",
|
|
25
|
-
"umd"
|
|
19
|
+
"bigint"
|
|
26
20
|
],
|
|
27
21
|
"homepage": "https://github.com/forzagreen/n2words#readme",
|
|
28
22
|
"bugs": {
|
|
@@ -44,77 +38,52 @@
|
|
|
44
38
|
"type": "module",
|
|
45
39
|
"sideEffects": false,
|
|
46
40
|
"exports": {
|
|
47
|
-
".": {
|
|
48
|
-
"types": "./lib/n2words.d.ts",
|
|
49
|
-
"import": "./lib/n2words.js",
|
|
50
|
-
"default": "./lib/n2words.js"
|
|
51
|
-
},
|
|
52
41
|
"./*": {
|
|
53
|
-
"types": "./
|
|
54
|
-
"import": "./
|
|
55
|
-
"default": "./
|
|
42
|
+
"types": "./src/*.d.ts",
|
|
43
|
+
"import": "./src/*.js",
|
|
44
|
+
"default": "./src/*.js"
|
|
56
45
|
},
|
|
46
|
+
"./utils/*": null,
|
|
57
47
|
"./package.json": "./package.json"
|
|
58
48
|
},
|
|
59
|
-
"main": "./lib/n2words.js",
|
|
60
|
-
"types": "./lib/n2words.d.ts",
|
|
61
|
-
"jsdelivr": "./dist/n2words.js",
|
|
62
|
-
"unpkg": "./dist/n2words.js",
|
|
63
49
|
"files": [
|
|
64
|
-
"
|
|
65
|
-
"
|
|
50
|
+
"src/**/*.js",
|
|
51
|
+
"src/**/*.d.ts",
|
|
66
52
|
"dist/**/*.js",
|
|
67
|
-
"dist/**/*.js.map",
|
|
68
53
|
"README.md",
|
|
69
54
|
"LICENSE",
|
|
70
55
|
"CHANGELOG.md"
|
|
71
56
|
],
|
|
72
57
|
"scripts": {
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"build
|
|
77
|
-
"build:
|
|
78
|
-
"build:
|
|
58
|
+
"bench": "node --expose-gc bench/index.js",
|
|
59
|
+
"browserslist": "browserslist",
|
|
60
|
+
"browserslist:coverage": "browserslist --coverage",
|
|
61
|
+
"build": "npm run clean && npm run build:types && npm run build:dist",
|
|
62
|
+
"build:dist": "npm run clean:dist && rollup -c",
|
|
63
|
+
"build:types": "npm run clean:types && tsc --project tsconfig.build.json",
|
|
79
64
|
"clean": "npm run clean:dist && npm run clean:types",
|
|
80
|
-
"clean:dist": "rimraf dist",
|
|
81
|
-
"clean:types": "rimraf \"lib/**/*.d.ts\" --glob",
|
|
82
|
-
"clean:artifacts": "rimraf coverage playwright-report test-results .nyc_output",
|
|
83
65
|
"clean:all": "npm run clean && npm run clean:artifacts",
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"
|
|
88
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"test:types": "npm run build:types && npm run test:types:run",
|
|
91
|
-
"test:types:run": "tsd --files test/types/*.test-d.ts",
|
|
92
|
-
"test:exports": "npm run build:types && npm run test:exports:run",
|
|
93
|
-
"test:exports:run": "attw --pack .",
|
|
94
|
-
"test:browsers": "npm run build:umd && npm run test:browsers:run",
|
|
95
|
-
"test:browsers:run": "playwright test",
|
|
96
|
-
"coverage": "c8 npm test",
|
|
66
|
+
"clean:artifacts": "rimraf coverage .nyc_output",
|
|
67
|
+
"clean:dist": "rimraf dist",
|
|
68
|
+
"clean:types": "rimraf \"src/**/*.d.ts\" --glob",
|
|
69
|
+
"coverage": "c8 npm run test:unit",
|
|
70
|
+
"docs:languages": "node scripts/generate-languages-md.js",
|
|
71
|
+
"lang:add": "node scripts/add-language.js",
|
|
97
72
|
"lint": "npm run lint:js && npm run lint:md",
|
|
98
73
|
"lint:fix": "npm run lint:js -- --fix && npm run lint:md -- --fix",
|
|
99
74
|
"lint:js": "standard",
|
|
100
75
|
"lint:md": "markdownlint-cli2",
|
|
101
|
-
"
|
|
102
|
-
"
|
|
103
|
-
"
|
|
104
|
-
"compat:umd": "es-check checkBrowser dist/**/*.js",
|
|
105
|
-
"browserslist": "browserslist",
|
|
106
|
-
"browserslist:coverage": "browserslist --coverage",
|
|
107
|
-
"playwright:install": "playwright install --with-deps"
|
|
76
|
+
"prepare:husky": "husky",
|
|
77
|
+
"test": "npm run test:unit && npm run build:types",
|
|
78
|
+
"test:unit": "ava \"test/*.test.js\" \"test/utils/*.test.js\""
|
|
108
79
|
},
|
|
109
80
|
"ava": {
|
|
110
81
|
"extensions": [
|
|
111
|
-
"js"
|
|
112
|
-
"cjs"
|
|
82
|
+
"js"
|
|
113
83
|
],
|
|
114
84
|
"files": [
|
|
115
|
-
"test
|
|
116
|
-
"test/
|
|
117
|
-
"test/umd/*.test.js"
|
|
85
|
+
"test/*.test.js",
|
|
86
|
+
"test/utils/*.test.js"
|
|
118
87
|
],
|
|
119
88
|
"timeout": "30s",
|
|
120
89
|
"concurrency": 8,
|
|
@@ -128,10 +97,10 @@
|
|
|
128
97
|
"c8": {
|
|
129
98
|
"all": true,
|
|
130
99
|
"include": [
|
|
131
|
-
"
|
|
100
|
+
"src/"
|
|
132
101
|
],
|
|
133
102
|
"exclude": [
|
|
134
|
-
"
|
|
103
|
+
"src/**/*.d.ts"
|
|
135
104
|
],
|
|
136
105
|
"reporter": [
|
|
137
106
|
"lcov",
|
|
@@ -148,30 +117,26 @@
|
|
|
148
117
|
]
|
|
149
118
|
},
|
|
150
119
|
"devDependencies": {
|
|
151
|
-
"@
|
|
152
|
-
"@babel/
|
|
153
|
-
"@
|
|
154
|
-
"@commitlint/
|
|
155
|
-
"@commitlint/
|
|
156
|
-
"@
|
|
157
|
-
"@playwright/test": "^1.57.0",
|
|
158
|
-
"@rollup/plugin-babel": "^6.1.0",
|
|
120
|
+
"@babel/core": "^7.29.0",
|
|
121
|
+
"@babel/preset-env": "^7.29.0",
|
|
122
|
+
"@commitlint/cli": "^20.4.3",
|
|
123
|
+
"@commitlint/config-conventional": "^20.4.3",
|
|
124
|
+
"@commitlint/format": "^20.4.3",
|
|
125
|
+
"@rollup/plugin-babel": "^7.0.0",
|
|
159
126
|
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
160
|
-
"@rollup/plugin-terser": "^0.
|
|
161
|
-
"@rollup/plugin-virtual": "3.0.2",
|
|
162
|
-
"ava": "^
|
|
127
|
+
"@rollup/plugin-terser": "^1.0.0",
|
|
128
|
+
"@rollup/plugin-virtual": "^3.0.2",
|
|
129
|
+
"ava": "^7.0.0",
|
|
163
130
|
"benchmark": "^2.1.4",
|
|
164
131
|
"browserslist": "^4.28.1",
|
|
165
|
-
"c8": "^
|
|
132
|
+
"c8": "^11.0.0",
|
|
166
133
|
"chalk": "^5.6.2",
|
|
167
|
-
"es-check": "^9.5.3",
|
|
168
134
|
"husky": "^9.1.7",
|
|
169
|
-
"lint-staged": "^16.2
|
|
170
|
-
"markdownlint-cli2": "^0.
|
|
171
|
-
"rimraf": "^6.1.
|
|
172
|
-
"rollup": "^4.
|
|
135
|
+
"lint-staged": "^16.3.2",
|
|
136
|
+
"markdownlint-cli2": "^0.21.0",
|
|
137
|
+
"rimraf": "^6.1.3",
|
|
138
|
+
"rollup": "^4.59.0",
|
|
173
139
|
"standard": "^17.1.2",
|
|
174
|
-
"tsd": "^0.33.0",
|
|
175
140
|
"typescript": "^5.9.3"
|
|
176
141
|
},
|
|
177
142
|
"engines": {
|
package/src/am-ET.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts a numeric value to Amharic words.
|
|
3
|
+
*
|
|
4
|
+
* @param {number | string | bigint} value - The numeric value to convert
|
|
5
|
+
* @returns {string} The number in Amharic words
|
|
6
|
+
*/
|
|
7
|
+
export function toCardinal(value: number | string | bigint): string;
|
|
8
|
+
/**
|
|
9
|
+
* Converts a numeric value to Amharic ordinal words.
|
|
10
|
+
*
|
|
11
|
+
* Amharic ordinals: add -ኛ suffix to cardinal.
|
|
12
|
+
* Special case: 1 → አንደኛ
|
|
13
|
+
*
|
|
14
|
+
* @param {number | string | bigint} value - The numeric value to convert (positive integer)
|
|
15
|
+
* @returns {string} The number as ordinal words
|
|
16
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
17
|
+
* @throws {RangeError} If value is negative, zero, or has a decimal part
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* toOrdinal(1) // 'አንደኛ'
|
|
21
|
+
* toOrdinal(2) // 'ሁለትኛ'
|
|
22
|
+
* toOrdinal(10) // 'አስርኛ'
|
|
23
|
+
* toOrdinal(100) // 'አንድ መቶኛ'
|
|
24
|
+
*/
|
|
25
|
+
export function toOrdinal(value: number | string | bigint): string;
|
|
26
|
+
/**
|
|
27
|
+
* Converts a numeric value to Amharic currency words (Ethiopian Birr).
|
|
28
|
+
*
|
|
29
|
+
* @param {number | string | bigint} value - The currency amount to convert
|
|
30
|
+
* @returns {string} The amount in Amharic currency words
|
|
31
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
32
|
+
* @throws {Error} If value is not a valid number format
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* toCurrency(42.50) // 'አርባ ሁለት ብር ሃምሳ ሳንቲም'
|
|
36
|
+
* toCurrency(1) // 'አንድ ብር'
|
|
37
|
+
* toCurrency(0.99) // 'ዘጠና ዘጠኝ ሳንቲም'
|
|
38
|
+
* toCurrency(0.01) // 'አንድ ሳንቲም'
|
|
39
|
+
*/
|
|
40
|
+
export function toCurrency(value: number | string | bigint): string;
|