@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.
- package/README.md +322 -328
- package/dist/cache.d.ts +17 -0
- package/dist/cli/format.d.ts +12 -0
- package/dist/cli/index.d.ts +12 -0
- package/dist/cli/index.js +531 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/parse-args.d.ts +44 -0
- package/dist/cli/run.d.ts +14 -0
- package/dist/core.d.ts +39 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.esm.js +231 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.js +254 -0
- package/dist/index.js.map +1 -0
- package/{lib → dist}/locales.d.ts +1 -2
- package/dist/node-fs-loader.d.ts +19 -0
- package/dist/serverless/_shared/cors.d.ts +6 -0
- package/dist/serverless/_shared/dispatch.d.ts +22 -0
- package/dist/serverless/_shared/lambda-helpers.d.ts +23 -0
- package/dist/serverless/_shared/routes.d.ts +29 -0
- package/dist/serverless/_shared/validation.d.ts +58 -0
- package/dist/serverless/_shared/web-helpers.d.ts +17 -0
- package/dist/serverless/adapters/aws-lambda.cjs.js +7357 -0
- package/dist/serverless/adapters/aws-lambda.cjs.js.map +1 -0
- package/dist/serverless/adapters/aws-lambda.d.ts +50 -0
- package/dist/serverless/adapters/aws-lambda.esm.js +7349 -0
- package/dist/serverless/adapters/aws-lambda.esm.js.map +1 -0
- package/dist/serverless/adapters/azure.cjs.js +7334 -0
- package/dist/serverless/adapters/azure.cjs.js.map +1 -0
- package/dist/serverless/adapters/azure.d.ts +32 -0
- package/dist/serverless/adapters/azure.esm.js +7328 -0
- package/dist/serverless/adapters/azure.esm.js.map +1 -0
- package/dist/serverless/adapters/cloudflare.cjs.js +7854 -0
- package/dist/serverless/adapters/cloudflare.cjs.js.map +1 -0
- package/dist/serverless/adapters/cloudflare.d.ts +68 -0
- package/dist/serverless/adapters/cloudflare.esm.js +7848 -0
- package/dist/serverless/adapters/cloudflare.esm.js.map +1 -0
- package/dist/serverless/adapters/gcp.cjs.js +7338 -0
- package/dist/serverless/adapters/gcp.cjs.js.map +1 -0
- package/dist/serverless/adapters/gcp.d.ts +22 -0
- package/dist/serverless/adapters/gcp.esm.js +7332 -0
- package/dist/serverless/adapters/gcp.esm.js.map +1 -0
- package/dist/serverless/adapters/netlify.cjs.js +7331 -0
- package/dist/serverless/adapters/netlify.cjs.js.map +1 -0
- package/dist/serverless/adapters/netlify.d.ts +29 -0
- package/dist/serverless/adapters/netlify.esm.js +7325 -0
- package/dist/serverless/adapters/netlify.esm.js.map +1 -0
- package/dist/serverless/adapters/vercel.cjs.js +7417 -0
- package/dist/serverless/adapters/vercel.cjs.js.map +1 -0
- package/dist/serverless/adapters/vercel.d.ts +30 -0
- package/dist/serverless/adapters/vercel.esm.js +7409 -0
- package/dist/serverless/adapters/vercel.esm.js.map +1 -0
- package/dist/serverless/index.cjs.js +12759 -0
- package/dist/serverless/index.cjs.js.map +1 -0
- package/dist/serverless/index.d.ts +14 -0
- package/dist/serverless/index.esm.js +12680 -0
- package/dist/serverless/index.esm.js.map +1 -0
- package/dist/serverless/loaders/fetch-loader.d.ts +39 -0
- package/dist/serverless/loaders/kv-loader.d.ts +27 -0
- package/{lib/serverless.cjs.js → dist/serverless/verifier.cjs.js} +4247 -4208
- package/dist/serverless/verifier.cjs.js.map +1 -0
- package/dist/serverless/verifier.d.ts +17 -0
- package/{lib/serverless.esm.js → dist/serverless/verifier.esm.js} +4242 -4209
- package/dist/serverless/verifier.esm.js.map +1 -0
- package/{lib/serverless.umd.min.js → dist/serverless/verifier.min.js} +1 -8
- package/dist/types.d.ts +49 -0
- package/package.json +111 -44
- package/lib/index.d.ts +0 -41
- package/lib/index.d.ts.map +0 -1
- package/lib/index.es.js +0 -113
- package/lib/index.js +0 -126
- package/lib/index.serverless.d.ts +0 -18
- package/lib/index.serverless.d.ts.map +0 -1
- package/lib/locales.d.ts.map +0 -1
- package/lib/serverless.esm.min.js +0 -8
- package/lib/serverless.umd.js +0 -11924
- package/resources/carrier/ar/965.bson +0 -0
- package/resources/carrier/be/375.bson +0 -0
- package/resources/carrier/en/1.bson +0 -0
- package/resources/carrier/en/20.bson +0 -0
- package/resources/carrier/en/211.bson +0 -0
- package/resources/carrier/en/212.bson +0 -0
- package/resources/carrier/en/213.bson +0 -0
- package/resources/carrier/en/216.bson +0 -0
- package/resources/carrier/en/218.bson +0 -0
- package/resources/carrier/en/220.bson +0 -0
- package/resources/carrier/en/221.bson +0 -0
- package/resources/carrier/en/222.bson +0 -0
- package/resources/carrier/en/223.bson +0 -0
- package/resources/carrier/en/224.bson +0 -0
- package/resources/carrier/en/225.bson +0 -0
- package/resources/carrier/en/226.bson +0 -0
- package/resources/carrier/en/227.bson +0 -0
- package/resources/carrier/en/228.bson +0 -0
- package/resources/carrier/en/229.bson +0 -0
- package/resources/carrier/en/230.bson +0 -0
- package/resources/carrier/en/231.bson +0 -0
- package/resources/carrier/en/232.bson +0 -0
- package/resources/carrier/en/233.bson +0 -0
- package/resources/carrier/en/234.bson +0 -0
- package/resources/carrier/en/235.bson +0 -0
- package/resources/carrier/en/236.bson +0 -0
- package/resources/carrier/en/237.bson +0 -0
- package/resources/carrier/en/238.bson +0 -0
- package/resources/carrier/en/239.bson +0 -0
- package/resources/carrier/en/240.bson +0 -0
- package/resources/carrier/en/241.bson +0 -0
- package/resources/carrier/en/242.bson +0 -0
- package/resources/carrier/en/243.bson +0 -0
- package/resources/carrier/en/244.bson +0 -0
- package/resources/carrier/en/245.bson +0 -0
- package/resources/carrier/en/246.bson +0 -0
- package/resources/carrier/en/247.bson +0 -0
- package/resources/carrier/en/248.bson +0 -0
- package/resources/carrier/en/249.bson +0 -0
- package/resources/carrier/en/250.bson +0 -0
- package/resources/carrier/en/251.bson +0 -0
- package/resources/carrier/en/252.bson +0 -0
- package/resources/carrier/en/253.bson +0 -0
- package/resources/carrier/en/254.bson +0 -0
- package/resources/carrier/en/255.bson +0 -0
- package/resources/carrier/en/256.bson +0 -0
- package/resources/carrier/en/257.bson +0 -0
- package/resources/carrier/en/258.bson +0 -0
- package/resources/carrier/en/260.bson +0 -0
- package/resources/carrier/en/261.bson +0 -0
- package/resources/carrier/en/262.bson +0 -0
- package/resources/carrier/en/263.bson +0 -0
- package/resources/carrier/en/264.bson +0 -0
- package/resources/carrier/en/265.bson +0 -0
- package/resources/carrier/en/266.bson +0 -0
- package/resources/carrier/en/267.bson +0 -0
- package/resources/carrier/en/268.bson +0 -0
- package/resources/carrier/en/269.bson +0 -0
- package/resources/carrier/en/27.bson +0 -0
- package/resources/carrier/en/290.bson +0 -0
- package/resources/carrier/en/291.bson +0 -0
- package/resources/carrier/en/297.bson +0 -0
- package/resources/carrier/en/298.bson +0 -0
- package/resources/carrier/en/299.bson +0 -0
- package/resources/carrier/en/30.bson +0 -0
- package/resources/carrier/en/31.bson +0 -0
- package/resources/carrier/en/32.bson +0 -0
- package/resources/carrier/en/33.bson +0 -0
- package/resources/carrier/en/34.bson +0 -0
- package/resources/carrier/en/350.bson +0 -0
- package/resources/carrier/en/351.bson +0 -0
- package/resources/carrier/en/352.bson +0 -0
- package/resources/carrier/en/353.bson +0 -0
- package/resources/carrier/en/354.bson +0 -0
- package/resources/carrier/en/355.bson +0 -0
- package/resources/carrier/en/356.bson +0 -0
- package/resources/carrier/en/357.bson +0 -0
- package/resources/carrier/en/358.bson +0 -0
- package/resources/carrier/en/359.bson +0 -0
- package/resources/carrier/en/36.bson +0 -0
- package/resources/carrier/en/370.bson +0 -0
- package/resources/carrier/en/371.bson +0 -0
- package/resources/carrier/en/372.bson +0 -0
- package/resources/carrier/en/373.bson +0 -0
- package/resources/carrier/en/374.bson +0 -0
- package/resources/carrier/en/375.bson +0 -0
- package/resources/carrier/en/376.bson +0 -0
- package/resources/carrier/en/377.bson +0 -0
- package/resources/carrier/en/378.bson +0 -0
- package/resources/carrier/en/380.bson +0 -0
- package/resources/carrier/en/381.bson +0 -0
- package/resources/carrier/en/382.bson +0 -0
- package/resources/carrier/en/383.bson +0 -0
- package/resources/carrier/en/385.bson +0 -0
- package/resources/carrier/en/386.bson +0 -0
- package/resources/carrier/en/387.bson +0 -0
- package/resources/carrier/en/389.bson +0 -0
- package/resources/carrier/en/39.bson +0 -0
- package/resources/carrier/en/40.bson +0 -0
- package/resources/carrier/en/41.bson +0 -0
- package/resources/carrier/en/420.bson +0 -0
- package/resources/carrier/en/421.bson +0 -0
- package/resources/carrier/en/423.bson +0 -0
- package/resources/carrier/en/43.bson +0 -0
- package/resources/carrier/en/44.bson +0 -0
- package/resources/carrier/en/45.bson +0 -0
- package/resources/carrier/en/46.bson +0 -0
- package/resources/carrier/en/47.bson +0 -0
- package/resources/carrier/en/48.bson +0 -0
- package/resources/carrier/en/49.bson +0 -0
- package/resources/carrier/en/500.bson +0 -0
- package/resources/carrier/en/501.bson +0 -0
- package/resources/carrier/en/502.bson +0 -0
- package/resources/carrier/en/503.bson +0 -0
- package/resources/carrier/en/504.bson +0 -0
- package/resources/carrier/en/505.bson +0 -0
- package/resources/carrier/en/506.bson +0 -0
- package/resources/carrier/en/507.bson +0 -0
- package/resources/carrier/en/508.bson +0 -0
- package/resources/carrier/en/509.bson +0 -0
- package/resources/carrier/en/51.bson +0 -0
- package/resources/carrier/en/53.bson +0 -0
- package/resources/carrier/en/55.bson +0 -0
- package/resources/carrier/en/56.bson +0 -0
- package/resources/carrier/en/57.bson +0 -0
- package/resources/carrier/en/58.bson +0 -0
- package/resources/carrier/en/590.bson +0 -0
- package/resources/carrier/en/591.bson +0 -0
- package/resources/carrier/en/592.bson +0 -0
- package/resources/carrier/en/593.bson +0 -0
- package/resources/carrier/en/594.bson +0 -0
- package/resources/carrier/en/595.bson +0 -0
- package/resources/carrier/en/596.bson +0 -0
- package/resources/carrier/en/597.bson +0 -0
- package/resources/carrier/en/598.bson +0 -0
- package/resources/carrier/en/599.bson +0 -0
- package/resources/carrier/en/60.bson +0 -0
- package/resources/carrier/en/61.bson +0 -0
- package/resources/carrier/en/62.bson +0 -0
- package/resources/carrier/en/63.bson +0 -0
- package/resources/carrier/en/64.bson +0 -0
- package/resources/carrier/en/65.bson +0 -0
- package/resources/carrier/en/66.bson +0 -0
- package/resources/carrier/en/670.bson +0 -0
- package/resources/carrier/en/672.bson +0 -0
- package/resources/carrier/en/673.bson +0 -0
- package/resources/carrier/en/674.bson +0 -0
- package/resources/carrier/en/675.bson +0 -0
- package/resources/carrier/en/676.bson +0 -0
- package/resources/carrier/en/677.bson +0 -0
- package/resources/carrier/en/678.bson +0 -0
- package/resources/carrier/en/679.bson +0 -0
- package/resources/carrier/en/680.bson +0 -0
- package/resources/carrier/en/681.bson +0 -0
- package/resources/carrier/en/682.bson +0 -0
- package/resources/carrier/en/683.bson +0 -0
- package/resources/carrier/en/685.bson +0 -0
- package/resources/carrier/en/686.bson +0 -0
- package/resources/carrier/en/687.bson +0 -0
- package/resources/carrier/en/688.bson +0 -0
- package/resources/carrier/en/689.bson +0 -0
- package/resources/carrier/en/690.bson +0 -0
- package/resources/carrier/en/691.bson +0 -0
- package/resources/carrier/en/692.bson +0 -0
- package/resources/carrier/en/7.bson +0 -0
- package/resources/carrier/en/81.bson +0 -0
- package/resources/carrier/en/82.bson +0 -0
- package/resources/carrier/en/84.bson +0 -0
- package/resources/carrier/en/850.bson +0 -0
- package/resources/carrier/en/852.bson +0 -0
- package/resources/carrier/en/853.bson +0 -0
- package/resources/carrier/en/855.bson +0 -0
- package/resources/carrier/en/856.bson +0 -0
- package/resources/carrier/en/86.bson +0 -0
- package/resources/carrier/en/880.bson +0 -0
- package/resources/carrier/en/881.bson +0 -0
- package/resources/carrier/en/882.bson +0 -0
- package/resources/carrier/en/886.bson +0 -0
- package/resources/carrier/en/90.bson +0 -0
- package/resources/carrier/en/91.bson +0 -0
- package/resources/carrier/en/92.bson +0 -0
- package/resources/carrier/en/93.bson +0 -0
- package/resources/carrier/en/94.bson +0 -0
- package/resources/carrier/en/95.bson +0 -0
- package/resources/carrier/en/960.bson +0 -0
- package/resources/carrier/en/961.bson +0 -0
- package/resources/carrier/en/962.bson +0 -0
- package/resources/carrier/en/963.bson +0 -0
- package/resources/carrier/en/964.bson +0 -0
- package/resources/carrier/en/965.bson +0 -0
- package/resources/carrier/en/966.bson +0 -0
- package/resources/carrier/en/967.bson +0 -0
- package/resources/carrier/en/968.bson +0 -0
- package/resources/carrier/en/970.bson +0 -0
- package/resources/carrier/en/971.bson +0 -0
- package/resources/carrier/en/972.bson +0 -0
- package/resources/carrier/en/973.bson +0 -0
- package/resources/carrier/en/974.bson +0 -0
- package/resources/carrier/en/975.bson +0 -0
- package/resources/carrier/en/976.bson +0 -0
- package/resources/carrier/en/977.bson +0 -0
- package/resources/carrier/en/98.bson +0 -0
- package/resources/carrier/en/992.bson +0 -0
- package/resources/carrier/en/993.bson +0 -0
- package/resources/carrier/en/994.bson +0 -0
- package/resources/carrier/en/995.bson +0 -0
- package/resources/carrier/en/996.bson +0 -0
- package/resources/carrier/en/998.bson +0 -0
- package/resources/carrier/fa/93.bson +0 -0
- package/resources/carrier/fa/98.bson +0 -0
- package/resources/carrier/ko/82.bson +0 -0
- package/resources/carrier/ru/374.bson +0 -0
- package/resources/carrier/ru/375.bson +0 -0
- package/resources/carrier/ru/7.bson +0 -0
- package/resources/carrier/uk/380.bson +0 -0
- package/resources/carrier/zh/852.bson +0 -0
- package/resources/carrier/zh/86.bson +0 -0
- package/resources/carrier/zh_Hant/852.bson +0 -0
- package/resources/carrier/zh_Hant/86.bson +0 -0
- package/resources/geocodes/ar/966.bson +0 -0
- package/resources/geocodes/be/375.bson +0 -0
- package/resources/geocodes/bg/359.bson +0 -0
- package/resources/geocodes/bs/387.bson +0 -0
- package/resources/geocodes/de/32.bson +0 -0
- package/resources/geocodes/de/352.bson +0 -0
- package/resources/geocodes/de/41.bson +0 -0
- package/resources/geocodes/de/43.bson +0 -0
- package/resources/geocodes/de/49.bson +0 -0
- package/resources/geocodes/el/30.bson +0 -0
- package/resources/geocodes/en/1.bson +0 -0
- package/resources/geocodes/en/20.bson +0 -0
- package/resources/geocodes/en/212.bson +0 -0
- package/resources/geocodes/en/213.bson +0 -0
- package/resources/geocodes/en/216.bson +0 -0
- package/resources/geocodes/en/218.bson +0 -0
- package/resources/geocodes/en/220.bson +0 -0
- package/resources/geocodes/en/221.bson +0 -0
- package/resources/geocodes/en/222.bson +0 -0
- package/resources/geocodes/en/223.bson +0 -0
- package/resources/geocodes/en/224.bson +0 -0
- package/resources/geocodes/en/225.bson +0 -0
- package/resources/geocodes/en/226.bson +0 -0
- package/resources/geocodes/en/227.bson +0 -0
- package/resources/geocodes/en/228.bson +0 -0
- package/resources/geocodes/en/229.bson +0 -0
- package/resources/geocodes/en/230.bson +0 -0
- package/resources/geocodes/en/232.bson +0 -0
- package/resources/geocodes/en/233.bson +0 -0
- package/resources/geocodes/en/234.bson +0 -0
- package/resources/geocodes/en/236.bson +0 -0
- package/resources/geocodes/en/237.bson +0 -0
- package/resources/geocodes/en/238.bson +0 -0
- package/resources/geocodes/en/239.bson +0 -0
- package/resources/geocodes/en/240.bson +0 -0
- package/resources/geocodes/en/241.bson +0 -0
- package/resources/geocodes/en/242.bson +0 -0
- package/resources/geocodes/en/243.bson +0 -0
- package/resources/geocodes/en/244.bson +0 -0
- package/resources/geocodes/en/245.bson +0 -0
- package/resources/geocodes/en/247.bson +0 -0
- package/resources/geocodes/en/249.bson +0 -0
- package/resources/geocodes/en/251.bson +0 -0
- package/resources/geocodes/en/252.bson +0 -0
- package/resources/geocodes/en/254.bson +0 -0
- package/resources/geocodes/en/255.bson +0 -0
- package/resources/geocodes/en/256.bson +0 -0
- package/resources/geocodes/en/257.bson +0 -0
- package/resources/geocodes/en/258.bson +0 -0
- package/resources/geocodes/en/260.bson +0 -0
- package/resources/geocodes/en/261.bson +0 -0
- package/resources/geocodes/en/263.bson +0 -0
- package/resources/geocodes/en/264.bson +0 -0
- package/resources/geocodes/en/266.bson +0 -0
- package/resources/geocodes/en/267.bson +0 -0
- package/resources/geocodes/en/268.bson +0 -0
- package/resources/geocodes/en/269.bson +0 -0
- package/resources/geocodes/en/27.bson +0 -0
- package/resources/geocodes/en/290.bson +0 -0
- package/resources/geocodes/en/299.bson +0 -0
- package/resources/geocodes/en/30.bson +0 -0
- package/resources/geocodes/en/31.bson +0 -0
- package/resources/geocodes/en/32.bson +0 -0
- package/resources/geocodes/en/34.bson +0 -0
- package/resources/geocodes/en/351.bson +0 -0
- package/resources/geocodes/en/352.bson +0 -0
- package/resources/geocodes/en/353.bson +0 -0
- package/resources/geocodes/en/354.bson +0 -0
- package/resources/geocodes/en/355.bson +0 -0
- package/resources/geocodes/en/358.bson +0 -0
- package/resources/geocodes/en/359.bson +0 -0
- package/resources/geocodes/en/36.bson +0 -0
- package/resources/geocodes/en/370.bson +0 -0
- package/resources/geocodes/en/373.bson +0 -0
- package/resources/geocodes/en/374.bson +0 -0
- package/resources/geocodes/en/375.bson +0 -0
- package/resources/geocodes/en/380.bson +0 -0
- package/resources/geocodes/en/381.bson +0 -0
- package/resources/geocodes/en/382.bson +0 -0
- package/resources/geocodes/en/383.bson +0 -0
- package/resources/geocodes/en/385.bson +0 -0
- package/resources/geocodes/en/386.bson +0 -0
- package/resources/geocodes/en/387.bson +0 -0
- package/resources/geocodes/en/389.bson +0 -0
- package/resources/geocodes/en/39.bson +0 -0
- package/resources/geocodes/en/40.bson +0 -0
- package/resources/geocodes/en/41.bson +0 -0
- package/resources/geocodes/en/420.bson +0 -0
- package/resources/geocodes/en/421.bson +0 -0
- package/resources/geocodes/en/43.bson +0 -0
- package/resources/geocodes/en/44.bson +0 -0
- package/resources/geocodes/en/46.bson +0 -0
- package/resources/geocodes/en/47.bson +0 -0
- package/resources/geocodes/en/48.bson +0 -0
- package/resources/geocodes/en/49.bson +0 -0
- package/resources/geocodes/en/501.bson +0 -0
- package/resources/geocodes/en/504.bson +0 -0
- package/resources/geocodes/en/51.bson +0 -0
- package/resources/geocodes/en/52.bson +0 -0
- package/resources/geocodes/en/53.bson +0 -0
- package/resources/geocodes/en/54.bson +0 -0
- package/resources/geocodes/en/55.bson +0 -0
- package/resources/geocodes/en/56.bson +0 -0
- package/resources/geocodes/en/57.bson +0 -0
- package/resources/geocodes/en/58.bson +0 -0
- package/resources/geocodes/en/592.bson +0 -0
- package/resources/geocodes/en/593.bson +0 -0
- package/resources/geocodes/en/595.bson +0 -0
- package/resources/geocodes/en/598.bson +0 -0
- package/resources/geocodes/en/599.bson +0 -0
- package/resources/geocodes/en/61.bson +0 -0
- package/resources/geocodes/en/62.bson +0 -0
- package/resources/geocodes/en/63.bson +0 -0
- package/resources/geocodes/en/64.bson +0 -0
- package/resources/geocodes/en/66.bson +0 -0
- package/resources/geocodes/en/670.bson +0 -0
- package/resources/geocodes/en/672.bson +0 -0
- package/resources/geocodes/en/673.bson +0 -0
- package/resources/geocodes/en/675.bson +0 -0
- package/resources/geocodes/en/676.bson +0 -0
- package/resources/geocodes/en/678.bson +0 -0
- package/resources/geocodes/en/679.bson +0 -0
- package/resources/geocodes/en/680.bson +0 -0
- package/resources/geocodes/en/682.bson +0 -0
- package/resources/geocodes/en/685.bson +0 -0
- package/resources/geocodes/en/686.bson +0 -0
- package/resources/geocodes/en/688.bson +0 -0
- package/resources/geocodes/en/689.bson +0 -0
- package/resources/geocodes/en/690.bson +0 -0
- package/resources/geocodes/en/7.bson +0 -0
- package/resources/geocodes/en/81.bson +0 -0
- package/resources/geocodes/en/82.bson +0 -0
- package/resources/geocodes/en/84.bson +0 -0
- package/resources/geocodes/en/850.bson +0 -0
- package/resources/geocodes/en/86.bson +0 -0
- package/resources/geocodes/en/880.bson +0 -0
- package/resources/geocodes/en/886.bson +0 -0
- package/resources/geocodes/en/90.bson +0 -0
- package/resources/geocodes/en/91.bson +0 -0
- package/resources/geocodes/en/92.bson +0 -0
- package/resources/geocodes/en/93.bson +0 -0
- package/resources/geocodes/en/94.bson +0 -0
- package/resources/geocodes/en/95.bson +0 -0
- package/resources/geocodes/en/960.bson +0 -0
- package/resources/geocodes/en/961.bson +0 -0
- package/resources/geocodes/en/962.bson +0 -0
- package/resources/geocodes/en/963.bson +0 -0
- package/resources/geocodes/en/966.bson +0 -0
- package/resources/geocodes/en/967.bson +0 -0
- package/resources/geocodes/en/968.bson +0 -0
- package/resources/geocodes/en/970.bson +0 -0
- package/resources/geocodes/en/971.bson +0 -0
- package/resources/geocodes/en/972.bson +0 -0
- package/resources/geocodes/en/975.bson +0 -0
- package/resources/geocodes/en/976.bson +0 -0
- package/resources/geocodes/en/98.bson +0 -0
- package/resources/geocodes/en/992.bson +0 -0
- package/resources/geocodes/en/993.bson +0 -0
- package/resources/geocodes/en/994.bson +0 -0
- package/resources/geocodes/en/995.bson +0 -0
- package/resources/geocodes/en/996.bson +0 -0
- package/resources/geocodes/es/228.bson +0 -0
- package/resources/geocodes/es/230.bson +0 -0
- package/resources/geocodes/es/34.bson +0 -0
- package/resources/geocodes/es/52.bson +0 -0
- package/resources/geocodes/es/54.bson +0 -0
- package/resources/geocodes/es/56.bson +0 -0
- package/resources/geocodes/es/57.bson +0 -0
- package/resources/geocodes/es/58.bson +0 -0
- package/resources/geocodes/fa/93.bson +0 -0
- package/resources/geocodes/fa/98.bson +0 -0
- package/resources/geocodes/fi/358.bson +0 -0
- package/resources/geocodes/fr/212.bson +0 -0
- package/resources/geocodes/fr/222.bson +0 -0
- package/resources/geocodes/fr/225.bson +0 -0
- package/resources/geocodes/fr/228.bson +0 -0
- package/resources/geocodes/fr/229.bson +0 -0
- package/resources/geocodes/fr/230.bson +0 -0
- package/resources/geocodes/fr/242.bson +0 -0
- package/resources/geocodes/fr/243.bson +0 -0
- package/resources/geocodes/fr/269.bson +0 -0
- package/resources/geocodes/fr/290.bson +0 -0
- package/resources/geocodes/fr/32.bson +0 -0
- package/resources/geocodes/fr/352.bson +0 -0
- package/resources/geocodes/fr/41.bson +0 -0
- package/resources/geocodes/hr/387.bson +0 -0
- package/resources/geocodes/hu/36.bson +0 -0
- package/resources/geocodes/hy/374.bson +0 -0
- package/resources/geocodes/id/62.bson +0 -0
- package/resources/geocodes/it/39.bson +0 -0
- package/resources/geocodes/it/41.bson +0 -0
- package/resources/geocodes/iw/972.bson +0 -0
- package/resources/geocodes/ja/81.bson +0 -0
- package/resources/geocodes/kk/7.bson +0 -0
- package/resources/geocodes/ko/82.bson +0 -0
- package/resources/geocodes/nl/31.bson +0 -0
- package/resources/geocodes/nl/32.bson +0 -0
- package/resources/geocodes/pl/48.bson +0 -0
- package/resources/geocodes/pt/238.bson +0 -0
- package/resources/geocodes/pt/239.bson +0 -0
- package/resources/geocodes/pt/244.bson +0 -0
- package/resources/geocodes/pt/245.bson +0 -0
- package/resources/geocodes/pt/258.bson +0 -0
- package/resources/geocodes/pt/351.bson +0 -0
- package/resources/geocodes/pt/55.bson +0 -0
- package/resources/geocodes/ro/373.bson +0 -0
- package/resources/geocodes/ro/40.bson +0 -0
- package/resources/geocodes/ru/373.bson +0 -0
- package/resources/geocodes/ru/374.bson +0 -0
- package/resources/geocodes/ru/375.bson +0 -0
- package/resources/geocodes/ru/7.bson +0 -0
- package/resources/geocodes/sq/383.bson +0 -0
- package/resources/geocodes/sr/381.bson +0 -0
- package/resources/geocodes/sr/383.bson +0 -0
- package/resources/geocodes/sr/387.bson +0 -0
- package/resources/geocodes/sv/358.bson +0 -0
- package/resources/geocodes/sv/46.bson +0 -0
- package/resources/geocodes/th/66.bson +0 -0
- package/resources/geocodes/tr/90.bson +0 -0
- package/resources/geocodes/uk/380.bson +0 -0
- package/resources/geocodes/vi/84.bson +0 -0
- package/resources/geocodes/zh/86.bson +0 -0
- package/resources/geocodes/zh/886.bson +0 -0
- package/resources/geocodes/zh_Hant/886.bson +0 -0
- package/resources/timezones.bson +0 -0
package/dist/types.d.ts
ADDED
|
@@ -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": "
|
|
4
|
-
"
|
|
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
|
-
"
|
|
7
|
-
"phone",
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
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
|
-
"
|
|
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+
|
|
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
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"types": "./
|
|
34
|
+
"require": "./dist/index.js",
|
|
35
|
+
"import": "./dist/index.esm.js",
|
|
36
|
+
"types": "./dist/index.d.ts"
|
|
33
37
|
},
|
|
34
38
|
"./serverless": {
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"types": "./
|
|
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": "
|
|
41
|
-
"module": "
|
|
42
|
-
"types": "
|
|
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
|
-
"
|
|
90
|
+
"dist",
|
|
45
91
|
"resources"
|
|
46
92
|
],
|
|
93
|
+
"publishConfig": {
|
|
94
|
+
"access": "public",
|
|
95
|
+
"provenance": true
|
|
96
|
+
},
|
|
47
97
|
"scripts": {
|
|
48
|
-
"build": "rm -rf
|
|
49
|
-
"build:
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
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 &&
|
|
56
|
-
"prepublishOnly": "
|
|
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": "
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
"
|
|
65
|
-
|
|
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
|
-
"@
|
|
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
|
-
"
|
|
159
|
+
"semantic-release": "^25.0.3",
|
|
97
160
|
"tslib": "^2.8.1",
|
|
98
161
|
"typescript": "^6.0.3"
|
|
99
162
|
},
|
|
100
|
-
"packageManager": "
|
|
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
|
package/lib/index.d.ts.map
DELETED
|
@@ -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"}
|
package/lib/locales.d.ts.map
DELETED
|
@@ -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"}
|