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 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: 16, length: 16, 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: 144, length: 10, 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: 25,
110
- type: 'custom_emoji',
111
- custom_emoji_id: '12345'
112
- },
113
- {
114
- offset: 626,
115
- length: 25,
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,3 @@
1
+ import { Options } from './types';
2
+ export declare const DEFAULT_OPTIONS: Required<Options>;
3
+ //# sourceMappingURL=constants.d.ts.map
@@ -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"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_OPTIONS = void 0;
4
+ const formatters_1 = require("./formatters");
5
+ exports.DEFAULT_OPTIONS = {
6
+ formatters: formatters_1.formatters,
7
+ startFrom: 0,
8
+ };
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
@@ -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;AAG9C,OAAO,EAAe,OAAO,EAAE,MAAM,SAAS,CAAC;AAE/C,eAAO,MAAM,MAAM,SACX,MAAM,aACF,aAAa,EAAE,YAChB,OAAO;;;CA2EjB,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 formatters_1 = require("./formatters");
6
- const format = (text, entities = [], options = constants_1.DEFAULT_OPTIONS) => {
7
- if (!(entities === null || entities === void 0 ? void 0 : entities.length)) {
8
- return {
9
- text,
10
- entities,
11
- };
12
- }
13
- const newEntities = [...entities];
14
- const formatters = {
15
- ...constants_1.DEFAULT_OPTIONS.formatters,
16
- ...options.formatters,
17
- };
18
- const startFrom = options.startFrom || constants_1.DEFAULT_OPTIONS.startFrom;
19
- let newText = text;
20
- let offsetChange = 0;
21
- let afterOffsetChange = 0;
22
- let prevOffsetChange = 0;
23
- let prevLengthChange = 0;
24
- for (let i = 0; i < newEntities.length; i++) {
25
- const entity = { ...newEntities[i] };
26
- const formatter = (formatters[entity.type] ||
27
- formatters_1.defaultFormatter);
28
- const isNotInRange = entity.offset < startFrom;
29
- newEntities[i] = entity;
30
- entity.offset -= startFrom;
31
- if (isNotInRange) {
32
- continue;
33
- }
34
- let newOffset = entity.offset + offsetChange;
35
- let newOffsetWithLength = newOffset + entity.length;
36
- const prevEntity = newEntities[i - 1];
37
- if (prevEntity &&
38
- newOffset >= (prevEntity === null || prevEntity === void 0 ? void 0 : prevEntity.offset) + offsetChange + (prevEntity === null || prevEntity === void 0 ? void 0 : prevEntity.length)) {
39
- prevEntity.offset += prevOffsetChange;
40
- prevEntity.length += prevLengthChange;
41
- offsetChange += afterOffsetChange;
42
- afterOffsetChange = 0;
43
- newOffset = entity.offset + offsetChange;
44
- newOffsetWithLength = newOffset + entity.length;
45
- }
46
- const beforeEntity = newText.substring(0, newOffset);
47
- const entityText = newText.substring(newOffset, newOffsetWithLength);
48
- const afterEntity = newText.substring(newOffsetWithLength, newText.length);
49
- const formatted = formatter(entityText, entity, text);
50
- prevOffsetChange = offsetChange;
51
- prevLengthChange = formatted.before.length + formatted.after.length;
52
- offsetChange += formatted.before.length;
53
- afterOffsetChange +=
54
- formatted.after.length + (formatted.text.length - entityText.length);
55
- newText = `${beforeEntity}${formatted.before}${formatted.text}${formatted.after}${afterEntity}`;
56
- if (i === entities.length - 1) {
57
- entity.offset += prevOffsetChange;
58
- entity.length += prevLengthChange;
59
- }
60
- }
61
- return {
62
- text: newText,
63
- entities: newEntities,
64
- };
65
- };
66
- exports.format = format;
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 default format;
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
@@ -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;AAEzB,eAAe,MAAM,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.default = format_1.format;
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,3 @@
1
+ import { MessageEntity } from 'typegram';
2
+ export declare const sortEntities: (entities: MessageEntity[]) => MessageEntity[];
3
+ //# sourceMappingURL=sortEntities.d.ts.map
@@ -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
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json CHANGED
@@ -1,52 +1,50 @@
1
- {
2
- "name": "telegram-transformer",
3
- "version": "1.3.0",
4
- "description": "Telegram message transformer",
5
- "main": "lib/index.js",
6
- "types": "lib/index.d.ts",
7
- "scripts": {
8
- "test": "jest --config jestconfig.json --passWithNoTests",
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
- "@types/jest": "^29.2.4",
36
- "jest": "^29.3.1",
37
- "prettier": "^2.8.1",
38
- "ts-jest": "^29.0.3",
39
- "tslint": "^6.1.3",
40
- "tslint-config-prettier": "^1.18.0",
41
- "typescript": "^4.9.4"
42
- },
43
- "keywords": [
44
- "telegram-transformer",
45
- "telegram",
46
- "typegram",
47
- "telegram parse",
48
- "bot",
49
- "telegram entity",
50
- "telegram formatter"
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
+ }