{"_id":"parse-email-address","_rev":"3-7d5533b8eca90c99d33271228c62e116","name":"parse-email-address","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.0":{"name":"parse-email-address","version":"0.0.0","keywords":[],"author":"","license":"MIT","_id":"parse-email-address@0.0.0","maintainers":[{"name":"electrovir","email":"pithy.gut0a@icloud.com"}],"dist":{"shasum":"48997d0017ba98c9b1162ad5c0edd90c9c3df027","tarball":"https://registry.npmjs.org/parse-email-address/-/parse-email-address-0.0.0.tgz","fileCount":1,"integrity":"sha512-XlbPv55mqB32LKN6wRt+VxvA25HpJpIwuMASCWKbD5QBypRsTw51StMHLNOEKlN6xaEy4gngRocfHHIHst46TA==","signatures":[{"sig":"MEQCIAv/clAI6USwJRTK3sOworCxJr7LRwli6SeqF3G6IFBwAiBFY6EeXS2/01W4ASa853QNQbmw6OB/nqfuQWesqmtE9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":255},"main":"index.js","type":"commonjs","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"electrovir","email":"pithy.gut0a@icloud.com"},"_npmVersion":"11.2.0","description":"","directories":{},"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/parse-email-address_0.0.0_1742568667915_0.572638372072128","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"parse-email-address","version":"0.0.1","keywords":["smtp-address-parser","smtp","email","address","parser","validator","validate","normalize","RFC-5321","rfc2821","rfc5321","rfc821"],"author":{"url":"https://github.com/electrovir","name":"electrovir"},"license":"(MIT or CC0 1.0)","_id":"parse-email-address@0.0.1","maintainers":[{"name":"electrovir","email":"pithy.gut0a@icloud.com"}],"homepage":"https://github.com/electrovir/parse-email-address","bugs":{"url":"https://github.com/electrovir/parse-email-address/issues"},"dist":{"shasum":"732122092e3881956434153407684d2058058d36","tarball":"https://registry.npmjs.org/parse-email-address/-/parse-email-address-0.0.1.tgz","fileCount":11,"integrity":"sha512-5O0U0auBTelwBwYpTFHQZWMmdfiohhTL9Hs6noSyf79tPdEslZBPsvawANWFSy8/ImiL2zXhxpRmjxWXygp76A==","signatures":[{"sig":"MEUCIQC8PHhhy13mMLwZSI+MYYJmL0pJAP24QP8LPvBUjoVr5AIgfyQ5o9fjGlpSj3IjqomHQi9vtHnDwPIVQCIFOk4Jnpg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43072},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.js","engines":{"node":">=20"},"gitHead":"2bf1e0e2908d00b973a067d2a39da3fde4425c3d","scripts":{"docs":"virmator docs","lint":"virmator lint fix","test":"virmator test web","build":"virmator frontend build","start":"virmator frontend","format":"virmator format","compile":"npm run compile:grammar && virmator compile","publish":"virmator publish npm run test:all","test:all":"npm run compile && concurrently --colors --kill-others-on-fail -c auto --names tests,spelling,format,docs,deps,lint \"npm run test:coverage\" \"npm run test:spelling\" \"npm run test:format\" \"npm run test:docs\" \"npm run test:deps\" \"npm run test:lint\"","test:deps":"virmator deps check","test:docs":"virmator docs check","test:lint":"virmator lint","test:format":"virmator format check","test:update":"npm test update","test:coverage":"npm run test coverage","test:spelling":"virmator spellcheck","compile:grammar":"nearleyc src/grammar.ne -o src/grammar.ts && tsx scripts/prepend-comment.script.ts"},"_npmUser":{"name":"electrovir","email":"pithy.gut0a@icloud.com"},"repository":{"url":"git+https://github.com/electrovir/parse-email-address.git","type":"git"},"_npmVersion":"11.2.0","description":"Parse/validate email address with RFC-5321 and sane size limits.","directories":{},"_nodeVersion":"22.12.0","_hasShrinkwrap":false,"devDependencies":{"cspell":"^8.17.5","eslint":"^9.23.0","esbuild":"^0.25.1","nearley":"^2.20.1","typedoc":"^0.28.1","prettier":"~3.3.3","virmator":"^13.13.4","type-fest":"^4.37.0","@eslint/js":"^9.23.0","typescript":"^5.8.2","@types/nearley":"^2.11.5","@eslint/eslintrc":"^3.3.1","@web/test-runner":"^0.20.0","@augment-vir/test":"^31.10.1","npm-check-updates":"^17.1.16","typescript-eslint":"^8.27.0","dependency-cruiser":"^16.10.0","@augment-vir/assert":"^31.10.1","eslint-plugin-jsdoc":"^50.6.8","prettier-plugin-toml":"^2.0.2","eslint-plugin-sonarjs":"^3.0.2","eslint-plugin-unicorn":"^57.0.0","prettier-plugin-jsdoc":"^1.3.2","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.3","@web/dev-server-esbuild":"^1.0.4","@stylistic/eslint-plugin":"^4.2.0","eslint-plugin-playwright":"^2.2.0","@web/test-runner-commands":"^0.9.0","prettier-plugin-sort-json":"^4.1.1","eslint-plugin-monorepo-cop":"^1.0.2","@stylistic/eslint-plugin-ts":"^4.2.0","@web/test-runner-playwright":"^0.11.0","prettier-plugin-packagejson":"^2.5.10","istanbul-smart-text-reporter":"^1.1.5","markdown-code-example-inserter":"^3.0.3","@typescript-eslint/eslint-plugin":"^8.27.0","eslint-plugin-require-extensions":"^0.1.3","prettier-plugin-multiline-arrays":"^4.0.3","prettier-plugin-organize-imports":"^4.1.0","@web/test-runner-visual-regression":"^0.10.0","prettier-plugin-interpolated-html-tags":"^2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/parse-email-address_0.0.1_1742659531289_0.002457234979078571","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"parse-email-address","version":"0.0.2","description":"Parse/validate email address with RFC-5321 and sane size limits.","keywords":["smtp-address-parser","smtp","email","address","parser","validator","validate","normalize","RFC-5321","rfc2821","rfc5321","rfc821"],"homepage":"https://github.com/electrovir/parse-email-address","bugs":{"url":"https://github.com/electrovir/parse-email-address/issues"},"repository":{"type":"git","url":"git+https://github.com/electrovir/parse-email-address.git"},"license":"(MIT or CC0 1.0)","author":{"name":"electrovir","url":"https://github.com/electrovir"},"type":"module","main":"dist/index.js","module":"dist/index.js","types":"dist/index.d.ts","scripts":{"build":"virmator frontend build","compile":"npm run compile:grammar && virmator compile","compile:grammar":"nearleyc src/grammar.ne -o src/grammar.ts && tsx scripts/prepend-comment.script.ts","docs":"virmator docs","format":"virmator format","lint":"virmator lint fix","publish":"virmator publish npm run test:all","start":"virmator frontend","test":"virmator test web","test:all":"npm run compile && concurrently --colors --kill-others-on-fail -c auto --names tests,spelling,format,docs,deps,lint \"npm run test:coverage\" \"npm run test:spelling\" \"npm run test:format\" \"npm run test:docs\" \"npm run test:deps\" \"npm run test:lint\"","test:coverage":"npm run test coverage","test:deps":"virmator deps check","test:docs":"virmator docs check","test:format":"virmator format check","test:lint":"virmator lint","test:spelling":"virmator spellcheck","test:update":"npm test update"},"devDependencies":{"@augment-vir/assert":"^31.10.1","@augment-vir/test":"^31.10.1","@eslint/eslintrc":"^3.3.1","@eslint/js":"^9.23.0","@stylistic/eslint-plugin":"^4.2.0","@stylistic/eslint-plugin-ts":"^4.2.0","@typescript-eslint/eslint-plugin":"^8.27.0","@web/dev-server-esbuild":"^1.0.4","@web/test-runner":"^0.20.0","@web/test-runner-commands":"^0.9.0","@web/test-runner-playwright":"^0.11.0","@web/test-runner-visual-regression":"^0.10.0","cspell":"^8.17.5","dependency-cruiser":"^16.10.0","esbuild":"^0.25.1","eslint":"^9.23.0","eslint-config-prettier":"^10.1.1","eslint-plugin-jsdoc":"^50.6.8","eslint-plugin-monorepo-cop":"^1.0.2","eslint-plugin-playwright":"^2.2.0","eslint-plugin-prettier":"^5.2.3","eslint-plugin-require-extensions":"^0.1.3","eslint-plugin-sonarjs":"^3.0.2","eslint-plugin-unicorn":"^57.0.0","istanbul-smart-text-reporter":"^1.1.5","markdown-code-example-inserter":"^3.0.3","nearley":"^2.20.1","npm-check-updates":"^17.1.16","prettier":"~3.3.3","prettier-plugin-interpolated-html-tags":"^2.0.1","prettier-plugin-jsdoc":"^1.3.2","prettier-plugin-multiline-arrays":"^4.0.3","prettier-plugin-organize-imports":"^4.1.0","prettier-plugin-packagejson":"^2.5.10","prettier-plugin-sort-json":"^4.1.1","prettier-plugin-toml":"^2.0.2","type-fest":"^4.37.0","typedoc":"^0.28.1","typescript":"^5.8.2","typescript-eslint":"^8.27.0","virmator":"^13.13.4"},"engines":{"node":">=20"},"overrides":{"playwright":"1.46.1"},"_id":"parse-email-address@0.0.2","gitHead":"73273aff6de2cffc8578a7d820b4301866e6f978","_nodeVersion":"22.12.0","_npmVersion":"11.2.0","dist":{"integrity":"sha512-Ul8NS2MQ6PG7xdaa2SCNbkUjKcm0TTySXWquqDT8u+vldPVHZNhhrwfhG0KqN8caA96ul34Ptu6JtX7JYtK8CA==","shasum":"1fc9f86cad5e703aeb04554904f5f5a6e4ac0884","tarball":"https://registry.npmjs.org/parse-email-address/-/parse-email-address-0.0.2.tgz","fileCount":12,"unpackedSize":65905,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBYcAvjo6ITUWeyJlKung8AKHvBRlSpXofZaGbdG+uXSAiEA7YYL3Tjn3WKg8i3NWp5t9Vtv28YpHvobJwaGSgfjthQ="}]},"_npmUser":{"name":"electrovir","email":"pithy.gut0a@icloud.com"},"directories":{},"maintainers":[{"name":"electrovir","email":"pithy.gut0a@icloud.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/parse-email-address_0.0.2_1742660632702_0.5083475553593955"},"_hasShrinkwrap":false}},"time":{"created":"2025-03-21T14:51:07.914Z","modified":"2025-03-22T16:23:53.078Z","0.0.0":"2025-03-21T14:51:08.077Z","0.0.1":"2025-03-22T16:05:31.511Z","0.0.2":"2025-03-22T16:23:52.899Z"},"bugs":{"url":"https://github.com/electrovir/parse-email-address/issues"},"author":{"name":"electrovir","url":"https://github.com/electrovir"},"license":"(MIT or CC0 1.0)","homepage":"https://github.com/electrovir/parse-email-address","keywords":["smtp-address-parser","smtp","email","address","parser","validator","validate","normalize","RFC-5321","rfc2821","rfc5321","rfc821"],"repository":{"type":"git","url":"git+https://github.com/electrovir/parse-email-address.git"},"description":"Parse/validate email address with RFC-5321 and sane size limits.","maintainers":[{"name":"electrovir","email":"pithy.gut0a@icloud.com"}],"readme":"# parse-email-address\n\nParse, validate, and normalize email addresses, primarily using RFC-5321.\n\nFull docs: https://electrovir.github.io/parse-email-address\n\nThis uses and is based on [`smtp-address-parser` v1.1.0](https://www.npmjs.com/package/smtp-address-parser/v/1.1.0), so it has the following features (from `smtp-address-parser`):\n\n-   Domain names must be fully qualified (they must have at least two labels). The top-level domain must have at least two octets.\n    -   good: `name@example.org`\n    -   bad: `name@example`\n    -   bad: `name@example.x`\n-   Total length limit of an address is 986 octets (based on a 1,000 octet SMTP line length).\n-   Domain names are limited to 255 octets, when encoded with a length byte before each label, and including the top-level zero length label. So, the effective limit with interstitial dots is 253 octets.\n-   Labels within a domain name are limited to 63 octets (limits of the DNS protocol).\n\nThis package adds the following features:\n\n-   Full ESM support (this package natively runs in all modern browsers).\n-   Documentation.\n-   More explicit types.\n-   Simplified API.\n-   No dependencies.\n\n## install\n\n```sh\nnpm i parse-email-address\n```\n\n## usage\n\n<!-- example-link: src/examples.example.ts -->\n\n```TypeScript\nimport {isValidEmailAddress, normalizeEmailAddress, parseEmailAddress} from 'parse-email-address';\n\n/**\n * Parse email addresses into parts with `parseEmailAddress`. Returns `undefined` if the input is an\n * invalid email address.\n */\n\nparseEmailAddress('simple@example.org'); // returns `{user: 'simple', domain: 'example.org', full: 'simple@example.org'}`\nparseEmailAddress('tld-too-short@foo.x'); // returns `undefined`\n\n/**\n * Normalize email addresses for string comparisons with `normalizeEmailAddress`. Returns\n * `undefined` if the input is an invalid email address.\n */\n\nnormalizeEmailAddress('SIMPLE@EXAMPLE.ORG'); // returns `'simple@example.org'`\nnormalizeEmailAddress('tld-too-short@foo.x'); // returns `undefined`\n\n/** Check if an email address is valid with `isValidEmailAddress`. */\n\nisValidEmailAddress('simple@example.org'); // returns `true`\nisValidEmailAddress('SIMPLE@EXAMPLE.ORG'); // returns `true`\nisValidEmailAddress('tld-too-short@foo.x'); // returns `false`\n```\n","readmeFilename":"README.md"}