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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Filipino language converter
|
|
2
|
+
* Filipino (Philippines) language converter
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* CLDR: fil-PH | Filipino as used in the Philippines
|
|
5
5
|
*
|
|
6
6
|
* Key features:
|
|
7
7
|
* - Linker "ng" after vowels: "isang daang" (100)
|
|
@@ -10,7 +10,9 @@
|
|
|
10
10
|
* - Per-digit decimal reading
|
|
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
|
|
@@ -31,6 +33,25 @@ const DECIMAL_SEP = 'punto'
|
|
|
31
33
|
// Short scale with linker
|
|
32
34
|
const SCALE_WORDS = ['', THOUSAND, 'milyong', 'bilyong', 'trilyong']
|
|
33
35
|
|
|
36
|
+
// ============================================================================
|
|
37
|
+
// Ordinal Vocabulary
|
|
38
|
+
// ============================================================================
|
|
39
|
+
|
|
40
|
+
// Filipino ordinals use "ika-" prefix: ika-isa (1st), ikalawa (2nd), etc.
|
|
41
|
+
// Special forms for 1st and 2nd
|
|
42
|
+
const ORDINAL_PREFIX = 'ika'
|
|
43
|
+
const ORDINAL_SPECIAL = {
|
|
44
|
+
1: 'una', // first
|
|
45
|
+
2: 'ikalawa' // second (contracted form)
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// ============================================================================
|
|
49
|
+
// Currency Vocabulary (Philippine Peso)
|
|
50
|
+
// ============================================================================
|
|
51
|
+
|
|
52
|
+
const PESO = 'piso'
|
|
53
|
+
const SENTIMO = 'sentimo'
|
|
54
|
+
|
|
34
55
|
// ============================================================================
|
|
35
56
|
// Helper Functions
|
|
36
57
|
// ============================================================================
|
|
@@ -46,15 +67,15 @@ function addLinker (word) {
|
|
|
46
67
|
}
|
|
47
68
|
|
|
48
69
|
// ============================================================================
|
|
49
|
-
//
|
|
70
|
+
// Segment Building
|
|
50
71
|
// ============================================================================
|
|
51
72
|
|
|
52
73
|
function buildSegment (n) {
|
|
53
74
|
if (n === 0) return ''
|
|
54
75
|
|
|
55
76
|
const ones = n % 10
|
|
56
|
-
const tensDigit = Math.
|
|
57
|
-
const hundredsDigit = Math.
|
|
77
|
+
const tensDigit = Math.trunc(n / 10) % 10
|
|
78
|
+
const hundredsDigit = Math.trunc(n / 100)
|
|
58
79
|
|
|
59
80
|
const parts = []
|
|
60
81
|
|
|
@@ -91,16 +112,11 @@ function buildSegment (n) {
|
|
|
91
112
|
return parts.join(' ')
|
|
92
113
|
}
|
|
93
114
|
|
|
94
|
-
const SEGMENTS = new Array(1000)
|
|
95
|
-
for (let i = 0; i < 1000; i++) {
|
|
96
|
-
SEGMENTS[i] = buildSegment(i)
|
|
97
|
-
}
|
|
98
|
-
|
|
99
115
|
/**
|
|
100
116
|
* Builds segment with linker added to last word (for use before scale words).
|
|
101
117
|
*/
|
|
102
118
|
function buildSegmentWithLinker (n) {
|
|
103
|
-
const segmentWord =
|
|
119
|
+
const segmentWord = buildSegment(n)
|
|
104
120
|
if (!segmentWord) return ''
|
|
105
121
|
|
|
106
122
|
// Find the last space to get the last word
|
|
@@ -124,12 +140,6 @@ function buildSegmentWithLinker (n) {
|
|
|
124
140
|
return prefix + addLinker(lastWord)
|
|
125
141
|
}
|
|
126
142
|
|
|
127
|
-
// Precompute segments with linker for scale word usage
|
|
128
|
-
const SEGMENTS_WITH_LINKER = new Array(1000)
|
|
129
|
-
for (let i = 0; i < 1000; i++) {
|
|
130
|
-
SEGMENTS_WITH_LINKER[i] = buildSegmentWithLinker(i)
|
|
131
|
-
}
|
|
132
|
-
|
|
133
143
|
// ============================================================================
|
|
134
144
|
// Conversion Functions
|
|
135
145
|
// ============================================================================
|
|
@@ -138,7 +148,7 @@ function integerToWords (n) {
|
|
|
138
148
|
if (n === 0n) return ZERO
|
|
139
149
|
|
|
140
150
|
if (n < 1000n) {
|
|
141
|
-
return
|
|
151
|
+
return buildSegment(Number(n))
|
|
142
152
|
}
|
|
143
153
|
|
|
144
154
|
return buildLargeNumberWords(n)
|
|
@@ -170,10 +180,10 @@ function buildLargeNumberWords (n) {
|
|
|
170
180
|
if (result) result += ' '
|
|
171
181
|
|
|
172
182
|
if (i === 0) {
|
|
173
|
-
result +=
|
|
183
|
+
result += buildSegment(segment)
|
|
174
184
|
} else {
|
|
175
185
|
// Add linker to segment before scale word
|
|
176
|
-
const segmentWord =
|
|
186
|
+
const segmentWord = buildSegmentWithLinker(segment)
|
|
177
187
|
result += segmentWord + ' ' + scaleWord
|
|
178
188
|
}
|
|
179
189
|
}
|
|
@@ -197,8 +207,8 @@ function decimalPartToWords (decimalPart) {
|
|
|
197
207
|
* @param {number | string | bigint} value - The numeric value to convert
|
|
198
208
|
* @returns {string} The number in Filipino words
|
|
199
209
|
*/
|
|
200
|
-
function
|
|
201
|
-
const { isNegative, integerPart, decimalPart } =
|
|
210
|
+
function toCardinal (value) {
|
|
211
|
+
const { isNegative, integerPart, decimalPart } = parseCardinalValue(value)
|
|
202
212
|
|
|
203
213
|
let result = ''
|
|
204
214
|
|
|
@@ -215,8 +225,123 @@ function toWords (value) {
|
|
|
215
225
|
return result
|
|
216
226
|
}
|
|
217
227
|
|
|
228
|
+
// ============================================================================
|
|
229
|
+
// ORDINAL: toOrdinal(value)
|
|
230
|
+
// ============================================================================
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Converts a non-negative integer to Filipino ordinal words.
|
|
234
|
+
*
|
|
235
|
+
* Filipino ordinals: una (1st), ikalawa (2nd), then ika- + cardinal.
|
|
236
|
+
*
|
|
237
|
+
* @param {bigint} n - Positive integer to convert
|
|
238
|
+
* @returns {string} Filipino ordinal words
|
|
239
|
+
*/
|
|
240
|
+
function integerToOrdinal (n) {
|
|
241
|
+
// Special forms for 1st and 2nd
|
|
242
|
+
if (n === 1n) return ORDINAL_SPECIAL[1]
|
|
243
|
+
if (n === 2n) return ORDINAL_SPECIAL[2]
|
|
244
|
+
|
|
245
|
+
// For 3+, use ika- prefix + cardinal
|
|
246
|
+
return ORDINAL_PREFIX + '-' + integerToWords(n)
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Converts a numeric value to Filipino ordinal words.
|
|
251
|
+
*
|
|
252
|
+
* @param {number | string | bigint} value - The numeric value to convert (positive integer)
|
|
253
|
+
* @returns {string} The number as ordinal words
|
|
254
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
255
|
+
* @throws {RangeError} If value is negative, zero, or has a decimal part
|
|
256
|
+
*
|
|
257
|
+
* @example
|
|
258
|
+
* toOrdinal(1) // 'una'
|
|
259
|
+
* toOrdinal(2) // 'ikalawa'
|
|
260
|
+
* toOrdinal(3) // 'ika-tatlo'
|
|
261
|
+
*/
|
|
262
|
+
function toOrdinal (value) {
|
|
263
|
+
const integerPart = parseOrdinalValue(value)
|
|
264
|
+
return integerToOrdinal(integerPart)
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
// ============================================================================
|
|
268
|
+
// CURRENCY: toCurrency(value)
|
|
269
|
+
// ============================================================================
|
|
270
|
+
|
|
271
|
+
/**
|
|
272
|
+
* Converts a numeric value to Filipino currency words (Philippine Peso).
|
|
273
|
+
*
|
|
274
|
+
* Uses piso (peso) and sentimo (centavo).
|
|
275
|
+
*
|
|
276
|
+
* @param {number | string | bigint} value - The currency amount to convert
|
|
277
|
+
* @returns {string} The amount in Filipino currency words
|
|
278
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
279
|
+
* @throws {Error} If value is not a valid number format
|
|
280
|
+
*
|
|
281
|
+
* @example
|
|
282
|
+
* toCurrency(42) // 'apatnapu dalawang piso'
|
|
283
|
+
* toCurrency(1.50) // 'isang piso at limampung sentimo'
|
|
284
|
+
* toCurrency(-5) // 'negatibo limang piso'
|
|
285
|
+
*/
|
|
286
|
+
function toCurrency (value) {
|
|
287
|
+
const { isNegative, dollars: pesos, cents: sentimos } = parseCurrencyValue(value)
|
|
288
|
+
|
|
289
|
+
let result = ''
|
|
290
|
+
if (isNegative) {
|
|
291
|
+
result = NEGATIVE + ' '
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
// Pesos part
|
|
295
|
+
if (pesos > 0n || sentimos === 0n) {
|
|
296
|
+
// Add linker before "piso"
|
|
297
|
+
const pesoWords = integerToWords(pesos)
|
|
298
|
+
if (pesos === 0n) {
|
|
299
|
+
result += pesoWords + ' ' + PESO
|
|
300
|
+
} else {
|
|
301
|
+
// Need to add linker to the last word before "piso"
|
|
302
|
+
const lastSpaceIdx = pesoWords.lastIndexOf(' ')
|
|
303
|
+
if (lastSpaceIdx === -1) {
|
|
304
|
+
// Single word
|
|
305
|
+
result += addLinker(pesoWords) + ' ' + PESO
|
|
306
|
+
} else {
|
|
307
|
+
const prefix = pesoWords.slice(0, lastSpaceIdx + 1)
|
|
308
|
+
const lastWord = pesoWords.slice(lastSpaceIdx + 1)
|
|
309
|
+
if (lastWord.endsWith('ng')) {
|
|
310
|
+
result += pesoWords + ' ' + PESO
|
|
311
|
+
} else {
|
|
312
|
+
result += prefix + addLinker(lastWord) + ' ' + PESO
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
// Sentimos part
|
|
319
|
+
if (sentimos > 0n) {
|
|
320
|
+
if (pesos > 0n) {
|
|
321
|
+
result += ' at '
|
|
322
|
+
}
|
|
323
|
+
const sentimoWords = integerToWords(sentimos)
|
|
324
|
+
// Add linker before "sentimo"
|
|
325
|
+
const lastSpaceIdx = sentimoWords.lastIndexOf(' ')
|
|
326
|
+
if (lastSpaceIdx === -1) {
|
|
327
|
+
// Single word
|
|
328
|
+
result += addLinker(sentimoWords) + ' ' + SENTIMO
|
|
329
|
+
} else {
|
|
330
|
+
const prefix = sentimoWords.slice(0, lastSpaceIdx + 1)
|
|
331
|
+
const lastWord = sentimoWords.slice(lastSpaceIdx + 1)
|
|
332
|
+
if (lastWord.endsWith('ng')) {
|
|
333
|
+
result += sentimoWords + ' ' + SENTIMO
|
|
334
|
+
} else {
|
|
335
|
+
result += prefix + addLinker(lastWord) + ' ' + SENTIMO
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
return result
|
|
341
|
+
}
|
|
342
|
+
|
|
218
343
|
// ============================================================================
|
|
219
344
|
// Exports
|
|
220
345
|
// ============================================================================
|
|
221
346
|
|
|
222
|
-
export {
|
|
347
|
+
export { toCardinal, toOrdinal, toCurrency }
|
package/src/fr-BE.d.ts
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Converts a numeric value to Belgian French words.
|
|
3
|
+
*
|
|
4
|
+
* @param {number | string | bigint} value - The numeric value to convert
|
|
5
|
+
* @param {Object} [options] - Optional configuration
|
|
6
|
+
* @param {boolean} [options.withHyphenSeparator=false] - Use hyphens between words
|
|
7
|
+
* @returns {string} The number in Belgian French words
|
|
8
|
+
*/
|
|
9
|
+
export function toCardinal(value: number | string | bigint, options?: {
|
|
10
|
+
withHyphenSeparator?: boolean | undefined;
|
|
11
|
+
}): string;
|
|
12
|
+
/**
|
|
13
|
+
* Converts a numeric value to Belgian French ordinal words.
|
|
14
|
+
*
|
|
15
|
+
* Belgian French ordinals: premier (1st), then cardinal + ième.
|
|
16
|
+
* Special rules: quatre→quatrième, cinq→cinquième, neuf→neuvième.
|
|
17
|
+
*
|
|
18
|
+
* @param {number | string | bigint} value - The numeric value to convert (positive integer)
|
|
19
|
+
* @returns {string} The number as ordinal words
|
|
20
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
21
|
+
* @throws {RangeError} If value is negative, zero, or has a decimal part
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* toOrdinal(1) // 'premier'
|
|
25
|
+
* toOrdinal(2) // 'deuxième'
|
|
26
|
+
* toOrdinal(70) // 'septantième'
|
|
27
|
+
* toOrdinal(90) // 'nonantième'
|
|
28
|
+
*/
|
|
29
|
+
export function toOrdinal(value: number | string | bigint): string;
|
|
30
|
+
/**
|
|
31
|
+
* Converts a numeric value to Belgian French currency words (Euro).
|
|
32
|
+
*
|
|
33
|
+
* @param {number | string | bigint} value - The currency amount to convert
|
|
34
|
+
* @param {Object} [options] - Optional configuration
|
|
35
|
+
* @param {boolean} [options.and=true] - Use "et" between euros and centimes
|
|
36
|
+
* @returns {string} The amount in Belgian French currency words
|
|
37
|
+
* @throws {TypeError} If value is not a valid numeric type
|
|
38
|
+
* @throws {Error} If value is not a valid number format
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* toCurrency(42.50) // 'quarante-deux euros et cinquante centimes'
|
|
42
|
+
* toCurrency(1) // 'un euro'
|
|
43
|
+
* toCurrency(0.99) // 'nonante-neuf centimes'
|
|
44
|
+
* toCurrency(0.01) // 'un centime'
|
|
45
|
+
* toCurrency(42.50, { and: false }) // 'quarante-deux euros cinquante centimes'
|
|
46
|
+
*/
|
|
47
|
+
export function toCurrency(value: number | string | bigint, options?: {
|
|
48
|
+
and?: boolean | undefined;
|
|
49
|
+
}): string;
|