telegram-transformer 1.3.0 → 1.4.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/LICENSE +21 -21
- package/README.md +166 -166
- package/lib/constants.d.ts +3 -0
- package/lib/constants.d.ts.map +1 -0
- package/lib/constants.js +8 -0
- package/lib/format.d.ts +6 -6
- package/lib/format.d.ts.map +1 -1
- package/lib/format.js +90 -66
- package/lib/formatters.d.ts +11 -0
- package/lib/formatters.d.ts.map +1 -0
- package/lib/formatters.js +186 -0
- package/lib/index.d.ts +6 -5
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +22 -21
- package/lib/renderNode.d.ts +41 -0
- package/lib/renderNode.d.ts.map +1 -0
- package/lib/renderNode.js +74 -0
- package/lib/sortEntities.d.ts +3 -0
- package/lib/sortEntities.d.ts.map +1 -0
- package/lib/sortEntities.js +9 -0
- package/lib/tsc.tsconfig.tsbuildinfo +1 -0
- package/lib/types.d.ts +22 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +2 -0
- package/package.json +50 -52
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
The MIT License (MIT)
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2022 Ivan Odyntsov
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022 Ivan Odyntsov
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,166 +1,166 @@
|
|
|
1
|
-
<header>
|
|
2
|
-
<div align="center">
|
|
3
|
-
<h1 align="center">Telegram message transformer</h1>
|
|
4
|
-
|
|
5
|
-
<a href="https://www.npmjs.com/package/telegram-transformer">
|
|
6
|
-
<img src="https://img.shields.io/npm/v/telegram-transformer.svg" alt="Latest Release">
|
|
7
|
-
</a>
|
|
8
|
-
|
|
9
|
-
</div>
|
|
10
|
-
</header>
|
|
11
|
-
|
|
12
|
-
## Introduction
|
|
13
|
-
|
|
14
|
-
Telegram transformer is a library that makes it simple for you to transform telegram message to any markup.
|
|
15
|
-
|
|
16
|
-
## Getting started
|
|
17
|
-
|
|
18
|
-
### Installation
|
|
19
|
-
|
|
20
|
-
```shellscript
|
|
21
|
-
$ npm install telegram-transformer
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
or
|
|
25
|
-
|
|
26
|
-
```shellscript
|
|
27
|
-
$ yarn add telegram-transformer
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
### Example
|
|
31
|
-
|
|
32
|
-
```js
|
|
33
|
-
import formatText, { htmlFormatters } from 'telegram-transformer';
|
|
34
|
-
import { MessageEntity } from 'typegram';
|
|
35
|
-
|
|
36
|
-
const text =
|
|
37
|
-
'Hello @username #awesome_hashtag $USD /start@jobs_bot https://telegram.org do-not-reply@telegram.org +1-212-555-0123 bold text italic text underlined text strikethrough text spoiler message monowidth string monowidth block text_link custom_emoji text_mention';
|
|
38
|
-
const entities: MessageEntity[] = [
|
|
39
|
-
{ offset: 6, length: 9, type: 'mention' },
|
|
40
|
-
{ offset: 16, length: 16, type: 'hashtag' },
|
|
41
|
-
{ offset: 25, length: 7, type: 'bold' },
|
|
42
|
-
{ offset: 33, length: 4, type: 'cashtag' },
|
|
43
|
-
{ offset: 38, length: 15, type: 'bot_command' },
|
|
44
|
-
{ offset: 54, length: 20, type: 'url' },
|
|
45
|
-
{ offset: 75, length: 25, type: 'email' },
|
|
46
|
-
{ offset: 101, length: 15, type: 'phone_number' },
|
|
47
|
-
{ offset: 117, length: 9, type: 'bold' },
|
|
48
|
-
{ offset: 127, length: 11, type: 'italic' },
|
|
49
|
-
{ offset: 139, length: 5, type: 'underline' },
|
|
50
|
-
{ offset: 144, length: 10, type: 'underline' },
|
|
51
|
-
{ offset: 144, length: 5, type: 'bold' },
|
|
52
|
-
{ offset: 155, length: 18, type: 'strikethrough' },
|
|
53
|
-
{ offset: 174, length: 15, type: 'spoiler' },
|
|
54
|
-
{
|
|
55
|
-
offset: 223,
|
|
56
|
-
length: 9,
|
|
57
|
-
type: 'text_link',
|
|
58
|
-
url: 'https://telegram.org/',
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
offset: 233,
|
|
62
|
-
length: 12,
|
|
63
|
-
type: 'custom_emoji',
|
|
64
|
-
custom_emoji_id: '12345',
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
offset: 246,
|
|
68
|
-
length: 12,
|
|
69
|
-
type: 'text_mention',
|
|
70
|
-
user: {
|
|
71
|
-
id: 9876543210,
|
|
72
|
-
is_bot: false,
|
|
73
|
-
first_name: 'First Name',
|
|
74
|
-
},
|
|
75
|
-
},
|
|
76
|
-
];
|
|
77
|
-
|
|
78
|
-
const formatted = formatText(text, entities, { formatters: htmlFormatters });
|
|
79
|
-
|
|
80
|
-
console.log(formatted);
|
|
81
|
-
|
|
82
|
-
/*
|
|
83
|
-
{
|
|
84
|
-
text: "Hello <a href='https://t.me/username'>@username</a> <a href='#awesome_hashtag'>#awesome_<strong>hashtag</strong></a> $USD /start@jobs_bot <a href='https://telegram.org'>https://telegram.org</a> <a href='mailto:do-not-reply@telegram.org'>do-not-reply@telegram.org</a> <a href='tel:+1-212-555-0123'>+1-212-555-0123</a> <strong>bold text</strong> <i>italic text</i> <u>under</u><u><strong>lined</strong> text</u> <strike>strikethrough text</strike> <span class='spoiler-hover'>spoiler message</span> monowidth string monowidth block <a href='https://telegram.org/'>text_link</a> <span>custom_emoji | <b>EMOJI ID:12345</b></span> <span>text_mention: First Name | <b>ID:9876543210</b></span>",
|
|
85
|
-
entities: [
|
|
86
|
-
{ offset: 6, length: 45, type: 'mention' },
|
|
87
|
-
{ offset:
|
|
88
|
-
{ offset: 88, length: 24, type: 'bold' },
|
|
89
|
-
{ offset: 117, length: 4, type: 'cashtag' },
|
|
90
|
-
{ offset: 122, length: 15, type: 'bot_command' },
|
|
91
|
-
{ offset: 138, length: 55, type: 'url' },
|
|
92
|
-
{ offset: 194, length: 72, type: 'email' },
|
|
93
|
-
{ offset: 267, length: 49, type: 'phone_number' },
|
|
94
|
-
{ offset: 317, length: 26, type: 'bold' },
|
|
95
|
-
{ offset: 344, length: 18, type: 'italic' },
|
|
96
|
-
{ offset: 363, length: 12, type: 'underline' },
|
|
97
|
-
{ offset:
|
|
98
|
-
{ offset: 378, length: 22, type: 'bold' },
|
|
99
|
-
{ offset: 410, length: 35, type: 'strikethrough' },
|
|
100
|
-
{ offset: 446, length: 50, type: 'spoiler' },
|
|
101
|
-
{
|
|
102
|
-
offset: 530,
|
|
103
|
-
length: 45,
|
|
104
|
-
type: 'text_link',
|
|
105
|
-
url: 'https://telegram.org/'
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
offset: 576,
|
|
109
|
-
length:
|
|
110
|
-
type: 'custom_emoji',
|
|
111
|
-
custom_emoji_id: '12345'
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
offset: 626,
|
|
115
|
-
length:
|
|
116
|
-
type: 'text_mention',
|
|
117
|
-
user: {
|
|
118
|
-
id: 9876543210,
|
|
119
|
-
is_bot: false,
|
|
120
|
-
first_name: 'First Name',
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
]
|
|
124
|
-
}
|
|
125
|
-
*/
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
### Custom transformer
|
|
129
|
-
|
|
130
|
-
```js
|
|
131
|
-
import formatText, { htmlFormatters } from 'telegram-transformer';
|
|
132
|
-
import { MessageEntity } from 'typegram';
|
|
133
|
-
|
|
134
|
-
const text = 'Hello @username #awesome_hashtag';
|
|
135
|
-
const entities: MessageEntity[] = [
|
|
136
|
-
{ offset: 6, length: 9, type: 'mention' },
|
|
137
|
-
{ offset: 16, length: 16, type: 'hashtag' },
|
|
138
|
-
];
|
|
139
|
-
|
|
140
|
-
const formatters = {
|
|
141
|
-
mention: (entityText: string, entity: MessageEntity, text: string) => ({
|
|
142
|
-
before: '<awesome-mention>',
|
|
143
|
-
after: '</awesome-mention>',
|
|
144
|
-
text: entityText,
|
|
145
|
-
}),
|
|
146
|
-
hashtag: (entityText: string, entity: MessageEntity, text: string) => ({
|
|
147
|
-
before: '<span class="hashtag">',
|
|
148
|
-
after: '</span>',
|
|
149
|
-
text: entityText,
|
|
150
|
-
}),
|
|
151
|
-
};
|
|
152
|
-
|
|
153
|
-
const formatted = formatText(text, entities, { formatters });
|
|
154
|
-
|
|
155
|
-
console.log(formatted);
|
|
156
|
-
|
|
157
|
-
/*
|
|
158
|
-
{
|
|
159
|
-
text: 'Hello <awesome-mention>@username</awesome-mention> <span class="hashtag">#awesome_hashtag</span>',
|
|
160
|
-
entities: [
|
|
161
|
-
{ offset: 6, length: 44, type: 'mention' },
|
|
162
|
-
{ offset: 51, length: 45, type: 'hashtag' }
|
|
163
|
-
]
|
|
164
|
-
}
|
|
165
|
-
*/
|
|
166
|
-
```
|
|
1
|
+
<header>
|
|
2
|
+
<div align="center">
|
|
3
|
+
<h1 align="center">Telegram message transformer</h1>
|
|
4
|
+
|
|
5
|
+
<a href="https://www.npmjs.com/package/telegram-transformer">
|
|
6
|
+
<img src="https://img.shields.io/npm/v/telegram-transformer.svg" alt="Latest Release">
|
|
7
|
+
</a>
|
|
8
|
+
|
|
9
|
+
</div>
|
|
10
|
+
</header>
|
|
11
|
+
|
|
12
|
+
## Introduction
|
|
13
|
+
|
|
14
|
+
Telegram transformer is a library that makes it simple for you to transform telegram message to any markup.
|
|
15
|
+
|
|
16
|
+
## Getting started
|
|
17
|
+
|
|
18
|
+
### Installation
|
|
19
|
+
|
|
20
|
+
```shellscript
|
|
21
|
+
$ npm install telegram-transformer
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
or
|
|
25
|
+
|
|
26
|
+
```shellscript
|
|
27
|
+
$ yarn add telegram-transformer
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### Example
|
|
31
|
+
|
|
32
|
+
```js
|
|
33
|
+
import formatText, { htmlFormatters } from 'telegram-transformer';
|
|
34
|
+
import { MessageEntity } from 'typegram';
|
|
35
|
+
|
|
36
|
+
const text =
|
|
37
|
+
'Hello @username #awesome_hashtag $USD /start@jobs_bot https://telegram.org do-not-reply@telegram.org +1-212-555-0123 bold text italic text underlined text strikethrough text spoiler message monowidth string monowidth block text_link custom_emoji text_mention';
|
|
38
|
+
const entities: MessageEntity[] = [
|
|
39
|
+
{ offset: 6, length: 9, type: 'mention' },
|
|
40
|
+
{ offset: 16, length: 16, type: 'hashtag' },
|
|
41
|
+
{ offset: 25, length: 7, type: 'bold' },
|
|
42
|
+
{ offset: 33, length: 4, type: 'cashtag' },
|
|
43
|
+
{ offset: 38, length: 15, type: 'bot_command' },
|
|
44
|
+
{ offset: 54, length: 20, type: 'url' },
|
|
45
|
+
{ offset: 75, length: 25, type: 'email' },
|
|
46
|
+
{ offset: 101, length: 15, type: 'phone_number' },
|
|
47
|
+
{ offset: 117, length: 9, type: 'bold' },
|
|
48
|
+
{ offset: 127, length: 11, type: 'italic' },
|
|
49
|
+
{ offset: 139, length: 5, type: 'underline' },
|
|
50
|
+
{ offset: 144, length: 10, type: 'underline' },
|
|
51
|
+
{ offset: 144, length: 5, type: 'bold' },
|
|
52
|
+
{ offset: 155, length: 18, type: 'strikethrough' },
|
|
53
|
+
{ offset: 174, length: 15, type: 'spoiler' },
|
|
54
|
+
{
|
|
55
|
+
offset: 223,
|
|
56
|
+
length: 9,
|
|
57
|
+
type: 'text_link',
|
|
58
|
+
url: 'https://telegram.org/',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
offset: 233,
|
|
62
|
+
length: 12,
|
|
63
|
+
type: 'custom_emoji',
|
|
64
|
+
custom_emoji_id: '12345',
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
offset: 246,
|
|
68
|
+
length: 12,
|
|
69
|
+
type: 'text_mention',
|
|
70
|
+
user: {
|
|
71
|
+
id: 9876543210,
|
|
72
|
+
is_bot: false,
|
|
73
|
+
first_name: 'First Name',
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
];
|
|
77
|
+
|
|
78
|
+
const formatted = formatText(text, entities, { formatters: htmlFormatters });
|
|
79
|
+
|
|
80
|
+
console.log(formatted);
|
|
81
|
+
|
|
82
|
+
/*
|
|
83
|
+
{
|
|
84
|
+
text: "Hello <a href='https://t.me/username'>@username</a> <a href='#awesome_hashtag'>#awesome_<strong>hashtag</strong></a> $USD /start@jobs_bot <a href='https://telegram.org'>https://telegram.org</a> <a href='mailto:do-not-reply@telegram.org'>do-not-reply@telegram.org</a> <a href='tel:+1-212-555-0123'>+1-212-555-0123</a> <strong>bold text</strong> <i>italic text</i> <u>under</u><u><strong>lined</strong> text</u> <strike>strikethrough text</strike> <span class='spoiler-hover'>spoiler message</span> monowidth string monowidth block <a href='https://telegram.org/'>text_link</a> <span>custom_emoji | <b>EMOJI ID:12345</b></span> <span>text_mention: First Name | <b>ID:9876543210</b></span>",
|
|
85
|
+
entities: [
|
|
86
|
+
{ offset: 6, length: 45, type: 'mention' },
|
|
87
|
+
{ offset: 52, length: 64, type: 'hashtag' },
|
|
88
|
+
{ offset: 88, length: 24, type: 'bold' },
|
|
89
|
+
{ offset: 117, length: 4, type: 'cashtag' },
|
|
90
|
+
{ offset: 122, length: 15, type: 'bot_command' },
|
|
91
|
+
{ offset: 138, length: 55, type: 'url' },
|
|
92
|
+
{ offset: 194, length: 72, type: 'email' },
|
|
93
|
+
{ offset: 267, length: 49, type: 'phone_number' },
|
|
94
|
+
{ offset: 317, length: 26, type: 'bold' },
|
|
95
|
+
{ offset: 344, length: 18, type: 'italic' },
|
|
96
|
+
{ offset: 363, length: 12, type: 'underline' },
|
|
97
|
+
{ offset: 375, length: 34, type: 'underline' },
|
|
98
|
+
{ offset: 378, length: 22, type: 'bold' },
|
|
99
|
+
{ offset: 410, length: 35, type: 'strikethrough' },
|
|
100
|
+
{ offset: 446, length: 50, type: 'spoiler' },
|
|
101
|
+
{
|
|
102
|
+
offset: 530,
|
|
103
|
+
length: 45,
|
|
104
|
+
type: 'text_link',
|
|
105
|
+
url: 'https://telegram.org/',
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
offset: 576,
|
|
109
|
+
length: 49,
|
|
110
|
+
type: 'custom_emoji',
|
|
111
|
+
custom_emoji_id: '12345',
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
offset: 626,
|
|
115
|
+
length: 60,
|
|
116
|
+
type: 'text_mention',
|
|
117
|
+
user: {
|
|
118
|
+
id: 9876543210,
|
|
119
|
+
is_bot: false,
|
|
120
|
+
first_name: 'First Name',
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
]
|
|
124
|
+
}
|
|
125
|
+
*/
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Custom transformer
|
|
129
|
+
|
|
130
|
+
```js
|
|
131
|
+
import formatText, { htmlFormatters } from 'telegram-transformer';
|
|
132
|
+
import { MessageEntity } from 'typegram';
|
|
133
|
+
|
|
134
|
+
const text = 'Hello @username #awesome_hashtag';
|
|
135
|
+
const entities: MessageEntity[] = [
|
|
136
|
+
{ offset: 6, length: 9, type: 'mention' },
|
|
137
|
+
{ offset: 16, length: 16, type: 'hashtag' },
|
|
138
|
+
];
|
|
139
|
+
|
|
140
|
+
const formatters = {
|
|
141
|
+
mention: (entityText: string, entity: MessageEntity, text: string) => ({
|
|
142
|
+
before: '<awesome-mention>',
|
|
143
|
+
after: '</awesome-mention>',
|
|
144
|
+
text: entityText,
|
|
145
|
+
}),
|
|
146
|
+
hashtag: (entityText: string, entity: MessageEntity, text: string) => ({
|
|
147
|
+
before: '<span class="hashtag">',
|
|
148
|
+
after: '</span>',
|
|
149
|
+
text: entityText,
|
|
150
|
+
}),
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
const formatted = formatText(text, entities, { formatters });
|
|
154
|
+
|
|
155
|
+
console.log(formatted);
|
|
156
|
+
|
|
157
|
+
/*
|
|
158
|
+
{
|
|
159
|
+
text: 'Hello <awesome-mention>@username</awesome-mention> <span class="hashtag">#awesome_hashtag</span>',
|
|
160
|
+
entities: [
|
|
161
|
+
{ offset: 6, length: 44, type: 'mention' },
|
|
162
|
+
{ offset: 51, length: 45, type: 'hashtag' }
|
|
163
|
+
]
|
|
164
|
+
}
|
|
165
|
+
*/
|
|
166
|
+
```
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,eAAO,MAAM,eAAe,EAAE,QAAQ,CAAC,OAAO,CAGpC,CAAC"}
|
package/lib/constants.js
ADDED
package/lib/format.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { MessageEntity } from 'typegram';
|
|
2
|
-
import { Options } from './types';
|
|
3
|
-
export declare const format: (text: string, entities?: MessageEntity[], options?: Options) => {
|
|
4
|
-
text: string;
|
|
5
|
-
entities: MessageEntity[];
|
|
6
|
-
};
|
|
1
|
+
import type { MessageEntity } from 'typegram';
|
|
2
|
+
import { Options } from './types';
|
|
3
|
+
export declare const format: (text: string, entities?: MessageEntity[], options?: Options) => {
|
|
4
|
+
text: string;
|
|
5
|
+
entities: MessageEntity[];
|
|
6
|
+
};
|
|
7
7
|
//# sourceMappingURL=format.d.ts.map
|
package/lib/format.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAQlC,eAAO,MAAM,MAAM,SACX,MAAM,aACF,aAAa,EAAE,YAChB,OAAO;;;CAsGjB,CAAC"}
|
package/lib/format.js
CHANGED
|
@@ -1,66 +1,90 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.format = void 0;
|
|
4
|
-
const constants_1 = require("./constants");
|
|
5
|
-
const
|
|
6
|
-
const format = (text, entities = [], options = constants_1.DEFAULT_OPTIONS) => {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.format = void 0;
|
|
4
|
+
const constants_1 = require("./constants");
|
|
5
|
+
const renderNode_1 = require("./renderNode");
|
|
6
|
+
const format = (text, entities = [], options = constants_1.DEFAULT_OPTIONS) => {
|
|
7
|
+
var _a, _b;
|
|
8
|
+
if (!(entities === null || entities === void 0 ? void 0 : entities.length)) {
|
|
9
|
+
return { text, entities };
|
|
10
|
+
}
|
|
11
|
+
const formatters = {
|
|
12
|
+
...constants_1.DEFAULT_OPTIONS.formatters,
|
|
13
|
+
...options.formatters,
|
|
14
|
+
};
|
|
15
|
+
const startFrom = (_b = (_a = options.startFrom) !== null && _a !== void 0 ? _a : constants_1.DEFAULT_OPTIONS.startFrom) !== null && _b !== void 0 ? _b : 0;
|
|
16
|
+
const prefix = text.substring(0, startFrom);
|
|
17
|
+
const partialText = text.substring(startFrom);
|
|
18
|
+
const unchangedEntities = [];
|
|
19
|
+
const roots = [];
|
|
20
|
+
const stack = [];
|
|
21
|
+
for (const entity of entities) {
|
|
22
|
+
if (entity.offset < startFrom) {
|
|
23
|
+
unchangedEntities.push(entity);
|
|
24
|
+
continue;
|
|
25
|
+
}
|
|
26
|
+
const node = {
|
|
27
|
+
entity: {
|
|
28
|
+
...entity,
|
|
29
|
+
offset: entity.offset - startFrom,
|
|
30
|
+
},
|
|
31
|
+
children: [],
|
|
32
|
+
};
|
|
33
|
+
while (stack.length > 0) {
|
|
34
|
+
const top = stack[stack.length - 1];
|
|
35
|
+
if (!top) {
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
if (top.entity.offset + top.entity.length > node.entity.offset) {
|
|
39
|
+
break;
|
|
40
|
+
}
|
|
41
|
+
stack.pop();
|
|
42
|
+
}
|
|
43
|
+
if (stack.length > 0) {
|
|
44
|
+
const stackitem = stack[stack.length - 1];
|
|
45
|
+
if (stackitem) {
|
|
46
|
+
stackitem.children.push(node);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
roots.push(node);
|
|
51
|
+
}
|
|
52
|
+
stack.push(node);
|
|
53
|
+
}
|
|
54
|
+
const parts = [prefix];
|
|
55
|
+
let currentPosition = prefix.length;
|
|
56
|
+
const updatedEntities = [];
|
|
57
|
+
let sourcePosition = 0;
|
|
58
|
+
if (roots.length > 0) {
|
|
59
|
+
roots.sort((a, b) => a.entity.offset - b.entity.offset);
|
|
60
|
+
for (const root of roots) {
|
|
61
|
+
const plain = partialText.substring(sourcePosition, root.entity.offset);
|
|
62
|
+
parts.push(plain);
|
|
63
|
+
currentPosition += plain.length;
|
|
64
|
+
const nodeResult = (0, renderNode_1.renderNode)({
|
|
65
|
+
node: root,
|
|
66
|
+
parts,
|
|
67
|
+
formatters,
|
|
68
|
+
partialText,
|
|
69
|
+
currentPosition,
|
|
70
|
+
text,
|
|
71
|
+
entries: updatedEntities,
|
|
72
|
+
});
|
|
73
|
+
currentPosition = nodeResult.currentPosition;
|
|
74
|
+
sourcePosition = root.entity.offset + root.entity.length;
|
|
75
|
+
}
|
|
76
|
+
const lastPlain = partialText.substring(sourcePosition);
|
|
77
|
+
parts.push(lastPlain);
|
|
78
|
+
currentPosition += lastPlain.length;
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
parts.push(partialText);
|
|
82
|
+
}
|
|
83
|
+
const newEntities = [...unchangedEntities, ...updatedEntities];
|
|
84
|
+
newEntities.sort((a, b) => a.offset - b.offset);
|
|
85
|
+
return {
|
|
86
|
+
text: parts.join(''),
|
|
87
|
+
entities: newEntities,
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
exports.format = format;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { MessageEntity } from 'typegram';
|
|
2
|
+
import { FormatterFn, FormattersDict } from './types';
|
|
3
|
+
export declare const abstractDefaultFormatter: FormatterFn<MessageEntity.AbstractMessageEntity>;
|
|
4
|
+
export declare const defaultFormatter: FormatterFn<MessageEntity.CommonMessageEntity>;
|
|
5
|
+
export declare const defaultTextMentaionFormatter: FormatterFn<MessageEntity.TextMentionMessageEntity>;
|
|
6
|
+
export declare const defaultTextLinkFormatter: FormatterFn<MessageEntity.TextLinkMessageEntity>;
|
|
7
|
+
export declare const defaultPreFormatter: FormatterFn<MessageEntity.PreMessageEntity>;
|
|
8
|
+
export declare const defaultCustomEmojiFormatter: FormatterFn<MessageEntity.CustomEmojiMessageEntity>;
|
|
9
|
+
export declare const formatters: FormattersDict;
|
|
10
|
+
export declare const htmlFormatters: FormattersDict;
|
|
11
|
+
//# sourceMappingURL=formatters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../src/formatters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEtD,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAChD,aAAa,CAAC,qBAAqB,CAUpC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,WAAW,CACxC,aAAa,CAAC,mBAAmB,CAGlC,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,WAAW,CACpD,aAAa,CAAC,wBAAwB,CASvC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAChD,aAAa,CAAC,qBAAqB,CAGpC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAC3C,aAAa,CAAC,gBAAgB,CAG/B,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,WAAW,CACnD,aAAa,CAAC,wBAAwB,CAGvC,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,cAkBxB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,cAmJ5B,CAAC"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.htmlFormatters = exports.formatters = exports.defaultCustomEmojiFormatter = exports.defaultPreFormatter = exports.defaultTextLinkFormatter = exports.defaultTextMentaionFormatter = exports.defaultFormatter = exports.abstractDefaultFormatter = void 0;
|
|
4
|
+
const abstractDefaultFormatter = (entityText, entity, text) => {
|
|
5
|
+
const before = '';
|
|
6
|
+
const after = '';
|
|
7
|
+
return {
|
|
8
|
+
before,
|
|
9
|
+
after,
|
|
10
|
+
text: entityText,
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
exports.abstractDefaultFormatter = abstractDefaultFormatter;
|
|
14
|
+
const defaultFormatter = (entityText, entity, text) => {
|
|
15
|
+
return (0, exports.abstractDefaultFormatter)(entityText, entity, text);
|
|
16
|
+
};
|
|
17
|
+
exports.defaultFormatter = defaultFormatter;
|
|
18
|
+
const defaultTextMentaionFormatter = (entityText, entity, text) => {
|
|
19
|
+
const lastName = entity.user.last_name ? ` ${entity.user.last_name}` : '';
|
|
20
|
+
return (0, exports.abstractDefaultFormatter)(`${entity.user.first_name}${lastName}`, entity, text);
|
|
21
|
+
};
|
|
22
|
+
exports.defaultTextMentaionFormatter = defaultTextMentaionFormatter;
|
|
23
|
+
const defaultTextLinkFormatter = (entityText, entity, text) => {
|
|
24
|
+
return (0, exports.abstractDefaultFormatter)(entityText, entity, text);
|
|
25
|
+
};
|
|
26
|
+
exports.defaultTextLinkFormatter = defaultTextLinkFormatter;
|
|
27
|
+
const defaultPreFormatter = (entityText, entity, text) => {
|
|
28
|
+
return (0, exports.abstractDefaultFormatter)(entityText, entity, text);
|
|
29
|
+
};
|
|
30
|
+
exports.defaultPreFormatter = defaultPreFormatter;
|
|
31
|
+
const defaultCustomEmojiFormatter = (entityText, entity, text) => {
|
|
32
|
+
return (0, exports.abstractDefaultFormatter)(entityText, entity, text);
|
|
33
|
+
};
|
|
34
|
+
exports.defaultCustomEmojiFormatter = defaultCustomEmojiFormatter;
|
|
35
|
+
exports.formatters = {
|
|
36
|
+
mention: exports.defaultFormatter,
|
|
37
|
+
hashtag: exports.defaultFormatter,
|
|
38
|
+
cashtag: exports.defaultFormatter,
|
|
39
|
+
bot_command: exports.defaultFormatter,
|
|
40
|
+
url: exports.defaultFormatter,
|
|
41
|
+
email: exports.defaultFormatter,
|
|
42
|
+
phone_number: exports.defaultFormatter,
|
|
43
|
+
bold: exports.defaultFormatter,
|
|
44
|
+
italic: exports.defaultFormatter,
|
|
45
|
+
underline: exports.defaultFormatter,
|
|
46
|
+
strikethrough: exports.defaultFormatter,
|
|
47
|
+
spoiler: exports.defaultFormatter,
|
|
48
|
+
code: exports.defaultFormatter,
|
|
49
|
+
pre: exports.defaultPreFormatter,
|
|
50
|
+
text_link: exports.defaultTextLinkFormatter,
|
|
51
|
+
text_mention: exports.defaultTextMentaionFormatter,
|
|
52
|
+
custom_emoji: exports.defaultCustomEmojiFormatter,
|
|
53
|
+
};
|
|
54
|
+
exports.htmlFormatters = {
|
|
55
|
+
...exports.formatters,
|
|
56
|
+
mention: (entityText, entity, text) => {
|
|
57
|
+
const before = `<a href='https://t.me/${entityText.substring(1)}'>`;
|
|
58
|
+
const after = '</a>';
|
|
59
|
+
return {
|
|
60
|
+
before,
|
|
61
|
+
after,
|
|
62
|
+
text: entityText,
|
|
63
|
+
};
|
|
64
|
+
},
|
|
65
|
+
hashtag: (entityText, entity, text) => {
|
|
66
|
+
const before = `<a href='${entityText}'>`;
|
|
67
|
+
const after = '</a>';
|
|
68
|
+
return {
|
|
69
|
+
before,
|
|
70
|
+
after,
|
|
71
|
+
text: entityText,
|
|
72
|
+
};
|
|
73
|
+
},
|
|
74
|
+
url: (entityText, entity, text) => {
|
|
75
|
+
const url = entityText.startsWith('http')
|
|
76
|
+
? entityText
|
|
77
|
+
: `http://${entityText}`;
|
|
78
|
+
const before = `<a href='${url}'>`;
|
|
79
|
+
const after = '</a>';
|
|
80
|
+
return {
|
|
81
|
+
before,
|
|
82
|
+
after,
|
|
83
|
+
text: entityText,
|
|
84
|
+
};
|
|
85
|
+
},
|
|
86
|
+
email: (entityText, entity, text) => {
|
|
87
|
+
const before = `<a href='mailto:${entityText}'>`;
|
|
88
|
+
const after = '</a>';
|
|
89
|
+
return {
|
|
90
|
+
before,
|
|
91
|
+
after,
|
|
92
|
+
text: entityText,
|
|
93
|
+
};
|
|
94
|
+
},
|
|
95
|
+
phone_number: (entityText, entity, text) => {
|
|
96
|
+
const before = `<a href='tel:${entityText}'>`;
|
|
97
|
+
const after = '</a>';
|
|
98
|
+
return {
|
|
99
|
+
before,
|
|
100
|
+
after,
|
|
101
|
+
text: entityText,
|
|
102
|
+
};
|
|
103
|
+
},
|
|
104
|
+
spoiler: (entityText, entity, text) => {
|
|
105
|
+
const before = `<span class='spoiler-hover'>`;
|
|
106
|
+
const after = '</span>';
|
|
107
|
+
return {
|
|
108
|
+
before,
|
|
109
|
+
after,
|
|
110
|
+
text: entityText,
|
|
111
|
+
};
|
|
112
|
+
},
|
|
113
|
+
text_link: (entityText, entity, text) => {
|
|
114
|
+
const before = `<a href='${entity.url}'>`;
|
|
115
|
+
const after = '</a>';
|
|
116
|
+
return {
|
|
117
|
+
before,
|
|
118
|
+
after,
|
|
119
|
+
text: entityText,
|
|
120
|
+
};
|
|
121
|
+
},
|
|
122
|
+
bold: (entityText, entity, text) => {
|
|
123
|
+
const before = `<strong>`;
|
|
124
|
+
const after = '</strong>';
|
|
125
|
+
return {
|
|
126
|
+
before,
|
|
127
|
+
after,
|
|
128
|
+
text: entityText,
|
|
129
|
+
};
|
|
130
|
+
},
|
|
131
|
+
italic: (entityText, entity, text) => {
|
|
132
|
+
const before = `<i>`;
|
|
133
|
+
const after = '</i>';
|
|
134
|
+
return {
|
|
135
|
+
before,
|
|
136
|
+
after,
|
|
137
|
+
text: entityText,
|
|
138
|
+
};
|
|
139
|
+
},
|
|
140
|
+
underline: (entityText, entity, text) => {
|
|
141
|
+
const before = `<u>`;
|
|
142
|
+
const after = '</u>';
|
|
143
|
+
return {
|
|
144
|
+
before,
|
|
145
|
+
after,
|
|
146
|
+
text: entityText,
|
|
147
|
+
};
|
|
148
|
+
},
|
|
149
|
+
strikethrough: (entityText, entity, text) => {
|
|
150
|
+
const before = `<strike>`;
|
|
151
|
+
const after = '</strike>';
|
|
152
|
+
return {
|
|
153
|
+
before,
|
|
154
|
+
after,
|
|
155
|
+
text: entityText,
|
|
156
|
+
};
|
|
157
|
+
},
|
|
158
|
+
pre: (entityText, entity, text) => {
|
|
159
|
+
const before = `<pre>`;
|
|
160
|
+
const after = '</pre>';
|
|
161
|
+
return {
|
|
162
|
+
before,
|
|
163
|
+
after,
|
|
164
|
+
text: entityText,
|
|
165
|
+
};
|
|
166
|
+
},
|
|
167
|
+
text_mention: (entityText, entity, text) => {
|
|
168
|
+
const lastName = entity.user.last_name ? ` ${entity.user.last_name}` : '';
|
|
169
|
+
const before = `<span>`;
|
|
170
|
+
const after = '</span>';
|
|
171
|
+
return {
|
|
172
|
+
before,
|
|
173
|
+
after,
|
|
174
|
+
text: `${entityText}: ${entity.user.first_name}${lastName} | <b>ID:${entity.user.id}</b>`,
|
|
175
|
+
};
|
|
176
|
+
},
|
|
177
|
+
custom_emoji: (entityText, entity, text) => {
|
|
178
|
+
const before = `<span>`;
|
|
179
|
+
const after = '</span>';
|
|
180
|
+
return {
|
|
181
|
+
before,
|
|
182
|
+
after,
|
|
183
|
+
text: `${entityText} | <b>EMOJI ID:${entity.custom_emoji_id}</b>`,
|
|
184
|
+
};
|
|
185
|
+
},
|
|
186
|
+
};
|
package/lib/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { format } from './format';
|
|
2
|
-
export * from './types';
|
|
3
|
-
export * from './formatters';
|
|
4
|
-
export * from './format';
|
|
5
|
-
export
|
|
1
|
+
import { format } from './format';
|
|
2
|
+
export * from './types';
|
|
3
|
+
export * from './formatters';
|
|
4
|
+
export * from './format';
|
|
5
|
+
export * from './sortEntities';
|
|
6
|
+
export default format;
|
|
6
7
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAE/B,eAAe,MAAM,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
const format_1 = require("./format");
|
|
18
|
-
__exportStar(require("./types"), exports);
|
|
19
|
-
__exportStar(require("./formatters"), exports);
|
|
20
|
-
__exportStar(require("./format"), exports);
|
|
21
|
-
exports
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
const format_1 = require("./format");
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
19
|
+
__exportStar(require("./formatters"), exports);
|
|
20
|
+
__exportStar(require("./format"), exports);
|
|
21
|
+
__exportStar(require("./sortEntities"), exports);
|
|
22
|
+
exports.default = format_1.format;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { MessageEntity } from 'typegram';
|
|
2
|
+
import { FormattersDict, Node } from './types';
|
|
3
|
+
export declare const renderNode: ({ node, parts, formatters, partialText, currentPosition, text, entries, }: {
|
|
4
|
+
node: Node;
|
|
5
|
+
parts: string[];
|
|
6
|
+
formatters: FormattersDict;
|
|
7
|
+
partialText: string;
|
|
8
|
+
currentPosition: number;
|
|
9
|
+
text: string;
|
|
10
|
+
entries: MessageEntity[];
|
|
11
|
+
}) => {
|
|
12
|
+
entity: {
|
|
13
|
+
offset: number;
|
|
14
|
+
length: number;
|
|
15
|
+
type: "mention" | "hashtag" | "cashtag" | "bot_command" | "url" | "email" | "phone_number" | "bold" | "italic" | "underline" | "strikethrough" | "spoiler" | "code";
|
|
16
|
+
} | {
|
|
17
|
+
offset: number;
|
|
18
|
+
length: number;
|
|
19
|
+
type: "custom_emoji";
|
|
20
|
+
custom_emoji_id: string;
|
|
21
|
+
} | {
|
|
22
|
+
offset: number;
|
|
23
|
+
length: number;
|
|
24
|
+
type: "pre";
|
|
25
|
+
language?: string | undefined;
|
|
26
|
+
} | {
|
|
27
|
+
offset: number;
|
|
28
|
+
length: number;
|
|
29
|
+
type: "text_link";
|
|
30
|
+
url: string;
|
|
31
|
+
} | {
|
|
32
|
+
offset: number;
|
|
33
|
+
length: number;
|
|
34
|
+
type: "text_mention";
|
|
35
|
+
user: import("typegram").User;
|
|
36
|
+
};
|
|
37
|
+
length: number;
|
|
38
|
+
offset: number;
|
|
39
|
+
currentPosition: number;
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=renderNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderNode.d.ts","sourceRoot":"","sources":["../src/renderNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAe,cAAc,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG5D,eAAO,MAAM,UAAU;UASf,IAAI;WACH,MAAM,EAAE;gBACH,cAAc;iBACb,MAAM;qBACF,MAAM;UACjB,MAAM;aACH,aAAa,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqFzB,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderNode = void 0;
|
|
4
|
+
const formatters_1 = require("./formatters");
|
|
5
|
+
const renderNode = ({ node, parts, formatters, partialText, currentPosition, text, entries, }) => {
|
|
6
|
+
const formatter = (formatters[node.entity.type] ||
|
|
7
|
+
formatters_1.defaultFormatter);
|
|
8
|
+
const originalOffset = node.entity.offset;
|
|
9
|
+
const originalLength = originalOffset + node.entity.length;
|
|
10
|
+
const rawText = partialText.substring(originalOffset, originalLength);
|
|
11
|
+
const formatted = formatter(rawText, node.entity, text);
|
|
12
|
+
const nodeOffset = currentPosition;
|
|
13
|
+
let nodeLength = 0;
|
|
14
|
+
currentPosition += formatted.before.length;
|
|
15
|
+
parts.push(formatted.before);
|
|
16
|
+
const sortedChildren = node.children
|
|
17
|
+
.slice()
|
|
18
|
+
.sort((a, b) => a.entity.offset - b.entity.offset);
|
|
19
|
+
let substringOffset = originalOffset;
|
|
20
|
+
for (const child of sortedChildren) {
|
|
21
|
+
const plain = partialText.substring(substringOffset, child.entity.offset);
|
|
22
|
+
parts.push(plain);
|
|
23
|
+
currentPosition += plain.length;
|
|
24
|
+
nodeLength += plain.length;
|
|
25
|
+
const nodeResult = (0, exports.renderNode)({
|
|
26
|
+
node: child,
|
|
27
|
+
parts,
|
|
28
|
+
formatters,
|
|
29
|
+
partialText,
|
|
30
|
+
currentPosition,
|
|
31
|
+
text,
|
|
32
|
+
entries,
|
|
33
|
+
});
|
|
34
|
+
nodeLength += nodeResult.length;
|
|
35
|
+
currentPosition = nodeResult.currentPosition;
|
|
36
|
+
substringOffset = child.entity.offset + child.entity.length;
|
|
37
|
+
}
|
|
38
|
+
if (node.children.length === 0) {
|
|
39
|
+
parts.push(formatted.text);
|
|
40
|
+
currentPosition += formatted.text.length;
|
|
41
|
+
nodeLength =
|
|
42
|
+
formatted.before.length + formatted.text.length + formatted.after.length;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
const trailing = partialText.substring(substringOffset, originalLength);
|
|
46
|
+
parts.push(trailing);
|
|
47
|
+
currentPosition += trailing.length;
|
|
48
|
+
nodeLength +=
|
|
49
|
+
formatted.before.length + trailing.length + formatted.after.length;
|
|
50
|
+
// if (formatted.text.length !== rawText.length) {
|
|
51
|
+
// console.warn(
|
|
52
|
+
// `Formatter for ${node.entity.type} changed text length but has children. Change ignored`,
|
|
53
|
+
// );
|
|
54
|
+
// }
|
|
55
|
+
}
|
|
56
|
+
currentPosition += formatted.after.length;
|
|
57
|
+
parts.push(formatted.after);
|
|
58
|
+
entries.push({
|
|
59
|
+
...node.entity,
|
|
60
|
+
offset: nodeOffset,
|
|
61
|
+
length: nodeLength,
|
|
62
|
+
});
|
|
63
|
+
return {
|
|
64
|
+
entity: {
|
|
65
|
+
...node.entity,
|
|
66
|
+
offset: nodeOffset,
|
|
67
|
+
length: nodeLength,
|
|
68
|
+
},
|
|
69
|
+
length: nodeLength,
|
|
70
|
+
offset: nodeOffset,
|
|
71
|
+
currentPosition,
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
exports.renderNode = renderNode;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sortEntities.d.ts","sourceRoot":"","sources":["../src/sortEntities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,YAAY,aAAc,aAAa,EAAE,oBAIrD,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sortEntities = void 0;
|
|
4
|
+
const sortEntities = (entities) => {
|
|
5
|
+
return entities
|
|
6
|
+
.slice()
|
|
7
|
+
.sort((a, b) => a.offset - b.offset || b.length - a.length);
|
|
8
|
+
};
|
|
9
|
+
exports.sortEntities = sortEntities;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"program":{"fileNames":["../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../node_modules/typescript/lib/lib.scripthost.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/typescript/lib/lib.es2019.full.d.ts","../node_modules/typegram/api.d.ts","../node_modules/typegram/markup.d.ts","../node_modules/typegram/passport.d.ts","../node_modules/typegram/payment.d.ts","../node_modules/typegram/message.d.ts","../node_modules/typegram/manage.d.ts","../node_modules/typegram/inline.d.ts","../node_modules/typegram/settings.d.ts","../node_modules/typegram/update.d.ts","../node_modules/typegram/methods.d.ts","../node_modules/typegram/mod.d.ts","../src/types.ts","../src/formatters.ts","../src/constants.ts","../src/rendernode.ts","../src/format.ts","../src/sortentities.ts","../src/index.ts","../node_modules/@types/deep-eql/index.d.ts","../node_modules/assertion-error/index.d.ts","../node_modules/@types/chai/index.d.ts","../node_modules/@types/estree/index.d.ts","../../node_modules/@types/node/assert.d.ts","../../node_modules/@types/node/assert/strict.d.ts","../../node_modules/@types/node/globals.d.ts","../../node_modules/@types/node/async_hooks.d.ts","../../node_modules/@types/node/buffer.d.ts","../../node_modules/@types/node/child_process.d.ts","../../node_modules/@types/node/cluster.d.ts","../../node_modules/@types/node/console.d.ts","../../node_modules/@types/node/constants.d.ts","../../node_modules/@types/node/crypto.d.ts","../../node_modules/@types/node/dgram.d.ts","../../node_modules/@types/node/diagnostics_channel.d.ts","../../node_modules/@types/node/dns.d.ts","../../node_modules/@types/node/dns/promises.d.ts","../../node_modules/@types/node/domain.d.ts","../../node_modules/@types/node/events.d.ts","../../node_modules/@types/node/fs.d.ts","../../node_modules/@types/node/fs/promises.d.ts","../../node_modules/@types/node/http.d.ts","../../node_modules/@types/node/http2.d.ts","../../node_modules/@types/node/https.d.ts","../../node_modules/@types/node/inspector.d.ts","../../node_modules/@types/node/module.d.ts","../../node_modules/@types/node/net.d.ts","../../node_modules/@types/node/os.d.ts","../../node_modules/@types/node/path.d.ts","../../node_modules/@types/node/perf_hooks.d.ts","../../node_modules/@types/node/process.d.ts","../../node_modules/@types/node/punycode.d.ts","../../node_modules/@types/node/querystring.d.ts","../../node_modules/@types/node/readline.d.ts","../../node_modules/@types/node/repl.d.ts","../../node_modules/@types/node/stream.d.ts","../../node_modules/@types/node/stream/promises.d.ts","../../node_modules/@types/node/stream/consumers.d.ts","../../node_modules/@types/node/stream/web.d.ts","../../node_modules/@types/node/string_decoder.d.ts","../../node_modules/@types/node/timers.d.ts","../../node_modules/@types/node/timers/promises.d.ts","../../node_modules/@types/node/tls.d.ts","../../node_modules/@types/node/trace_events.d.ts","../../node_modules/@types/node/tty.d.ts","../../node_modules/@types/node/url.d.ts","../../node_modules/@types/node/util.d.ts","../../node_modules/@types/node/v8.d.ts","../../node_modules/@types/node/vm.d.ts","../../node_modules/@types/node/wasi.d.ts","../../node_modules/@types/node/worker_threads.d.ts","../../node_modules/@types/node/zlib.d.ts","../../node_modules/@types/node/globals.global.d.ts","../../node_modules/@types/node/index.d.ts","../../node_modules/@types/accepts/index.d.ts","../../node_modules/@babel/types/lib/index.d.ts","../../node_modules/@types/babel__generator/index.d.ts","../../node_modules/@types/babel__traverse/index.d.ts","../../node_modules/@babel/parser/typings/babel-parser.d.ts","../../node_modules/@types/babel__template/index.d.ts","../../node_modules/@types/babel__core/index.d.ts","../../node_modules/@types/bcrypt/index.d.ts","../../node_modules/@types/bluebird/index.d.ts","../../node_modules/@types/connect/index.d.ts","../../node_modules/@types/body-parser/index.d.ts","../../node_modules/ioredis/built/types.d.ts","../../node_modules/ioredis/built/command.d.ts","../../node_modules/ioredis/built/scanstream.d.ts","../../node_modules/ioredis/built/utils/rediscommander.d.ts","../../node_modules/ioredis/built/transaction.d.ts","../../node_modules/ioredis/built/utils/commander.d.ts","../../node_modules/ioredis/built/connectors/abstractconnector.d.ts","../../node_modules/ioredis/built/connectors/connectorconstructor.d.ts","../../node_modules/ioredis/built/connectors/sentinelconnector/types.d.ts","../../node_modules/ioredis/built/connectors/sentinelconnector/sentineliterator.d.ts","../../node_modules/ioredis/built/connectors/sentinelconnector/index.d.ts","../../node_modules/ioredis/built/connectors/standaloneconnector.d.ts","../../node_modules/ioredis/built/redis/redisoptions.d.ts","../../node_modules/ioredis/built/cluster/util.d.ts","../../node_modules/ioredis/built/cluster/clusteroptions.d.ts","../../node_modules/ioredis/built/cluster/index.d.ts","../../node_modules/ioredis/built/redis.d.ts","../../node_modules/ioredis/built/pipeline.d.ts","../../node_modules/ioredis/built/index.d.ts","../../node_modules/@types/bull/index.d.ts","../../node_modules/@types/cache-manager/index.d.ts","../../node_modules/@types/continuation-local-storage/index.d.ts","../../node_modules/@types/range-parser/index.d.ts","../../node_modules/@types/qs/index.d.ts","../../node_modules/@types/express-serve-static-core/index.d.ts","../../node_modules/@types/mime/index.d.ts","../../node_modules/@types/serve-static/index.d.ts","../../node_modules/@types/express/index.d.ts","../../node_modules/@types/cookie-parser/index.d.ts","../../node_modules/@types/cookiejar/index.d.ts","../../node_modules/@types/cors/index.d.ts","../../node_modules/@types/ms/index.d.ts","../../node_modules/@types/debug/index.d.ts","../../node_modules/@types/eslint/helpers.d.ts","../../node_modules/@types/estree/index.d.ts","../../node_modules/@types/json-schema/index.d.ts","../../node_modules/@types/eslint/index.d.ts","../../node_modules/@types/eslint-scope/index.d.ts","../../node_modules/@types/eslint-visitor-keys/index.d.ts","../../node_modules/@types/graceful-fs/index.d.ts","../../node_modules/@types/ioredis/index.d.ts","../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../node_modules/@types/istanbul-lib-report/index.d.ts","../../node_modules/@types/istanbul-reports/index.d.ts","../../node_modules/jest-diff/build/cleanupsemantic.d.ts","../../node_modules/jest-diff/build/types.d.ts","../../node_modules/jest-diff/build/difflines.d.ts","../../node_modules/jest-diff/build/printdiffs.d.ts","../../node_modules/jest-diff/build/index.d.ts","../../node_modules/@types/jest/node_modules/pretty-format/build/types.d.ts","../../node_modules/@types/jest/node_modules/pretty-format/build/index.d.ts","../../node_modules/@types/jest/index.d.ts","../../node_modules/@types/jest/ts3.2/index.d.ts","../../node_modules/@types/json5/index.d.ts","../../node_modules/@types/jsonwebtoken/index.d.ts","../../node_modules/@types/lodash/common/common.d.ts","../../node_modules/@types/lodash/common/array.d.ts","../../node_modules/@types/lodash/common/collection.d.ts","../../node_modules/@types/lodash/common/date.d.ts","../../node_modules/@types/lodash/common/function.d.ts","../../node_modules/@types/lodash/common/lang.d.ts","../../node_modules/@types/lodash/common/math.d.ts","../../node_modules/@types/lodash/common/number.d.ts","../../node_modules/@types/lodash/common/object.d.ts","../../node_modules/@types/lodash/common/seq.d.ts","../../node_modules/@types/lodash/common/string.d.ts","../../node_modules/@types/lodash/common/util.d.ts","../../node_modules/@types/lodash/index.d.ts","../../node_modules/@types/long/index.d.ts","../../node_modules/@types/node-fetch/node_modules/form-data/index.d.ts","../../node_modules/@types/node-fetch/externals.d.ts","../../node_modules/@types/node-fetch/index.d.ts","../../node_modules/@types/normalize-package-data/index.d.ts","../../node_modules/@types/parse-json/index.d.ts","../../node_modules/@types/passport/index.d.ts","../../node_modules/@types/passport-strategy/index.d.ts","../../node_modules/@types/passport-jwt/index.d.ts","../../node_modules/@types/passport-local/index.d.ts","../../node_modules/@types/prettier/index.d.ts","../../node_modules/ts-toolbelt/out/index.d.ts","../../node_modules/@types/ramda/tools.d.ts","../../node_modules/@types/ramda/index.d.ts","../../node_modules/@types/validator/lib/isboolean.d.ts","../../node_modules/@types/validator/lib/isemail.d.ts","../../node_modules/@types/validator/lib/isfqdn.d.ts","../../node_modules/@types/validator/lib/isiban.d.ts","../../node_modules/@types/validator/lib/isiso31661alpha2.d.ts","../../node_modules/@types/validator/lib/isiso4217.d.ts","../../node_modules/@types/validator/lib/isurl.d.ts","../../node_modules/@types/validator/lib/istaxid.d.ts","../../node_modules/@types/validator/index.d.ts","../../node_modules/@types/sequelize/index.d.ts","../../node_modules/@types/spotify-api/index.d.ts","../../node_modules/@types/spotify-web-api-node/index.d.ts","../../node_modules/@types/stack-utils/index.d.ts","../../node_modules/@types/superagent/index.d.ts","../../node_modules/@types/supertest/index.d.ts","../../node_modules/@types/webidl-conversions/index.d.ts","../../node_modules/@types/whatwg-url/index.d.ts","../../node_modules/@types/yargs-parser/index.d.ts","../../node_modules/@types/yargs/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","impliedFormat":1},{"version":"7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","impliedFormat":1},{"version":"8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","impliedFormat":1},{"version":"5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","impliedFormat":1},{"version":"4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","impliedFormat":1},{"version":"1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","impliedFormat":1},{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true,"impliedFormat":1},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true,"impliedFormat":1},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true,"impliedFormat":1},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true,"impliedFormat":1},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true,"impliedFormat":1},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true,"impliedFormat":1},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true,"impliedFormat":1},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true,"impliedFormat":1},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true,"impliedFormat":1},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true,"impliedFormat":1},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true,"impliedFormat":1},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true,"impliedFormat":1},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true,"impliedFormat":1},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true,"impliedFormat":1},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true,"impliedFormat":1},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true,"impliedFormat":1},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true,"impliedFormat":1},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true,"impliedFormat":1},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true,"impliedFormat":1},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true,"impliedFormat":1},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true,"impliedFormat":1},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1f03b495671c3a1bd24510f38b8947f0991dfd6bf0278c68eca14af15b306e1f","impliedFormat":1},{"version":"72a84bfaa19ac93f6874cdf9eb2b2f8543100072b3df0fef62bcec510f833c0e","impliedFormat":1},{"version":"a932b3d224f053e78555c671fafe0c1228fb7b31b9bb9dae692d5b3869d46309","impliedFormat":1},{"version":"75e246f13500218d868207547bc9e4ef01fba7d80cf79374b4aae2d95401fe8b","impliedFormat":1},{"version":"00f3dc6b86850f5f9a278a8b6b5e3b7148896f84c923223b327a6f3ee999b997","impliedFormat":1},{"version":"78225addef3f772468e09d4018d1585cbb63a27347672b2c9e6cd674c8618ceb","impliedFormat":1},{"version":"ff31f48a4f6431f1d28b61a4dff62cab3d13a620bcecc42495a31d3260baf7a3","impliedFormat":1},{"version":"6bae90fbad82f8a776a5db3e1b56e5af2187cfa7702b41bcb290c4b955c07be2","impliedFormat":1},{"version":"7408a55601b755c7653921d660ad3ae2fa824e250f242855f0ccb760ba656dff","impliedFormat":1},{"version":"73c7afa52ab08d66208f9d9a557e751c1a1780353619befd28d3aab89c4a352b","impliedFormat":1},{"version":"d32fb4b19537268cf461cb7a89fd59db275b310e71b299d062697692e2d214ad","impliedFormat":1},{"version":"a17de95fab327b145b54c9ea55136ea61afbfef7aa576ffe93b6dd19966d1ca1","impliedFormat":1},{"version":"0470b8742472eff7a729cefc3d29fbd6763dbb2601336e997d1b2cc39293abf4","signature":"fff52ec9c05f9d2415ce3bc10997630bc2e529c9fcc6ffc3e51eec967501c26b","impliedFormat":1},{"version":"df18bc3a894e00025ce1497137caab505d80a8aee35e8aea571eec6df4cae67a","signature":"212e30d0cd782b62b8819c638f335e91223810a57f5308bcdefebed4595ebff4","impliedFormat":1},{"version":"3fbfb817657a10adf940f8a2f90a36afb4522ab81542c3ced1b7b1ced42e2a38","signature":"6a284c0dd63c7b8d6d5d636250167cc12e78bc2eefaff6b921e37efc7bac351c","impliedFormat":1},{"version":"048c07fc1d911a44320288966f285ce4a50f608a163828dc7cee00b211a8d0b1","signature":"00c376b3d18585b1c9f1092e1c4e839c68f721f198eb4763c0cd16a9570eb89a","impliedFormat":1},{"version":"7b5c9e89c12c26013657d63390bb523728f5ae504bdde728f16e43c669841bf4","signature":"498179fbe51ea97fad891cf90db46866346809a87f2469a54933ebcdbf3484e6","impliedFormat":1},{"version":"bd52b6875aa19d147fd9ac3339097d313ce0e3201582674bbba5a9f98191251b","signature":"dc6c0bcc9d385871868392ba16581f4fa7537dc224c27bb4b76fe8e75c97d854","impliedFormat":1},{"version":"8ac569715f387f0deaad5ff43f4ff1082351f87b4218ca09fa3e814e1f4c1553","signature":"45fe6b5aa81c4dfa04d8e5af34588fd84c956ddc4918b165b8e83d4aeb222099","impliedFormat":1},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"0cba3a5d7b81356222594442753cf90dd2892e5ccfe1d262aaca6896ba6c1380","impliedFormat":1},{"version":"a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a","impliedFormat":1},{"version":"77f0b5c6a193a699c9f7d7fb0578e64e562d271afa740783665d2a827104a873","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5979905796fe2740d85fbaf4f11f42b7ee1851421afe750823220813421b1af","impliedFormat":1},{"version":"fcdcb42da18dd98dc286b1876dd425791772036012ae61263c011a76b13a190f","affectsGlobalScope":true,"impliedFormat":1},{"version":"1dab5ab6bcf11de47ab9db295df8c4f1d92ffa750e8f095e88c71ce4c3299628","impliedFormat":1},{"version":"f71f46ccd5a90566f0a37b25b23bc4684381ab2180bdf6733f4e6624474e1894","impliedFormat":1},{"version":"54e65985a3ee3cec182e6a555e20974ea936fc8b8d1738c14e8ed8a42bd921d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","impliedFormat":1},{"version":"5b30f550565fd0a7524282c81c27fe8534099e2cd26170ca80852308f07ae68d","impliedFormat":1},{"version":"34e5de87d983bc6aefef8b17658556e3157003e8d9555d3cb098c6bef0b5fbc8","impliedFormat":1},{"version":"d97cd8a4a42f557fc62271369ed0461c8e50d47b7f9c8ad0b5462f53306f6060","impliedFormat":1},{"version":"f27371653aded82b2b160f7a7033fb4a5b1534b6f6081ef7be1468f0f15327d3","impliedFormat":1},{"version":"c762cd6754b13a461c54b59d0ae0ab7aeef3c292c6cf889873f786ee4d8e75c9","impliedFormat":1},{"version":"f4ea7d5df644785bd9fbf419930cbaec118f0d8b4160037d2339b8e23c059e79","impliedFormat":1},{"version":"bfea28e6162ed21a0aeed181b623dcf250aa79abf49e24a6b7e012655af36d81","affectsGlobalScope":true,"impliedFormat":1},{"version":"58df92fa3b18e84865bb0d2fe4b9d2d5bcb9952d4548c871f10ef02702b386f8","impliedFormat":1},{"version":"52f38aecbb24bebde0b7a0203a686902fc6be930bd0cdb80f482441e4f56fd7d","impliedFormat":1},{"version":"10d4796a130577d57003a77b95d8723530bbec84718e364aa2129fa8ffba0378","impliedFormat":1},{"version":"063f53ff674228c190efa19dd9448bcbd540acdbb48a928f4cf3a1b9f9478e43","impliedFormat":1},{"version":"bf73c576885408d4a176f44a9035d798827cc5020d58284cb18d7573430d9022","impliedFormat":1},{"version":"7ae078ca42a670445ae0c6a97c029cb83d143d62abd1730efb33f68f0b2c0e82","impliedFormat":1},{"version":"e8b18c6385ff784228a6f369694fcf1a6b475355ba89090a88de13587a9391d5","affectsGlobalScope":true,"impliedFormat":1},{"version":"963fe86b2ebd07a34b92b52c6532ab45ec5ccda218a6c477de354fcad2aae0cb","impliedFormat":1},{"version":"12eea70b5e11e924bb0543aea5eadc16ced318aa26001b453b0d561c2fd0bd1e","impliedFormat":1},{"version":"08777cd9318d294646b121838574e1dd7acbb22c21a03df84e1f2c87b1ad47f2","impliedFormat":1},{"version":"08a90bcdc717df3d50a2ce178d966a8c353fd23e5c392fd3594a6e39d9bb6304","impliedFormat":1},{"version":"76c1c3258edbc6fef9c2020c75d64cc954a53d67f5707e0ba5dd13b6b206059a","affectsGlobalScope":true,"impliedFormat":1},{"version":"2a12d2da5ac4c4979401a3f6eaafa874747a37c365e4bc18aa2b171ae134d21b","impliedFormat":1},{"version":"002b837927b53f3714308ecd96f72ee8a053b8aeb28213d8ec6de23ed1608b66","impliedFormat":1},{"version":"1dc9c847473bb47279e398b22c740c83ea37a5c88bf66629666e3cf4c5b9f99c","impliedFormat":1},{"version":"a9e4a5a24bf2c44de4c98274975a1a705a0abbaad04df3557c2d3cd8b1727949","impliedFormat":1},{"version":"821dcb2b571bf698841d8ec25fde9d5f615ef3958957227962602f9dbfa8d800","impliedFormat":1},{"version":"1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","impliedFormat":1},{"version":"806ef4cac3b3d9fa4a48d849c8e084d7c72fcd7b16d76e06049a9ed742ff79c0","affectsGlobalScope":true,"impliedFormat":1},{"version":"44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","impliedFormat":1},{"version":"5f0ed51db151c2cdc4fa3bb0f44ce6066912ad001b607a34e65a96c52eb76248","impliedFormat":1},{"version":"f234fa210fdce190f851211bccf105301f62736fe9d536aed1abc1639967fdec","affectsGlobalScope":true,"impliedFormat":1},{"version":"664d8f2d59164f2e08c543981453893bc7e003e4dfd29651ce09db13e9457980","impliedFormat":1},{"version":"940e295124659ab07409ad448778c477e6861e89ee4f71e49de8a840965a41ea","impliedFormat":1},{"version":"f52fbf64c7e480271a9096763c4882d356b05cab05bf56a64e68a95313cd2ce2","impliedFormat":1},{"version":"59bdb65f28d7ce52ccfc906e9aaf422f8b8534b2d21c32a27d7819be5ad81df7","impliedFormat":1},{"version":"3a2da34079a2567161c1359316a32e712404b56566c45332ac9dcee015ecce9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"28a2e7383fd898c386ffdcacedf0ec0845e5d1a86b5a43f25b86bc315f556b79","impliedFormat":1},{"version":"3aff9c8c36192e46a84afe7b926136d520487155154ab9ba982a8b544ea8fc95","impliedFormat":1},{"version":"a880cf8d85af2e4189c709b0fea613741649c0e40fffb4360ec70762563d5de0","impliedFormat":1},{"version":"85bbf436a15bbeda4db888be3062d47f99c66fd05d7c50f0f6473a9151b6a070","impliedFormat":1},{"version":"9f9c49c95ecd25e0cb2587751925976cf64fd184714cb11e213749c80cf0f927","impliedFormat":1},{"version":"f0c75c08a71f9212c93a719a25fb0320d53f2e50ca89a812640e08f8ad8c408c","impliedFormat":1},{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true,"impliedFormat":1},{"version":"aee3379fb20741a337a779530cc3e608aba5f34776511033d1d2db7ca45c4193","impliedFormat":1},{"version":"6738101ae8e56cd3879ab3f99630ada7d78097fc9fd334df7e766216778ca219","impliedFormat":1},{"version":"3eb8ad25895d53cc6229dc83decbc338d649ed6f3d5b537c9966293b056b1f57","impliedFormat":1},{"version":"b25c5f2970d06c729f464c0aeaa64b1a5b5f1355aa93554bb5f9c199b8624b1e","impliedFormat":1},{"version":"ef91066d2057cca50511e3af2d4aa54e07913a15f9cee1748f256139318eb413","impliedFormat":1},{"version":"8678956904af215fe917b2df07b6c54f876fa64eb1f8a158e4ff38404cef3ff4","impliedFormat":1},{"version":"3e0a34f7207431d967dc32d593d1cda0c23975e9484bc8895b39d96ffca4a0d8","impliedFormat":1},{"version":"7df3163944694feeac63067632a8dc2e2dea1350119ec8b43df277af69198369","impliedFormat":1},{"version":"18b9a9702d2fc7d3766b0c8124133c761ad25a9d767925005777eb2c2cd8aeba","impliedFormat":1},{"version":"338bd7c3518b05b4c473971be0e5f8f854aca7cdb00d1b97192c14860f4ebf2f","impliedFormat":1},{"version":"e6ffa74698f0a1d23e4223242ed7dcdb89d02bbbb063a1930e9f91d0385abe16","impliedFormat":1},{"version":"ebddbd167c2fabd0151f50e5df94ca6d845149c47521280d8867afe3429dd078","impliedFormat":1},{"version":"e8a5beb73e49b5a4899f12b21fa436f4088f5c6b22ed3e6718fcdf526539d851","impliedFormat":1},{"version":"c8aed2bb932133d6efcb263994d5b79462286625d4a2dc4ee976d309fa31f77d","impliedFormat":1},{"version":"4dc4b3976fb0b4629ac500a529427958b96e76093c25a2cd7d59fac9f5ce82ea","impliedFormat":1},{"version":"4fc05cd35f313ea6bc2cd52bfd0d3d1a79c894aeaeffd7c285153cb7d243f19b","impliedFormat":1},{"version":"29994a97447d10d003957bcc0c9355c272d8cf0f97143eb1ade331676e860945","impliedFormat":1},{"version":"6865b4ef724cb739f8f1511295f7ce77c52c67ff4af27e07b61471d81de8ecfc","impliedFormat":1},{"version":"9cddf06f2bc6753a8628670a737754b5c7e93e2cfe982a300a0b43cf98a7d032","impliedFormat":1},{"version":"3f8e68bd94e82fe4362553aa03030fcf94c381716ce3599d242535b0d9953e49","impliedFormat":1},{"version":"63e628515ec7017458620e1624c594c9bd76382f606890c8eebf2532bcab3b7c","impliedFormat":1},{"version":"355d5e2ba58012bc059e347a70aa8b72d18d82f0c3491e9660adaf852648f032","impliedFormat":1},{"version":"0c543e751bbd130170ed4efdeca5ff681d06a99f70b5d6fe7defad449d08023d","impliedFormat":1},{"version":"6a488b1d0c9e7fb85040bdfff94181d47972f0c9998897702df874c76a53d36d","impliedFormat":1},{"version":"236c2990d130b924b4442194bdafefa400fcbd0c125a5e2c3e106a0dbe43eaad","impliedFormat":1},{"version":"ded3d0fb8ac3980ae7edcc723cc2ad35da1798d52cceff51c92abe320432ceeb","impliedFormat":1},{"version":"fbb60baf8c207f19aa1131365e57e1c7974a4f7434c1f8d12e13508961fb20ec","impliedFormat":1},{"version":"00011159f97bde4bdb1913f30ef185e6948b8d7ad022b1f829284dfc78feaabf","impliedFormat":1},{"version":"15ab2b66a08d2b8306a82fabd673aa9b23b22824d5360b1f1302508c03735a2b","impliedFormat":1},{"version":"34d206f6ba993e601dade2791944bdf742ab0f7a8caccc661106c87438f4f904","impliedFormat":1},{"version":"fc807ff0403dceb2c57f7ad902d32f48dfa9108b74f4de89d8eda16194dac245","impliedFormat":1},{"version":"0290c89bc0ae33b32cb61380da477669d9f6065bc09c4469ea751e3b4d58d338","impliedFormat":1},{"version":"ebe585fe3120c913712978a1dec6fe2f566fa926b70e48b7f5b849f160da91a0","impliedFormat":1},{"version":"3e48e1b0f1b00aa387da0fe7b9c7333c8f26c37f9e853773d244b7905751d2a5","impliedFormat":1},{"version":"4e88b833be14c7f384e0dcd57bb30acd799e8e34d212635d693e41a75a71164b","impliedFormat":1},{"version":"c236451df6139a965bb9b8fba15a43a8bebf4400ca589998e2bdc5e1291fa0f9","impliedFormat":1},{"version":"d2f7baf43dfa349d4010cbd9d64d84cdf3ec26c65fa5f44c8f74f052bedd0b49","affectsGlobalScope":true,"impliedFormat":1},{"version":"be27a64e821a3e5af838650e4aa25805c60f057d0c37a9762c378d19d364b3e6","impliedFormat":1},{"version":"adde1c915ab3b61a2821c72f226546c6c119a061a2ff4d6f90b3d61c005ae1f8","impliedFormat":1},{"version":"088d420a09a36d241f1ddbdcb553951c02ef0844014727a29712d2ced57edd22","impliedFormat":1},{"version":"8d77ed4e39114c32edc2e35b683b6f54a6b3292ecdf392e4bfc5f726734955d8","impliedFormat":1},{"version":"8d48b8f8a377ade8dd1f000625bc276eea067f2529cc9cafdf082d17142107d6","impliedFormat":1},{"version":"6fbd58e4015b9ae31ea977d4d549eb24a1102cc798b57ec5d70868b542c06612","impliedFormat":1},{"version":"6a9c5127096b35264eb7cd21b2417bfc1d42cceca9ba4ce2bb0c3410b7816042","impliedFormat":1},{"version":"78828b06c0d3b586954015e9ebde5480b009e166c71244763bda328ec0920f41","impliedFormat":1},{"version":"64d4b35c5456adf258d2cf56c341e203a073253f229ef3208fc0d5020253b241","affectsGlobalScope":true,"impliedFormat":1},{"version":"a1c79f857f5c7754e14c93949dad8cfefcd7df2ecc0dc9dd79a30fd493e28449","impliedFormat":1},{"version":"f3e604694b624fa3f83f6684185452992088f5efb2cf136b62474aa106d6f1b6","impliedFormat":1},{"version":"2d474dfb84cd28ea43f27fe684da8c00382cbd40cee45e1dad4e9f41f6c437b6","impliedFormat":1},{"version":"dc33ce27fbeaf0ea3da556c80a6cc8af9d13eb443088c8f25cdc39fca8e756f6","impliedFormat":1},{"version":"725d9be2fd48440256f4deb00649adffdbc5ecd282b09e89d4e200663792c34c","impliedFormat":1},{"version":"2c7dca525f4e2e5f2b357dacb58ab6c8777995e6d505ef652bcbbf9789ac558f","impliedFormat":1},{"version":"eb383e841005ded16530745082390716ef0c8c2e9e9d3bcedce47d85e1e1037c","impliedFormat":1},{"version":"de18acda71730bac52f4b256ce7511bb56cc21f6f114c59c46782eff2f632857","impliedFormat":1},{"version":"7eb06594824ada538b1d8b48c3925a83e7db792f47a081a62cf3e5c4e23cf0ee","impliedFormat":1},{"version":"905c3e8f7ddaa6c391b60c05b2f4c3931d7127ad717a080359db3df510b7bdab","impliedFormat":1},{"version":"e222104af6cb9415238ad358488b74d76eceeff238c1268ec6e85655b05341da","impliedFormat":1},{"version":"69da61a7b5093dac77fa3bec8be95dcf9a74c95a0e9161edb98bb24e30e439d2","impliedFormat":1},{"version":"eba230221317c985ab1953ccc3edc517f248b37db4fef7875cb2c8d08aff7be7","impliedFormat":1},{"version":"b83e796810e475da3564c6515bc0ae9577070596a33d89299b7d99f94ecfd921","impliedFormat":1},{"version":"b4439890c168d646357928431100daac5cbdee1d345a34e6bf6eca9f3abe22bc","impliedFormat":1},{"version":"5d72971a459517c44c1379dab9ed248e87a61ba0a1e0f25c9d67e1e640cd9a09","impliedFormat":1},{"version":"02d734976af36f4273d930bea88b3e62adf6b078cf120c1c63d49aa8d8427c5c","impliedFormat":1},{"version":"73214238800a9ac5df6bdcb00d1a3a6c08f96cc46bd0d732a8d8fc41c51d6bb0","affectsGlobalScope":true,"impliedFormat":1},{"version":"d3002f620eab4bf6476c9da5c0efb2041d46f7df8b3032a5631bd206abef2c75","affectsGlobalScope":true,"impliedFormat":1},{"version":"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","impliedFormat":1},{"version":"f67c920eba6ab8e4558cb9ab661d900188f101c5657e19b1e15829a1d491d46e","impliedFormat":1},{"version":"675e702f2032766a91eeadee64f51014c64688525da99dccd8178f0c599f13a8","impliedFormat":1},{"version":"458111fc89d11d2151277c822dfdc1a28fa5b6b2493cf942e37d4cd0a6ee5f22","impliedFormat":1},{"version":"d70c026dd2eeaa974f430ea229230a1897fdb897dc74659deebe2afd4feeb08f","impliedFormat":1},{"version":"187119ff4f9553676a884e296089e131e8cc01691c546273b1d0089c3533ce42","impliedFormat":1},{"version":"febf0b2de54781102b00f61653b21377390a048fbf5262718c91860d11ff34a6","impliedFormat":1},{"version":"98f9d826db9cd99d27a01a59ee5f22863df00ccf1aaf43e1d7db80ebf716f7c3","impliedFormat":1},{"version":"0aaef8cded245bf5036a7a40b65622dd6c4da71f7a35343112edbe112b348a1e","impliedFormat":1},{"version":"00baffbe8a2f2e4875367479489b5d43b5fc1429ecb4a4cc98cfc3009095f52a","impliedFormat":1},{"version":"dcd91d3b697cb650b95db5471189b99815af5db2a1cd28760f91e0b12ede8ed5","impliedFormat":1},{"version":"3c92b6dfd43cc1c2485d9eba5ff0b74a19bb8725b692773ef1d66dac48cda4bd","impliedFormat":1},{"version":"3cf0d343c2276842a5b617f22ba82af6322c7cfe8bb52238ffc0c491a3c21019","impliedFormat":1},{"version":"df996e25faa505f85aeb294d15ebe61b399cf1d1e49959cdfaf2cc0815c203f9","impliedFormat":1},{"version":"f2eff8704452659641164876c1ef0df4174659ce7311b0665798ea3f556fa9ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"0e60e0cbf2283adfd5a15430ae548cd2f662d581b5da6ecd98220203e7067c70","impliedFormat":1},{"version":"cbb7029e32a6a72178cda8baa9129b1ee6d1d779a35e46c780e38b4909d42a89","impliedFormat":1},{"version":"208bb742e0f201470da121bc73847c74b62cff4172f38ae5949ae77d6c9c6b71","impliedFormat":1},{"version":"3663d1b50f356656a314e5df169bb51cb9d5fd75905fa703f75db6bb32030568","impliedFormat":1},{"version":"c9ad058b2cc9ce6dc2ed92960d6d009e8c04bef46d3f5312283debca6869f613","impliedFormat":1},{"version":"2b8264b2fefd7367e0f20e2c04eed5d3038831fe00f5efbc110ff0131aab899b","impliedFormat":1},{"version":"f640cdd17b26d4ecaf98f17d90e012b25a29676e30149ef26f02572159cb325a","affectsGlobalScope":true,"impliedFormat":1},{"version":"29d59e921bc723594bbfc98230d24f38f0d5a669f28fcf989b7468f4f95b7c52","impliedFormat":1},{"version":"d306be26f96b4bd9b279cd7da9d1355d5ce4060a2bb254489c1b95c87057eb38","impliedFormat":1},{"version":"e50f9ae34bb92232533e3a32848970dd04f874a8f64d3ae48980e062b6489f26","impliedFormat":1},{"version":"7403a1397d48771d58d55c603d0c51aa3d4cd6467bca03140f085fdc432eb912","impliedFormat":1},{"version":"9df147746b0cbd11d022b564e6fdd43ac79b643dc579d2123317ee01cc4f0d70","impliedFormat":1},{"version":"ca9a04c93fd00d621bbc41beed666a3b454c19a6696dfb7ef3d3ea1c6c9a9854","impliedFormat":1},{"version":"a28206352aad366439ca427afeafae12c95ea4cca5225b4ad0bc9c04f0e512ae","impliedFormat":1},{"version":"ecb3f7a39c52816137f9a87278225ce7f522c6e493c46bb2fff2c2cc2ba0e2d4","impliedFormat":1},{"version":"31d26ca7224d3ef8d3d5e1e95aefba1c841dcb94edcdf9aaa23c7de437f0e4a2","impliedFormat":1},{"version":"c5b3da7e2ecd5968f723282aba49d8d1a2e178d0afe48998dad93f81e2724091","impliedFormat":1},{"version":"3e4ba3ecd2f4b94e22c38ff57b944e43591cac6fd4d83e3f58157f04524d8da6","impliedFormat":1},{"version":"4b8e57cbc17c20af9d4824447c89f0749f3aa1ec7267e4b982c95b1e2a01fab7","impliedFormat":1},{"version":"37d6dd79947b8c3f5eb759bd092d7c9b844d3655e547d16c3f2138d8d637674e","impliedFormat":1},{"version":"c96700cd147d5926d56ec9b45a66d6c8a86def5e94806157fa17c68831a6337f","impliedFormat":1},{"version":"f6688a02946a3f7490aa9e26d76d1c97a388e42e77388cbab010b69982c86e9e","impliedFormat":1},{"version":"eee2de71c79d436d98fc4b9948f44d6fa0f427dbb3f7b004ff1fc83ef19a6756","impliedFormat":1},{"version":"bd1324665eedb0d1c4e1fee46171b02c33c67ea0d2f19fa9e2fcc7fe5e74ac68","impliedFormat":1},{"version":"1f4fd9dd84188f53609789de4d00e46d0d0ee9544029d4f880a2fc2b74ff3eb2","affectsGlobalScope":true,"impliedFormat":1},{"version":"987f143a90beb1affebad8398dfbd8211ae513ae554a88b6890cc87e746d6045","impliedFormat":1},{"version":"c6c4fea9acc55d5e38ff2b70d57ab0b5cdbd08f8bc5d7a226e322cea128c5b57","impliedFormat":1},{"version":"022bb15c2fb40bb465a4511476b1796b9977e2bab463ffd8b2b3d1d1a56b00d1","impliedFormat":1},{"version":"e6540dcaa31aadbd070bea91d31c387c3e03baf78ea56420e706ae77660ae45a","impliedFormat":1},{"version":"95d085761c8e8d469a9066a9cc7bd4b5bc671098d2f8442ae657fb35b3215cf1","impliedFormat":1},{"version":"67483628398336d0f9368578a9514bd8cc823a4f3b3ab784f3942077e5047335","impliedFormat":1},{"version":"fdfbe321c556c39a2ecf791d537b999591d0849e971dd938d88f460fea0186f6","impliedFormat":1},{"version":"587e091276e4676b63121333f417206cd84cadf91b09949303431920d19bc04f","impliedFormat":1}],"options":{"declaration":true,"declarationMap":true,"esModuleInterop":true,"module":100,"noErrorTruncation":true,"noUncheckedIndexedAccess":true,"outDir":"./","skipLibCheck":true,"strict":true,"stripInternal":true,"target":6},"fileIdsList":[[112,121],[112],[87,112,119],[112,121,122,123,124,125],[112,121,124],[87,112,119,129],[84,112,149],[112,119],[112,158],[87,112],[112,162],[112,165,167],[112,164,165,166],[84,87,112,119,153,154],[112,130,154,155,157],[85,112,119,170],[84,101,108,112,119],[112,172],[112,173],[112,179,181],[112,180],[112,182],[112,186,188,189,190,191,192,193,194,195,196,197,198],[112,186,187,189,190,191,192,193,194,195,196,197,198],[112,187,188,189,190,191,192,193,194,195,196,197,198],[112,186,187,188,190,191,192,193,194,195,196,197,198],[112,186,187,188,189,191,192,193,194,195,196,197,198],[112,186,187,188,189,190,192,193,194,195,196,197,198],[112,186,187,188,189,190,191,193,194,195,196,197,198],[112,186,187,188,189,190,191,192,194,195,196,197,198],[112,186,187,188,189,190,191,192,193,195,196,197,198],[112,186,187,188,189,190,191,192,193,194,196,197,198],[112,186,187,188,189,190,191,192,193,194,195,197,198],[112,186,187,188,189,190,191,192,193,194,195,196,198],[112,186,187,188,189,190,191,192,193,194,195,196,197],[87,111,112,119,200,201],[87,101,112,119],[69,112],[72,112],[73,78,112],[74,84,85,92,101,111,112],[74,75,84,92,112],[76,112],[77,78,85,93,112],[78,101,108,112],[79,81,84,92,112],[80,112],[81,82,112],[83,84,112],[84,112],[84,85,86,101,111,112,170],[84,85,86,101,104,112],[112,116],[87,92,101,111,112],[84,85,87,88,92,101,108,111,112],[87,89,101,108,111,112],[69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118],[84,90,112],[91,111,112],[81,84,92,101,112],[93,112],[94,112],[72,95,112],[96,110,112,116],[97,112],[98,112],[84,99,112],[99,100,112,114],[84,101,102,103,112],[101,103,112],[101,102,112],[104,112],[105,112],[84,106,107,112],[106,107,112],[78,92,101,108,112],[109,112],[92,110,112],[73,87,98,111,112],[78,112],[101,112,113],[112,114],[112,115],[73,78,84,86,95,101,111,112,114,116],[101,112,117],[112,158,185,206],[112,158,205,206],[112,158,205],[87,112,158],[112,210,211],[112,210],[112,128,152,198,221],[112,155,156],[112,223],[85,87,101,112,119,160,170],[112,226],[112,213,214,215,216,217,218,219,220],[112,221],[112,230],[81,112,119,136,143,144],[84,112,119,131,132,133,135,136,144,145,147],[81,112,119],[112,119,131],[112,131],[112,137],[84,108,112,119,131,137,139,140,145],[112,139],[112,143],[92,108,112,119,131,137],[112,131,132,133,134,137,141,142,143,144,145,146,147,148],[112,132,136,146,147],[84,112,119,131,132,133,135,136,143,146],[112,136,138,141,142],[101,112,119],[112,134],[92,108,112,119],[112,131,132,134],[112,175,176],[112,175,176,177,178],[65,66,112],[48,50,51,52,112],[51,112],[51,52,112],[48,49,50,52,112],[48,49,50,51,52,53,54,55,112],[47,48,49,50,51,52,53,54,55,56,112],[52,112],[48,112],[48,50,51,52,53,112],[58,59,112],[57,58,60,61,112],[57,58,112],[58,59,62,63,112],[57,58,59,112],[57,112],[58],[57,58],[58,59,62,63],[57]],"referencedMap":[[124,1],[121,2],[120,3],[126,4],[122,1],[125,5],[123,1],[127,2],[128,2],[130,6],[150,7],[151,2],[129,3],[152,8],[159,9],[160,2],[161,10],[163,11],[168,12],[169,2],[164,2],[167,13],[165,2],[155,14],[158,15],[170,16],[171,17],[172,2],[173,18],[174,19],[182,20],[181,21],[180,2],[183,22],[166,2],[184,2],[185,8],[187,23],[188,24],[186,25],[189,26],[190,27],[191,28],[192,29],[193,30],[194,31],[195,32],[196,33],[197,34],[198,35],[199,2],[156,2],[162,2],[201,2],[202,36],[200,37],[69,38],[70,38],[72,39],[73,40],[74,41],[75,42],[76,43],[77,44],[78,45],[79,46],[80,47],[81,48],[82,48],[83,49],[84,50],[85,51],[86,52],[71,53],[118,2],[87,54],[88,55],[89,56],[119,57],[90,58],[91,59],[92,60],[93,61],[94,62],[95,63],[96,64],[97,65],[98,66],[99,67],[100,68],[101,69],[103,70],[102,71],[104,72],[105,73],[106,74],[107,75],[108,76],[109,77],[110,78],[111,79],[112,80],[113,81],[114,82],[115,83],[116,84],[117,85],[203,2],[204,2],[207,86],[208,87],[206,88],[205,89],[209,2],[154,2],[212,90],[211,91],[153,2],[222,92],[157,93],[223,2],[224,94],[225,2],[226,95],[227,96],[221,97],[213,98],[214,2],[215,2],[216,2],[217,2],[218,2],[220,2],[219,2],[228,2],[229,8],[230,2],[231,99],[145,100],[146,101],[144,102],[132,103],[137,104],[138,105],[141,106],[140,107],[139,108],[142,109],[149,110],[148,111],[147,112],[143,113],[133,114],[135,115],[131,116],[136,117],[134,103],[175,2],[177,118],[179,119],[178,118],[176,2],[210,91],[67,120],[65,2],[68,2],[66,2],[47,2],[53,121],[52,122],[48,123],[51,124],[56,125],[57,126],[49,2],[50,127],[54,128],[55,129],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[46,2],[36,2],[33,2],[34,2],[35,2],[37,2],[7,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[1,2],[45,2],[11,2],[10,2],[60,130],[62,131],[59,132],[64,133],[61,134],[63,135],[58,135]],"exportedModulesMap":[[124,1],[121,2],[120,3],[126,4],[122,1],[125,5],[123,1],[127,2],[128,2],[130,6],[150,7],[151,2],[129,3],[152,8],[159,9],[160,2],[161,10],[163,11],[168,12],[169,2],[164,2],[167,13],[165,2],[155,14],[158,15],[170,16],[171,17],[172,2],[173,18],[174,19],[182,20],[181,21],[180,2],[183,22],[166,2],[184,2],[185,8],[187,23],[188,24],[186,25],[189,26],[190,27],[191,28],[192,29],[193,30],[194,31],[195,32],[196,33],[197,34],[198,35],[199,2],[156,2],[162,2],[201,2],[202,36],[200,37],[69,38],[70,38],[72,39],[73,40],[74,41],[75,42],[76,43],[77,44],[78,45],[79,46],[80,47],[81,48],[82,48],[83,49],[84,50],[85,51],[86,52],[71,53],[118,2],[87,54],[88,55],[89,56],[119,57],[90,58],[91,59],[92,60],[93,61],[94,62],[95,63],[96,64],[97,65],[98,66],[99,67],[100,68],[101,69],[103,70],[102,71],[104,72],[105,73],[106,74],[107,75],[108,76],[109,77],[110,78],[111,79],[112,80],[113,81],[114,82],[115,83],[116,84],[117,85],[203,2],[204,2],[207,86],[208,87],[206,88],[205,89],[209,2],[154,2],[212,90],[211,91],[153,2],[222,92],[157,93],[223,2],[224,94],[225,2],[226,95],[227,96],[221,97],[213,98],[214,2],[215,2],[216,2],[217,2],[218,2],[220,2],[219,2],[228,2],[229,8],[230,2],[231,99],[145,100],[146,101],[144,102],[132,103],[137,104],[138,105],[141,106],[140,107],[139,108],[142,109],[149,110],[148,111],[147,112],[143,113],[133,114],[135,115],[131,116],[136,117],[134,103],[175,2],[177,118],[179,119],[178,118],[176,2],[210,91],[67,120],[65,2],[68,2],[66,2],[47,2],[53,121],[52,122],[48,123],[51,124],[56,125],[57,126],[49,2],[50,127],[54,128],[55,129],[8,2],[9,2],[13,2],[12,2],[2,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[21,2],[3,2],[4,2],[25,2],[22,2],[23,2],[24,2],[26,2],[27,2],[28,2],[5,2],[29,2],[30,2],[31,2],[32,2],[6,2],[46,2],[36,2],[33,2],[34,2],[35,2],[37,2],[7,2],[38,2],[43,2],[44,2],[39,2],[40,2],[41,2],[42,2],[1,2],[45,2],[11,2],[10,2],[60,136],[62,137],[59,137],[64,138],[61,137],[63,139],[58,139]],"semanticDiagnosticsPerFile":[124,121,120,126,122,125,123,127,128,130,150,151,129,152,159,160,161,163,168,169,164,167,165,155,158,170,171,172,173,174,182,181,180,183,166,184,185,187,188,186,189,190,191,192,193,194,195,196,197,198,199,156,162,201,202,200,69,70,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,71,118,87,88,89,119,90,91,92,93,94,95,96,97,98,99,100,101,103,102,104,105,106,107,108,109,110,111,112,113,114,115,116,117,203,204,207,208,206,205,209,154,212,211,153,222,157,223,224,225,226,227,221,213,214,215,216,217,218,220,219,228,229,230,231,145,146,144,132,137,138,141,140,139,142,149,148,147,143,133,135,131,136,134,175,177,179,178,176,210,67,65,68,66,47,53,52,48,51,56,57,49,50,54,55,8,9,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,46,36,33,34,35,37,7,38,43,44,39,40,41,42,1,45,11,10,60,62,59,64,61,63,58]},"version":"4.9.4"}
|
package/lib/types.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { MessageEntity } from 'typegram';
|
|
2
|
+
export type FormatterFn<T extends MessageEntity.AbstractMessageEntity = MessageEntity> = (entityText: string, entity: T, text: string) => {
|
|
3
|
+
text: string;
|
|
4
|
+
before: string;
|
|
5
|
+
after: string;
|
|
6
|
+
};
|
|
7
|
+
type EntityByType = {
|
|
8
|
+
[T in MessageEntity as T['type']]: T;
|
|
9
|
+
};
|
|
10
|
+
export type FormattersDict = {
|
|
11
|
+
[T in keyof EntityByType]: FormatterFn<EntityByType[T]>;
|
|
12
|
+
};
|
|
13
|
+
export type Options = {
|
|
14
|
+
formatters?: FormattersDict;
|
|
15
|
+
startFrom?: number;
|
|
16
|
+
};
|
|
17
|
+
export type Node = {
|
|
18
|
+
entity: MessageEntity;
|
|
19
|
+
children: Node[];
|
|
20
|
+
};
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C,MAAM,MAAM,WAAW,CACrB,CAAC,SAAS,aAAa,CAAC,qBAAqB,GAAG,aAAa,IAC3D,CACF,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,CAAC,EACT,IAAI,EAAE,MAAM,KACT;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAErD,KAAK,YAAY,GAAG;KACjB,CAAC,IAAI,aAAa,IAAI,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;KAC1B,CAAC,IAAI,MAAM,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CACxD,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IAAE,UAAU,CAAC,EAAE,cAAc,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1E,MAAM,MAAM,IAAI,GAAG;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,IAAI,EAAE,CAAC;CAClB,CAAC"}
|
package/lib/types.js
ADDED
package/package.json
CHANGED
|
@@ -1,52 +1,50 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "telegram-transformer",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Telegram message transformer",
|
|
5
|
-
"main": "lib/index.js",
|
|
6
|
-
"types": "lib/index.d.ts",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"test": "
|
|
9
|
-
"build": "tsc",
|
|
10
|
-
"format": "prettier --write \"src/**/*.ts\" \"src/**/*.js\"",
|
|
11
|
-
"prepare": "npm run build",
|
|
12
|
-
"lint": "tslint -p tsconfig.json",
|
|
13
|
-
"version": "npm run format && git add -A src",
|
|
14
|
-
"prepublishOnly": "npm test && npm run lint",
|
|
15
|
-
"preversion": "npm run lint",
|
|
16
|
-
"postversion": "git push && git push --tags"
|
|
17
|
-
},
|
|
18
|
-
"type": "commonjs",
|
|
19
|
-
"author": "Ivan Odyntsov <ivan@odintsov.me>",
|
|
20
|
-
"license": "MIT",
|
|
21
|
-
"repository": {
|
|
22
|
-
"type": "git",
|
|
23
|
-
"url": "git+ssh://git@github.com/ivanodintsov/telegram-transformer.git"
|
|
24
|
-
},
|
|
25
|
-
"bugs": {
|
|
26
|
-
"url": "https://github.com/ivanodintsov/telegram-transformer"
|
|
27
|
-
},
|
|
28
|
-
"files": [
|
|
29
|
-
"lib/**/*"
|
|
30
|
-
],
|
|
31
|
-
"dependencies": {
|
|
32
|
-
"typegram": "^5.2.0"
|
|
33
|
-
},
|
|
34
|
-
"devDependencies": {
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"prettier": "^
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
"
|
|
45
|
-
"telegram",
|
|
46
|
-
"
|
|
47
|
-
"telegram
|
|
48
|
-
"
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
]
|
|
52
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "telegram-transformer",
|
|
3
|
+
"version": "1.4.0",
|
|
4
|
+
"description": "Telegram message transformer",
|
|
5
|
+
"main": "lib/index.js",
|
|
6
|
+
"types": "lib/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"test": "vitest",
|
|
9
|
+
"build": "tsc --build tsc.tsconfig.json",
|
|
10
|
+
"format": "prettier --write \"src/**/*.ts\" \"src/**/*.js\"",
|
|
11
|
+
"prepare": "npm run build",
|
|
12
|
+
"lint": "tslint -p tsconfig.json",
|
|
13
|
+
"version": "npm run format && git add -A src",
|
|
14
|
+
"prepublishOnly": "npm test run && npm run lint",
|
|
15
|
+
"preversion": "npm run lint",
|
|
16
|
+
"postversion": "git push && git push --tags"
|
|
17
|
+
},
|
|
18
|
+
"type": "commonjs",
|
|
19
|
+
"author": "Ivan Odyntsov <ivan@odintsov.me>",
|
|
20
|
+
"license": "MIT",
|
|
21
|
+
"repository": {
|
|
22
|
+
"type": "git",
|
|
23
|
+
"url": "git+ssh://git@github.com/ivanodintsov/telegram-transformer.git"
|
|
24
|
+
},
|
|
25
|
+
"bugs": {
|
|
26
|
+
"url": "https://github.com/ivanodintsov/telegram-transformer"
|
|
27
|
+
},
|
|
28
|
+
"files": [
|
|
29
|
+
"lib/**/*"
|
|
30
|
+
],
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"typegram": "^5.2.0"
|
|
33
|
+
},
|
|
34
|
+
"devDependencies": {
|
|
35
|
+
"prettier": "^2.8.1",
|
|
36
|
+
"tslint": "^6.1.3",
|
|
37
|
+
"tslint-config-prettier": "^1.18.0",
|
|
38
|
+
"typescript": "^4.9.4",
|
|
39
|
+
"vitest": "^4.0.18"
|
|
40
|
+
},
|
|
41
|
+
"keywords": [
|
|
42
|
+
"telegram-transformer",
|
|
43
|
+
"telegram",
|
|
44
|
+
"typegram",
|
|
45
|
+
"telegram parse",
|
|
46
|
+
"bot",
|
|
47
|
+
"telegram entity",
|
|
48
|
+
"telegram formatter"
|
|
49
|
+
]
|
|
50
|
+
}
|