n2words 3.0.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 +59 -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/src/bn-BD.js +270 -0
- package/src/cs-CZ.d.ts +49 -0
- package/{lib/languages/cs.js → src/cs-CZ.js} +249 -40
- package/src/da-DK.d.ts +44 -0
- package/{lib/languages/da.js → src/da-DK.js} +136 -23
- 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/src/en-NZ.js +375 -0
- 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} +237 -47
- 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/src/fi-FI.js +379 -0
- package/src/fil-PH.d.ts +37 -0
- package/{lib/languages/fil.js → src/fil-PH.js} +149 -24
- package/src/fr-BE.d.ts +49 -0
- package/src/fr-BE.js +453 -0
- package/src/fr-FR.d.ts +63 -0
- package/{lib/languages/fr.js → src/fr-FR.js} +200 -47
- package/src/gu-IN.d.ts +35 -0
- package/src/gu-IN.js +259 -0
- package/src/ha-NG.d.ts +37 -0
- package/{lib/languages/ha.js → src/ha-NG.js} +110 -16
- package/src/hbo-IL.d.ts +39 -0
- package/{lib/languages/hbo.js → src/hbo-IL.js} +217 -43
- package/src/he-IL.d.ts +37 -0
- package/src/he-IL.js +537 -0
- package/src/hi-IN.d.ts +36 -0
- package/src/hi-IN.js +280 -0
- 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} +106 -20
- package/src/it-IT.d.ts +59 -0
- package/src/it-IT.js +506 -0
- package/src/ja-JP.d.ts +49 -0
- package/{lib/languages/ja.js → src/ja-JP.js} +119 -32
- package/src/ka-GE.d.ts +44 -0
- package/src/ka-GE.js +393 -0
- package/src/kn-IN.d.ts +35 -0
- package/{lib/languages/kn.js → src/kn-IN.js} +156 -34
- package/src/ko-KR.d.ts +45 -0
- package/{lib/languages/ko.js → src/ko-KR.js} +99 -24
- 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/src/mr-IN.js +260 -0
- package/src/ms-MY.d.ts +37 -0
- package/{lib/languages/ms.js → src/ms-MY.js} +118 -20
- package/src/nb-NO.d.ts +44 -0
- package/{lib/languages/nb.js → src/nb-NO.js} +165 -33
- package/src/nl-NL.d.ts +54 -0
- package/{lib/languages/nl.js → src/nl-NL.js} +271 -47
- package/src/pa-IN.d.ts +36 -0
- package/src/pa-IN.js +268 -0
- package/src/pl-PL.d.ts +55 -0
- package/src/pl-PL.js +585 -0
- package/src/pt-PT.d.ts +45 -0
- package/src/pt-PT.js +514 -0
- 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} +149 -34
- 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} +163 -47
- package/src/te-IN.d.ts +35 -0
- package/{lib/languages/te.js → src/te-IN.js} +147 -46
- 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/src/tr-TR.js +397 -0
- package/src/uk-UA.d.ts +42 -0
- package/src/uk-UA.js +463 -0
- package/src/ur-PK.d.ts +36 -0
- package/src/ur-PK.js +268 -0
- 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} +124 -53
- package/src/yo-NG.d.ts +37 -0
- package/src/yo-NG.js +403 -0
- 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/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/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 -164
- package/lib/languages/am.d.ts +0 -7
- package/lib/languages/am.js +0 -164
- package/lib/languages/ar.d.ts +0 -17
- package/lib/languages/az.d.ts +0 -7
- package/lib/languages/az.js +0 -176
- package/lib/languages/bn.d.ts +0 -7
- package/lib/languages/bn.js +0 -145
- 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 -332
- package/lib/languages/el.d.ts +0 -14
- package/lib/languages/el.js +0 -243
- package/lib/languages/en.d.ts +0 -17
- package/lib/languages/en.js +0 -256
- 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/fi.js +0 -245
- package/lib/languages/fil.d.ts +0 -7
- package/lib/languages/fr-BE.d.ts +0 -11
- package/lib/languages/fr-BE.js +0 -300
- package/lib/languages/fr.d.ts +0 -21
- package/lib/languages/gu.d.ts +0 -7
- package/lib/languages/gu.js +0 -137
- 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 -276
- package/lib/languages/hi.d.ts +0 -7
- package/lib/languages/hi.js +0 -145
- package/lib/languages/hr.d.ts +0 -11
- package/lib/languages/hr.js +0 -218
- 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/it.js +0 -377
- package/lib/languages/ja.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 -310
- package/lib/languages/lv.d.ts +0 -18
- package/lib/languages/lv.js +0 -321
- package/lib/languages/mr.d.ts +0 -7
- package/lib/languages/mr.js +0 -137
- 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/pa.js +0 -163
- package/lib/languages/pl.d.ts +0 -22
- package/lib/languages/pl.js +0 -330
- package/lib/languages/pt.d.ts +0 -17
- package/lib/languages/pt.js +0 -306
- package/lib/languages/ro.d.ts +0 -18
- package/lib/languages/ru.d.ts +0 -11
- package/lib/languages/ru.js +0 -240
- package/lib/languages/sr-Cyrl.d.ts +0 -11
- package/lib/languages/sr-Cyrl.js +0 -215
- package/lib/languages/sr-Latn.d.ts +0 -11
- package/lib/languages/sr-Latn.js +0 -215
- 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/tr.js +0 -263
- package/lib/languages/uk.d.ts +0 -11
- package/lib/languages/uk.js +0 -218
- package/lib/languages/ur.d.ts +0 -7
- package/lib/languages/ur.js +0 -163
- package/lib/languages/vi.d.ts +0 -17
- package/lib/languages/zh-Hans.d.ts +0 -11
- package/lib/languages/zh-Hant.d.ts +0 -11
- package/lib/n2words.d.ts +0 -53
- package/lib/n2words.js +0 -122
- 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/src/id-ID.d.ts
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts a numeric value to Indonesian words.
|
|
3
|
+
*
|
|
4
|
+
* @param {number | string | bigint} value - The numeric value to convert
|
|
5
|
+
* @returns {string} The number in Indonesian words
|
|
6
|
+
*/
|
|
7
|
+
export function toCardinal(value: number | string | bigint): string;
|
|
8
|
+
/**
|
|
9
|
+
* Converts a numeric value to Indonesian ordinal words.
|
|
10
|
+
*
|
|
11
|
+
* @param {number | string | bigint} value - The numeric value to convert (positive integer)
|
|
12
|
+
* @returns {string} The number as ordinal words
|
|
13
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
14
|
+
* @throws {RangeError} If value is negative, zero, or has a decimal part
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* toOrdinal(1) // 'pertama'
|
|
18
|
+
* toOrdinal(2) // 'kedua'
|
|
19
|
+
* toOrdinal(10) // 'kesepuluh'
|
|
20
|
+
*/
|
|
21
|
+
export function toOrdinal(value: number | string | bigint): string;
|
|
22
|
+
/**
|
|
23
|
+
* Converts a numeric value to Indonesian currency words (Rupiah).
|
|
24
|
+
*
|
|
25
|
+
* Indonesian Rupiah has no subunit in modern usage (sen are historical).
|
|
26
|
+
* Amounts are rounded to whole rupiah.
|
|
27
|
+
*
|
|
28
|
+
* @param {number | string | bigint} value - The currency amount to convert
|
|
29
|
+
* @returns {string} The amount in Indonesian currency 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(42) // 'empat puluh dua rupiah'
|
|
35
|
+
* toCurrency(1000) // 'seribu rupiah'
|
|
36
|
+
* toCurrency(-5) // 'min lima rupiah'
|
|
37
|
+
*/
|
|
38
|
+
export function toCurrency(value: number | string | bigint): string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Indonesian language converter
|
|
2
|
+
* Indonesian (Indonesia) language converter
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* CLDR: id-ID | Indonesian as used in Indonesia
|
|
5
5
|
*
|
|
6
6
|
* Key features:
|
|
7
7
|
* - "Se-" prefix for 100 (seratus) and 1000 (seribu)
|
|
@@ -10,7 +10,9 @@
|
|
|
10
10
|
* - Indonesian uses "satu juta" (not "sejuta") for millions+
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import {
|
|
13
|
+
import { parseCardinalValue } from './utils/parse-cardinal.js'
|
|
14
|
+
import { parseCurrencyValue } from './utils/parse-currency.js'
|
|
15
|
+
import { parseOrdinalValue } from './utils/parse-ordinal.js'
|
|
14
16
|
|
|
15
17
|
// ============================================================================
|
|
16
18
|
// Vocabulary
|
|
@@ -29,15 +31,29 @@ const NEGATIVE = 'min'
|
|
|
29
31
|
const DECIMAL_SEP = 'koma'
|
|
30
32
|
|
|
31
33
|
// ============================================================================
|
|
32
|
-
//
|
|
34
|
+
// Ordinal Vocabulary
|
|
35
|
+
// ============================================================================
|
|
36
|
+
|
|
37
|
+
const ORDINAL_PREFIX = 'ke'
|
|
38
|
+
// First is special: "pertama" (not "kesatu")
|
|
39
|
+
const ORDINAL_FIRST = 'pertama'
|
|
40
|
+
|
|
41
|
+
// ============================================================================
|
|
42
|
+
// Currency Vocabulary (Indonesian Rupiah)
|
|
43
|
+
// ============================================================================
|
|
44
|
+
|
|
45
|
+
const RUPIAH = 'rupiah'
|
|
46
|
+
|
|
47
|
+
// ============================================================================
|
|
48
|
+
// Segment Building
|
|
33
49
|
// ============================================================================
|
|
34
50
|
|
|
35
51
|
function buildSegment (n) {
|
|
36
52
|
if (n === 0) return ''
|
|
37
53
|
|
|
38
54
|
const onesDigit = n % 10
|
|
39
|
-
const tensDigit = Math.
|
|
40
|
-
const hundredsDigit = Math.
|
|
55
|
+
const tensDigit = Math.trunc(n / 10) % 10
|
|
56
|
+
const hundredsDigit = Math.trunc(n / 100)
|
|
41
57
|
|
|
42
58
|
const parts = []
|
|
43
59
|
|
|
@@ -68,11 +84,6 @@ function buildSegment (n) {
|
|
|
68
84
|
return parts.join(' ')
|
|
69
85
|
}
|
|
70
86
|
|
|
71
|
-
const SEGMENTS = new Array(1000)
|
|
72
|
-
for (let i = 0; i < 1000; i++) {
|
|
73
|
-
SEGMENTS[i] = buildSegment(i)
|
|
74
|
-
}
|
|
75
|
-
|
|
76
87
|
// ============================================================================
|
|
77
88
|
// Conversion Functions
|
|
78
89
|
// ============================================================================
|
|
@@ -81,7 +92,7 @@ function integerToWords (n) {
|
|
|
81
92
|
if (n === 0n) return ZERO
|
|
82
93
|
|
|
83
94
|
if (n < 1000n) {
|
|
84
|
-
return
|
|
95
|
+
return buildSegment(Number(n))
|
|
85
96
|
}
|
|
86
97
|
|
|
87
98
|
if (n < 1_000_000n) {
|
|
@@ -92,11 +103,11 @@ function integerToWords (n) {
|
|
|
92
103
|
if (thousands === 1) {
|
|
93
104
|
result = 'se' + THOUSAND_WORD
|
|
94
105
|
} else {
|
|
95
|
-
result =
|
|
106
|
+
result = buildSegment(thousands) + ' ' + THOUSAND_WORD
|
|
96
107
|
}
|
|
97
108
|
|
|
98
109
|
if (remainder > 0) {
|
|
99
|
-
result += ' ' +
|
|
110
|
+
result += ' ' + buildSegment(remainder)
|
|
100
111
|
}
|
|
101
112
|
|
|
102
113
|
return result
|
|
@@ -131,17 +142,17 @@ function buildLargeNumberWords (n) {
|
|
|
131
142
|
|
|
132
143
|
if (segment !== 0) {
|
|
133
144
|
if (scaleIndex === 0) {
|
|
134
|
-
parts.push(
|
|
145
|
+
parts.push(buildSegment(segment))
|
|
135
146
|
} else if (scaleIndex === 1) {
|
|
136
147
|
if (segment === 1) {
|
|
137
148
|
parts.push('se' + THOUSAND_WORD)
|
|
138
149
|
} else {
|
|
139
|
-
parts.push(
|
|
150
|
+
parts.push(buildSegment(segment) + ' ' + THOUSAND_WORD)
|
|
140
151
|
}
|
|
141
152
|
} else {
|
|
142
153
|
// Indonesian: "satu juta" not "sejuta"
|
|
143
154
|
const scaleWord = SCALE_WORDS[scaleIndex - 2]
|
|
144
|
-
parts.push(
|
|
155
|
+
parts.push(buildSegment(segment) + ' ' + scaleWord)
|
|
145
156
|
}
|
|
146
157
|
}
|
|
147
158
|
|
|
@@ -176,8 +187,8 @@ function decimalPartToWords (decimalPart) {
|
|
|
176
187
|
* @param {number | string | bigint} value - The numeric value to convert
|
|
177
188
|
* @returns {string} The number in Indonesian words
|
|
178
189
|
*/
|
|
179
|
-
function
|
|
180
|
-
const { isNegative, integerPart, decimalPart } =
|
|
190
|
+
function toCardinal (value) {
|
|
191
|
+
const { isNegative, integerPart, decimalPart } = parseCardinalValue(value)
|
|
181
192
|
|
|
182
193
|
let result = ''
|
|
183
194
|
|
|
@@ -194,8 +205,83 @@ function toWords (value) {
|
|
|
194
205
|
return result
|
|
195
206
|
}
|
|
196
207
|
|
|
208
|
+
// ============================================================================
|
|
209
|
+
// ORDINAL: toOrdinal(value)
|
|
210
|
+
// ============================================================================
|
|
211
|
+
|
|
212
|
+
/**
|
|
213
|
+
* Converts a non-negative integer to Indonesian ordinal words.
|
|
214
|
+
*
|
|
215
|
+
* Indonesian ordinals use "ke-" prefix + cardinal number.
|
|
216
|
+
* Special case: "pertama" for 1st (not "kesatu").
|
|
217
|
+
*
|
|
218
|
+
* @param {bigint} n - Positive integer to convert
|
|
219
|
+
* @returns {string} Indonesian ordinal words
|
|
220
|
+
*/
|
|
221
|
+
function integerToOrdinal (n) {
|
|
222
|
+
// Special case: 1st is "pertama"
|
|
223
|
+
if (n === 1n) {
|
|
224
|
+
return ORDINAL_FIRST
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
// All others: "ke" + cardinal (no hyphen in Indonesian)
|
|
228
|
+
return ORDINAL_PREFIX + integerToWords(n)
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
/**
|
|
232
|
+
* Converts a numeric value to Indonesian ordinal words.
|
|
233
|
+
*
|
|
234
|
+
* @param {number | string | bigint} value - The numeric value to convert (positive integer)
|
|
235
|
+
* @returns {string} The number as ordinal words
|
|
236
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
237
|
+
* @throws {RangeError} If value is negative, zero, or has a decimal part
|
|
238
|
+
*
|
|
239
|
+
* @example
|
|
240
|
+
* toOrdinal(1) // 'pertama'
|
|
241
|
+
* toOrdinal(2) // 'kedua'
|
|
242
|
+
* toOrdinal(10) // 'kesepuluh'
|
|
243
|
+
*/
|
|
244
|
+
function toOrdinal (value) {
|
|
245
|
+
const integerPart = parseOrdinalValue(value)
|
|
246
|
+
return integerToOrdinal(integerPart)
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
// ============================================================================
|
|
250
|
+
// CURRENCY: toCurrency(value)
|
|
251
|
+
// ============================================================================
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* Converts a numeric value to Indonesian currency words (Rupiah).
|
|
255
|
+
*
|
|
256
|
+
* Indonesian Rupiah has no subunit in modern usage (sen are historical).
|
|
257
|
+
* Amounts are rounded to whole rupiah.
|
|
258
|
+
*
|
|
259
|
+
* @param {number | string | bigint} value - The currency amount to convert
|
|
260
|
+
* @returns {string} The amount in Indonesian currency words
|
|
261
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
262
|
+
* @throws {Error} If value is not a valid number format
|
|
263
|
+
*
|
|
264
|
+
* @example
|
|
265
|
+
* toCurrency(42) // 'empat puluh dua rupiah'
|
|
266
|
+
* toCurrency(1000) // 'seribu rupiah'
|
|
267
|
+
* toCurrency(-5) // 'min lima rupiah'
|
|
268
|
+
*/
|
|
269
|
+
function toCurrency (value) {
|
|
270
|
+
const { isNegative, dollars: rupiah } = parseCurrencyValue(value)
|
|
271
|
+
|
|
272
|
+
let result = ''
|
|
273
|
+
if (isNegative) {
|
|
274
|
+
result = NEGATIVE + ' '
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
result += integerToWords(rupiah)
|
|
278
|
+
result += ' ' + RUPIAH
|
|
279
|
+
|
|
280
|
+
return result
|
|
281
|
+
}
|
|
282
|
+
|
|
197
283
|
// ============================================================================
|
|
198
284
|
// Exports
|
|
199
285
|
// ============================================================================
|
|
200
286
|
|
|
201
|
-
export {
|
|
287
|
+
export { toCardinal, toOrdinal, toCurrency }
|
package/src/it-IT.d.ts
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts a numeric value to Italian words.
|
|
3
|
+
*
|
|
4
|
+
* This is the main public API. It accepts any valid numeric input
|
|
5
|
+
* (number, string, or bigint) and handles parsing internally.
|
|
6
|
+
*
|
|
7
|
+
* @param {number | string | bigint} value - The numeric value to convert
|
|
8
|
+
* @returns {string} The number in Italian words
|
|
9
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
10
|
+
* @throws {Error} If value is not a valid number format
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* toCardinal(28) // 'ventotto'
|
|
14
|
+
* toCardinal(23) // 'ventitré'
|
|
15
|
+
* toCardinal(1000) // 'mille'
|
|
16
|
+
* toCardinal(2000) // 'duemila'
|
|
17
|
+
* toCardinal(1000000) // 'un milione'
|
|
18
|
+
*/
|
|
19
|
+
export function toCardinal(value: number | string | bigint): string;
|
|
20
|
+
/**
|
|
21
|
+
* Converts a numeric value to Italian ordinal words.
|
|
22
|
+
*
|
|
23
|
+
* Italian ordinals: primo, secondo, terzo... (1-10 irregular)
|
|
24
|
+
* For 11+: cardinal word (drop final vowel) + -esimo
|
|
25
|
+
*
|
|
26
|
+
* @param {number | string | bigint} value - The numeric value to convert (positive integer)
|
|
27
|
+
* @returns {string} The number as ordinal words (masculine form)
|
|
28
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
29
|
+
* @throws {RangeError} If value is negative, zero, or has a decimal part
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* toOrdinal(1) // 'primo'
|
|
33
|
+
* toOrdinal(2) // 'secondo'
|
|
34
|
+
* toOrdinal(11) // 'undicesimo'
|
|
35
|
+
* toOrdinal(21) // 'ventunesimo'
|
|
36
|
+
* toOrdinal(100) // 'centesimo'
|
|
37
|
+
* toOrdinal(1000) // 'millesimo'
|
|
38
|
+
*/
|
|
39
|
+
export function toOrdinal(value: number | string | bigint): string;
|
|
40
|
+
/**
|
|
41
|
+
* Converts a numeric value to Italian currency words (Euro).
|
|
42
|
+
*
|
|
43
|
+
* @param {number | string | bigint} value - The currency amount to convert
|
|
44
|
+
* @param {Object} [options] - Optional configuration
|
|
45
|
+
* @param {boolean} [options.and=true] - Use "e" between euros and centesimi
|
|
46
|
+
* @returns {string} The amount in Italian currency words
|
|
47
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
48
|
+
* @throws {Error} If value is not a valid number format
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* toCurrency(42.50) // 'quarantadue euro e cinquanta centesimi'
|
|
52
|
+
* toCurrency(1) // 'un euro'
|
|
53
|
+
* toCurrency(0.99) // 'novantanove centesimi'
|
|
54
|
+
* toCurrency(0.01) // 'un centesimo'
|
|
55
|
+
* toCurrency(42.50, { and: false }) // 'quarantadue euro cinquanta centesimi'
|
|
56
|
+
*/
|
|
57
|
+
export function toCurrency(value: number | string | bigint, options?: {
|
|
58
|
+
and?: boolean | undefined;
|
|
59
|
+
}): string;
|