@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/index.js
ADDED
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var bson = require('bson');
|
|
4
|
+
var tinyLru = require('tiny-lru');
|
|
5
|
+
var node_fs = require('node:fs');
|
|
6
|
+
var node_path = require('node:path');
|
|
7
|
+
var node_url = require('node:url');
|
|
8
|
+
var libphonenumberJs = require('libphonenumber-js');
|
|
9
|
+
|
|
10
|
+
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
|
|
11
|
+
const DEFAULT_CACHE_SIZE = 100;
|
|
12
|
+
let cache = tinyLru.lru(DEFAULT_CACHE_SIZE);
|
|
13
|
+
let maxSize = DEFAULT_CACHE_SIZE;
|
|
14
|
+
function cacheGet(key) {
|
|
15
|
+
return cache.get(key);
|
|
16
|
+
}
|
|
17
|
+
function cacheSet(key, value) {
|
|
18
|
+
cache.set(key, value);
|
|
19
|
+
}
|
|
20
|
+
function clearCache() {
|
|
21
|
+
cache.clear();
|
|
22
|
+
}
|
|
23
|
+
function getCacheSize() {
|
|
24
|
+
return cache.size;
|
|
25
|
+
}
|
|
26
|
+
function getCacheStats() {
|
|
27
|
+
return { size: cache.size, maxSize };
|
|
28
|
+
}
|
|
29
|
+
function setCacheSize(size) {
|
|
30
|
+
if (size <= 0) {
|
|
31
|
+
throw new Error(`Cache size must be > 0 (got ${size})`);
|
|
32
|
+
}
|
|
33
|
+
if (size === maxSize)
|
|
34
|
+
return;
|
|
35
|
+
const previous = cache;
|
|
36
|
+
cache = tinyLru.lru(size);
|
|
37
|
+
maxSize = size;
|
|
38
|
+
const entries = [...previous.entries()].reverse();
|
|
39
|
+
for (const [key, value] of entries) {
|
|
40
|
+
if (cache.size >= size)
|
|
41
|
+
break;
|
|
42
|
+
cache.set(key, value);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const DEFAULT_LOCALE = "en";
|
|
47
|
+
const TIMEZONES_PATH = "timezones.bson";
|
|
48
|
+
let activeLoader = null;
|
|
49
|
+
function setResourceLoader(loader) {
|
|
50
|
+
activeLoader = loader;
|
|
51
|
+
}
|
|
52
|
+
function getResourceLoader() {
|
|
53
|
+
return activeLoader;
|
|
54
|
+
}
|
|
55
|
+
function findByPrefix(table, key) {
|
|
56
|
+
for (let prefix = key; prefix.length > 0; prefix = prefix.slice(0, -1)) {
|
|
57
|
+
const value = table[prefix];
|
|
58
|
+
if (typeof value === "string" && value.length > 0)
|
|
59
|
+
return value;
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
function decodeBson(bytes) {
|
|
64
|
+
if (!bytes || bytes.byteLength === 0)
|
|
65
|
+
return null;
|
|
66
|
+
const buf = Buffer.isBuffer(bytes) ? bytes : Buffer.from(bytes);
|
|
67
|
+
return bson.deserialize(buf);
|
|
68
|
+
}
|
|
69
|
+
function logLoadError(path, err) {
|
|
70
|
+
if (process.env.NODE_ENV !== "production") {
|
|
71
|
+
console.error(`Error loading data from ${path}:`, err);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
function rememberTable(path, bytes) {
|
|
75
|
+
const table = decodeBson(bytes);
|
|
76
|
+
if (!table)
|
|
77
|
+
return null;
|
|
78
|
+
cacheSet(path, table);
|
|
79
|
+
return table;
|
|
80
|
+
}
|
|
81
|
+
async function loadTableAsync(path) {
|
|
82
|
+
if (!activeLoader)
|
|
83
|
+
return null;
|
|
84
|
+
const cached = cacheGet(path);
|
|
85
|
+
if (cached)
|
|
86
|
+
return cached;
|
|
87
|
+
try {
|
|
88
|
+
return rememberTable(path, await activeLoader.loadResource(path));
|
|
89
|
+
} catch (err) {
|
|
90
|
+
logLoadError(path, err);
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
function loadTableSync(path) {
|
|
95
|
+
if (!(activeLoader === null || activeLoader === void 0 ? void 0 : activeLoader.loadResourceSync))
|
|
96
|
+
return null;
|
|
97
|
+
const cached = cacheGet(path);
|
|
98
|
+
if (cached)
|
|
99
|
+
return cached;
|
|
100
|
+
try {
|
|
101
|
+
return rememberTable(path, activeLoader.loadResourceSync(path));
|
|
102
|
+
} catch (err) {
|
|
103
|
+
logLoadError(path, err);
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
function localeResourcePath(kind, locale, countryCode) {
|
|
108
|
+
return `${kind}/${locale}/${countryCode}.bson`;
|
|
109
|
+
}
|
|
110
|
+
function localePaths(kind, locale, cc) {
|
|
111
|
+
if (locale === DEFAULT_LOCALE)
|
|
112
|
+
return [localeResourcePath(kind, DEFAULT_LOCALE, cc)];
|
|
113
|
+
return [localeResourcePath(kind, locale, cc), localeResourcePath(kind, DEFAULT_LOCALE, cc)];
|
|
114
|
+
}
|
|
115
|
+
function partsOf(phoneNumber) {
|
|
116
|
+
var _a, _b;
|
|
117
|
+
const national = (_a = phoneNumber === null || phoneNumber === void 0 ? void 0 : phoneNumber.nationalNumber) === null || _a === void 0 ? void 0 : _a.toString();
|
|
118
|
+
const cc = (_b = phoneNumber === null || phoneNumber === void 0 ? void 0 : phoneNumber.countryCallingCode) === null || _b === void 0 ? void 0 : _b.toString();
|
|
119
|
+
if (!national || !cc)
|
|
120
|
+
return null;
|
|
121
|
+
return { national, cc };
|
|
122
|
+
}
|
|
123
|
+
function timezoneKey(phoneNumber) {
|
|
124
|
+
var _a;
|
|
125
|
+
const raw = (_a = phoneNumber === null || phoneNumber === void 0 ? void 0 : phoneNumber.number) === null || _a === void 0 ? void 0 : _a.toString();
|
|
126
|
+
if (!raw)
|
|
127
|
+
return null;
|
|
128
|
+
return raw.startsWith("+") ? raw.slice(1) : raw;
|
|
129
|
+
}
|
|
130
|
+
function parseTimezones(value) {
|
|
131
|
+
if (!value)
|
|
132
|
+
return null;
|
|
133
|
+
const zones = value.split("&").filter((z) => z.length > 0);
|
|
134
|
+
return zones.length > 0 ? zones : null;
|
|
135
|
+
}
|
|
136
|
+
async function localizedAsync(kind, phoneNumber, locale) {
|
|
137
|
+
const parts = partsOf(phoneNumber);
|
|
138
|
+
if (!parts)
|
|
139
|
+
return null;
|
|
140
|
+
for (const path of localePaths(kind, locale, parts.cc)) {
|
|
141
|
+
const table = await loadTableAsync(path);
|
|
142
|
+
const hit = table ? findByPrefix(table, parts.national) : null;
|
|
143
|
+
if (hit)
|
|
144
|
+
return hit;
|
|
145
|
+
}
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
function localizedSync(kind, phoneNumber, locale) {
|
|
149
|
+
const parts = partsOf(phoneNumber);
|
|
150
|
+
if (!parts)
|
|
151
|
+
return null;
|
|
152
|
+
for (const path of localePaths(kind, locale, parts.cc)) {
|
|
153
|
+
const table = loadTableSync(path);
|
|
154
|
+
const hit = table ? findByPrefix(table, parts.national) : null;
|
|
155
|
+
if (hit)
|
|
156
|
+
return hit;
|
|
157
|
+
}
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
function geocoder(phoneNumber, locale = DEFAULT_LOCALE) {
|
|
161
|
+
return localizedSync("geocodes", phoneNumber, locale);
|
|
162
|
+
}
|
|
163
|
+
function carrier(phoneNumber, locale = DEFAULT_LOCALE) {
|
|
164
|
+
return localizedSync("carrier", phoneNumber, locale);
|
|
165
|
+
}
|
|
166
|
+
function timezones(phoneNumber) {
|
|
167
|
+
const key = timezoneKey(phoneNumber);
|
|
168
|
+
if (!key)
|
|
169
|
+
return null;
|
|
170
|
+
const table = loadTableSync(TIMEZONES_PATH);
|
|
171
|
+
return table ? parseTimezones(findByPrefix(table, key)) : null;
|
|
172
|
+
}
|
|
173
|
+
async function geocoderAsync(phoneNumber, locale = DEFAULT_LOCALE) {
|
|
174
|
+
return localizedAsync("geocodes", phoneNumber, locale);
|
|
175
|
+
}
|
|
176
|
+
async function carrierAsync(phoneNumber, locale = DEFAULT_LOCALE) {
|
|
177
|
+
return localizedAsync("carrier", phoneNumber, locale);
|
|
178
|
+
}
|
|
179
|
+
async function timezonesAsync(phoneNumber) {
|
|
180
|
+
const key = timezoneKey(phoneNumber);
|
|
181
|
+
if (!key)
|
|
182
|
+
return null;
|
|
183
|
+
const table = await loadTableAsync(TIMEZONES_PATH);
|
|
184
|
+
return table ? parseTimezones(findByPrefix(table, key)) : null;
|
|
185
|
+
}
|
|
186
|
+
async function enrichPhoneNumber(phoneNumber, options = {}) {
|
|
187
|
+
const [geocode, car, tz] = await Promise.all([
|
|
188
|
+
geocoderAsync(phoneNumber, options.locale),
|
|
189
|
+
carrierAsync(phoneNumber, options.carrierLocale),
|
|
190
|
+
timezonesAsync(phoneNumber)
|
|
191
|
+
]);
|
|
192
|
+
return { geocode, carrier: car, timezones: tz };
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
function defaultResourcesDir() {
|
|
196
|
+
let here;
|
|
197
|
+
try {
|
|
198
|
+
here = __dirname;
|
|
199
|
+
} catch {
|
|
200
|
+
here = node_path.dirname(node_url.fileURLToPath((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('index.js', document.baseURI).href))));
|
|
201
|
+
}
|
|
202
|
+
let dir = here;
|
|
203
|
+
for (let i = 0; i < 6; i++) {
|
|
204
|
+
const candidate = node_path.resolve(dir, "resources");
|
|
205
|
+
if (node_fs.existsSync(node_path.resolve(candidate, "timezones.bson"))) {
|
|
206
|
+
return candidate;
|
|
207
|
+
}
|
|
208
|
+
const parent = node_path.resolve(dir, "..");
|
|
209
|
+
if (parent === dir)
|
|
210
|
+
break;
|
|
211
|
+
dir = parent;
|
|
212
|
+
}
|
|
213
|
+
return node_path.resolve(here, "..", "resources");
|
|
214
|
+
}
|
|
215
|
+
class NodeFsResourceLoader {
|
|
216
|
+
constructor(options = {}) {
|
|
217
|
+
var _a;
|
|
218
|
+
this.baseDir = (_a = options.resourcesDir) !== null && _a !== void 0 ? _a : defaultResourcesDir();
|
|
219
|
+
}
|
|
220
|
+
async loadResource(path) {
|
|
221
|
+
return this.loadResourceSync(path);
|
|
222
|
+
}
|
|
223
|
+
loadResourceSync(path) {
|
|
224
|
+
const fullPath = node_path.join(this.baseDir, path);
|
|
225
|
+
if (!node_fs.existsSync(fullPath))
|
|
226
|
+
return null;
|
|
227
|
+
return node_fs.readFileSync(fullPath);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
setResourceLoader(new NodeFsResourceLoader());
|
|
232
|
+
|
|
233
|
+
exports.DEFAULT_CACHE_SIZE = DEFAULT_CACHE_SIZE;
|
|
234
|
+
exports.NodeFsResourceLoader = NodeFsResourceLoader;
|
|
235
|
+
exports.carrier = carrier;
|
|
236
|
+
exports.carrierAsync = carrierAsync;
|
|
237
|
+
exports.clearCache = clearCache;
|
|
238
|
+
exports.enrichPhoneNumber = enrichPhoneNumber;
|
|
239
|
+
exports.geocoder = geocoder;
|
|
240
|
+
exports.geocoderAsync = geocoderAsync;
|
|
241
|
+
exports.getCacheSize = getCacheSize;
|
|
242
|
+
exports.getCacheStats = getCacheStats;
|
|
243
|
+
exports.getResourceLoader = getResourceLoader;
|
|
244
|
+
exports.setCacheSize = setCacheSize;
|
|
245
|
+
exports.setResourceLoader = setResourceLoader;
|
|
246
|
+
exports.timezones = timezones;
|
|
247
|
+
exports.timezonesAsync = timezonesAsync;
|
|
248
|
+
Object.keys(libphonenumberJs).forEach(function (k) {
|
|
249
|
+
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
250
|
+
enumerable: true,
|
|
251
|
+
get: function () { return libphonenumberJs[k]; }
|
|
252
|
+
});
|
|
253
|
+
});
|
|
254
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/cache.ts","../src/core.ts","../src/node-fs-loader.ts","../src/index.ts"],"sourcesContent":[null,null,null,null],"names":["lru","deserialize","dirname","fileURLToPath","resolve","existsSync","join","readFileSync"],"mappings":"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"}
|
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
export type GeocoderLocale = 'ar' | 'be' | 'bg' | 'bs' | 'de' | 'el' | 'en' | 'es' | 'fa' | 'fi' | 'fr' | 'hr' | 'hu' | 'hy' | 'id' | 'it' | 'iw' | 'ja' | '
|
|
1
|
+
export type GeocoderLocale = 'ar' | 'be' | 'bg' | 'bs' | 'de' | 'el' | 'en' | 'es' | 'fa' | 'fi' | 'fr' | 'hr' | 'hu' | 'hy' | 'id' | 'it' | 'iw' | 'ja' | 'ko' | 'nl' | 'pl' | 'pt' | 'ro' | 'ru' | 'sq' | 'sr' | 'sv' | 'th' | 'tr' | 'uk' | 'vi' | 'zh' | 'zh_Hant';
|
|
2
2
|
export type CarrierLocale = 'ar' | 'be' | 'en' | 'fa' | 'ko' | 'ru' | 'uk' | 'zh' | 'zh_Hant';
|
|
3
|
-
//# sourceMappingURL=locales.d.ts.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ResourceLoader } from './types';
|
|
2
|
+
export interface NodeFsResourceLoaderOptions {
|
|
3
|
+
/**
|
|
4
|
+
* Override the directory where `geocodes/`, `carrier/`, and
|
|
5
|
+
* `timezones.bson` live. Defaults to the bundled `resources/` next to the
|
|
6
|
+
* built `dist/` directory.
|
|
7
|
+
*/
|
|
8
|
+
resourcesDir?: string;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Sync + async loader backed by `node:fs`. Async methods exist for parity
|
|
12
|
+
* with custom loaders and just wrap the sync read.
|
|
13
|
+
*/
|
|
14
|
+
export declare class NodeFsResourceLoader implements ResourceLoader {
|
|
15
|
+
private readonly baseDir;
|
|
16
|
+
constructor(options?: NodeFsResourceLoaderOptions);
|
|
17
|
+
loadResource(path: string): Promise<Uint8Array | null>;
|
|
18
|
+
loadResourceSync(path: string): Uint8Array | null;
|
|
19
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CORS header set used by every adapter. `methods` lets each platform
|
|
3
|
+
* advertise the verbs it actually supports without re-declaring the rest.
|
|
4
|
+
*/
|
|
5
|
+
export declare function corsHeaders(methods?: string): Record<string, string>;
|
|
6
|
+
export declare function jsonHeaders(extra?: Record<string, string>): Record<string, string>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { BatchOptions, ValidationDispatch } from './validation';
|
|
2
|
+
export interface PhoneValidationResult {
|
|
3
|
+
input: string;
|
|
4
|
+
valid: boolean;
|
|
5
|
+
error?: string;
|
|
6
|
+
formatted?: {
|
|
7
|
+
e164: string;
|
|
8
|
+
international: string;
|
|
9
|
+
national: string;
|
|
10
|
+
rfc3966: string;
|
|
11
|
+
};
|
|
12
|
+
country?: string;
|
|
13
|
+
countryCallingCode?: string;
|
|
14
|
+
nationalNumber?: string;
|
|
15
|
+
type?: string;
|
|
16
|
+
geocode?: string | null;
|
|
17
|
+
carrier?: string | null;
|
|
18
|
+
timezones?: string[] | null;
|
|
19
|
+
}
|
|
20
|
+
export declare function executeValidation(dispatch: ValidationDispatch): Promise<PhoneValidationResult | PhoneValidationResult[]>;
|
|
21
|
+
export declare function validateSingle(input: string, options?: BatchOptions): Promise<PhoneValidationResult>;
|
|
22
|
+
export declare function validateBatch(inputs: string[], options?: BatchOptions): Promise<PhoneValidationResult[]>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helpers for Lambda-shaped runtimes (AWS API Gateway proxy events, Netlify
|
|
3
|
+
* Functions, classic GCP). Bodies arrive as strings (optionally base64) and
|
|
4
|
+
* responses are `{ statusCode, headers, body: string }` shapes.
|
|
5
|
+
*/
|
|
6
|
+
export interface LambdaLikeEvent {
|
|
7
|
+
body: string | null;
|
|
8
|
+
isBase64Encoded?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface LambdaResult {
|
|
11
|
+
statusCode: number;
|
|
12
|
+
headers?: {
|
|
13
|
+
[key: string]: string;
|
|
14
|
+
};
|
|
15
|
+
body: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Decode an API Gateway / Netlify body, supporting base64 payloads. Throws
|
|
19
|
+
* `SyntaxError` on malformed JSON so callers can map it to a 400 cleanly.
|
|
20
|
+
*/
|
|
21
|
+
export declare function decodeLambdaBody(event: LambdaLikeEvent): unknown;
|
|
22
|
+
/** Lambda-shaped JSON response shorthand. */
|
|
23
|
+
export declare function lambdaResponse(statusCode: number, body: unknown, headers: Record<string, string>): LambdaResult;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure routing decision used by every routed adapter. Adapters do their own
|
|
3
|
+
* path normalization (Netlify strips `/.netlify/functions/<name>`, Vercel +
|
|
4
|
+
* Azure use `/api/...`, AWS uses raw `/...`) and then ask `classifyRoute` to
|
|
5
|
+
* decide what to do.
|
|
6
|
+
*
|
|
7
|
+
* Centralising the decision tree means a new endpoint (say `/cache/clear`)
|
|
8
|
+
* lands in one place instead of six.
|
|
9
|
+
*/
|
|
10
|
+
export type Route = {
|
|
11
|
+
kind: 'preflight';
|
|
12
|
+
} | {
|
|
13
|
+
kind: 'health';
|
|
14
|
+
} | {
|
|
15
|
+
kind: 'validate-single';
|
|
16
|
+
} | {
|
|
17
|
+
kind: 'validate-batch';
|
|
18
|
+
} | {
|
|
19
|
+
kind: 'method-not-allowed';
|
|
20
|
+
} | {
|
|
21
|
+
kind: 'not-found';
|
|
22
|
+
};
|
|
23
|
+
export declare function classifyRoute(path: string, method: string): Route;
|
|
24
|
+
/** Standard healthy-status payload used by every adapter. */
|
|
25
|
+
export declare function healthPayload(platform: string): {
|
|
26
|
+
status: 'healthy';
|
|
27
|
+
platform: string;
|
|
28
|
+
timestamp: string;
|
|
29
|
+
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Request body classification shared by every serverless adapter.
|
|
3
|
+
*
|
|
4
|
+
* Every adapter accepts the same JSON shape:
|
|
5
|
+
* { phoneNumber: "+14155552671", defaultCountry?: "US", locale?: "en", carrierLocale?: "en" }
|
|
6
|
+
*
|
|
7
|
+
* Or a batch:
|
|
8
|
+
* { phoneNumbers: ["+14155552671", "+442079460958"], defaultCountry?: "US", ... }
|
|
9
|
+
*
|
|
10
|
+
* Centralising the shape (and the 100-entry batch cap) means a future change
|
|
11
|
+
* lands in one place instead of six adapter files.
|
|
12
|
+
*/
|
|
13
|
+
import type { CarrierLocale, GeocoderLocale } from '../../types';
|
|
14
|
+
export declare const MAX_BATCH_SIZE = 100;
|
|
15
|
+
/** Fields shared by request bodies and downstream `BatchOptions`. */
|
|
16
|
+
interface ValidationCommon {
|
|
17
|
+
defaultCountry?: string;
|
|
18
|
+
locale?: GeocoderLocale;
|
|
19
|
+
carrierLocale?: CarrierLocale;
|
|
20
|
+
/** Run the geocoder lookup (default: true). */
|
|
21
|
+
geocode?: boolean;
|
|
22
|
+
/** Run the carrier lookup (default: true). */
|
|
23
|
+
carrier?: boolean;
|
|
24
|
+
/** Run the timezone lookup (default: true). */
|
|
25
|
+
timezones?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export interface ValidationRequestBody extends ValidationCommon {
|
|
28
|
+
phoneNumber?: string;
|
|
29
|
+
phoneNumbers?: string[];
|
|
30
|
+
}
|
|
31
|
+
export type BatchOptions = ValidationCommon;
|
|
32
|
+
export type ValidationDispatch = {
|
|
33
|
+
kind: 'single';
|
|
34
|
+
phoneNumber: string;
|
|
35
|
+
options: BatchOptions;
|
|
36
|
+
} | {
|
|
37
|
+
kind: 'batch';
|
|
38
|
+
phoneNumbers: string[];
|
|
39
|
+
options: BatchOptions;
|
|
40
|
+
};
|
|
41
|
+
export interface ValidationFailure {
|
|
42
|
+
kind: 'invalid';
|
|
43
|
+
status: 400;
|
|
44
|
+
message: string;
|
|
45
|
+
}
|
|
46
|
+
export type BatchValidation = {
|
|
47
|
+
ok: true;
|
|
48
|
+
phoneNumbers: string[];
|
|
49
|
+
} | {
|
|
50
|
+
ok: false;
|
|
51
|
+
status: 400;
|
|
52
|
+
message: string;
|
|
53
|
+
};
|
|
54
|
+
/** Lift the locale + enrichment fields out of a request body. */
|
|
55
|
+
export declare function extractBatchOptions(body: ValidationRequestBody): BatchOptions;
|
|
56
|
+
export declare function validateBatchField(phoneNumbers: unknown): BatchValidation;
|
|
57
|
+
export declare function classifyRequest(body: ValidationRequestBody | null | undefined): ValidationDispatch | ValidationFailure;
|
|
58
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ValidationRequestBody } from './validation';
|
|
2
|
+
/**
|
|
3
|
+
* Map URL query params onto a `ValidationRequestBody`. `phoneNumbers` accepts
|
|
4
|
+
* a comma-separated list (`?phoneNumbers=+1,+44`). Boolean enrichment toggles
|
|
5
|
+
* accept any of `true|false|1|0|yes|no|on|off`.
|
|
6
|
+
*/
|
|
7
|
+
export declare function parseQueryParams(url: URL): ValidationRequestBody;
|
|
8
|
+
/** Web-API JSON response shorthand. */
|
|
9
|
+
export declare function jsonResponse(status: number, body: unknown, headers: Record<string, string>): Response;
|
|
10
|
+
/** `application/json` content-type guard for routed POST endpoints. */
|
|
11
|
+
export declare function requireJsonContentType(request: Request, headers: Record<string, string>): Response | null;
|
|
12
|
+
/** Read a JSON body, mapping parse failures to a 400 response. */
|
|
13
|
+
export declare function readJsonBody(request: Request, headers: Record<string, string>): Promise<{
|
|
14
|
+
body: unknown;
|
|
15
|
+
} | {
|
|
16
|
+
error: Response;
|
|
17
|
+
}>;
|