{"_id":"format-message-parse","_rev":"35-0949a899c9b8187933a77ecfc2220919","name":"format-message-parse","description":"Parse ICU MessageFormat pattern strings to a compact ast","dist-tags":{"latest":"6.2.4","next":"6.0.0-alpha.2"},"versions":{"4.0.0":{"name":"format-message-parse","version":"4.0.0","description":"Parse ICU message strings to a compact ast","author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com","url":"https://thetalecrafter.com/"},"homepage":"https://github.com/format-message/format-message","license":"MIT","repository":{"type":"git","url":"git+https://github.com/format-message/format-message.git"},"bugs":{"url":"https://github.com/format-message/format-message/issues"},"keywords":["format-message"],"_id":"format-message-parse@4.0.0","scripts":{},"_shasum":"0de48bd7ebbd0a48f56845766ae5f411e69a0013","_from":".","_npmVersion":"3.3.10","_nodeVersion":"5.0.0","_npmUser":{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"dist":{"shasum":"0de48bd7ebbd0a48f56845766ae5f411e69a0013","tarball":"https://registry.npmjs.org/format-message-parse/-/format-message-parse-4.0.0.tgz","integrity":"sha512-RCdg5y4i2paSeYXVdJg/DUPCuGp36gXPH97UeGocCXkGzpdTe/Iwcm6WccbHY3Vmx+LEImC6lZ5/4rvyfjGK1A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGowA6JiH3f7GRMkWmZkZmE9ZlonORkGgYbgeXwM6olaAiAe3a8my9iJqTmABUwx/wNWTfFoBD8RnqK7GE52lzAEow=="}]},"directories":{}},"4.1.0":{"name":"format-message-parse","version":"4.1.0","description":"Parse ICU message strings to a compact ast","author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com","url":"https://thetalecrafter.com/"},"homepage":"https://github.com/format-message/format-message","license":"MIT","repository":{"type":"git","url":"git+https://github.com/format-message/format-message.git"},"bugs":{"url":"https://github.com/format-message/format-message/issues"},"keywords":["format-message"],"_id":"format-message-parse@4.1.0","scripts":{},"_shasum":"6d62ded7409eb6ffe5a4dcc227f1cf70647cfd55","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.3.0","_npmUser":{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"dist":{"shasum":"6d62ded7409eb6ffe5a4dcc227f1cf70647cfd55","tarball":"https://registry.npmjs.org/format-message-parse/-/format-message-parse-4.1.0.tgz","integrity":"sha512-wqEMLHIcZqgz5TGHsfUMW31jWFdvKgbzrrNAHS7vnODaQbTjKJ5TSkPUZAPFUKaKr1jJYaM9t19Q+H2xUBT6VQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHC2KNP/FgH8Nr7X/A7Y7DxCqnEQISCyyegTq57zRE8aAiBLWCSI1Y4SkuTCdsu5XD5o6N5+wpFAacd7rKLM0neqvQ=="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/format-message-parse-4.1.0.tgz_1469153265692_0.919674095697701"},"directories":{}},"4.1.1":{"name":"format-message-parse","version":"4.1.1","description":"Parse ICU message strings to a compact ast","author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com","url":"https://thetalecrafter.com/"},"homepage":"https://github.com/format-message/format-message","license":"MIT","repository":{"type":"git","url":"git+https://github.com/format-message/format-message.git"},"bugs":{"url":"https://github.com/format-message/format-message/issues"},"keywords":["format-message"],"_id":"format-message-parse@4.1.1","scripts":{},"_shasum":"42a86807752f44a6c0daf4e22abf795b896739b8","_from":".","_npmVersion":"3.10.3","_nodeVersion":"6.4.0","_npmUser":{"name":"thetalecrafter","email":"andy@thetalecrafter.com"},"dist":{"shasum":"42a86807752f44a6c0daf4e22abf795b896739b8","tarball":"https://registry.npmjs.org/format-message-parse/-/format-message-parse-4.1.1.tgz","integrity":"sha512-59cxgQ+x87Fei2iItk5J8VPKooQInF38zAso0Sz1QOLxIzOR3Wzqlw5siqoIIpDQHijaarp2xugrJROUBJuZ2Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB8bb8rw2MvN2EPLFHamSzFmWzouqpY4r7AZ++JYB/rMAiEA5XUVFQrPCU5JKYRdjBTNt52NwxxOPPnYW4aX1H1Yb4c="}]},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/format-message-parse-4.1.1.tgz_1471631791438_0.12047883565537632"},"directories":{}},"5.0.0-beta.8":{"name":"format-message-parse","version":"5.0.0-beta.8","description":"Parse ICU message strings to a compact ast","author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com","url":"https://thetalecrafter.com/"},"homepage":"https://github.com/format-message/format-message","license":"MIT","repository":{"type":"git","url":"git+https://github.com/format-message/format-message.git"},"bugs":{"url":"https://github.com/format-message/format-message/issues"},"keywords":["format-message"],"_id":"format-message-parse@5.0.0-beta.8","scripts":{},"_shasum":"12b293876863374f01920d16039fd9a7fc0dc3c3","_from":".","_npmVersion":"3.10.7","_nodeVersion":"6.6.0","_npmUser":{"name":"thetalecrafter","email":"andy@thetalecrafter.com"},"dist":{"shasum":"12b293876863374f01920d16039fd9a7fc0dc3c3","tarball":"https://registry.npmjs.org/format-message-parse/-/format-message-parse-5.0.0-beta.8.tgz","integrity":"sha512-lTUwfgzEF0fqA+ck0mRs8WF1CYQDjVMcuVi94O5t8dUgpUOxZPhKtKIybf2A9XMyAKeHN1fHxGA6ZblA/1aKzA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAVSh+VR4oyNcbPldd3rpDnHF0c+Po2o7j/hVGquG1ZwIhAIw/XnTbkig557slsIAzN+iqrrqTdAgyLsq9wPxPcjT7"}]},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/format-message-parse-5.0.0-beta.8.tgz_1474916187853_0.3017428785096854"},"directories":{}},"5.0.0-beta.9":{"name":"format-message-parse","version":"5.0.0-beta.9","description":"Parse ICU message strings to a compact ast","author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com","url":"https://thetalecrafter.com/"},"homepage":"https://github.com/format-message/format-message","license":"MIT","repository":{"type":"git","url":"git+https://github.com/format-message/format-message.git"},"bugs":{"url":"https://github.com/format-message/format-message/issues"},"keywords":["format-message"],"_id":"format-message-parse@5.0.0-beta.9","scripts":{},"_shasum":"44f2b58f26b4eb32e8718931fa0fdfab86ca7bc8","_from":".","_npmVersion":"3.10.7","_nodeVersion":"6.6.0","_npmUser":{"name":"thetalecrafter","email":"andy@thetalecrafter.com"},"dist":{"shasum":"44f2b58f26b4eb32e8718931fa0fdfab86ca7bc8","tarball":"https://registry.npmjs.org/format-message-parse/-/format-message-parse-5.0.0-beta.9.tgz","integrity":"sha512-fNugCavY3QCeO9iG1u1XlEfl0hUYkEBnZ/KrJVy5+u1qKoKvbHZ6IS3lEhbqOlWg0B0EhXd9dQed/S4/W3d0zQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFuFX1yWQFC4BAXXVXkDIuoNo7gbLvuHDJ72A1w/9vdUAiEA49kAXGeKHkDij7dEdBtklQwHJ/XjyUvfsdW+Krsx6CY="}]},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/format-message-parse-5.0.0-beta.9.tgz_1474917067078_0.687068589264527"},"directories":{}},"5.0.0-beta.10":{"name":"format-message-parse","version":"5.0.0-beta.10","description":"Parse ICU message strings to a compact ast","author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com","url":"https://thetalecrafter.com/"},"homepage":"https://github.com/format-message/format-message","license":"MIT","repository":{"type":"git","url":"git+https://github.com/format-message/format-message.git"},"bugs":{"url":"https://github.com/format-message/format-message/issues"},"keywords":["format-message"],"_id":"format-message-parse@5.0.0-beta.10","scripts":{},"_shasum":"15a751816c27ca188442f914d7614f0acfa0b050","_from":".","_npmVersion":"3.10.7","_nodeVersion":"6.6.0","_npmUser":{"name":"thetalecrafter","email":"andy@thetalecrafter.com"},"dist":{"shasum":"15a751816c27ca188442f914d7614f0acfa0b050","tarball":"https://registry.npmjs.org/format-message-parse/-/format-message-parse-5.0.0-beta.10.tgz","integrity":"sha512-L1x+Bzd7VhRkmvNPe1H3iVeERK63Cg1b7WyOiQNbIqBFtSuvs5viA5b4WDfABI3k+fcoIGnSL69Xy6snULl9Ag==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDbiFILlbkAJ3a9KmKQ9iVWkFK0EG7aVhHUopKbHA9RbAiAz3HzMVU97hFFxplaiuQEy3dfsE0TFIB3/PaBe41R0BQ=="}]},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/format-message-parse-5.0.0-beta.10.tgz_1474918825305_0.5513033282477409"},"directories":{}},"5.0.0":{"name":"format-message-parse","version":"5.0.0","description":"Parse ICU message strings to a compact ast","author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com","url":"https://thetalecrafter.com/"},"homepage":"https://github.com/format-message/format-message","license":"MIT","repository":{"type":"git","url":"git+https://github.com/format-message/format-message.git"},"bugs":{"url":"https://github.com/format-message/format-message/issues"},"keywords":["format-message"],"_id":"format-message-parse@5.0.0","scripts":{},"_shasum":"3cbfd49153a6bc6b361d5c24625b761d988b80ca","_from":".","_npmVersion":"3.10.8","_nodeVersion":"6.6.0","_npmUser":{"name":"thetalecrafter","email":"andy@thetalecrafter.com"},"dist":{"shasum":"3cbfd49153a6bc6b361d5c24625b761d988b80ca","tarball":"https://registry.npmjs.org/format-message-parse/-/format-message-parse-5.0.0.tgz","integrity":"sha512-UzNc+0IvnIfMg/RhE2jDTV6FgOsNYYnVBJEDTGtYjqbPZT1SbakhHptGdbBfM/QH1ias3VD2XVGMDefZw55KEA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCncSyWshXMswUlX6DbZjXEeX6AW6NFJs/2xoIv6eyUqgIgOoMo29z46G69OmfM1H8cuppTOFN77Sj+WbW+m1s6bp4="}]},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/format-message-parse-5.0.0.tgz_1475004686273_0.6878554227296263"},"directories":{}},"5.1.0":{"name":"format-message-parse","version":"5.1.0","description":"Parse ICU message strings to a compact ast","author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com","url":"https://thetalecrafter.com/"},"homepage":"https://github.com/format-message/format-message","license":"MIT","repository":{"type":"git","url":"git+https://github.com/format-message/format-message.git"},"bugs":{"url":"https://github.com/format-message/format-message/issues"},"keywords":["format-message"],"_id":"format-message-parse@5.1.0","scripts":{},"_shasum":"9ffc78469e8e27a9cf7baf545fc1c40528b0c43a","_from":".","_npmVersion":"3.10.9","_nodeVersion":"6.9.2","_npmUser":{"name":"thetalecrafter","email":"andy@thetalecrafter.com"},"dist":{"shasum":"9ffc78469e8e27a9cf7baf545fc1c40528b0c43a","tarball":"https://registry.npmjs.org/format-message-parse/-/format-message-parse-5.1.0.tgz","integrity":"sha512-vLZFJbPeqt4LzD6rh9n+45J820xNN2s6ioeeNxssCg9/GY5FKTwuIUPP/twcowzZ0ht6M776FLMVlwmADvAFYw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFBYpdUh1wsTd7iyzi5eel8gfmjuEFgy+GeMNV765Wm/AiBjfYZkXKRLsZmwO+8VaDvRT8QffIQmGnn6+tmJ91dEsw=="}]},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/format-message-parse-5.1.0.tgz_1482967671038_0.10795651073567569"},"directories":{}},"5.1.2":{"name":"format-message-parse","version":"5.1.2","description":"Parse ICU message strings to a compact ast","author":{"name":"Andy VanWagoner","email":"thetalecrafter@gmail.com","url":"https://thetalecrafter.com/"},"homepage":"https://github.com/format-message/format-message","license":"MIT","repository":{"type":"git","url":"git+https://github.com/format-message/format-message.git"},"bugs":{"url":"https://github.com/format-message/format-message/issues"},"keywords":["format-message"],"_id":"format-message-parse@5.1.2","scripts":{},"_shasum":"bc5cf9f7ffd6b221927c4018b21bee551b99234d","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"thetalecrafter","email":"andy@thetalecrafter.com"},"dist":{"shasum":"bc5cf9f7ffd6b221927c4018b21bee551b99234d","tarball":"https://registry.npmjs.org/format-message-parse/-/format-message-parse-5.1.2.tgz","integrity":"sha512-bh7p5ALrHaQU5G/UCPTta0lTXeusNO8/FHzhtcIxIXcynxNv54RRQNyIibOtkMkN7MEmu3ru+0ro0SbbUyKaPg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCxaJl/cRMFJgZkr71I9BgPSiX6hmEFJcEtidlg0G4SowIhAI4JyoaEfhZEh/MzmHlfvJAWvfc6jAwU18W7cn94pbmI"}]},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/format-message-parse-5.1.2.tgz_1490283374634_0.1810348138678819"},"directories":{}},"6.0.0-alpha.0":{"name":"format-message-parse","version":"6.0.0-alpha.0","description":"Parse ICU MessageFormat pattern strings to a compact ast","author":{"name":"Andy VanWagoner","email":"andy@thetalecrafter.com","url":"https://thetalecrafter.com/"},"homepage":"https://github.com/format-message/format-message/tree/master/packages/format-message-parse","license":"MIT","repository":{"type":"git","url":"git+https://github.com/format-message/format-message.git"},"bugs":{"url":"https://github.com/format-message/format-message/issues"},"keywords":["format-message","message-format","internationalization","i18n","icu","messageformat","pluralformat","selectformat"],"readme":"# ![format-message-parse][logo]\n\n> Parse ICU MessageFormat pattern strings to a compact ast\n\n[![npm Version][npm-image]][npm]\n[![JS Standard Style][style-image]][style]\n[![MIT License][license-image]][LICENSE]\n\nTurns a ICU Message Format string:\n```js\n`You have {\n  numBananas, plural,\n     =0 {no bananas}\n    one {a banana}\n  other {# bananas}\n} for sale`\n```\n\ninto a compact format-message ast:\n```js\n[ \"You have \", [ \"numBananas\", \"plural\", 0, {\n     \"=0\": [ \"no bananas\" ],\n    \"one\": [ \"a banana\" ],\n  \"other\": [ [ '#' ], \" bananas\" ]\n} ], \" for sale.\" ]\n```\n\nQuick Examples\n--------------\n\n`npm install format-message-parse --save`\n\n```js\nimport parse from 'format-message-parse'\nimport interpret from 'format-message-interpret'\n\ninterpret('en', parse('Hello, {name}!'))({ name: 'Jane' })\n```\n\nAPI\n---\n\n### `parse(pattern: string, tokens?: ?Token[]): AST`\n\nGenerate a compact array-based AST from an ICU MessageFormat string pattern. If an empty `tokens` array is passed in, it will be filled with found tokens.\n\nThis can throw a `SyntaxError` if the pattern is not valid. The `offset` property of the error lets you know how far into the pattern tokenization was able to go before the error. The `tokens` array will have all the found tokens up until the bad syntax.\n\nNote that the only semantic validation done in parsing is ensuring that `select`, `selectordinal`, and `plural` include an `other` sub-message. It does *not* validate that a plural keyword applies to the locale, or that a style is supported by the type, or even that the type will be supported by the interpreter. Successful parsing is not a guarantee the final message will format as expected.\n\n### `SyntaxError`\n\n```ts\nclass SyntaxError extends Error {\n  name: 'SyntaxError';\n  message: string;\n  expected: ?string;\n  found: ?string;\n  offset: number;\n  line: number;\n  column: number;\n}\n```\n\n\nLicense\n-------\n\nThis software is free to use under the MIT license. See the [LICENSE-MIT file][LICENSE] for license text and copyright information.\n\n\n[logo]: https://cdn.rawgit.com/format-message/format-message/2febdd8/logo.svg\n[npm]: https://www.npmjs.org/package/format-message-parse\n[npm-image]: https://img.shields.io/npm/v/format-message-parse.svg\n[style]: https://github.com/feross/standard\n[style-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg\n[license-image]: https://img.shields.io/npm/l/format-message.svg\n[LICENSE]: https://github.com/format-message/format-message/blob/master/LICENSE-MIT\n","readmeFilename":"README.md","_id":"format-message-parse@6.0.0-alpha.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"thetalecrafter","email":"andy@thetalecrafter.com"},"dist":{"integrity":"sha512-hJ2uC2D7aHPXf8fGvWibQHWg2p1DZSmZ8Q8hvT6qAetoY1g/9kMKV07QVf27ix3KRqCzRhiOyBTym39SxgHoRA==","shasum":"36ca5f3301e7a70e9ba4b4b068e721bfa1b08130","tarball":"https://registry.npmjs.org/format-message-parse/-/format-message-parse-6.0.0-alpha.0.tgz","fileCount":4,"unpackedSize":19621,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1SRECRA9TVsSAnZWagAAxk4P/35rXO03b5D6Ln+f8Iju\nqyHM/EBR29w74nC1krXWfDvVwHM5sDvdUtcjxwg1Qpx7ym/gibUyPgHULVba\nj9hM8WqOeebrN9H34f89NhCXfwrkv/hgk7HRtBvFkhE8wPfrcZfZACyxNGLj\nCrhUIxO+F/U76lkT18lxp9oMO4OhV/uYuaW0GJD+E30cL9QXqu0/N8zEruDh\n3wjkpG34b5XgIYEb3QzTv8AQwFJ1waOdOrVNLVgEUKiR1RpQ6e3wu8TO9k3R\nWZibFZd+X21yiUQ2B8sPGhGWZaaCizDLOblLIAByx24do3dQn+4ypiSpTLwV\nwypwrOkcQHJeC+nc1IXdFPu+mtzknmZUaxSwSXxKuQDyP5JL8najL6Ao5HWz\nHcVuGX6Dog/7cTZUAYrtXZxzYmk8WNwPa78g4pM1YiNvTMrUFcfTMIqkRcUT\nGiJGeGShKmsgsqUQV099lOOop3ls9jMn356MSf7bfP8zr8doKVy+cjYoVlc5\nhGSegHEbCOHf+BmHOZrgyygVtEjzoVtl1sOnW6F7p1muGDsiSmWXoxNWhYwO\nOfncaI4GCUcVF5epWvSmjKo4W4l/SIDxaW6+cmK9fhfiTi01xlXaJ4EOhBcW\nLPlpOrFtLnhQfN/7Mg3F6x+VpygmXriU7pVv3C8ihoLzTP5ETs5BoUpy2gFX\ns8V2\r\n=/MfH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwI7zY4YmDLEuvTVq8uf6lom2sq6jIlYTQM+jX4aZF1gIhAIVSoQFl6kzPf0mYhoil19CKsLeIRZa+tC2r8QKKb7X4"}]},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/format-message-parse_6.0.0-alpha.0_1523917892576_0.8799262875686094"},"_hasShrinkwrap":false},"6.0.0-alpha.1":{"name":"format-message-parse","version":"6.0.0-alpha.1","description":"Parse ICU MessageFormat pattern strings to a compact ast","author":{"name":"Andy VanWagoner","email":"andy@thetalecrafter.com","url":"https://thetalecrafter.com/"},"homepage":"https://github.com/format-message/format-message/tree/master/packages/format-message-parse","license":"MIT","repository":{"type":"git","url":"git+https://github.com/format-message/format-message.git"},"bugs":{"url":"https://github.com/format-message/format-message/issues"},"keywords":["format-message","message-format","internationalization","i18n","icu","messageformat","pluralformat","selectformat"],"readme":"# ![format-message-parse][logo]\n\n> Parse ICU MessageFormat pattern strings to a compact ast\n\n[![npm Version][npm-image]][npm]\n[![JS Standard Style][style-image]][style]\n[![MIT License][license-image]][LICENSE]\n\nTurns a ICU Message Format string:\n```js\n`You have {\n  numBananas, plural,\n     =0 {no bananas}\n    one {a banana}\n  other {# bananas}\n} for sale`\n```\n\ninto a compact format-message ast:\n```js\n[ \"You have \", [ \"numBananas\", \"plural\", 0, {\n     \"=0\": [ \"no bananas\" ],\n    \"one\": [ \"a banana\" ],\n  \"other\": [ [ '#' ], \" bananas\" ]\n} ], \" for sale.\" ]\n```\n\nQuick Examples\n--------------\n\n`npm install format-message-parse --save`\n\n```js\nimport parse from 'format-message-parse'\nimport interpret from 'format-message-interpret'\n\ninterpret('en', parse('Hello, {name}!'))({ name: 'Jane' })\n```\n\nAPI\n---\n\n### `parse(pattern: string, tokens?: ?Token[]): AST`\n\nGenerate a compact array-based AST from an ICU MessageFormat string pattern. If an empty `tokens` array is passed in, it will be filled with found tokens.\n\nThis can throw a `SyntaxError` if the pattern is not valid. The `offset` property of the error lets you know how far into the pattern tokenization was able to go before the error. The `tokens` array will have all the found tokens up until the bad syntax.\n\nNote that the only semantic validation done in parsing is ensuring that `select`, `selectordinal`, and `plural` include an `other` sub-message. It does *not* validate that a plural keyword applies to the locale, or that a style is supported by the type, or even that the type will be supported by the interpreter. Successful parsing is not a guarantee the final message will format as expected.\n\n### `SyntaxError`\n\n```ts\nclass SyntaxError extends Error {\n  name: 'SyntaxError';\n  message: string;\n  expected: ?string;\n  found: ?string;\n  offset: number;\n  line: number;\n  column: number;\n}\n```\n\n\nLicense\n-------\n\nThis software is free to use under the MIT license. See the [LICENSE-MIT file][LICENSE] for license text and copyright information.\n\n\n[logo]: https://cdn.rawgit.com/format-message/format-message/2febdd8/logo.svg\n[npm]: https://www.npmjs.org/package/format-message-parse\n[npm-image]: https://img.shields.io/npm/v/format-message-parse.svg\n[style]: https://github.com/feross/standard\n[style-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg\n[license-image]: https://img.shields.io/npm/l/format-message.svg\n[LICENSE]: https://github.com/format-message/format-message/blob/master/LICENSE-MIT\n","readmeFilename":"README.md","_id":"format-message-parse@6.0.0-alpha.1","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"thetalecrafter","email":"andy@thetalecrafter.com"},"dist":{"integrity":"sha512-w4pizrA4wAPNzlGTitci13SmVN9i6oER0f42mfqQci+bWGaciHuArqmNsq0tntQUL+QL+ZIB5B5eZcPbc9DQBA==","shasum":"4afec97136279bbcc8fee2ebf3b584a6a04f1312","tarball":"https://registry.npmjs.org/format-message-parse/-/format-message-parse-6.0.0-alpha.1.tgz","fileCount":4,"unpackedSize":19614,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa1hj/CRA9TVsSAnZWagAABZcP/2cfWjG8p1e6kdABORJA\nXON4U+ztdCVPhr48OqUnRAsIjgLzjRWOygIiT3ReYNuUcAVfblcr1XYjf5WL\nyn0LwRdrygVvO+f/RKndU9kIaiOgORha8uQllQ7gJ3MHOMt+3pMeJYsZBhUb\nNFgv8KSnpzURDPKngo+rXheB+3rEH+vj28CJK1c+jV+0HHgluOk5Aq3bn9Jg\nvbPvZzDVmwwjj2xb8ZpO5k8pbUKOnibg57/NGoV0yyDDAN2vb2nv8a4JF3V+\ncr0NAXoVjjmTOy82nWeu8vOC/1iXNB9Stnd3wn/OjiqvgaUvAl0r6vh6teRy\nGvQZinpNi0SglGG76GRkUA+eymqoFLuwrkfSxFesIOsPds2vN9pkLmHmkCbE\nHxQsCMtSNhhR5hFGHomD1MM3aP7+wyy7xxwwqj2JSnEGshKwpPK5Ieibc71d\nMP4bXXMyhEfNTe5MCCwzi2CT3Yc99cXULFrQFPx+nE6UEir92oNECNMAanf3\nfL0z8bGmCqnejacWrQwbxTzEqrXKVrH7NXimlE5uawPi1s1rXq0JQJumhrW5\nbYf64EhXA3W53HCprmVKvEanJUENtVOZvzAyong6V9t1vVlzGefIUp7YbvyD\nM5Mv+HQAZjWL5x3vwsa2KRgqb98oLYsH4Ww/qFdQSiJx2iHwq+DyklLHn+iW\nNHG1\r\n=ni0Y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDBo5Fnz48SuxJKUQDjxl8eWI7QNHN/6enibeQkjba/9gIhAILwrbKZrOvtS4FS25xJNltvFUiEPU2e/iJHZrgf52br"}]},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/format-message-parse_6.0.0-alpha.1_1523980543367_0.7194728397115819"},"_hasShrinkwrap":false},"6.0.0-alpha.2":{"name":"format-message-parse","version":"6.0.0-alpha.2","description":"Parse ICU MessageFormat pattern strings to a compact ast","author":{"name":"Andy VanWagoner","email":"andy@thetalecrafter.com","url":"https://thetalecrafter.com/"},"homepage":"https://github.com/format-message/format-message/tree/master/packages/format-message-parse","license":"MIT","repository":{"type":"git","url":"git+https://github.com/format-message/format-message.git"},"bugs":{"url":"https://github.com/format-message/format-message/issues"},"keywords":["format-message","message-format","internationalization","i18n","icu","messageformat","pluralformat","selectformat"],"readme":"# ![format-message-parse][logo]\n\n> Parse ICU MessageFormat pattern strings to a compact ast\n\n[![npm Version][npm-image]][npm]\n[![JS Standard Style][style-image]][style]\n[![MIT License][license-image]][LICENSE]\n\nTurns a ICU Message Format string:\n```js\n`You have {\n  numBananas, plural,\n     =0 {no bananas}\n    one {a banana}\n  other {# bananas}\n} for sale`\n```\n\ninto a compact format-message ast:\n```js\n[ \"You have \", [ \"numBananas\", \"plural\", 0, {\n     \"=0\": [ \"no bananas\" ],\n    \"one\": [ \"a banana\" ],\n  \"other\": [ [ '#' ], \" bananas\" ]\n} ], \" for sale.\" ]\n```\n\nQuick Examples\n--------------\n\n`npm install format-message-parse --save`\n\n```js\nimport parse from 'format-message-parse'\nimport interpret from 'format-message-interpret'\n\ninterpret('en', parse('Hello, {name}!'))({ name: 'Jane' })\n```\n\nAPI\n---\n\n### `parse(pattern: string, tokens?: ?Token[]): AST`\n\nGenerate a compact array-based AST from an ICU MessageFormat string pattern. If an empty `tokens` array is passed in, it will be filled with found tokens.\n\nThis can throw a `SyntaxError` if the pattern is not valid. The `offset` property of the error lets you know how far into the pattern tokenization was able to go before the error. The `tokens` array will have all the found tokens up until the bad syntax.\n\nNote that the only semantic validation done in parsing is ensuring that `select`, `selectordinal`, and `plural` include an `other` sub-message. It does *not* validate that a plural keyword applies to the locale, or that a style is supported by the type, or even that the type will be supported by the interpreter. Successful parsing is not a guarantee the final message will format as expected.\n\n### `SyntaxError`\n\n```ts\nclass SyntaxError extends Error {\n  name: 'SyntaxError';\n  message: string;\n  expected: ?string;\n  found: ?string;\n  offset: number;\n  line: number;\n  column: number;\n}\n```\n\n\nLicense\n-------\n\nThis software is free to use under the MIT license. See the [LICENSE-MIT file][LICENSE] for license text and copyright information.\n\n\n[logo]: https://cdn.rawgit.com/format-message/format-message/2febdd8/logo.svg\n[npm]: https://www.npmjs.org/package/format-message-parse\n[npm-image]: https://img.shields.io/npm/v/format-message-parse.svg\n[style]: https://github.com/feross/standard\n[style-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg\n[license-image]: https://img.shields.io/npm/l/format-message.svg\n[LICENSE]: https://github.com/format-message/format-message/blob/master/LICENSE-MIT\n","readmeFilename":"README.md","_id":"format-message-parse@6.0.0-alpha.2","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"thetalecrafter","email":"andy@thetalecrafter.com"},"dist":{"integrity":"sha512-Yd8W7AC0C0B28TqUsFi6OP7mCPxyI0YYgei5ZwQ7R9um9pqJrhVyZbthsuMFQlC9fIN5LiKIe+/RpwwE+YT8Vw==","shasum":"c998ee17bb09503e2e06828c3c4e953eccbaa9c0","tarball":"https://registry.npmjs.org/format-message-parse/-/format-message-parse-6.0.0-alpha.2.tgz","fileCount":4,"unpackedSize":19614,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa18SMCRA9TVsSAnZWagAAKrcP/AqChiIu41RIlOH+1dcp\nFpGoHQP8pa/iIls5mIhihjU+tKEothQKfryzoik1q9H163CrNEs9LGLz9O7Y\n0tCcc0L+nbO8cAPxBVcgDpDOAfObbJpLwHXFddAOI1kzMRCUwxLTbhUFDSkV\nrRrOTAOBd1+zV3qo4Pj+NwrJcuKEpJ7blymOzojzKB0Mu5R8VEyVjoxLA8UY\nFukZxq1SFtDM1tX4SyA1kw+VqChYxmBSXlDqnaWXcr2TA8m/rHdfjpzGUqwQ\ncXPrd9RahaO4O4pdAvSbLOUd0WYHjxS87LeTb62rBYOvD3RPKa5xgpwWDVm8\nLx9U0l/WFGRe6OCvHChD7GuOIogjjMdNlDZBWTzdcXEnhK4gyd2qdLZICK8n\na60pqzjA7Qr+wIPzy66dI22MahOrQxquzlZNJLOtpdcU7sKWFick4/chk6ND\nRpdI4qFQbQfVzlLbx4LvuDJYX2NZdNstau7wUaW5alOg9L+VYqM1+I3MLvJ9\nIqarngs+nFo3M0tTCrMCrse66RMRwl06iEu90wed5MdISm4PyCM5oaDz9faP\nqVLGEVnj+jue6qFtP8uIvULHxeo8yaBBXVCmfyZ7cRKCbINDxyt9KijCjhZj\nFhXq+uraw+r9+Ayy2iZw6AlLbSzJP9yk5wGZ072/yNqFoDbWHhioIJRaqhYu\nVBkE\r\n=epj7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF8pB9J6nWPVx0PHtDQlgDlFYljUzrLgptLLrafTkJB4AiEAogBRVBHvP0sh4+0QRTnKzAu8yd9bPOYbDA2pPzAMaV8="}]},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/format-message-parse_6.0.0-alpha.2_1524089996173_0.17303151884336687"},"_hasShrinkwrap":false},"6.0.0":{"name":"format-message-parse","version":"6.0.0","description":"Parse ICU MessageFormat pattern strings to a compact ast","author":{"name":"Andy VanWagoner","email":"andy@thetalecrafter.com","url":"https://thetalecrafter.com/"},"homepage":"https://github.com/format-message/format-message/tree/master/packages/format-message-parse","license":"MIT","repository":{"type":"git","url":"git+https://github.com/format-message/format-message.git"},"bugs":{"url":"https://github.com/format-message/format-message/issues"},"keywords":["format-message","message-format","internationalization","i18n","icu","messageformat","pluralformat","selectformat"],"_id":"format-message-parse@6.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"thetalecrafter","email":"andy@thetalecrafter.com"},"dist":{"integrity":"sha512-QpbkiotfiXOrKIFp0cOwA3W9dLZ/bmJLZZHdtk9xIXHJa1J4mUPy5zVpaE9Rlro8/uua9AfYXeDtdZF9Y7YjkQ==","shasum":"877ec1840a49154684d3f102e2c3c762e56f411f","tarball":"https://registry.npmjs.org/format-message-parse/-/format-message-parse-6.0.0.tgz","fileCount":4,"unpackedSize":19606,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa2O6ICRA9TVsSAnZWagAA5b0QAJELGupwuliHNskZOyo0\n5YqG/5R/Cn136CUt5Fh/u2WySqcF28euIGJYChyV7tIACgcwySscDnz4lxRi\n7pf1BX9Imxa+Yka8FW/69RWyS+gjue2FmeuybUNuibSP57V+3C0IrOkyJPX+\nI0cPX8x0k8NmuiMzSiFpVWL93mZvAUWuSeDLxKfSvT/8hx3/YbXuWtXsud2x\nkizHgYVdPnkpvmzic+wyLVNz/dRPvuWSGH45ZnNVXw7wrVMyg6b17OaCJJZ7\nY4y99E80pkjUVqiWcA/WE1DnNSnuvn9IGaeEh2gWtZJnyThX0NP/AnLnCJhy\nnOok4GV8Ca+OTBWlQm52ei+m/CgkqcyBxdIwTil+gH+mpteq/Xp28ZaA741j\n8xZO4iDJ+T7d9LOr8YeYBYy2tXcZZNboZZRsggah3b3ZkDkxpKWuAL9Fc+HQ\nKtSCFHSQwZg8ET5o2U6aqUTfnbLRuZWeHE6SnHzE5xnKFCvD3XqOCNyRIDg2\nl0GSMwP4WzQi65X5xyW2OgOxISDA9ljt2Y904jpy5yku4+Hrz16sBAryqzBA\nC/fbjRYgK2K8PtbgZ3CkNELM/XKZI8SzCCwqw15Z/K3ZLZnaMt+Oak+y9Wm0\nVpzu9j5fBtRLBafSwUA48rZu4k8vuSQ/Jegn02WGPlpjQnThfKTQcZYnfxh3\nBMso\r\n=cxaf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDkE23yHnsdDzygjbEs5rB2amnuemKJ6lO+nkjzk6V7SgIhAOoMHGlny9zHlDeYyrPRsOzxKMrw+pw/aWcnjKWkmhHh"}]},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/format-message-parse_6.0.0_1524166279765_0.8511787612236643"},"_hasShrinkwrap":false},"6.0.3":{"name":"format-message-parse","version":"6.0.3","description":"Parse ICU MessageFormat pattern strings to a compact ast","author":{"name":"Andy VanWagoner","email":"andy@thetalecrafter.com","url":"https://thetalecrafter.com/"},"homepage":"https://github.com/format-message/format-message/tree/master/packages/format-message-parse","license":"MIT","repository":{"type":"git","url":"git+https://github.com/format-message/format-message.git"},"bugs":{"url":"https://github.com/format-message/format-message/issues"},"keywords":["format-message","message-format","internationalization","i18n","icu","messageformat","pluralformat","selectformat"],"_id":"format-message-parse@6.0.3","_npmVersion":"5.6.0","_nodeVersion":"10.0.0","_npmUser":{"name":"thetalecrafter","email":"andy@thetalecrafter.com"},"dist":{"integrity":"sha512-5sIY58v4Jn8jUrMEwTwaR3hsiCRrs0yVp9if1uSntC2XOig7JA599x8+ul+GD48nFrUDKtR6E4PuxyBa4oQ8eA==","shasum":"809ce7eeabc909d46e7a4414e5d8dae1120b4c83","tarball":"https://registry.npmjs.org/format-message-parse/-/format-message-parse-6.0.3.tgz","fileCount":4,"unpackedSize":19545,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJa41zhCRA9TVsSAnZWagAAur8P/ibzSOK/N7mLl5bEoMem\nIFO7duhntshlUpS5+CPvMHjwFHPxU+FnjKfha1R2v9CHaE7oe2EwZnNaE41j\nX1jLRMhuZrVvNwU8z7reDfnzUmM2t8FXEPgstjSl7GgDXzT/y3H3sZ8VahXk\nEBas3BNfS/nQf4WIZodVTZ+eonSGYknxrurIaSpmRtJGdCfSxPaCRwy1CMsf\n1D/s5jDQzkyoT4APc9Eiw67UKMlWWS/82/ioTNfPxkMApOF5xobxZMlqfx9u\n/cJ2xx/0isHuQOlBwlWfxe4CqQUXDzuLAZBtCjLGliuyTwLhG64Gn3IrLrD8\numxJSv6kPMjaB1pdKi4JriuI+quh6mBz4gZ3wl2SPPNF/QA8iTMZb+OBG7Xh\nqT+tgGiVQE2D1tpiK3S9bEloY7T92Mpyjj5GLxFooSB967IPBP0vAN5T1oVS\n3psF3YEWXt4gker3KoTDU38PsrxWQ4avq+l2bm1TLl3ecplkqzm4Zp5Mas8O\nEXCS8ueKWHZCUYElT0xMFgjo2RMnpZ+FwYM7Uy+wkYqlZP6eyrc85Ivu92NH\nQwSk1HnVOI7xW4rl3pvpbE5HVcLS46JNmrFarA3d9vL+FKkstVNXRW+713pA\nNKDLeaaekpNGT13BXUUa1PLWvbVO1jQCcKurXuNSUT43RbuUt96jDZGWDlvN\nVC3r\r\n=a9U4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG3g/47687/sL8Rp43fQQuBS/m6r7r+ApERMb6vU0MZDAiEA64WjnY+DIFjSssoxOiW3QDRLfC0PQO6ub+Ii1UbDIkQ="}]},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/format-message-parse_6.0.3_1524849888977_0.9783069106257158"},"_hasShrinkwrap":false},"6.0.4":{"name":"format-message-parse","version":"6.0.4","description":"Parse ICU MessageFormat pattern strings to a compact ast","author":{"name":"Andy VanWagoner","email":"andy@vanwago.net"},"homepage":"https://github.com/format-message/format-message/tree/master/packages/format-message-parse","license":"MIT","repository":{"type":"git","url":"git+https://github.com/format-message/format-message.git"},"bugs":{"url":"https://github.com/format-message/format-message/issues"},"keywords":["format-message","message-format","internationalization","i18n","icu","messageformat","pluralformat","selectformat"],"_id":"format-message-parse@6.0.4","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"thetalecrafter","email":"andy@thetalecrafter.com"},"dist":{"integrity":"sha512-yKuazIexQpIMQjUA+sp7WeYdHXJ9ar7rdhb6aX4e9QV1Z3sqmX6Bbe83m66SK5MX/zQkxbsnKfpXRvBQi0xzeQ==","shasum":"161f020ba6cb4606e6fe9e35a327992f66edce56","tarball":"https://registry.npmjs.org/format-message-parse/-/format-message-parse-6.0.4.tgz","fileCount":4,"unpackedSize":19508,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbFurVCRA9TVsSAnZWagAAsFsP/2zKKlIoy7ue2eI0CHfb\n4PAlCTLIl2P4+eo7UgBkiI4CFtqzWujBc52n+hsnqnlYj1SsyVjuYW1sAx6F\nwB3U45Rh6l/d7/x+3iAMwFUlm6L2ZBsV0yN1Z8Zy24pLJ3CD2CIt9BJF1iLo\nRCTIaW6uATFOX6cmP8gyeIPQp3aQH2RqkxmkRJc7q3pjE9+IDPStBJKlBiQg\nAXrdTc63SbW6qpo5wHrpyJ47O06t0c8caslcz+c0IjVH93cya9HknokBEwlp\n3i4M5QgCeN1Sjvjwczu1TJohfUmT364iGJ/Mz4R+1sBJ8iUP8bQCFOwZF3Ma\nfuovni+9fMBs83uVSXkXNyAR53Ismi9q2BPDdLoAMXUD7ei2QPbYPqVYvEdA\nnebd7oMUZWbOFcczyaDsdehcP/NT3a2dgb2Gr2p878k6YF9D1/hoFr3/P/wk\nv88/DFOZrw//14Jy99n3VjJSDuKSKU9dkFvC3vG1d8BDXHqA7FOv/GhUTq2p\nvh53dqhx4/rXur+a6i62zikpeO3BBwNnpxHbhrESa1K/sAg85VUMNbtuuNzp\nRoEDI2ehRF6E5kvFJUx1hmpiaqnRZOIYi/2L4sUUyIwgKPQ8Es2DoFXmUkFt\nGnjHqnkFqCELG9Aq09cq7XyiauRhD18uL0oImV80LhbPUMzb6bUcrP4YvHEl\n2qj7\r\n=zUMm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICl+kqc8abrFj/nCJZKzhNiJCOYXYwVhkwtlsnFeYvJ2AiA+5iZmNCeyVig+KL/wdV9vCsPWi8DL43/7FHHAg+IL4w=="}]},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/format-message-parse_6.0.4_1528228564821_0.07884896746181003"},"_hasShrinkwrap":false},"6.1.0":{"name":"format-message-parse","version":"6.1.0","description":"Parse ICU MessageFormat pattern strings to a compact ast","author":{"name":"Andy VanWagoner","email":"andy@vanwago.net"},"homepage":"https://github.com/format-message/format-message/tree/master/packages/format-message-parse","license":"MIT","repository":{"type":"git","url":"git+https://github.com/format-message/format-message.git"},"bugs":{"url":"https://github.com/format-message/format-message/issues"},"keywords":["format-message","message-format","internationalization","i18n","icu","messageformat","pluralformat","selectformat"],"_id":"format-message-parse@6.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"thetalecrafter","email":"andy@vanwagoner.family"},"dist":{"integrity":"sha512-JgzClEKeDTTSKQgje0Ee2EWVj3u1/IQok/mCRX7YeZXm6uXFS25QMJxfFiHxc1+jMMzz4A53SlS0NV18YaRJvQ==","shasum":"97b7231bc1b7c0f4f21f0cf5d9f3cd85bca7adbf","tarball":"https://registry.npmjs.org/format-message-parse/-/format-message-parse-6.1.0.tgz","fileCount":4,"unpackedSize":19508,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbh1ToCRA9TVsSAnZWagAANSYP+wUOhPO3ascMQz531ALX\n7A8sWLuPtsXMuvpqRGNKAKvroj0HvAvapia3OBKXdoXPT2PrKlWoQEFdQC42\n0GM1iXtWOAAcVO4WStBIQx3L7u3TXX2LJ01llYzq1li0KDTCuB2blcB/YeuH\npXRgydYoYaJ1wkLRSde7yVT2EEONB49igMg1eV71yVErrazZT6Nx8Pip2rum\nybhB2ELvocJ9aZpnFYxRW4nLVWKWL9od0+zSq8PJ4+g7cjH0MHbw/z2RAHfZ\ngalm8nNH5ehuwsbEzxB8j0Nhax4n++Inb1MxMirItYrimviJPCNXtmGu4UOk\nWxGj/fNTO6X+9xg9obJn4wb9aB4tgyUHonw+YbrQ8o4TCMB4751Rk6sHhflp\nVPp+YZIKMf2rehwoek3V7ov2UB/fBdu86o/mtq8PGluzYtNzM9GzR+CeMx/q\nuuSBtT/OHm4tWWhIB3MtndiVSYycbmmlWkYIJSe/gU8svwoyCjEUE2QroCgN\nZPZyd6kbnMQWyfkhlwBueNpF4aW9J3Gq1hJwtpIyhzbAC00W3HqGDkPB4s9X\nACUsbaCV/bsOYUR3n4FRm12c33dEvoBLneq3FxUJ7uGLNHHjkOhEm8Rj/D1Q\n7Q5sRpm48kpR8Ro6KJRm3rq1W9tSVJooLPd58ZKy92sp3C6mVVniTdiSyvnQ\nUOsQ\r\n=L8wu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGqj6woyjs+9kzoupkYg9GP7Z4rEnMy2FSOazk/42e3WAiEAnHrCAc9fFQb0/aUktacPc6UU3G2Zmtno+Z/rN9bJrtY="}]},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/format-message-parse_6.1.0_1535595751513_0.4121944101170969"},"_hasShrinkwrap":false},"6.2.0":{"name":"format-message-parse","version":"6.2.0","description":"Parse ICU MessageFormat pattern strings to a compact ast","author":{"name":"Andy VanWagoner","email":"andy@vanwago.net"},"homepage":"https://github.com/format-message/format-message/tree/master/packages/format-message-parse","license":"MIT","repository":{"type":"git","url":"git+https://github.com/format-message/format-message.git"},"bugs":{"url":"https://github.com/format-message/format-message/issues"},"keywords":["format-message","message-format","internationalization","i18n","icu","messageformat","pluralformat","selectformat"],"types":"types.d.ts","_id":"format-message-parse@6.2.0","_npmVersion":"5.6.0","_nodeVersion":"8.11.1","_npmUser":{"name":"thetalecrafter","email":"andy@vanwagoner.family"},"dist":{"integrity":"sha512-j7MAUobWTufhdcCsLbqhH2f/qFGlH5vEtw1dEsiWeoSB6hnkopo03YTQZ6+atSbQecMH11cDQ2oE0mu3aoDbuA==","shasum":"d84c008efb9828b234cf9f7e59a8e966a09c0f27","tarball":"https://registry.npmjs.org/format-message-parse/-/format-message-parse-6.2.0.tgz","fileCount":5,"unpackedSize":20737,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbmSqLCRA9TVsSAnZWagAA4cgP/RmijcviviO9aFHNNCkz\nZvB6v4juAN4CViZdmcF8wyxyQkG+ixehr5ClmMRRAltj9tJrUwoUdsyhrQtb\nXnyp5nulyEPRr7thK1ktZLUHdUpcjTD2ezh4f1cWnqGGfIQvXiI7vmCtaE9C\n7GR9KWTmKSQDYsraUccOxIZNkO2Wmh+8B0WjSUKP3uFtmBd3knbiJAqO6UUY\nN1cLqabepY84nTuUvtISnf4RlN19WehjXDT/YWKqc4I3I+gIhJr/rOG6f5V3\nsYzQND9AOQXmO/6pSM6KAvrfxDEzWNF1P7FkjfdbzKp73K8LpldnNXwrnXST\nNk7l78a2AelIUEQPHG8c9elhQwAe5tXWKZTmuNbX6JiW6uZVXHRMl+VqDVQX\nr7/dksr5369G6DAborHco/usCv4TObNQD6lEBgRbrOyASG0tkoCS1phNeV+u\ntqfBk3uGAoLZ4x+QOXmCLOlg8kg0RALnbgsJqTEuhFLwZknMO4PTrFkWY1lU\nSzVJu0h7B5Vn9h6LPAdZvTyGJMeh7H28uGqcBcCbI4+janTTz6fd61fc/Fvb\nxwODttStB29EebHUOHE3o2uxL0u2I9x7+Ql+eKNUmgerYiS3j02nWrJ2MjbK\nik/fwBQ9wNhqDDM0NLG15IZrb0yI11CxNpsglf2Msw9/YPiSe3jpvaKlVNYP\neBmV\r\n=sYNh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCWQWnEE0M7iunRyzbh+9juMRwxdLKPjEgA2d4ZW23MXwIhAIpX9XidDBVznrVPVe0f8VghA754XM0BNWRqvxI9ESSv"}]},"maintainers":[{"name":"thetalecrafter","email":"thetalecrafter@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/format-message-parse_6.2.0_1536764554904_0.029272442932945175"},"_hasShrinkwrap":false},"6.2.2":{"name":"format-message-parse","version":"6.2.2","description":"Parse ICU MessageFormat pattern strings to a compact ast","author":{"name":"Andy VanWagoner","email":"andy@vanwago.net"},"homepage":"https://github.com/format-message/format-message/tree/master/packages/format-message-parse","license":"MIT","repository":{"type":"git","url":"git+https://github.com/format-message/format-message.git"},"bugs":{"url":"https://github.com/format-message/format-message/issues"},"keywords":["format-message","message-format","internationalization","i18n","icu","messageformat","pluralformat","selectformat"],"types":"types.d.ts","gitHead":"2ef1e701daa61ca6008651ced62d9ded8c127c0e","_id":"format-message-parse@6.2.2","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.3/node@v10.16.0+x64 (darwin)","dist":{"integrity":"sha512-1vC00ErsBvjAmb/qqj0N4dl+AjbxP3isFfzcKYw9QG5hHerZVN7cmrLPYgz9XWV9LpzqFAWgIQleRuoLxNmpOQ==","shasum":"cf823fc4e6c7a9bb8e0b9ebfa8edc90d2db678a2","tarball":"https://registry.npmjs.org/format-message-parse/-/format-message-parse-6.2.2.tgz","fileCount":5,"unpackedSize":20781,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHUbxCRA9TVsSAnZWagAA4ScP/RJIOV3e8wNP1WrR+Bt3\nXHN8f/jVzaKGtLhcavjSOJp9nTY3t9ZCLemj8G9+pNQ3UVLgCNgNYuTPBSwK\ncuQTyOY040qPyRWDTL70WpTGDyR+8+8DitPJ6mjVFkNrvB4rFodC4bW6ZNnl\nag+NUo+rzJB+4AYi4c7yAPo7DpL2v2h66NWwqrz2ZWJtz//ltgpOYVDYqi7q\nxaVqoDYImSw/yRBpb2WYWhIrzQOnqrHfB58qMYEOPOFguljKV/J9T5WQHbp9\n5neT0L7hqEiLxfUktb6Rz/8Shp9X76bpX0V+bF51ZgnTsTgOHGSG1qP15/wh\nrwZekdbYnNqeoZboDhVRYmhmYQeYebMYkskTZS+RpHCMh7OWOJsLs4HYUH4Y\nZpbsotxm2eZpPKBvM6RGiZMcZnm7soqmteejVntvtHiQuPZRxlWrk7X2Ttwm\npqo7bZMqAz8cXfAJ8u6804qFQRcu9bFCQlMgvF0OW27fCIyV+YvtdNQP5kpv\nF6a2/coCfVrBVzhYtAWPn3WZ46Jn2YF+3GXkx2DKlWEhiTg+5oBUMqvxvAzK\nNU9ttVbJS2ajppPTust0h6Y7cx3yWogN58Vj/MOFEc2yARV0w8PeJocXD72v\npWEe2IxFZYy5TAq/l8HeBa4Tnp4Ex+8SZoGdnaud6xzwtqYJidEkj2DFzChc\n9rga\r\n=JjSS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBUCHq5fArtCfUkp44Z+ARldAr3b2JB5eJXtEPjPm/8oAiA4jKh39JcV5Al7fjqAKc3k/Y3cbYJU+0zvV6c0lNZjQA=="}]},"maintainers":[{"email":"aaronshaf@gmail.com","name":"aaronshaf"},{"email":"bjohn465@gmail.com","name":"bjohn465"},{"email":"brent47@gmail.com","name":"brentburgoyne"},{"email":"andy@vanwagoner.family","name":"thetalecrafter"}],"_npmUser":{"name":"bjohn465","email":"bjohn465@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/format-message-parse_6.2.2_1562199792457_0.7201499585349396"},"_hasShrinkwrap":false},"6.2.3":{"name":"format-message-parse","version":"6.2.3","description":"Parse ICU MessageFormat pattern strings to a compact ast","author":{"name":"Andy VanWagoner","email":"andy@vanwago.net"},"homepage":"https://github.com/format-message/format-message/tree/master/packages/format-message-parse","license":"MIT","repository":{"type":"git","url":"git+https://github.com/format-message/format-message.git"},"bugs":{"url":"https://github.com/format-message/format-message/issues"},"keywords":["format-message","message-format","internationalization","i18n","icu","messageformat","pluralformat","selectformat"],"types":"types.d.ts","gitHead":"7747f5533981f7a1a3cc83714e8ac02bafd9d8c4","_id":"format-message-parse@6.2.3","_nodeVersion":"10.16.0","_npmVersion":"lerna/3.13.3/node@v10.16.0+x64 (darwin)","dist":{"integrity":"sha512-ZSL3nZ0zaDktDAGwkoGJ439rS9ZfTcMOrWAVav9BOAoKs0qE2Ozal2H6vVJOuIdDhwaJuFqvJ7fdRSE+qR5oNg==","shasum":"1393d9e2bc598603a36be992379781a78d1b6c08","tarball":"https://registry.npmjs.org/format-message-parse/-/format-message-parse-6.2.3.tgz","fileCount":5,"unpackedSize":20781,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdHlnPCRA9TVsSAnZWagAAM84P/2os2sYa502VCyFJIU7J\n6IoY0IPrPM3EXfMg+2gSD4qXen1QeZMM2RX7a39J4gw9HggLvJDzPnHalCkw\nKYI86nhaNOQ7ibq1QTsu4xwVMSDB05ef6D6uZvLZxHc+Y5fQOFJG+syoafJm\nAQNMgbCfAzXY5dTa/F/hv2g8rcZNNLQAK0YT40MiS93U5sQjygi5+CWxdlIb\nVJeMzg+U1qkwoy+hrOf7l9oKaGkdZ3lZJfKXAj6LeKhvo8fA36zYB21+8qPm\nEmiBVAuJJgSh3vjUPWQd/fdq4onYQWj2wdf5EJ65MGGyzdfXLThIyWgRcyCb\nE8LF099M+rx/309cUpWQW2R3XTY/VgB75X1xDqvMMVJ2oCiSX18kjpkgr+a8\nZ+CHDpyYx9tkS77/V7y/eKF2Wx8duxy/1Wk5ziZtpk0nivXgzW0H9ZO9Yxh+\nOg6YSVM+WurwCQi/fHj929XdGxNZGIKJzceqOjyGAQYlYAqSBi3ZZToQt+iB\nyELCjmfODuWNlp+ZqSZ//Tluotij7vKKXZL3a0HfX3r80ua+iB70H8/Z9adx\nsbGsF/utF0Wr1qhk5oVEaYQ1dBgK5l16rGfp6Z153S7qSRW2ydp0JR/vuogT\ndVBs02SCRablhqCf3QQ3akEhuLb3/v10AYoNoc7ix2a4Jb7eZGWcRW+IEO5D\nMHhd\r\n=cnkA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+CoE3aIkWw5mwQkY+EXMKPqP91bD2nzrvFlptOjaXAAIhAKW9FOb4W/8QFrHrvv2Ya/DgKZwPW6Qca22wWMZzTlSn"}]},"maintainers":[{"email":"aaronshaf@gmail.com","name":"aaronshaf"},{"email":"bjohn465@gmail.com","name":"bjohn465"},{"email":"brent47@gmail.com","name":"brentburgoyne"},{"email":"andy@vanwagoner.family","name":"thetalecrafter"}],"_npmUser":{"name":"bjohn465","email":"bjohn465@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/format-message-parse_6.2.3_1562270158636_0.07208721263791662"},"_hasShrinkwrap":false},"6.2.4":{"name":"format-message-parse","version":"6.2.4","description":"Parse ICU MessageFormat pattern strings to a compact ast","author":{"name":"Andy VanWagoner","email":"andy@vanwago.net"},"homepage":"https://github.com/format-message/format-message/tree/master/packages/format-message-parse","license":"MIT","repository":{"type":"git","url":"git+https://github.com/format-message/format-message.git"},"bugs":{"url":"https://github.com/format-message/format-message/issues"},"keywords":["format-message","message-format","internationalization","i18n","icu","messageformat","pluralformat","selectformat"],"types":"types.d.ts","gitHead":"ece4dfacbec6af56e98897a3acbf0c99c64c2ed2","_id":"format-message-parse@6.2.4","_nodeVersion":"16.9.1","_npmVersion":"lerna/3.13.3/node@v16.9.1+arm64 (darwin)","dist":{"integrity":"sha512-k7WqXkEzgXkW4wkHdS6Cv2Ou0rIFtiDelZjgoe1saW4p7FT7zS8OeAUpAekhormqzpeecR97e4vBft1zMsfFOQ==","shasum":"2c9b39a32665bd247cb1c31ba2723932d9edf3f9","tarball":"https://registry.npmjs.org/format-message-parse/-/format-message-parse-6.2.4.tgz","fileCount":5,"unpackedSize":20711,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiDooZACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmppdw//b+jXDyvb5OUORBukoA6k7rLLAAJoDCQToaSaZXoUbDZo8+TZ\r\nlTqQLRnCLnQkvopDCegKYQ75rpaZXwiP7NMxtOLGTCLXZu1pgsyazahvcK2G\r\ndc5Yyzr8MbedxgbSPXeI5UXYcHCXoatQIBa5jB5qMi4xnGWGCgx9ONWxWAZb\r\nVIupLRiOFVgEyfG/8VgtiXeulRJZ9+mCCdWOl5ZUFy9K1VM4nDPH5hP080La\r\nc6rGXi7+c1R3Iv/wlwb8Rz4uceidI9L+QQRsizGrMP2Qlz+oFukuWz1p4Dl7\r\nDTg63IWfxYbgMVTGqZIy7zIGOcrXWjOWw3H4gbEtF53z2i4feU/AamLJx0zS\r\nxm4+Va91luOrzKHnO2vS+kJlZHJQg/LCzrJBsTMI7UdYmKqYBmoNURBW+loK\r\nbB1FN23Hqn6467x5bnI9qmrscCyJ5piCfkInQZIOdhxSwHB3CfBdouHfJOqQ\r\nmoHI1wqe8h7NsTyDMTpoJKO8j4Sd0o2+bekenG2/88VUEP0tYwQRRmymdFT3\r\nFLo2jG2Fv5nKX1sQDz0h1WsUjl9zNKkKPi9ffixp99bd3cOgbBtU4OZAw4wP\r\n0eLXTrdOAjMW/zbcJni0Hvj736pnBtVZVcH+kwU9KM8MNIkQyVtAg7DSHLeO\r\nvSYU0zaaSDOeGPPNF6D8PK6GV6Ul9dmuuVk=\r\n=6jH1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAz2SZLCLbEqPCfunTTKJeL3u5wa1kMMbeWTqNb1M3d5AiEA7ULqmi464GLGuTx3H5ExG9Wi5nA2qUKr9F1q64UAiCI="}]},"_npmUser":{"name":"thetalecrafter","email":"andy@vanwagoner.family"},"directories":{},"maintainers":[{"name":"thetalecrafter","email":"andy@vanwagoner.family"},{"name":"bjohn465","email":"bjohn465@gmail.com"},{"name":"aaronshaf","email":"aaronshaf@gmail.com"},{"name":"brentburgoyne","email":"brent47@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/format-message-parse_6.2.4_1645120025713_0.7839099677573309"},"_hasShrinkwrap":false}},"readme":"# ![format-message-parse][logo]\n\n> Parse ICU MessageFormat pattern strings to a compact ast\n\n[![npm Version][npm-image]][npm]\n[![JS Standard Style][style-image]][style]\n[![MIT License][license-image]][LICENSE]\n\nTurns a ICU Message Format string:\n```js\n`You have {\n  numBananas, plural,\n     =0 {no bananas}\n    one {a banana}\n  other {# bananas}\n} for sale`\n```\n\ninto a compact format-message ast:\n```js\n[ \"You have \", [ \"numBananas\", \"plural\", 0, {\n     \"=0\": [ \"no bananas\" ],\n    \"one\": [ \"a banana\" ],\n  \"other\": [ [ '#' ], \" bananas\" ]\n} ], \" for sale.\" ]\n```\n\nQuick Examples\n--------------\n\n`npm install format-message-parse --save`\n\n```js\nimport parse from 'format-message-parse'\nimport interpret from 'format-message-interpret'\n\ninterpret('en', parse('Hello, {name}!'))({ name: 'Jane' })\n```\n\nAPI\n---\n\n### `parse(pattern: string, tokens?: ?Token[]): AST`\n\nGenerate a compact array-based AST from an ICU MessageFormat string pattern. If an empty `tokens` array is passed in, it will be filled with found tokens.\n\nThis can throw a `SyntaxError` if the pattern is not valid. The `offset` property of the error lets you know how far into the pattern tokenization was able to go before the error. The `tokens` array will have all the found tokens up until the bad syntax.\n\nNote that the only semantic validation done in parsing is ensuring that `select`, `selectordinal`, and `plural` include an `other` sub-message. It does *not* validate that a plural keyword applies to the locale, or that a style is supported by the type, or even that the type will be supported by the interpreter. Successful parsing is not a guarantee the final message will format as expected.\n\n### `SyntaxError`\n\n```ts\nclass SyntaxError extends Error {\n  name: 'SyntaxError';\n  message: string;\n  expected: ?string;\n  found: ?string;\n  offset: number;\n  line: number;\n  column: number;\n}\n```\n\n\nLicense\n-------\n\nThis software is free to use under the MIT license. See the [LICENSE-MIT file][LICENSE] for license text and copyright information.\n\n\n[logo]: https://format-message.github.io/format-message/logo.svg\n[npm]: https://www.npmjs.org/package/format-message-parse\n[npm-image]: https://img.shields.io/npm/v/format-message-parse.svg\n[style]: https://github.com/feross/standard\n[style-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg\n[license-image]: https://img.shields.io/npm/l/format-message.svg\n[LICENSE]: https://github.com/format-message/format-message/blob/master/LICENSE-MIT\n","maintainers":[{"name":"thetalecrafter","email":"andy@vanwagoner.family"},{"name":"bjohn465","email":"bjohn465@gmail.com"},{"name":"aaronshaf","email":"aaronshaf@gmail.com"},{"name":"brentburgoyne","email":"brent47@gmail.com"}],"time":{"modified":"2022-06-18T03:04:17.835Z","created":"2015-11-15T04:17:26.043Z","4.0.0":"2015-11-15T04:17:26.043Z","4.1.0":"2016-07-22T02:07:47.326Z","4.1.1":"2016-08-19T18:36:32.678Z","5.0.0-beta.8":"2016-09-26T18:56:29.960Z","5.0.0-beta.9":"2016-09-26T19:11:07.564Z","5.0.0-beta.10":"2016-09-26T19:40:26.884Z","5.0.0":"2016-09-27T19:31:28.065Z","5.1.0":"2016-12-28T23:27:53.105Z","5.1.2":"2017-03-23T15:36:16.559Z","6.0.0-alpha.0":"2018-04-16T22:31:32.692Z","6.0.0-alpha.1":"2018-04-17T15:55:43.425Z","6.0.0-alpha.2":"2018-04-18T22:19:56.226Z","6.0.0":"2018-04-19T19:31:19.847Z","6.0.3":"2018-04-27T17:24:49.063Z","6.0.4":"2018-06-05T19:56:04.881Z","6.1.0":"2018-08-30T02:22:31.649Z","6.2.0":"2018-09-12T15:02:34.998Z","6.2.2":"2019-07-04T00:23:12.606Z","6.2.3":"2019-07-04T19:55:58.765Z","6.2.4":"2022-02-17T17:47:05.886Z"},"homepage":"https://github.com/format-message/format-message/tree/master/packages/format-message-parse","keywords":["format-message","message-format","internationalization","i18n","icu","messageformat","pluralformat","selectformat"],"repository":{"type":"git","url":"git+https://github.com/format-message/format-message.git"},"author":{"name":"Andy VanWagoner","email":"andy@vanwago.net"},"bugs":{"url":"https://github.com/format-message/format-message/issues"},"license":"MIT","readmeFilename":"README.md"}