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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Biblical Hebrew language converter
|
|
2
|
+
* Biblical Hebrew (Israel) language converter
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* CLDR: hbo-IL | Biblical/Ancient Hebrew
|
|
5
5
|
*
|
|
6
6
|
* Key features:
|
|
7
7
|
* - Gender agreement (masculine default, feminine via option)
|
|
@@ -11,8 +11,10 @@
|
|
|
11
11
|
* - Per-digit decimal reading
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
14
|
+
import { parseCardinalValue } from './utils/parse-cardinal.js'
|
|
15
|
+
import { parseCurrencyValue } from './utils/parse-currency.js'
|
|
16
|
+
import { parseOrdinalValue } from './utils/parse-ordinal.js'
|
|
17
|
+
import { validateOptions } from './utils/validate-options.js'
|
|
16
18
|
|
|
17
19
|
// ============================================================================
|
|
18
20
|
// Vocabulary (arrays for indexed access - faster than object property lookup)
|
|
@@ -41,6 +43,18 @@ const ZERO = 'אפס'
|
|
|
41
43
|
const NEGATIVE = 'מינוס'
|
|
42
44
|
const DECIMAL_SEP = 'נקודה'
|
|
43
45
|
|
|
46
|
+
// Ordinal forms (masculine) - used in Biblical Hebrew
|
|
47
|
+
const ORDINAL_ONES = ['', 'ראשון', 'שני', 'שלישי', 'רביעי', 'חמישי', 'שישי', 'שביעי', 'שמיני', 'תשיעי']
|
|
48
|
+
const ORDINAL_TEENS = ['עשירי', 'אחד עשר', 'שנים עשר', 'שלשה עשר', 'ארבעה עשר', 'חמשה עשר', 'ששה עשר', 'שבעה עשר', 'שמונה עשר', 'תשעה עשר']
|
|
49
|
+
const ORDINAL_TENS = ['', '', 'עשרים', 'שלשים', 'ארבעים', 'חמישים', 'ששים', 'שבעים', 'שמונים', 'תשעים']
|
|
50
|
+
const ORDINAL_HUNDRED = 'מאה'
|
|
51
|
+
|
|
52
|
+
// Currency (Biblical Shekel - historical usage)
|
|
53
|
+
const SHEKEL = 'שקל'
|
|
54
|
+
const SHEKEL_PLURAL = 'שקלים'
|
|
55
|
+
const GERAH = 'גרה'
|
|
56
|
+
const GERAH_PLURAL = 'גרות'
|
|
57
|
+
|
|
44
58
|
// ============================================================================
|
|
45
59
|
// Segment Building
|
|
46
60
|
// ============================================================================
|
|
@@ -53,8 +67,8 @@ function buildScaleSegment (n, andWord, ONES, TEENS, HUNDREDS_ARR) {
|
|
|
53
67
|
if (n === 0) return ''
|
|
54
68
|
|
|
55
69
|
const ones = n % 10
|
|
56
|
-
const tens = Math.
|
|
57
|
-
const hundreds = Math.
|
|
70
|
+
const tens = Math.trunc(n / 10) % 10
|
|
71
|
+
const hundreds = Math.trunc(n / 100)
|
|
58
72
|
|
|
59
73
|
let result = ''
|
|
60
74
|
|
|
@@ -103,8 +117,8 @@ function buildUnitsSegment (n, andWord, ONES, TEENS, HUNDREDS_ARR) {
|
|
|
103
117
|
if (n === 0) return ''
|
|
104
118
|
|
|
105
119
|
const ones = n % 10
|
|
106
|
-
const tens = Math.
|
|
107
|
-
const hundreds = Math.
|
|
120
|
+
const tens = Math.trunc(n / 10) % 10
|
|
121
|
+
const hundreds = Math.trunc(n / 100)
|
|
108
122
|
|
|
109
123
|
let result = ''
|
|
110
124
|
|
|
@@ -154,11 +168,9 @@ function buildUnitsSegment (n, andWord, ONES, TEENS, HUNDREDS_ARR) {
|
|
|
154
168
|
* @param {Object} options - Conversion options
|
|
155
169
|
* @returns {string} Biblical Hebrew words
|
|
156
170
|
*/
|
|
157
|
-
function integerToWords (n,
|
|
171
|
+
function integerToWords (n, gender, andWord) {
|
|
158
172
|
if (n === 0n) return ZERO
|
|
159
173
|
|
|
160
|
-
const andWord = options.andWord ?? 'ו'
|
|
161
|
-
const gender = options.gender || 'masculine'
|
|
162
174
|
const isFeminine = gender === 'feminine'
|
|
163
175
|
|
|
164
176
|
// Select vocabulary based on gender
|
|
@@ -233,8 +245,7 @@ function integerToWords (n, options) {
|
|
|
233
245
|
* @param {Object} options - Conversion options
|
|
234
246
|
* @returns {string} Biblical Hebrew words for decimal part
|
|
235
247
|
*/
|
|
236
|
-
function decimalPartToWords (decimalPart,
|
|
237
|
-
const gender = options.gender || 'masculine'
|
|
248
|
+
function decimalPartToWords (decimalPart, gender, andWord) {
|
|
238
249
|
const ONES = gender === 'feminine' ? ONES_FEM : ONES_MASC
|
|
239
250
|
|
|
240
251
|
let result = ''
|
|
@@ -253,12 +264,18 @@ function decimalPartToWords (decimalPart, options) {
|
|
|
253
264
|
* @param {number | string | bigint} value - The numeric value to convert
|
|
254
265
|
* @param {Object} [options] - Optional configuration
|
|
255
266
|
* @param {('masculine'|'feminine')} [options.gender='masculine'] - Grammatical gender
|
|
256
|
-
* @param {string} [options.andWord] - Custom conjunction word
|
|
267
|
+
* @param {string} [options.andWord='ו'] - Custom conjunction word
|
|
257
268
|
* @returns {string} The number in Biblical Hebrew words
|
|
258
269
|
*/
|
|
259
|
-
function
|
|
270
|
+
function toCardinal (value, options) {
|
|
260
271
|
options = validateOptions(options)
|
|
261
|
-
const { isNegative, integerPart, decimalPart } =
|
|
272
|
+
const { isNegative, integerPart, decimalPart } = parseCardinalValue(value)
|
|
273
|
+
|
|
274
|
+
// Apply option defaults
|
|
275
|
+
const {
|
|
276
|
+
gender = 'masculine',
|
|
277
|
+
andWord = 'ו'
|
|
278
|
+
} = options
|
|
262
279
|
|
|
263
280
|
let result = ''
|
|
264
281
|
|
|
@@ -266,17 +283,192 @@ function toWords (value, options) {
|
|
|
266
283
|
result = NEGATIVE + ' '
|
|
267
284
|
}
|
|
268
285
|
|
|
269
|
-
result += integerToWords(integerPart,
|
|
286
|
+
result += integerToWords(integerPart, gender, andWord)
|
|
270
287
|
|
|
271
288
|
if (decimalPart) {
|
|
272
|
-
result += ' ' + DECIMAL_SEP + ' ' + decimalPartToWords(decimalPart,
|
|
289
|
+
result += ' ' + DECIMAL_SEP + ' ' + decimalPartToWords(decimalPart, gender, andWord)
|
|
273
290
|
}
|
|
274
291
|
|
|
275
292
|
return result
|
|
276
293
|
}
|
|
277
294
|
|
|
295
|
+
// ============================================================================
|
|
296
|
+
// Ordinal Functions
|
|
297
|
+
// ============================================================================
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* Builds ordinal for tens and ones (0-99).
|
|
301
|
+
*
|
|
302
|
+
* @param {number} n - Number 0-99
|
|
303
|
+
* @returns {string} Ordinal word
|
|
304
|
+
*/
|
|
305
|
+
function buildOrdinalTensOnes (n) {
|
|
306
|
+
if (n === 0) return ''
|
|
307
|
+
if (n < 10) return ORDINAL_ONES[n]
|
|
308
|
+
if (n < 20) return ORDINAL_TEENS[n - 10]
|
|
309
|
+
|
|
310
|
+
const ones = n % 10
|
|
311
|
+
const tens = Math.trunc(n / 10)
|
|
312
|
+
|
|
313
|
+
if (ones === 0) {
|
|
314
|
+
// Round tens: add "וראשון"
|
|
315
|
+
return ORDINAL_TENS[tens] + ' ו' + ORDINAL_ONES[1]
|
|
316
|
+
}
|
|
317
|
+
// Compound: cardinal tens + ordinal ones
|
|
318
|
+
return ORDINAL_TENS[tens] + ' ו' + ORDINAL_ONES[ones]
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
/**
|
|
322
|
+
* Converts a non-negative integer to Biblical Hebrew ordinal words.
|
|
323
|
+
*
|
|
324
|
+
* @param {bigint} n - Non-negative integer to convert
|
|
325
|
+
* @returns {string} Biblical Hebrew ordinal words
|
|
326
|
+
*/
|
|
327
|
+
function integerToOrdinal (n) {
|
|
328
|
+
if (n === 0n) return ''
|
|
329
|
+
if (n === 1n) return ORDINAL_ONES[1]
|
|
330
|
+
|
|
331
|
+
// Numbers < 100
|
|
332
|
+
if (n < 100n) {
|
|
333
|
+
return buildOrdinalTensOnes(Number(n))
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
// Numbers < 1000
|
|
337
|
+
if (n < 1000n) {
|
|
338
|
+
const hundreds = Number(n / 100n)
|
|
339
|
+
const remainder = Number(n % 100n)
|
|
340
|
+
|
|
341
|
+
if (remainder === 0) {
|
|
342
|
+
return ORDINAL_HUNDRED
|
|
343
|
+
}
|
|
344
|
+
return HUNDREDS[hundreds] + ' ' + buildOrdinalTensOnes(remainder)
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
// Numbers < 1,000,000
|
|
348
|
+
if (n < 1_000_000n) {
|
|
349
|
+
const thousands = Number(n / 1000n)
|
|
350
|
+
const remainder = Number(n % 1000n)
|
|
351
|
+
|
|
352
|
+
if (remainder === 0) {
|
|
353
|
+
if (thousands <= 9) {
|
|
354
|
+
return THOUSANDS_MASC[thousands]
|
|
355
|
+
}
|
|
356
|
+
return buildScaleSegment(thousands, 'ו', ONES_MASC, TEENS_MASC, HUNDREDS) + ' ' + SCALE[1]
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
// Cardinal thousands + ordinal remainder
|
|
360
|
+
let result
|
|
361
|
+
if (thousands <= 9) {
|
|
362
|
+
result = THOUSANDS_MASC[thousands]
|
|
363
|
+
} else {
|
|
364
|
+
result = buildScaleSegment(thousands, 'ו', ONES_MASC, TEENS_MASC, HUNDREDS) + ' ' + SCALE[1]
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
if (remainder < 100) {
|
|
368
|
+
return result + ' ' + buildOrdinalTensOnes(remainder)
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
const remHundreds = Math.trunc(remainder / 100)
|
|
372
|
+
const remTensOnes = remainder % 100
|
|
373
|
+
|
|
374
|
+
if (remTensOnes === 0) {
|
|
375
|
+
return result + ' ' + HUNDREDS[remHundreds]
|
|
376
|
+
}
|
|
377
|
+
return result + ' ' + HUNDREDS[remHundreds] + ' ' + buildOrdinalTensOnes(remTensOnes)
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
// Numbers >= 1,000,000
|
|
381
|
+
const millions = Number(n / 1_000_000n)
|
|
382
|
+
const remainder = n % 1_000_000n
|
|
383
|
+
|
|
384
|
+
if (remainder === 0n) {
|
|
385
|
+
if (millions === 1) {
|
|
386
|
+
return SCALE[2]
|
|
387
|
+
}
|
|
388
|
+
return buildScaleSegment(millions, 'ו', ONES_MASC, TEENS_MASC, HUNDREDS) + ' ' + SCALE_PLURAL[2]
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
// Cardinal millions + ordinal remainder
|
|
392
|
+
let result
|
|
393
|
+
if (millions === 1) {
|
|
394
|
+
result = SCALE[2]
|
|
395
|
+
} else {
|
|
396
|
+
result = buildScaleSegment(millions, 'ו', ONES_MASC, TEENS_MASC, HUNDREDS) + ' ' + SCALE_PLURAL[2]
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
return result + ' ' + integerToOrdinal(remainder)
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
/**
|
|
403
|
+
* Converts a numeric value to Biblical Hebrew ordinal words.
|
|
404
|
+
*
|
|
405
|
+
* @param {number | string | bigint} value - The numeric value to convert
|
|
406
|
+
* @returns {string} The ordinal in Biblical Hebrew words
|
|
407
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
408
|
+
* @throws {Error} If value is not a positive integer
|
|
409
|
+
*
|
|
410
|
+
* @example
|
|
411
|
+
* toOrdinal(1) // 'ראשון'
|
|
412
|
+
* toOrdinal(21) // 'עשרים וראשון'
|
|
413
|
+
*/
|
|
414
|
+
function toOrdinal (value) {
|
|
415
|
+
const n = parseOrdinalValue(value)
|
|
416
|
+
return integerToOrdinal(n)
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
// ============================================================================
|
|
420
|
+
// Currency Functions
|
|
421
|
+
// ============================================================================
|
|
422
|
+
|
|
423
|
+
/**
|
|
424
|
+
* Converts a numeric value to Biblical Hebrew Shekel currency words.
|
|
425
|
+
*
|
|
426
|
+
* @param {number | string | bigint} value - The numeric value to convert
|
|
427
|
+
* @returns {string} The currency in Biblical Hebrew words
|
|
428
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
429
|
+
* @throws {Error} If value is not a valid number format
|
|
430
|
+
*
|
|
431
|
+
* @example
|
|
432
|
+
* toCurrency(1) // 'שקל אחד'
|
|
433
|
+
* toCurrency(2.50) // 'שניים שקלים חמישים גרות'
|
|
434
|
+
*/
|
|
435
|
+
function toCurrency (value) {
|
|
436
|
+
const { isNegative, dollars, cents } = parseCurrencyValue(value)
|
|
437
|
+
|
|
438
|
+
const parts = []
|
|
439
|
+
|
|
440
|
+
if (isNegative) {
|
|
441
|
+
parts.push(NEGATIVE)
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
// Shekels (masculine)
|
|
445
|
+
if (dollars > 0n || cents === 0n) {
|
|
446
|
+
if (dollars === 1n) {
|
|
447
|
+
parts.push(SHEKEL + ' ' + ONES_MASC[1])
|
|
448
|
+
} else if (dollars === 2n) {
|
|
449
|
+
parts.push(ONES_MASC[2] + ' ' + SHEKEL_PLURAL)
|
|
450
|
+
} else {
|
|
451
|
+
const shekelWord = integerToWords(dollars, 'masculine', 'ו')
|
|
452
|
+
parts.push(shekelWord + ' ' + SHEKEL_PLURAL)
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
// Gerah (feminine subunit)
|
|
457
|
+
if (cents > 0n) {
|
|
458
|
+
const centNum = Number(cents)
|
|
459
|
+
if (centNum === 1) {
|
|
460
|
+
parts.push(GERAH + ' ' + ONES_FEM[1])
|
|
461
|
+
} else {
|
|
462
|
+
const gerahWord = integerToWords(cents, 'feminine', 'ו')
|
|
463
|
+
parts.push(gerahWord + ' ' + GERAH_PLURAL)
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
return parts.join(' ')
|
|
468
|
+
}
|
|
469
|
+
|
|
278
470
|
// ============================================================================
|
|
279
471
|
// Exports
|
|
280
472
|
// ============================================================================
|
|
281
473
|
|
|
282
|
-
export {
|
|
474
|
+
export { toCardinal, toOrdinal, toCurrency }
|
package/src/he-IL.d.ts
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts a numeric value to Modern Hebrew words.
|
|
3
|
+
*
|
|
4
|
+
* @param {number | string | bigint} value - The numeric value to convert
|
|
5
|
+
* @param {Object} [options] - Optional configuration
|
|
6
|
+
* @param {string} [options.andWord='ו'] - Custom conjunction word
|
|
7
|
+
* @returns {string} The number in Modern Hebrew words
|
|
8
|
+
*/
|
|
9
|
+
export function toCardinal(value: number | string | bigint, options?: {
|
|
10
|
+
andWord?: string | undefined;
|
|
11
|
+
}): string;
|
|
12
|
+
/**
|
|
13
|
+
* Converts a numeric value to Hebrew ordinal words.
|
|
14
|
+
*
|
|
15
|
+
* @param {number | string | bigint} value - The numeric value to convert
|
|
16
|
+
* @returns {string} The ordinal in Hebrew words
|
|
17
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
18
|
+
* @throws {Error} If value is not a positive integer
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* toOrdinal(1) // 'ראשון'
|
|
22
|
+
* toOrdinal(21) // 'עשרים וראשון'
|
|
23
|
+
*/
|
|
24
|
+
export function toOrdinal(value: number | string | bigint): string;
|
|
25
|
+
/**
|
|
26
|
+
* Converts a numeric value to Hebrew New Israeli Shekel currency words.
|
|
27
|
+
*
|
|
28
|
+
* @param {number | string | bigint} value - The numeric value to convert
|
|
29
|
+
* @returns {string} The currency in Hebrew words
|
|
30
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
31
|
+
* @throws {Error} If value is not a valid number format
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* toCurrency(1) // 'שקל אחד'
|
|
35
|
+
* toCurrency(2.50) // 'שניים שקלים חמישים אגורות'
|
|
36
|
+
*/
|
|
37
|
+
export function toCurrency(value: number | string | bigint): string;
|