{"_id":"@armatofik/tgsnake-parser","_rev":"2-0ad2c196fc7bbb71544c1d43d31ab1ab","name":"@armatofik/tgsnake-parser","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@armatofik/tgsnake-parser","version":"1.0.0","keywords":["tgsnake"],"author":{"name":"butthx"},"license":"MIT","_id":"@armatofik/tgsnake-parser@1.0.0","maintainers":[{"name":"armatofik","email":"steam4864@gmail.com"}],"homepage":"https://tgsnake.js.org","bugs":{"url":"https://github.com/tgsnake/parser/issues"},"dist":{"shasum":"096b23062efd72701bb4f6cd512eeb0fb79120a1","tarball":"https://registry.npmjs.org/@armatofik/tgsnake-parser/-/tgsnake-parser-1.0.0.tgz","fileCount":17,"integrity":"sha512-vZQYFGPrXKYlawIKR3pNnupN+lTuwmnrtwPXxywQjHAo3tg8BE4VCKP036oWIi2c7t3JrB1yVmrAMmkIpeGDLA==","signatures":[{"sig":"MEYCIQDLyk+uYaOxvRMwwKSQjpMQWsp8kZrkS5IMrTa4+eQ2LAIhANcb0iUnt7DBf9PUMUgs0bQR949wnS56stZl8m9bQDul","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43324},"main":"./lib/index.js","types":"./lib/index.d.ts","gitHead":"89dff94fbee4b78cd33bf41ef254b0482dd1487a","scripts":{"build":"deno2node tsconfig.json","prepare":"deno2node tsconfig.json","prettier":"prettier -w ."},"_npmUser":{"name":"armatofik","email":"steam4864@gmail.com"},"repository":{"url":"git+https://github.com/armatofik/tgsnake-parser.git","type":"git"},"_npmVersion":"9.8.1","description":"core framework for tgsnake for parsing message. Fork with use @armatofik/tgsnake-core.","directories":{},"_nodeVersion":"20.6.1","dependencies":{"htmlparser2":"^9.1.0","@armatofik/tgsnake-core":"^1.0.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.2.2","devDependencies":{"prettier":"^3.3.1","deno2node":"^1.12.0","@types/node":"^20.14.2"},"_npmOperationalInternal":{"tmp":"tmp/tgsnake-parser_1.0.0_1770592174454_0.982244423039955","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@armatofik/tgsnake-parser","version":"1.1.0","description":"core framework for tgsnake for parsing message. Fork with use @armatofik/tgsnake-core.","main":"./lib/index.js","scripts":{"prepare":"deno2node tsconfig.json","build":"deno2node tsconfig.json","prettier":"prettier -w ."},"homepage":"https://tgsnake.js.org","keywords":["tgsnake"],"bugs":{"url":"https://github.com/tgsnake/parser/issues"},"repository":{"type":"git","url":"git+https://github.com/armatofik/tgsnake-parser.git"},"author":{"name":"butthx"},"license":"MIT","dependencies":{"@armatofik/tgsnake-core":"^1.13.16","htmlparser2":"^9.1.0"},"devDependencies":{"@types/node":"^20.14.2","deno2node":"^1.12.0","prettier":"^3.3.1"},"packageManager":"yarn@4.2.2","_id":"@armatofik/tgsnake-parser@1.1.0","gitHead":"89dff94fbee4b78cd33bf41ef254b0482dd1487a","types":"./lib/index.d.ts","_nodeVersion":"20.6.1","_npmVersion":"9.8.1","dist":{"integrity":"sha512-fTMT5Igabt0VNuhKhlKDAzYghw/sVu2hOEPlNtQejx/KBqHsG1Vxh1+pNb5Hkhp+NYKap7gOkoApP4WIch1gKw==","shasum":"ce9ffc4dd76fe3b22f3d8be6f6020159b71d6d5a","tarball":"https://registry.npmjs.org/@armatofik/tgsnake-parser/-/tgsnake-parser-1.1.0.tgz","fileCount":17,"unpackedSize":43326,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCrBAu5SV21poiYhS0tCm7+SqDM3DNRNZDc50cVC4SQQQIgL/cFnemtEwlmvWXbVi5eIspaPXjs/lLzFLRKvVeeyHU="}]},"_npmUser":{"name":"armatofik","email":"steam4864@gmail.com"},"directories":{},"maintainers":[{"name":"armatofik","email":"steam4864@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tgsnake-parser_1.1.0_1772622871455_0.6077590331811824"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-08T23:09:34.348Z","modified":"2026-03-04T11:14:31.718Z","1.0.0":"2026-02-08T23:09:34.592Z","1.1.0":"2026-03-04T11:14:31.607Z"},"bugs":{"url":"https://github.com/tgsnake/parser/issues"},"author":{"name":"butthx"},"license":"MIT","homepage":"https://tgsnake.js.org","keywords":["tgsnake"],"repository":{"type":"git","url":"git+https://github.com/armatofik/tgsnake-parser.git"},"description":"core framework for tgsnake for parsing message. Fork with use @armatofik/tgsnake-core.","maintainers":[{"name":"armatofik","email":"steam4864@gmail.com"}],"readme":"# @tgsnake/parser\r\n\r\ncore framework for tgsnake for parsing message.  \r\nexample :\r\n\r\n```js\r\n'**bold**';\r\n```\r\n\r\nit will be\r\n\r\n```js\r\n[\r\n  'bold',\r\n  [\r\n    {\r\n      offset: 0,\r\n      length: 4,\r\n      type: 'bold',\r\n    },\r\n  ],\r\n];\r\n```\r\n\r\n# Quick Start\r\n\r\n> **Breaking Changes in v2!**  \r\n> In this v2 is not supported gramjs framework by default! Unlike v1 which supports it, in v2 we fully use `@tgsnake/core`.\r\n\r\n```ts\r\n// index.ts\r\nimport { Parser } from '@tgsnake/parser'\r\nimport { Client } from '@tgsnake/core'\r\nconst client = new Client(...)\r\n\r\nconst entities = Parser.parse('**Hello World**,'markdown')\r\n```\r\n\r\n## converting tgsnake entities to raw api\r\n\r\n```ts\r\nParser.toRaw(client, entities);\r\n```\r\n\r\n## converting raw entities to tgsnake entities\r\n\r\n```ts\r\nParser.fromRaw(TypeMessageEntities);\r\n```\r\n\r\n## available parseMode\r\n\r\n### markdown\r\n\r\n````ts\r\n'**bold**';\r\n'__italic__';\r\n'~~strike~~';\r\n'`code`';\r\n'```pre```';\r\n'[text](link)';\r\n'--underline--';\r\n'||spoiler||';\r\n'>blockquote';\r\n'**>expandable blockquote';\r\n````\r\n\r\n**Escaping**  \r\nfor escaping just add backslash (`\\`) before markdown syntax.\r\n\r\n````ts\r\n'\\\\**bold\\\\**';\r\n'\\\\__italic\\\\__';\r\n'\\\\~~strike\\\\~~';\r\n'\\\\`code\\\\`';\r\n'\\\\```pre\\\\```';\r\n'[text]\\\\(link)';\r\n'\\\\--underline\\\\--';\r\n'\\\\||spoiler\\\\||';\r\n'\\\\>blockquote';\r\n'\\\\**>expandable blockquote';\r\n````\r\n\r\n### html\r\n\r\n```ts\r\n\"<b>bold</b>\" || \"<strong>bold</strong>\"\r\n\"<i>italic</i>\" || \"<em>italic</em>\"\r\n\"<s>strike</s>\" || \"<del>strike</del>\"\r\n\"<code>code</code>\"\r\n\"<pre><code>pre</code></pre>\"  || \"<pre><code language-javascript >pre</code></pre>\"\r\n\"<a href=\"link\">text</a>\"\r\n\"<u>underline</u>\"\r\n\"<spoiler>spoiler</spoiler>\" || \"<sp>spoiler</sp>\" || \"<tg-spoiler>spoiler</tg-spoiler>\" || '<span class=\"tg-spoiler\">spoiler</span>'\r\n\"<tg-emoji id=\"1\">text<tg-emoji>\" || \"<span id=\"1\" class=\"tg-emoji\">text<span>\"\r\n\"<blockquote>blockquote</blockquote>\"\r\n\"<blockquote expandable>expandable blockquote</blockquote>\"\r\n```\r\n\r\n**Escaping**  \r\nfor escaping replace `<` with `&lt;` , `>` with `&rt;` , `&` with `&amp;`\r\n\r\n```ts\r\n\"&lt;b&rt;bold&lt;/b&rt;\" || \"&lt;strong&rt;bold&lt;/strong&rt;\"\r\n\"&lt;i&rt;italic&lt;/i&rt;\" || \"&lt;em&rt;italic&lt;/em&rt;\"\r\n\"&lt;s&rt;strike&lt;/s&rt;\" || \"&lt;del&rt;strike&lt;/del&rt;\"\r\n\"&lt;code&rt;code&lt;/code&rt;\"\r\n\"&lt;pre&rt;&lt;code&rt;pre&lt;/code&rt;&lt;/pre&rt;\"  || \"&lt;pre&rt;&lt;code language-javascript &rt;pre&lt;/code&rt;&lt;/pre&rt;\"\r\n\"&lt;a href=\"link\"&rt;text&lt;/a&rt;\"\r\n\"&lt;u&rt;underline&lt;/u&rt;\"\r\n\"&lt;spoiler&rt;spoiler&lt;/spoiler&rt;\" || \"&lt;sp&rt;spoiler&lt;/sp&rt;\" || \"&lt;tg-spoiler&rt;spoiler&lt;/tg-spoiler&rt;\" || '&lt;span class=\"tg-spoiler\"&rt;spoiler&lt;/span&rt;'\r\n\"&lt;blockquote&rt;blockquote&lt;/blockquote&rt;\"\r\n```\r\n\r\n### Available Formating Style\r\n\r\n| Entity Type | Markdown style | HTML style | Description |\r\n| :-: | :-: | :-: | :-- |\r\n| **Bold** | `*text*` | `<b>text</b>` or `<strong>text</strong>` |  |\r\n| **Italic** | `__text__` | `<i>text</i>` or `<em>text</em>` |  |\r\n| ~~Strike~~ | `~~text~~` | `<s>text</s>` or `<del>text</del>` |  |\r\n| `Code` | <code>\\`text\\`</code> | `<code>text</code>` |  |\r\n| `Pre` | <code>\\`\\`\\`text\\`\\`\\`</code> | `<pre><code>text</code></pre>` or `<pre language-javascript><code>text</code></pre>` |  |\r\n| [Link](#) | `[text](link)` | `<a href=\"link\">text</a>` | You can fill the link params with `tg://user?id=123456` for mentioning user and `tg://emoji?id=123456` for custom emoji. |\r\n| <u>Underline</u> | `--text--` | `<u>text</u>` |  |\r\n| Spoiler | `\\|\\|text\\|\\|` | `<spoiler>text</spoiler>` or `<sp>text</sp>` or `<tg-spoiler>text</tg-spoiler>` or `<span class=\"tg-spoiler\">text</span>` |  |\r\n| Custom Emoji | `[text](tg://emoji?id=123456)` | `<tg-emoji id=\"123456\">text</tg-emoji>` or `<emoji id=\"123456\">text</emoji>` or `<span class=\"tg-emoji\" id=\"123456\">text</span>` | HTML tag has 2 way to define the emojiId. First using `id` attribute and seconds use `emojiId` attribute. |\r\n| Blockquote | `>text` | `<blockquote>text</blockquote>` |  |\r\n\r\nBuild with ♥️ by [tgsnake dev](https://t.me/tgsnakechat).\r\n","readmeFilename":"README.md"}