@phonecheck/phone-number-validator-js 1.7.3-beta.1 → 2.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.
Files changed (520) hide show
  1. package/README.md +322 -328
  2. package/dist/cache.d.ts +17 -0
  3. package/dist/cli/format.d.ts +12 -0
  4. package/dist/cli/index.d.ts +12 -0
  5. package/dist/cli/index.js +531 -0
  6. package/dist/cli/index.js.map +1 -0
  7. package/dist/cli/parse-args.d.ts +44 -0
  8. package/dist/cli/run.d.ts +14 -0
  9. package/dist/core.d.ts +39 -0
  10. package/dist/index.d.ts +15 -0
  11. package/dist/index.esm.js +231 -0
  12. package/dist/index.esm.js.map +1 -0
  13. package/dist/index.js +254 -0
  14. package/dist/index.js.map +1 -0
  15. package/{lib → dist}/locales.d.ts +1 -2
  16. package/dist/node-fs-loader.d.ts +19 -0
  17. package/dist/serverless/_shared/cors.d.ts +6 -0
  18. package/dist/serverless/_shared/dispatch.d.ts +22 -0
  19. package/dist/serverless/_shared/lambda-helpers.d.ts +23 -0
  20. package/dist/serverless/_shared/routes.d.ts +29 -0
  21. package/dist/serverless/_shared/validation.d.ts +58 -0
  22. package/dist/serverless/_shared/web-helpers.d.ts +17 -0
  23. package/dist/serverless/adapters/aws-lambda.cjs.js +7357 -0
  24. package/dist/serverless/adapters/aws-lambda.cjs.js.map +1 -0
  25. package/dist/serverless/adapters/aws-lambda.d.ts +50 -0
  26. package/dist/serverless/adapters/aws-lambda.esm.js +7349 -0
  27. package/dist/serverless/adapters/aws-lambda.esm.js.map +1 -0
  28. package/dist/serverless/adapters/azure.cjs.js +7334 -0
  29. package/dist/serverless/adapters/azure.cjs.js.map +1 -0
  30. package/dist/serverless/adapters/azure.d.ts +32 -0
  31. package/dist/serverless/adapters/azure.esm.js +7328 -0
  32. package/dist/serverless/adapters/azure.esm.js.map +1 -0
  33. package/dist/serverless/adapters/cloudflare.cjs.js +7854 -0
  34. package/dist/serverless/adapters/cloudflare.cjs.js.map +1 -0
  35. package/dist/serverless/adapters/cloudflare.d.ts +68 -0
  36. package/dist/serverless/adapters/cloudflare.esm.js +7848 -0
  37. package/dist/serverless/adapters/cloudflare.esm.js.map +1 -0
  38. package/dist/serverless/adapters/gcp.cjs.js +7338 -0
  39. package/dist/serverless/adapters/gcp.cjs.js.map +1 -0
  40. package/dist/serverless/adapters/gcp.d.ts +22 -0
  41. package/dist/serverless/adapters/gcp.esm.js +7332 -0
  42. package/dist/serverless/adapters/gcp.esm.js.map +1 -0
  43. package/dist/serverless/adapters/netlify.cjs.js +7331 -0
  44. package/dist/serverless/adapters/netlify.cjs.js.map +1 -0
  45. package/dist/serverless/adapters/netlify.d.ts +29 -0
  46. package/dist/serverless/adapters/netlify.esm.js +7325 -0
  47. package/dist/serverless/adapters/netlify.esm.js.map +1 -0
  48. package/dist/serverless/adapters/vercel.cjs.js +7417 -0
  49. package/dist/serverless/adapters/vercel.cjs.js.map +1 -0
  50. package/dist/serverless/adapters/vercel.d.ts +30 -0
  51. package/dist/serverless/adapters/vercel.esm.js +7409 -0
  52. package/dist/serverless/adapters/vercel.esm.js.map +1 -0
  53. package/dist/serverless/index.cjs.js +12759 -0
  54. package/dist/serverless/index.cjs.js.map +1 -0
  55. package/dist/serverless/index.d.ts +14 -0
  56. package/dist/serverless/index.esm.js +12680 -0
  57. package/dist/serverless/index.esm.js.map +1 -0
  58. package/dist/serverless/loaders/fetch-loader.d.ts +39 -0
  59. package/dist/serverless/loaders/kv-loader.d.ts +27 -0
  60. package/{lib/serverless.cjs.js → dist/serverless/verifier.cjs.js} +4247 -4208
  61. package/dist/serverless/verifier.cjs.js.map +1 -0
  62. package/dist/serverless/verifier.d.ts +17 -0
  63. package/{lib/serverless.esm.js → dist/serverless/verifier.esm.js} +4242 -4209
  64. package/dist/serverless/verifier.esm.js.map +1 -0
  65. package/{lib/serverless.umd.min.js → dist/serverless/verifier.min.js} +1 -8
  66. package/dist/types.d.ts +49 -0
  67. package/package.json +111 -44
  68. package/lib/index.d.ts +0 -41
  69. package/lib/index.d.ts.map +0 -1
  70. package/lib/index.es.js +0 -113
  71. package/lib/index.js +0 -126
  72. package/lib/index.serverless.d.ts +0 -18
  73. package/lib/index.serverless.d.ts.map +0 -1
  74. package/lib/locales.d.ts.map +0 -1
  75. package/lib/serverless.esm.min.js +0 -8
  76. package/lib/serverless.umd.js +0 -11924
  77. package/resources/carrier/ar/965.bson +0 -0
  78. package/resources/carrier/be/375.bson +0 -0
  79. package/resources/carrier/en/1.bson +0 -0
  80. package/resources/carrier/en/20.bson +0 -0
  81. package/resources/carrier/en/211.bson +0 -0
  82. package/resources/carrier/en/212.bson +0 -0
  83. package/resources/carrier/en/213.bson +0 -0
  84. package/resources/carrier/en/216.bson +0 -0
  85. package/resources/carrier/en/218.bson +0 -0
  86. package/resources/carrier/en/220.bson +0 -0
  87. package/resources/carrier/en/221.bson +0 -0
  88. package/resources/carrier/en/222.bson +0 -0
  89. package/resources/carrier/en/223.bson +0 -0
  90. package/resources/carrier/en/224.bson +0 -0
  91. package/resources/carrier/en/225.bson +0 -0
  92. package/resources/carrier/en/226.bson +0 -0
  93. package/resources/carrier/en/227.bson +0 -0
  94. package/resources/carrier/en/228.bson +0 -0
  95. package/resources/carrier/en/229.bson +0 -0
  96. package/resources/carrier/en/230.bson +0 -0
  97. package/resources/carrier/en/231.bson +0 -0
  98. package/resources/carrier/en/232.bson +0 -0
  99. package/resources/carrier/en/233.bson +0 -0
  100. package/resources/carrier/en/234.bson +0 -0
  101. package/resources/carrier/en/235.bson +0 -0
  102. package/resources/carrier/en/236.bson +0 -0
  103. package/resources/carrier/en/237.bson +0 -0
  104. package/resources/carrier/en/238.bson +0 -0
  105. package/resources/carrier/en/239.bson +0 -0
  106. package/resources/carrier/en/240.bson +0 -0
  107. package/resources/carrier/en/241.bson +0 -0
  108. package/resources/carrier/en/242.bson +0 -0
  109. package/resources/carrier/en/243.bson +0 -0
  110. package/resources/carrier/en/244.bson +0 -0
  111. package/resources/carrier/en/245.bson +0 -0
  112. package/resources/carrier/en/246.bson +0 -0
  113. package/resources/carrier/en/247.bson +0 -0
  114. package/resources/carrier/en/248.bson +0 -0
  115. package/resources/carrier/en/249.bson +0 -0
  116. package/resources/carrier/en/250.bson +0 -0
  117. package/resources/carrier/en/251.bson +0 -0
  118. package/resources/carrier/en/252.bson +0 -0
  119. package/resources/carrier/en/253.bson +0 -0
  120. package/resources/carrier/en/254.bson +0 -0
  121. package/resources/carrier/en/255.bson +0 -0
  122. package/resources/carrier/en/256.bson +0 -0
  123. package/resources/carrier/en/257.bson +0 -0
  124. package/resources/carrier/en/258.bson +0 -0
  125. package/resources/carrier/en/260.bson +0 -0
  126. package/resources/carrier/en/261.bson +0 -0
  127. package/resources/carrier/en/262.bson +0 -0
  128. package/resources/carrier/en/263.bson +0 -0
  129. package/resources/carrier/en/264.bson +0 -0
  130. package/resources/carrier/en/265.bson +0 -0
  131. package/resources/carrier/en/266.bson +0 -0
  132. package/resources/carrier/en/267.bson +0 -0
  133. package/resources/carrier/en/268.bson +0 -0
  134. package/resources/carrier/en/269.bson +0 -0
  135. package/resources/carrier/en/27.bson +0 -0
  136. package/resources/carrier/en/290.bson +0 -0
  137. package/resources/carrier/en/291.bson +0 -0
  138. package/resources/carrier/en/297.bson +0 -0
  139. package/resources/carrier/en/298.bson +0 -0
  140. package/resources/carrier/en/299.bson +0 -0
  141. package/resources/carrier/en/30.bson +0 -0
  142. package/resources/carrier/en/31.bson +0 -0
  143. package/resources/carrier/en/32.bson +0 -0
  144. package/resources/carrier/en/33.bson +0 -0
  145. package/resources/carrier/en/34.bson +0 -0
  146. package/resources/carrier/en/350.bson +0 -0
  147. package/resources/carrier/en/351.bson +0 -0
  148. package/resources/carrier/en/352.bson +0 -0
  149. package/resources/carrier/en/353.bson +0 -0
  150. package/resources/carrier/en/354.bson +0 -0
  151. package/resources/carrier/en/355.bson +0 -0
  152. package/resources/carrier/en/356.bson +0 -0
  153. package/resources/carrier/en/357.bson +0 -0
  154. package/resources/carrier/en/358.bson +0 -0
  155. package/resources/carrier/en/359.bson +0 -0
  156. package/resources/carrier/en/36.bson +0 -0
  157. package/resources/carrier/en/370.bson +0 -0
  158. package/resources/carrier/en/371.bson +0 -0
  159. package/resources/carrier/en/372.bson +0 -0
  160. package/resources/carrier/en/373.bson +0 -0
  161. package/resources/carrier/en/374.bson +0 -0
  162. package/resources/carrier/en/375.bson +0 -0
  163. package/resources/carrier/en/376.bson +0 -0
  164. package/resources/carrier/en/377.bson +0 -0
  165. package/resources/carrier/en/378.bson +0 -0
  166. package/resources/carrier/en/380.bson +0 -0
  167. package/resources/carrier/en/381.bson +0 -0
  168. package/resources/carrier/en/382.bson +0 -0
  169. package/resources/carrier/en/383.bson +0 -0
  170. package/resources/carrier/en/385.bson +0 -0
  171. package/resources/carrier/en/386.bson +0 -0
  172. package/resources/carrier/en/387.bson +0 -0
  173. package/resources/carrier/en/389.bson +0 -0
  174. package/resources/carrier/en/39.bson +0 -0
  175. package/resources/carrier/en/40.bson +0 -0
  176. package/resources/carrier/en/41.bson +0 -0
  177. package/resources/carrier/en/420.bson +0 -0
  178. package/resources/carrier/en/421.bson +0 -0
  179. package/resources/carrier/en/423.bson +0 -0
  180. package/resources/carrier/en/43.bson +0 -0
  181. package/resources/carrier/en/44.bson +0 -0
  182. package/resources/carrier/en/45.bson +0 -0
  183. package/resources/carrier/en/46.bson +0 -0
  184. package/resources/carrier/en/47.bson +0 -0
  185. package/resources/carrier/en/48.bson +0 -0
  186. package/resources/carrier/en/49.bson +0 -0
  187. package/resources/carrier/en/500.bson +0 -0
  188. package/resources/carrier/en/501.bson +0 -0
  189. package/resources/carrier/en/502.bson +0 -0
  190. package/resources/carrier/en/503.bson +0 -0
  191. package/resources/carrier/en/504.bson +0 -0
  192. package/resources/carrier/en/505.bson +0 -0
  193. package/resources/carrier/en/506.bson +0 -0
  194. package/resources/carrier/en/507.bson +0 -0
  195. package/resources/carrier/en/508.bson +0 -0
  196. package/resources/carrier/en/509.bson +0 -0
  197. package/resources/carrier/en/51.bson +0 -0
  198. package/resources/carrier/en/53.bson +0 -0
  199. package/resources/carrier/en/55.bson +0 -0
  200. package/resources/carrier/en/56.bson +0 -0
  201. package/resources/carrier/en/57.bson +0 -0
  202. package/resources/carrier/en/58.bson +0 -0
  203. package/resources/carrier/en/590.bson +0 -0
  204. package/resources/carrier/en/591.bson +0 -0
  205. package/resources/carrier/en/592.bson +0 -0
  206. package/resources/carrier/en/593.bson +0 -0
  207. package/resources/carrier/en/594.bson +0 -0
  208. package/resources/carrier/en/595.bson +0 -0
  209. package/resources/carrier/en/596.bson +0 -0
  210. package/resources/carrier/en/597.bson +0 -0
  211. package/resources/carrier/en/598.bson +0 -0
  212. package/resources/carrier/en/599.bson +0 -0
  213. package/resources/carrier/en/60.bson +0 -0
  214. package/resources/carrier/en/61.bson +0 -0
  215. package/resources/carrier/en/62.bson +0 -0
  216. package/resources/carrier/en/63.bson +0 -0
  217. package/resources/carrier/en/64.bson +0 -0
  218. package/resources/carrier/en/65.bson +0 -0
  219. package/resources/carrier/en/66.bson +0 -0
  220. package/resources/carrier/en/670.bson +0 -0
  221. package/resources/carrier/en/672.bson +0 -0
  222. package/resources/carrier/en/673.bson +0 -0
  223. package/resources/carrier/en/674.bson +0 -0
  224. package/resources/carrier/en/675.bson +0 -0
  225. package/resources/carrier/en/676.bson +0 -0
  226. package/resources/carrier/en/677.bson +0 -0
  227. package/resources/carrier/en/678.bson +0 -0
  228. package/resources/carrier/en/679.bson +0 -0
  229. package/resources/carrier/en/680.bson +0 -0
  230. package/resources/carrier/en/681.bson +0 -0
  231. package/resources/carrier/en/682.bson +0 -0
  232. package/resources/carrier/en/683.bson +0 -0
  233. package/resources/carrier/en/685.bson +0 -0
  234. package/resources/carrier/en/686.bson +0 -0
  235. package/resources/carrier/en/687.bson +0 -0
  236. package/resources/carrier/en/688.bson +0 -0
  237. package/resources/carrier/en/689.bson +0 -0
  238. package/resources/carrier/en/690.bson +0 -0
  239. package/resources/carrier/en/691.bson +0 -0
  240. package/resources/carrier/en/692.bson +0 -0
  241. package/resources/carrier/en/7.bson +0 -0
  242. package/resources/carrier/en/81.bson +0 -0
  243. package/resources/carrier/en/82.bson +0 -0
  244. package/resources/carrier/en/84.bson +0 -0
  245. package/resources/carrier/en/850.bson +0 -0
  246. package/resources/carrier/en/852.bson +0 -0
  247. package/resources/carrier/en/853.bson +0 -0
  248. package/resources/carrier/en/855.bson +0 -0
  249. package/resources/carrier/en/856.bson +0 -0
  250. package/resources/carrier/en/86.bson +0 -0
  251. package/resources/carrier/en/880.bson +0 -0
  252. package/resources/carrier/en/881.bson +0 -0
  253. package/resources/carrier/en/882.bson +0 -0
  254. package/resources/carrier/en/886.bson +0 -0
  255. package/resources/carrier/en/90.bson +0 -0
  256. package/resources/carrier/en/91.bson +0 -0
  257. package/resources/carrier/en/92.bson +0 -0
  258. package/resources/carrier/en/93.bson +0 -0
  259. package/resources/carrier/en/94.bson +0 -0
  260. package/resources/carrier/en/95.bson +0 -0
  261. package/resources/carrier/en/960.bson +0 -0
  262. package/resources/carrier/en/961.bson +0 -0
  263. package/resources/carrier/en/962.bson +0 -0
  264. package/resources/carrier/en/963.bson +0 -0
  265. package/resources/carrier/en/964.bson +0 -0
  266. package/resources/carrier/en/965.bson +0 -0
  267. package/resources/carrier/en/966.bson +0 -0
  268. package/resources/carrier/en/967.bson +0 -0
  269. package/resources/carrier/en/968.bson +0 -0
  270. package/resources/carrier/en/970.bson +0 -0
  271. package/resources/carrier/en/971.bson +0 -0
  272. package/resources/carrier/en/972.bson +0 -0
  273. package/resources/carrier/en/973.bson +0 -0
  274. package/resources/carrier/en/974.bson +0 -0
  275. package/resources/carrier/en/975.bson +0 -0
  276. package/resources/carrier/en/976.bson +0 -0
  277. package/resources/carrier/en/977.bson +0 -0
  278. package/resources/carrier/en/98.bson +0 -0
  279. package/resources/carrier/en/992.bson +0 -0
  280. package/resources/carrier/en/993.bson +0 -0
  281. package/resources/carrier/en/994.bson +0 -0
  282. package/resources/carrier/en/995.bson +0 -0
  283. package/resources/carrier/en/996.bson +0 -0
  284. package/resources/carrier/en/998.bson +0 -0
  285. package/resources/carrier/fa/93.bson +0 -0
  286. package/resources/carrier/fa/98.bson +0 -0
  287. package/resources/carrier/ko/82.bson +0 -0
  288. package/resources/carrier/ru/374.bson +0 -0
  289. package/resources/carrier/ru/375.bson +0 -0
  290. package/resources/carrier/ru/7.bson +0 -0
  291. package/resources/carrier/uk/380.bson +0 -0
  292. package/resources/carrier/zh/852.bson +0 -0
  293. package/resources/carrier/zh/86.bson +0 -0
  294. package/resources/carrier/zh_Hant/852.bson +0 -0
  295. package/resources/carrier/zh_Hant/86.bson +0 -0
  296. package/resources/geocodes/ar/966.bson +0 -0
  297. package/resources/geocodes/be/375.bson +0 -0
  298. package/resources/geocodes/bg/359.bson +0 -0
  299. package/resources/geocodes/bs/387.bson +0 -0
  300. package/resources/geocodes/de/32.bson +0 -0
  301. package/resources/geocodes/de/352.bson +0 -0
  302. package/resources/geocodes/de/41.bson +0 -0
  303. package/resources/geocodes/de/43.bson +0 -0
  304. package/resources/geocodes/de/49.bson +0 -0
  305. package/resources/geocodes/el/30.bson +0 -0
  306. package/resources/geocodes/en/1.bson +0 -0
  307. package/resources/geocodes/en/20.bson +0 -0
  308. package/resources/geocodes/en/212.bson +0 -0
  309. package/resources/geocodes/en/213.bson +0 -0
  310. package/resources/geocodes/en/216.bson +0 -0
  311. package/resources/geocodes/en/218.bson +0 -0
  312. package/resources/geocodes/en/220.bson +0 -0
  313. package/resources/geocodes/en/221.bson +0 -0
  314. package/resources/geocodes/en/222.bson +0 -0
  315. package/resources/geocodes/en/223.bson +0 -0
  316. package/resources/geocodes/en/224.bson +0 -0
  317. package/resources/geocodes/en/225.bson +0 -0
  318. package/resources/geocodes/en/226.bson +0 -0
  319. package/resources/geocodes/en/227.bson +0 -0
  320. package/resources/geocodes/en/228.bson +0 -0
  321. package/resources/geocodes/en/229.bson +0 -0
  322. package/resources/geocodes/en/230.bson +0 -0
  323. package/resources/geocodes/en/232.bson +0 -0
  324. package/resources/geocodes/en/233.bson +0 -0
  325. package/resources/geocodes/en/234.bson +0 -0
  326. package/resources/geocodes/en/236.bson +0 -0
  327. package/resources/geocodes/en/237.bson +0 -0
  328. package/resources/geocodes/en/238.bson +0 -0
  329. package/resources/geocodes/en/239.bson +0 -0
  330. package/resources/geocodes/en/240.bson +0 -0
  331. package/resources/geocodes/en/241.bson +0 -0
  332. package/resources/geocodes/en/242.bson +0 -0
  333. package/resources/geocodes/en/243.bson +0 -0
  334. package/resources/geocodes/en/244.bson +0 -0
  335. package/resources/geocodes/en/245.bson +0 -0
  336. package/resources/geocodes/en/247.bson +0 -0
  337. package/resources/geocodes/en/249.bson +0 -0
  338. package/resources/geocodes/en/251.bson +0 -0
  339. package/resources/geocodes/en/252.bson +0 -0
  340. package/resources/geocodes/en/254.bson +0 -0
  341. package/resources/geocodes/en/255.bson +0 -0
  342. package/resources/geocodes/en/256.bson +0 -0
  343. package/resources/geocodes/en/257.bson +0 -0
  344. package/resources/geocodes/en/258.bson +0 -0
  345. package/resources/geocodes/en/260.bson +0 -0
  346. package/resources/geocodes/en/261.bson +0 -0
  347. package/resources/geocodes/en/263.bson +0 -0
  348. package/resources/geocodes/en/264.bson +0 -0
  349. package/resources/geocodes/en/266.bson +0 -0
  350. package/resources/geocodes/en/267.bson +0 -0
  351. package/resources/geocodes/en/268.bson +0 -0
  352. package/resources/geocodes/en/269.bson +0 -0
  353. package/resources/geocodes/en/27.bson +0 -0
  354. package/resources/geocodes/en/290.bson +0 -0
  355. package/resources/geocodes/en/299.bson +0 -0
  356. package/resources/geocodes/en/30.bson +0 -0
  357. package/resources/geocodes/en/31.bson +0 -0
  358. package/resources/geocodes/en/32.bson +0 -0
  359. package/resources/geocodes/en/34.bson +0 -0
  360. package/resources/geocodes/en/351.bson +0 -0
  361. package/resources/geocodes/en/352.bson +0 -0
  362. package/resources/geocodes/en/353.bson +0 -0
  363. package/resources/geocodes/en/354.bson +0 -0
  364. package/resources/geocodes/en/355.bson +0 -0
  365. package/resources/geocodes/en/358.bson +0 -0
  366. package/resources/geocodes/en/359.bson +0 -0
  367. package/resources/geocodes/en/36.bson +0 -0
  368. package/resources/geocodes/en/370.bson +0 -0
  369. package/resources/geocodes/en/373.bson +0 -0
  370. package/resources/geocodes/en/374.bson +0 -0
  371. package/resources/geocodes/en/375.bson +0 -0
  372. package/resources/geocodes/en/380.bson +0 -0
  373. package/resources/geocodes/en/381.bson +0 -0
  374. package/resources/geocodes/en/382.bson +0 -0
  375. package/resources/geocodes/en/383.bson +0 -0
  376. package/resources/geocodes/en/385.bson +0 -0
  377. package/resources/geocodes/en/386.bson +0 -0
  378. package/resources/geocodes/en/387.bson +0 -0
  379. package/resources/geocodes/en/389.bson +0 -0
  380. package/resources/geocodes/en/39.bson +0 -0
  381. package/resources/geocodes/en/40.bson +0 -0
  382. package/resources/geocodes/en/41.bson +0 -0
  383. package/resources/geocodes/en/420.bson +0 -0
  384. package/resources/geocodes/en/421.bson +0 -0
  385. package/resources/geocodes/en/43.bson +0 -0
  386. package/resources/geocodes/en/44.bson +0 -0
  387. package/resources/geocodes/en/46.bson +0 -0
  388. package/resources/geocodes/en/47.bson +0 -0
  389. package/resources/geocodes/en/48.bson +0 -0
  390. package/resources/geocodes/en/49.bson +0 -0
  391. package/resources/geocodes/en/501.bson +0 -0
  392. package/resources/geocodes/en/504.bson +0 -0
  393. package/resources/geocodes/en/51.bson +0 -0
  394. package/resources/geocodes/en/52.bson +0 -0
  395. package/resources/geocodes/en/53.bson +0 -0
  396. package/resources/geocodes/en/54.bson +0 -0
  397. package/resources/geocodes/en/55.bson +0 -0
  398. package/resources/geocodes/en/56.bson +0 -0
  399. package/resources/geocodes/en/57.bson +0 -0
  400. package/resources/geocodes/en/58.bson +0 -0
  401. package/resources/geocodes/en/592.bson +0 -0
  402. package/resources/geocodes/en/593.bson +0 -0
  403. package/resources/geocodes/en/595.bson +0 -0
  404. package/resources/geocodes/en/598.bson +0 -0
  405. package/resources/geocodes/en/599.bson +0 -0
  406. package/resources/geocodes/en/61.bson +0 -0
  407. package/resources/geocodes/en/62.bson +0 -0
  408. package/resources/geocodes/en/63.bson +0 -0
  409. package/resources/geocodes/en/64.bson +0 -0
  410. package/resources/geocodes/en/66.bson +0 -0
  411. package/resources/geocodes/en/670.bson +0 -0
  412. package/resources/geocodes/en/672.bson +0 -0
  413. package/resources/geocodes/en/673.bson +0 -0
  414. package/resources/geocodes/en/675.bson +0 -0
  415. package/resources/geocodes/en/676.bson +0 -0
  416. package/resources/geocodes/en/678.bson +0 -0
  417. package/resources/geocodes/en/679.bson +0 -0
  418. package/resources/geocodes/en/680.bson +0 -0
  419. package/resources/geocodes/en/682.bson +0 -0
  420. package/resources/geocodes/en/685.bson +0 -0
  421. package/resources/geocodes/en/686.bson +0 -0
  422. package/resources/geocodes/en/688.bson +0 -0
  423. package/resources/geocodes/en/689.bson +0 -0
  424. package/resources/geocodes/en/690.bson +0 -0
  425. package/resources/geocodes/en/7.bson +0 -0
  426. package/resources/geocodes/en/81.bson +0 -0
  427. package/resources/geocodes/en/82.bson +0 -0
  428. package/resources/geocodes/en/84.bson +0 -0
  429. package/resources/geocodes/en/850.bson +0 -0
  430. package/resources/geocodes/en/86.bson +0 -0
  431. package/resources/geocodes/en/880.bson +0 -0
  432. package/resources/geocodes/en/886.bson +0 -0
  433. package/resources/geocodes/en/90.bson +0 -0
  434. package/resources/geocodes/en/91.bson +0 -0
  435. package/resources/geocodes/en/92.bson +0 -0
  436. package/resources/geocodes/en/93.bson +0 -0
  437. package/resources/geocodes/en/94.bson +0 -0
  438. package/resources/geocodes/en/95.bson +0 -0
  439. package/resources/geocodes/en/960.bson +0 -0
  440. package/resources/geocodes/en/961.bson +0 -0
  441. package/resources/geocodes/en/962.bson +0 -0
  442. package/resources/geocodes/en/963.bson +0 -0
  443. package/resources/geocodes/en/966.bson +0 -0
  444. package/resources/geocodes/en/967.bson +0 -0
  445. package/resources/geocodes/en/968.bson +0 -0
  446. package/resources/geocodes/en/970.bson +0 -0
  447. package/resources/geocodes/en/971.bson +0 -0
  448. package/resources/geocodes/en/972.bson +0 -0
  449. package/resources/geocodes/en/975.bson +0 -0
  450. package/resources/geocodes/en/976.bson +0 -0
  451. package/resources/geocodes/en/98.bson +0 -0
  452. package/resources/geocodes/en/992.bson +0 -0
  453. package/resources/geocodes/en/993.bson +0 -0
  454. package/resources/geocodes/en/994.bson +0 -0
  455. package/resources/geocodes/en/995.bson +0 -0
  456. package/resources/geocodes/en/996.bson +0 -0
  457. package/resources/geocodes/es/228.bson +0 -0
  458. package/resources/geocodes/es/230.bson +0 -0
  459. package/resources/geocodes/es/34.bson +0 -0
  460. package/resources/geocodes/es/52.bson +0 -0
  461. package/resources/geocodes/es/54.bson +0 -0
  462. package/resources/geocodes/es/56.bson +0 -0
  463. package/resources/geocodes/es/57.bson +0 -0
  464. package/resources/geocodes/es/58.bson +0 -0
  465. package/resources/geocodes/fa/93.bson +0 -0
  466. package/resources/geocodes/fa/98.bson +0 -0
  467. package/resources/geocodes/fi/358.bson +0 -0
  468. package/resources/geocodes/fr/212.bson +0 -0
  469. package/resources/geocodes/fr/222.bson +0 -0
  470. package/resources/geocodes/fr/225.bson +0 -0
  471. package/resources/geocodes/fr/228.bson +0 -0
  472. package/resources/geocodes/fr/229.bson +0 -0
  473. package/resources/geocodes/fr/230.bson +0 -0
  474. package/resources/geocodes/fr/242.bson +0 -0
  475. package/resources/geocodes/fr/243.bson +0 -0
  476. package/resources/geocodes/fr/269.bson +0 -0
  477. package/resources/geocodes/fr/290.bson +0 -0
  478. package/resources/geocodes/fr/32.bson +0 -0
  479. package/resources/geocodes/fr/352.bson +0 -0
  480. package/resources/geocodes/fr/41.bson +0 -0
  481. package/resources/geocodes/hr/387.bson +0 -0
  482. package/resources/geocodes/hu/36.bson +0 -0
  483. package/resources/geocodes/hy/374.bson +0 -0
  484. package/resources/geocodes/id/62.bson +0 -0
  485. package/resources/geocodes/it/39.bson +0 -0
  486. package/resources/geocodes/it/41.bson +0 -0
  487. package/resources/geocodes/iw/972.bson +0 -0
  488. package/resources/geocodes/ja/81.bson +0 -0
  489. package/resources/geocodes/kk/7.bson +0 -0
  490. package/resources/geocodes/ko/82.bson +0 -0
  491. package/resources/geocodes/nl/31.bson +0 -0
  492. package/resources/geocodes/nl/32.bson +0 -0
  493. package/resources/geocodes/pl/48.bson +0 -0
  494. package/resources/geocodes/pt/238.bson +0 -0
  495. package/resources/geocodes/pt/239.bson +0 -0
  496. package/resources/geocodes/pt/244.bson +0 -0
  497. package/resources/geocodes/pt/245.bson +0 -0
  498. package/resources/geocodes/pt/258.bson +0 -0
  499. package/resources/geocodes/pt/351.bson +0 -0
  500. package/resources/geocodes/pt/55.bson +0 -0
  501. package/resources/geocodes/ro/373.bson +0 -0
  502. package/resources/geocodes/ro/40.bson +0 -0
  503. package/resources/geocodes/ru/373.bson +0 -0
  504. package/resources/geocodes/ru/374.bson +0 -0
  505. package/resources/geocodes/ru/375.bson +0 -0
  506. package/resources/geocodes/ru/7.bson +0 -0
  507. package/resources/geocodes/sq/383.bson +0 -0
  508. package/resources/geocodes/sr/381.bson +0 -0
  509. package/resources/geocodes/sr/383.bson +0 -0
  510. package/resources/geocodes/sr/387.bson +0 -0
  511. package/resources/geocodes/sv/358.bson +0 -0
  512. package/resources/geocodes/sv/46.bson +0 -0
  513. package/resources/geocodes/th/66.bson +0 -0
  514. package/resources/geocodes/tr/90.bson +0 -0
  515. package/resources/geocodes/uk/380.bson +0 -0
  516. package/resources/geocodes/vi/84.bson +0 -0
  517. package/resources/geocodes/zh/86.bson +0 -0
  518. package/resources/geocodes/zh/886.bson +0 -0
  519. package/resources/geocodes/zh_Hant/886.bson +0 -0
  520. package/resources/timezones.bson +0 -0
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Public type surface. Anything exported from `src/index.ts` (or a serverless
3
+ * entry) that needs a stable shape lives here. Internal types stay in their
4
+ * owning module.
5
+ */
6
+ import type { PhoneNumber } from 'libphonenumber-js';
7
+ export type { CarrierLocale, GeocoderLocale } from './locales';
8
+ /** A `libphonenumber-js` parse result, possibly undefined when input is invalid. */
9
+ export type MaybePhoneNumber = PhoneNumber | undefined;
10
+ /**
11
+ * BSON-deserialized lookup table. Keys are national-number prefixes
12
+ * (e.g. `"4155"`); values are the localized description (e.g. `"San Francisco"`).
13
+ *
14
+ * `unknown` for value because the deserialized BSON type isn't typed by the
15
+ * upstream library. Callers narrow via `typeof === 'string'`.
16
+ */
17
+ export type LookupTable = Record<string, unknown>;
18
+ /**
19
+ * Strategy for fetching `.bson` lookup tables from a backing store.
20
+ *
21
+ * Node.js consumers don't need to implement this — the default `index.ts`
22
+ * entry ships a `NodeFsResourceLoader` that reads from the bundled
23
+ * `resources/` directory. Serverless / edge runtimes inject their own
24
+ * (`fetch` + KV / R2 / S3 / etc.) via `setResourceLoader()`.
25
+ *
26
+ * Implementations may provide either or both of:
27
+ * - `loadResource` — async; required for KV / S3 / fetch backends.
28
+ * - `loadResourceSync` — sync; required if `geocoder` / `carrier` /
29
+ * `timezones` (the sync exports) are called. Async-only environments
30
+ * should use `geocoderAsync` / `carrierAsync` / `timezonesAsync`.
31
+ */
32
+ export interface ResourceLoader {
33
+ loadResource(path: string): Promise<Uint8Array | null>;
34
+ loadResourceSync?(path: string): Uint8Array | null;
35
+ }
36
+ /**
37
+ * Resource categories shipped under `resources/`. Used by the loader path
38
+ * builder. New categories must be added in lockstep with the metadata
39
+ * generator (`scripts/prepare-metadata.ts`).
40
+ */
41
+ export type ResourceKind = 'geocodes' | 'carrier';
42
+ /**
43
+ * Stats returned by `getCacheStats()` — one snapshot of the LRU.
44
+ * `size` is the live entry count, `maxSize` the configured ceiling.
45
+ */
46
+ export interface CacheStats {
47
+ size: number;
48
+ maxSize: number;
49
+ }
package/package.json CHANGED
@@ -1,69 +1,126 @@
1
1
  {
2
2
  "name": "@phonecheck/phone-number-validator-js",
3
- "version": "1.7.3-beta.1",
4
- "description": "Verify phone number, validate format, checking carrier name, geo and timezone infos.",
3
+ "version": "2.0.0",
4
+ "private": false,
5
+ "description": "Validate, parse, and enrich international phone numbers — geocoding, carrier lookup, and timezone resolution. Sync (Node) + async (serverless) APIs, platform adapters, and a CLI.",
5
6
  "keywords": [
6
- "telephone",
7
- "phone",
8
- "number",
9
- "geo",
10
- "geocode",
11
- "location",
7
+ "phone-validation",
8
+ "phone-verification",
9
+ "phone-validator",
10
+ "phone-checker",
11
+ "phone-number",
12
+ "libphonenumber",
13
+ "geocoder",
12
14
  "carrier",
13
15
  "timezone",
14
- "timezones",
15
16
  "international",
16
- "libphonenumber"
17
+ "e164",
18
+ "typescript",
19
+ "serverless",
20
+ "edge",
21
+ "cloudflare",
22
+ "lambda"
17
23
  ],
18
24
  "homepage": "https://github.com/phone-check-app/phone-number-validator-js#readme",
19
- "bugs": {
20
- "url": "https://github.com/phone-check-app/phone-number-validator-js/issues"
21
- },
25
+ "bugs": "https://github.com/phone-check-app/phone-number-validator-js/issues",
22
26
  "repository": {
23
27
  "type": "git",
24
- "url": "git+https://github.com/phone-check-app/phone-number-validator-js.git"
28
+ "url": "git+ssh://git@github.com/phone-check-app/phone-number-validator-js.git"
25
29
  },
26
30
  "license": "SEE LICENSE IN LICENSE.md",
27
31
  "author": "PHONE-CHECK.APP <support@phone-check.app> (https://phone-check.app)",
28
32
  "exports": {
29
33
  ".": {
30
- "import": "./lib/index.es.js",
31
- "require": "./lib/index.js",
32
- "types": "./lib/index.d.ts"
34
+ "require": "./dist/index.js",
35
+ "import": "./dist/index.esm.js",
36
+ "types": "./dist/index.d.ts"
33
37
  },
34
38
  "./serverless": {
35
- "import": "./lib/serverless.esm.js",
36
- "require": "./lib/serverless.cjs.js",
37
- "types": "./lib/index.serverless.d.ts"
39
+ "require": "./dist/serverless/index.cjs.js",
40
+ "import": "./dist/serverless/index.esm.js",
41
+ "types": "./dist/serverless/index.d.ts"
42
+ },
43
+ "./serverless/verifier": {
44
+ "require": "./dist/serverless/verifier.cjs.js",
45
+ "import": "./dist/serverless/verifier.esm.js",
46
+ "types": "./dist/serverless/verifier.d.ts"
47
+ },
48
+ "./serverless/aws": {
49
+ "require": "./dist/serverless/adapters/aws-lambda.cjs.js",
50
+ "import": "./dist/serverless/adapters/aws-lambda.esm.js",
51
+ "types": "./dist/serverless/adapters/aws-lambda.d.ts"
52
+ },
53
+ "./serverless/vercel": {
54
+ "require": "./dist/serverless/adapters/vercel.cjs.js",
55
+ "import": "./dist/serverless/adapters/vercel.esm.js",
56
+ "types": "./dist/serverless/adapters/vercel.d.ts"
57
+ },
58
+ "./serverless/cloudflare": {
59
+ "require": "./dist/serverless/adapters/cloudflare.cjs.js",
60
+ "import": "./dist/serverless/adapters/cloudflare.esm.js",
61
+ "types": "./dist/serverless/adapters/cloudflare.d.ts"
62
+ },
63
+ "./serverless/gcp": {
64
+ "require": "./dist/serverless/adapters/gcp.cjs.js",
65
+ "import": "./dist/serverless/adapters/gcp.esm.js",
66
+ "types": "./dist/serverless/adapters/gcp.d.ts"
67
+ },
68
+ "./serverless/netlify": {
69
+ "require": "./dist/serverless/adapters/netlify.cjs.js",
70
+ "import": "./dist/serverless/adapters/netlify.esm.js",
71
+ "types": "./dist/serverless/adapters/netlify.d.ts"
72
+ },
73
+ "./serverless/azure": {
74
+ "require": "./dist/serverless/adapters/azure.cjs.js",
75
+ "import": "./dist/serverless/adapters/azure.esm.js",
76
+ "types": "./dist/serverless/adapters/azure.d.ts"
77
+ },
78
+ "./cli": {
79
+ "require": "./dist/cli/index.js",
80
+ "types": "./dist/cli/index.d.ts"
38
81
  }
39
82
  },
40
- "main": "lib/index.js",
41
- "module": "lib/index.es.js",
42
- "types": "lib/index.d.ts",
83
+ "main": "dist/index.js",
84
+ "module": "dist/index.esm.js",
85
+ "types": "dist/index.d.ts",
86
+ "bin": {
87
+ "phone-validate": "./dist/cli/index.js"
88
+ },
43
89
  "files": [
44
- "lib",
90
+ "dist",
45
91
  "resources"
46
92
  ],
93
+ "publishConfig": {
94
+ "access": "public",
95
+ "provenance": true
96
+ },
47
97
  "scripts": {
48
- "build": "rm -rf lib && rollup -c rollup.config.cjs && yarn build:types",
49
- "build:types": "tsc --emitDeclarationOnly",
50
- "check": "biome check .",
51
- "format": "biome format --write .",
52
- "lint": "biome lint .",
53
- "lint:fix": "biome lint --write .",
98
+ "build": "rm -rf dist && rollup -c rollup.config.cjs && rollup -c rollup.config.serverless.cjs && chmod +x dist/cli/index.js",
99
+ "build:main": "rollup -c rollup.config.cjs",
100
+ "build:serverless": "rollup -c rollup.config.serverless.cjs",
101
+ "cli": "bun run src/cli/index.ts",
102
+ "check": "biome check --write",
103
+ "format": "biome format --write",
104
+ "lint": "biome check",
105
+ "lint:fix": "biome check --write",
54
106
  "prepare": "husky",
55
- "preparemetadata": "rm -rf resources && node .scripts/prepare.js && rm -rf resources/libphonenumber",
56
- "prepublishOnly": "yarn build",
107
+ "preparemetadata": "rm -rf resources && bun run scripts/prepare-metadata.ts && rm -rf resources/libphonenumber",
108
+ "prepublishOnly": "bun run build",
57
109
  "release": "semantic-release",
58
110
  "release:dry": "semantic-release --dry-run",
59
- "test": "jest",
60
- "typecheck": "tsc --noEmit",
61
- "watch": "rm -rf lib && rollup -cw rollup.config.cjs"
62
- },
63
- "config": {
64
- "commitizen": {
65
- "path": "cz-conventional-changelog"
66
- }
111
+ "test": "bun run test:unit && bun run test:isolated",
112
+ "test:unit": "bun test __tests__/unit --concurrency=1",
113
+ "test:isolated": "bun test __tests__/isolated --concurrency=1",
114
+ "test:integration": "INTEGRATION=1 bun test __tests__/integration --concurrency=1",
115
+ "test:all": "bun run test && bun run test:integration",
116
+ "test:core": "bun test ./__tests__/unit/01*.test.ts --concurrency=1",
117
+ "test:cache": "bun test ./__tests__/unit/02*.test.ts --concurrency=1",
118
+ "test:locales": "bun test ./__tests__/unit/03*.test.ts --concurrency=1",
119
+ "test:serverless": "bun test ./__tests__/unit/04*.test.ts __tests__/isolated --concurrency=1",
120
+ "test:adapters": "bun test ./__tests__/unit/05*.test.ts --concurrency=1",
121
+ "test:cli": "bun test ./__tests__/unit/06*.test.ts --concurrency=1",
122
+ "test-ci": "bun run test",
123
+ "typecheck": "tsc --pretty --skipLibCheck --noEmit && tsc --project tsconfig.test.json --pretty --skipLibCheck --noEmit"
67
124
  },
68
125
  "lint-staged": {
69
126
  "*.{js,ts,jsx,tsx}": [
@@ -85,17 +142,27 @@
85
142
  "@rollup/plugin-json": "^6.1.0",
86
143
  "@rollup/plugin-node-resolve": "^16.0.3",
87
144
  "@rollup/plugin-terser": "^1.0.0",
88
- "@types/jest": "^30.0.0",
145
+ "@rollup/plugin-typescript": "^12.3.0",
146
+ "@semantic-release/commit-analyzer": "^13.0.1",
147
+ "@semantic-release/github": "^12.0.6",
148
+ "@semantic-release/npm": "^13.1.5",
149
+ "@semantic-release/release-notes-generator": "^14.1.0",
150
+ "@types/aws-lambda": "^8.10.161",
151
+ "@types/bun": "^1.3.13",
89
152
  "@types/node": "^25.6.0",
153
+ "conventional-changelog-conventionalcommits": "^9.3.1",
90
154
  "esbuild": "^0.28.0",
91
155
  "husky": "^9.1.7",
92
- "jest": "^30.3.0",
93
156
  "lint-staged": "^16.4.0",
94
157
  "rollup": "^4.60.2",
95
158
  "rollup-plugin-esbuild": "^6.2.1",
96
- "ts-jest": "^29.4.9",
159
+ "semantic-release": "^25.0.3",
97
160
  "tslib": "^2.8.1",
98
161
  "typescript": "^6.0.3"
99
162
  },
100
- "packageManager": "yarn@1.22.22+sha256.c17d3797fb9a9115bf375e31bfd30058cac6bc9c3b8807a3d8cb2094794b51ca"
163
+ "packageManager": "bun@1.3.13",
164
+ "engines": {
165
+ "node": ">= 22.0",
166
+ "bun": ">= 1.3"
167
+ }
101
168
  }
package/lib/index.d.ts DELETED
@@ -1,41 +0,0 @@
1
- export * from 'libphonenumber-js';
2
- import type { PhoneNumber } from 'libphonenumber-js';
3
- import type { CarrierLocale, GeocoderLocale } from './locales';
4
- /**
5
- * Provides geographical information related to the phone number
6
- *
7
- * @param phonenumber The phone number
8
- * @param locale The preferred locale to use (falls back to `en` if there are no localized carrier infos for the given locale)
9
- */
10
- export declare function geocoder(phonenumber: PhoneNumber | undefined, locale?: GeocoderLocale): string | null;
11
- /**
12
- * Maps the phone number to the original carrier
13
- *
14
- * **Note:** This method cannot provide data about the current carrier of the phone number,
15
- * only the original carrier who is assigned to the corresponding range.
16
- * @see https://github.com/google/libphonenumber#mapping-phone-numbers-to-original-carriers
17
- *
18
- * @param phonenumber The phone number
19
- * @param locale The preferred locale to use (falls back to `en` if there are no localized carrier infos for the given locale)
20
- */
21
- export declare function carrier(phonenumber: PhoneNumber | undefined, locale?: CarrierLocale): string | null;
22
- /**
23
- * Provides all timezones related to the phone number
24
- * @param phonenumber The phone number
25
- */
26
- export declare function timezones(phonenumber: PhoneNumber | undefined): string[] | null;
27
- /**
28
- * Clear the internal cache
29
- * Useful for memory management in long-running processes
30
- */
31
- export declare function clearCache(): void;
32
- /**
33
- * Get current cache size
34
- */
35
- export declare function getCacheSize(): number;
36
- /**
37
- * Set cache max size
38
- * @param size New maximum cache size
39
- */
40
- export declare function setCacheSize(size: number): void;
41
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AAKjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAmG9D;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,EAAE,MAAM,GAAE,cAAqB,iBAE3F;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,EAAE,MAAM,GAAE,aAAoB,iBAEzF;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,mBAmB7D;AAED;;;GAGG;AACH,wBAAgB,UAAU,SAEzB;AAED;;GAEG;AACH,wBAAgB,YAAY,WAE3B;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,QAexC"}
package/lib/index.es.js DELETED
@@ -1,113 +0,0 @@
1
- export * from 'libphonenumber-js';
2
- import { existsSync, readFileSync } from 'node:fs';
3
- import { join } from 'node:path';
4
- import { deserialize } from 'bson';
5
- import { lru } from 'tiny-lru';
6
-
7
- const DEFAULT_CACHE_SIZE = 100;
8
- let codeDataCache = lru(DEFAULT_CACHE_SIZE);
9
- function getCode(dataPath, nationalNumber) {
10
- if (!dataPath || !nationalNumber) {
11
- return null;
12
- }
13
- try {
14
- let data = codeDataCache.get(dataPath);
15
- if (!data) {
16
- if (!existsSync(dataPath)) {
17
- return null;
18
- }
19
- const bData = readFileSync(dataPath);
20
- data = deserialize(bData);
21
- codeDataCache.set(dataPath, data);
22
- }
23
- let prefix = nationalNumber;
24
- while (prefix.length > 0) {
25
- const description = data[prefix];
26
- if (description) {
27
- return description;
28
- }
29
- prefix = prefix.substring(0, prefix.length - 1);
30
- }
31
- } catch (err) {
32
- if (process.env.NODE_ENV !== "production") {
33
- console.error(`Error loading data from ${dataPath}:`, err);
34
- }
35
- }
36
- return null;
37
- }
38
- function getLocalizedData(resourceType, phonenumber, locale, fallbackLocale = "en") {
39
- var _a, _b;
40
- if (!phonenumber) {
41
- return null;
42
- }
43
- const nationalNumber = (_a = phonenumber.nationalNumber) == null ? void 0 : _a.toString();
44
- const countryCallingCode = (_b = phonenumber.countryCallingCode) == null ? void 0 : _b.toString();
45
- if (!nationalNumber || !countryCallingCode) {
46
- return null;
47
- }
48
- let dataPath = join(
49
- __dirname,
50
- "../resources/",
51
- resourceType,
52
- locale,
53
- `${countryCallingCode}.bson`
54
- );
55
- const code = getCode(dataPath, nationalNumber);
56
- if (code) {
57
- return code;
58
- }
59
- if (locale !== fallbackLocale) {
60
- dataPath = join(
61
- __dirname,
62
- "../resources/",
63
- resourceType,
64
- fallbackLocale,
65
- `${countryCallingCode}.bson`
66
- );
67
- return getCode(dataPath, nationalNumber);
68
- }
69
- return null;
70
- }
71
- function geocoder(phonenumber, locale = "en") {
72
- return getLocalizedData("geocodes", phonenumber, locale, "en");
73
- }
74
- function carrier(phonenumber, locale = "en") {
75
- return getLocalizedData("carrier", phonenumber, locale, "en");
76
- }
77
- function timezones(phonenumber) {
78
- if (!(phonenumber == null ? void 0 : phonenumber.number)) {
79
- return null;
80
- }
81
- let nr = phonenumber.number.toString();
82
- if (!nr) {
83
- return null;
84
- }
85
- nr = nr.replace(/^\+/, "");
86
- const dataPath = join(__dirname, "../resources/timezones.bson");
87
- const zones = getCode(dataPath, nr);
88
- if (typeof zones === "string" && zones.length > 0) {
89
- return zones.split("&").filter((zone) => zone.length > 0);
90
- }
91
- return null;
92
- }
93
- function clearCache() {
94
- codeDataCache.clear();
95
- }
96
- function getCacheSize() {
97
- return codeDataCache.size;
98
- }
99
- function setCacheSize(size) {
100
- const oldCache = codeDataCache;
101
- codeDataCache = lru(size);
102
- const entries = oldCache.entries();
103
- entries.reverse();
104
- for (const [key, value] of entries) {
105
- if (codeDataCache.size < size) {
106
- codeDataCache.set(key, value);
107
- } else {
108
- break;
109
- }
110
- }
111
- }
112
-
113
- export { carrier, clearCache, geocoder, getCacheSize, setCacheSize, timezones };
package/lib/index.js DELETED
@@ -1,126 +0,0 @@
1
- 'use strict';
2
-
3
- var libphonenumberJs = require('libphonenumber-js');
4
- var node_fs = require('node:fs');
5
- var node_path = require('node:path');
6
- var bson = require('bson');
7
- var tinyLru = require('tiny-lru');
8
-
9
- const DEFAULT_CACHE_SIZE = 100;
10
- let codeDataCache = tinyLru.lru(DEFAULT_CACHE_SIZE);
11
- function getCode(dataPath, nationalNumber) {
12
- if (!dataPath || !nationalNumber) {
13
- return null;
14
- }
15
- try {
16
- let data = codeDataCache.get(dataPath);
17
- if (!data) {
18
- if (!node_fs.existsSync(dataPath)) {
19
- return null;
20
- }
21
- const bData = node_fs.readFileSync(dataPath);
22
- data = bson.deserialize(bData);
23
- codeDataCache.set(dataPath, data);
24
- }
25
- let prefix = nationalNumber;
26
- while (prefix.length > 0) {
27
- const description = data[prefix];
28
- if (description) {
29
- return description;
30
- }
31
- prefix = prefix.substring(0, prefix.length - 1);
32
- }
33
- } catch (err) {
34
- if (process.env.NODE_ENV !== "production") {
35
- console.error(`Error loading data from ${dataPath}:`, err);
36
- }
37
- }
38
- return null;
39
- }
40
- function getLocalizedData(resourceType, phonenumber, locale, fallbackLocale = "en") {
41
- var _a, _b;
42
- if (!phonenumber) {
43
- return null;
44
- }
45
- const nationalNumber = (_a = phonenumber.nationalNumber) == null ? void 0 : _a.toString();
46
- const countryCallingCode = (_b = phonenumber.countryCallingCode) == null ? void 0 : _b.toString();
47
- if (!nationalNumber || !countryCallingCode) {
48
- return null;
49
- }
50
- let dataPath = node_path.join(
51
- __dirname,
52
- "../resources/",
53
- resourceType,
54
- locale,
55
- `${countryCallingCode}.bson`
56
- );
57
- const code = getCode(dataPath, nationalNumber);
58
- if (code) {
59
- return code;
60
- }
61
- if (locale !== fallbackLocale) {
62
- dataPath = node_path.join(
63
- __dirname,
64
- "../resources/",
65
- resourceType,
66
- fallbackLocale,
67
- `${countryCallingCode}.bson`
68
- );
69
- return getCode(dataPath, nationalNumber);
70
- }
71
- return null;
72
- }
73
- function geocoder(phonenumber, locale = "en") {
74
- return getLocalizedData("geocodes", phonenumber, locale, "en");
75
- }
76
- function carrier(phonenumber, locale = "en") {
77
- return getLocalizedData("carrier", phonenumber, locale, "en");
78
- }
79
- function timezones(phonenumber) {
80
- if (!(phonenumber == null ? void 0 : phonenumber.number)) {
81
- return null;
82
- }
83
- let nr = phonenumber.number.toString();
84
- if (!nr) {
85
- return null;
86
- }
87
- nr = nr.replace(/^\+/, "");
88
- const dataPath = node_path.join(__dirname, "../resources/timezones.bson");
89
- const zones = getCode(dataPath, nr);
90
- if (typeof zones === "string" && zones.length > 0) {
91
- return zones.split("&").filter((zone) => zone.length > 0);
92
- }
93
- return null;
94
- }
95
- function clearCache() {
96
- codeDataCache.clear();
97
- }
98
- function getCacheSize() {
99
- return codeDataCache.size;
100
- }
101
- function setCacheSize(size) {
102
- const oldCache = codeDataCache;
103
- codeDataCache = tinyLru.lru(size);
104
- const entries = oldCache.entries();
105
- entries.reverse();
106
- for (const [key, value] of entries) {
107
- if (codeDataCache.size < size) {
108
- codeDataCache.set(key, value);
109
- } else {
110
- break;
111
- }
112
- }
113
- }
114
-
115
- exports.carrier = carrier;
116
- exports.clearCache = clearCache;
117
- exports.geocoder = geocoder;
118
- exports.getCacheSize = getCacheSize;
119
- exports.setCacheSize = setCacheSize;
120
- exports.timezones = timezones;
121
- Object.keys(libphonenumberJs).forEach(function (k) {
122
- if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
123
- enumerable: true,
124
- get: function () { return libphonenumberJs[k]; }
125
- });
126
- });
@@ -1,18 +0,0 @@
1
- export * from 'libphonenumber-js';
2
- import type { PhoneNumber } from 'libphonenumber-js';
3
- import type { CarrierLocale, GeocoderLocale } from './locales';
4
- export interface ResourceLoader {
5
- loadResource(path: string): Promise<Uint8Array | null>;
6
- loadResourceSync?(path: string): Uint8Array | null;
7
- }
8
- export declare function setResourceLoader(loader: ResourceLoader): void;
9
- export declare function geocoderAsync(phonenumber: PhoneNumber | undefined, locale?: GeocoderLocale): Promise<string | null>;
10
- export declare function carrierAsync(phonenumber: PhoneNumber | undefined, locale?: CarrierLocale): Promise<string | null>;
11
- export declare function timezonesAsync(phonenumber: PhoneNumber | undefined): Promise<string[] | null>;
12
- export declare function geocoder(phonenumber: PhoneNumber | undefined, locale?: GeocoderLocale): string | null;
13
- export declare function carrier(phonenumber: PhoneNumber | undefined, locale?: CarrierLocale): string | null;
14
- export declare function timezones(phonenumber: PhoneNumber | undefined): string[] | null;
15
- export declare function clearCache(): void;
16
- export declare function getCacheSize(): number;
17
- export declare function setCacheSize(size: number): void;
18
- //# sourceMappingURL=index.serverless.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.serverless.d.ts","sourceRoot":"","sources":["../src/index.serverless.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AAGjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAM9D,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAA;IAEtD,gBAAgB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAAA;CACnD;AAID,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,cAAc,QAEvD;AAiID,wBAAsB,aAAa,CACjC,WAAW,EAAE,WAAW,GAAG,SAAS,EACpC,MAAM,GAAE,cAAqB,0BAG9B;AAED,wBAAsB,YAAY,CAChC,WAAW,EAAE,WAAW,GAAG,SAAS,EACpC,MAAM,GAAE,aAAoB,0BAG7B;AAED,wBAAsB,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,4BAmBxE;AAGD,wBAAgB,QAAQ,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,EAAE,MAAM,GAAE,cAAqB,iBAE3F;AAED,wBAAgB,OAAO,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,EAAE,MAAM,GAAE,aAAoB,iBAEzF;AAED,wBAAgB,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,SAAS,mBAmB7D;AAED,wBAAgB,UAAU,SAEzB;AAED,wBAAgB,YAAY,WAE3B;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,QAaxC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../src/locales.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC;AAC9Q,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAC"}