nexushub-commands 2.0.4 → 2.0.6

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.
@@ -60,7 +60,7 @@ let DepositCommand = class DepositCommand extends evogram_1.Command {
60
60
  }
61
61
  let order;
62
62
  if (method === 'card') {
63
- for (const _method of ['qrcode', 'card']) {
63
+ for (const _method of [...(config.currency.toLowerCase() === 'rub' ? ['qrcode'] : []), 'card']) {
64
64
  method = _method;
65
65
  order = yield config.API.post(`orders`, {
66
66
  mirrorId: context.mammoth.mirror.mirror.id,
@@ -168,11 +168,7 @@ tslib_1.__decorate([
168
168
  header: '<b>📤 Выберите удобный для Вас метод пополнения.</b>',
169
169
  }, {
170
170
  reply_markup: {
171
- inline_keyboard: [
172
- ...(allowedMethods.includes('card') ? [[{ text: '💳 Банковская карта', command: DepositCommand, payload: { method: 'card' } }]] : []),
173
- [{ text: '🪙 Криптовалюта', command: DepositCommand, payload: { method: 'cryptowallet' } }],
174
- [{ text: '🎫 Промокод', command: DepositByPromocode_command_1.DepositByPromocodeCommand }],
175
- ],
171
+ inline_keyboard: [...(allowedMethods.includes('card') ? [[{ text: '💳 Банковская карта', command: DepositCommand, payload: { method: 'card' } }]] : []), [{ text: '🪙 Криптовалюта', command: DepositCommand, payload: { method: 'cryptowallet' } }], [{ text: '🎫 Промокод', command: DepositByPromocode_command_1.DepositByPromocodeCommand }]],
176
172
  },
177
173
  });
178
174
  }
@@ -11,24 +11,12 @@ export declare class ParserSharedCommandsService {
11
11
  * @returns преобразованный код команды
12
12
  */
13
13
  static transformCommand(commandContent: string): string;
14
- /**
15
- * Проверяет, является ли импорт локальным (относительным путем)
16
- * @param importPath - путь импорта
17
- * @returns true, если импорт локальный
18
- */
19
- private static isLocalImport;
20
14
  /**
21
15
  * Удаляет только локальные импорты, сохраняя нелокальные
22
16
  * @param content - исходный код
23
17
  * @returns код с удаленными локальными импортами
24
18
  */
25
19
  private static removeLocalImports;
26
- /**
27
- * Удаляет все оставшиеся приватные методы с умным поиском
28
- * @param content - код для очистки
29
- * @returns код с удаленными приватными методами
30
- */
31
- private static removeRemainingPrivateMethods;
32
20
  /**
33
21
  * Создает API вызов для метода
34
22
  * @param methodName - название метода
@@ -56,7 +56,7 @@ class ParserSharedCommandsService {
56
56
  // Ищем начало метода
57
57
  for (let i = 0; i < lines.length; i++) {
58
58
  const line = lines[i];
59
- if (line.includes(`private`) && line.includes(`${methodName}(`) && line.includes('{')) {
59
+ if (line.includes(`private static`) && line.includes(`${methodName}(`) && line.includes('{')) {
60
60
  methodStartIndex = i;
61
61
  break;
62
62
  }
@@ -77,18 +77,8 @@ class ParserSharedCommandsService {
77
77
  }
78
78
  }
79
79
  });
80
- // Дополнительная очистка - убираем все оставшиеся приватные методы с умным поиском
81
- transformedContent = this.removeRemainingPrivateMethods(transformedContent);
82
80
  return transformedContent;
83
81
  }
84
- /**
85
- * Проверяет, является ли импорт локальным (относительным путем)
86
- * @param importPath - путь импорта
87
- * @returns true, если импорт локальный
88
- */
89
- static isLocalImport(importPath) {
90
- return importPath.startsWith('./') || importPath.startsWith('../') || importPath.startsWith('/');
91
- }
92
82
  /**
93
83
  * Удаляет только локальные импорты, сохраняя нелокальные
94
84
  * @param content - исходный код
@@ -101,41 +91,6 @@ class ParserSharedCommandsService {
101
91
  result = result.replace(/import\s+.*?from\s+['"]\/[^'"]*['"];?\n?/g, '');
102
92
  return result;
103
93
  }
104
- /**
105
- * Удаляет все оставшиеся приватные методы с умным поиском
106
- * @param content - код для очистки
107
- * @returns код с удаленными приватными методами
108
- */
109
- static removeRemainingPrivateMethods(content) {
110
- let result = content;
111
- const privateMethodRegex = /private\s+(?:static\s+)?(?:async\s+)?\w+\s*\([^)]*\)\s*\{/g;
112
- let match;
113
- while ((match = privateMethodRegex.exec(result)) !== null) {
114
- const startIndex = match.index;
115
- const startBraceIndex = result.indexOf('{', startIndex);
116
- if (startBraceIndex !== -1) {
117
- // Находим конец метода, подсчитывая скобки
118
- let braceCount = 1;
119
- let endIndex = startBraceIndex + 1;
120
- while (braceCount > 0 && endIndex < result.length) {
121
- const char = result[endIndex];
122
- if (char === '{')
123
- braceCount++;
124
- else if (char === '}')
125
- braceCount--;
126
- endIndex++;
127
- }
128
- if (braceCount === 0) {
129
- // Удаляем весь метод от начала до конца
130
- const methodEndIndex = endIndex;
131
- result = result.substring(0, startIndex) + result.substring(methodEndIndex);
132
- // Сбрасываем регулярное выражение, так как индексы изменились
133
- privateMethodRegex.lastIndex = 0;
134
- }
135
- }
136
- }
137
- return result;
138
- }
139
94
  /**
140
95
  * Создает API вызов для метода
141
96
  * @param methodName - название метода
@@ -254,4 +209,4 @@ class ParserSharedCommandsService {
254
209
  }
255
210
  }
256
211
  exports.ParserSharedCommandsService = ParserSharedCommandsService;
257
- fs.writeFileSync('test.ts', ParserSharedCommandsService.transformCommand(fs.readFileSync('../escort/src/commands/shared/models/CreateModel.srdcmd.ts', 'utf-8')));
212
+ fs.writeFileSync('test.ts', ParserSharedCommandsService.transformCommand(fs.readFileSync('../escort/src/commands/shared/models/PickActiveModels.srdcmd.ts', 'utf-8')));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nexushub-commands",
3
- "version": "2.0.4",
3
+ "version": "2.0.6",
4
4
  "main": "./lib/index.js",
5
5
  "license": "MIT",
6
6
  "dependencies": {
@@ -1,24 +1,24 @@
1
- import { Command, CommandArgument, CommandD, numberValidator } from 'evogram';
2
- import { CommandContext } from 'evogram/lib/migrated';
3
- import { Client } from '../../Client';
4
- import { formatMessage } from '../../utils/formatMessage';
5
- import { CheckPaidOrderCommand } from './CheckPaidOrder.command';
6
- import { DepositByPromocodeCommand } from './DepositByPromocode.command';
7
- import { GetDepositOrderCommand } from './GetDepositOrder.command';
1
+ import { Command, CommandArgument, CommandD, numberValidator } from 'evogram'
2
+ import { CommandContext } from 'evogram/lib/migrated'
3
+ import { Client } from '../../Client'
4
+ import { formatMessage } from '../../utils/formatMessage'
5
+ import { CheckPaidOrderCommand } from './CheckPaidOrder.command'
6
+ import { DepositByPromocodeCommand } from './DepositByPromocode.command'
7
+ import { GetDepositOrderCommand } from './GetDepositOrder.command'
8
8
 
9
9
  // Функция для маскировки реквизитов: оставляет только последние 4 не пробельных символа
10
10
  function maskExceptLast4(str: string): string {
11
- if (!str) return '';
11
+ if (!str) return ''
12
12
 
13
- const chars = str.split('');
14
- let nonSpaceCount = 0;
13
+ const chars = str.split('')
14
+ let nonSpaceCount = 0
15
15
  for (let i = chars.length - 1; i >= 0; i--) {
16
16
  if (chars[i] !== ' ') {
17
- nonSpaceCount++;
18
- if (nonSpaceCount > 4) chars[i] = '*';
17
+ nonSpaceCount++
18
+ if (nonSpaceCount > 4) chars[i] = '*'
19
19
  }
20
20
  }
21
- return chars.join('');
21
+ return chars.join('')
22
22
  }
23
23
 
24
24
  @CommandD({ name: 'deposit', description: [{ text: 'Пополнение' }, { language: 'en', text: 'Deposit' }] })
@@ -27,18 +27,17 @@ export class DepositCommand extends Command {
27
27
  context: CommandContext,
28
28
 
29
29
  @CommandArgument('method', async ({ value, context }) => {
30
- const config = Client.config(context);
30
+ const config = Client.config(context)
31
31
 
32
32
  if (value) {
33
- const paymentMethods = (await config.API.get('/payments')).data;
34
- if (!paymentMethods.find((x: any) => x.isEnabled && x.type.toLowerCase() === value.toLowerCase()))
35
- throw new Error('К сожалению, данный метод пополнения временно недоступен');
33
+ const paymentMethods = (await config.API.get('/payments')).data
34
+ if (!paymentMethods.find((x: any) => x.isEnabled && x.type.toLowerCase() === value.toLowerCase())) throw new Error('К сожалению, данный метод пополнения временно недоступен')
36
35
 
37
- if (value !== 'cryptowallet') return value;
36
+ if (value !== 'cryptowallet') return value
38
37
  }
39
38
 
40
39
  if (!value) {
41
- const allowedMethods = (await config.API.get('/orders/allowedMethods', { params: { currency: config.currency } })).data;
40
+ const allowedMethods = (await config.API.get('/orders/allowedMethods', { params: { currency: config.currency } })).data
42
41
 
43
42
  await context.sendFormatted(
44
43
  {
@@ -47,14 +46,10 @@ export class DepositCommand extends Command {
47
46
  },
48
47
  {
49
48
  reply_markup: {
50
- inline_keyboard: [
51
- ...(allowedMethods.includes('card') ? [[{ text: '💳 Банковская карта', command: DepositCommand, payload: { method: 'card' } }]] : []),
52
- [{ text: '🪙 Криптовалюта', command: DepositCommand, payload: { method: 'cryptowallet' } }],
53
- [{ text: '🎫 Промокод', command: DepositByPromocodeCommand }],
54
- ],
49
+ inline_keyboard: [...(allowedMethods.includes('card') ? [[{ text: '💳 Банковская карта', command: DepositCommand, payload: { method: 'card' } }]] : []), [{ text: '🪙 Криптовалюта', command: DepositCommand, payload: { method: 'cryptowallet' } }], [{ text: '🎫 Промокод', command: DepositByPromocodeCommand }]],
55
50
  },
56
51
  }
57
- );
52
+ )
58
53
  } else if (value === 'cryptowallet') {
59
54
  await context.sendFormatted(
60
55
  {
@@ -71,19 +66,19 @@ export class DepositCommand extends Command {
71
66
  ],
72
67
  },
73
68
  }
74
- );
69
+ )
75
70
  }
76
71
  })
77
72
  method: string,
78
73
 
79
74
  @CommandArgument('coin', async ({ value, args, context }) => {
80
- if (args.method !== 'cryptoWallet') return true;
81
- else if (Number(value)) return value;
75
+ if (args.method !== 'cryptoWallet') return true
76
+ else if (Number(value)) return value
82
77
 
83
- const config = Client.config(context);
78
+ const config = Client.config(context)
84
79
 
85
80
  if (!value) {
86
- const wallets = await config.API.get('/crypto/coins').then((x) => x.data);
81
+ const wallets = await config.API.get('/crypto/coins').then((x) => x.data)
87
82
  context.sendFormatted(
88
83
  {
89
84
  header: '<b>🪙 Доступные криптовалюты для пополнения:</b>',
@@ -100,10 +95,10 @@ export class DepositCommand extends Command {
100
95
  ]),
101
96
  },
102
97
  }
103
- );
98
+ )
104
99
  } else {
105
- const wallets = await config.API.get(`/crypto/coins/${value}/wallets`).then((x) => x.data);
106
- if (wallets.length === 1) return wallets[0].id;
100
+ const wallets = await config.API.get(`/crypto/coins/${value}/wallets`).then((x) => x.data)
101
+ if (wallets.length === 1) return wallets[0].id
107
102
 
108
103
  context.sendFormatted(
109
104
  {
@@ -121,7 +116,7 @@ export class DepositCommand extends Command {
121
116
  ]),
122
117
  },
123
118
  }
124
- );
119
+ )
125
120
  }
126
121
  })
127
122
  coin: string | undefined,
@@ -130,17 +125,17 @@ export class DepositCommand extends Command {
130
125
  {
131
126
  name: 'deposit',
132
127
  question: async ({ context, error, args, validateArgs }) => {
133
- const config = Client.config(context);
128
+ const config = Client.config(context)
134
129
 
135
- let minAmountSetting = JSON.parse(context.state.settings.find((x: any) => x.name === 'minDeposit').value);
136
- let minAmount = minAmountSetting[config.currency] ?? (await minAmountSetting['RUB'].convert({ from: 'RUB', to: config.currency }));
130
+ let minAmountSetting = JSON.parse(context.state.settings.find((x: any) => x.name === 'minDeposit').value)
131
+ let minAmount = minAmountSetting[config.currency] ?? (await minAmountSetting['RUB'].convert({ from: 'RUB', to: config.currency }))
137
132
 
138
- const minDepositByMethod = await config.API.get('/config/minDepositByMethod').then((x) => x.data.value);
133
+ const minDepositByMethod = await config.API.get('/config/minDepositByMethod').then((x) => x.data.value)
139
134
  // prettier-ignore
140
135
  if (minDepositByMethod && minDepositByMethod[args.method] !== undefined && (await minAmount.convert({ from: config.currency, to: 'RUB' })) < minDepositByMethod[args.method])
141
136
  minAmount = await minDepositByMethod[args.method].convert({ from: 'RUB', to: config.currency });
142
137
 
143
- validateArgs.minAmount = minAmount;
138
+ validateArgs.minAmount = minAmount
144
139
  return (
145
140
  await context.sendFormattedQuestion({
146
141
  photo: ['card', 'qrcode'].includes(args.method) ? config.images.deposit : config.images.depositCrypto,
@@ -153,38 +148,32 @@ export class DepositCommand extends Command {
153
148
  footer: `<i>Минимальная сумма пополнения: {{ ${Number(minAmount).toLocaleString('ru')} ${config.currency} }}</i>`,
154
149
  error: error?.message,
155
150
  })
156
- ).text;
151
+ ).text
157
152
  },
158
153
  },
159
154
  numberValidator({ allowFloat: true, min: 0 }),
160
155
  async ({ value, context, validateArgs }) => {
161
- const config = Client.config(context);
156
+ const config = Client.config(context)
162
157
 
163
- const maxDeposit = await config.API.get('/config/maxDepositInService').then((x) => x.data.value);
164
- const depositAmount = await value.convert({ from: config.currency, to: 'RUB' });
158
+ const maxDeposit = await config.API.get('/config/maxDepositInService').then((x) => x.data.value)
159
+ const depositAmount = await value.convert({ from: config.currency, to: 'RUB' })
165
160
 
166
- if (depositAmount > maxDeposit && validateArgs.method !== 'cryptoWallet')
167
- throw new Error(
168
- `Пополнение, более чем на ${await maxDeposit.convert({ from: 'RUB', to: config.currency })}, доступно только через <a href="t.me/{{ ${
169
- config.support.username
170
- } }}">тех. поддержку</a>`
171
- );
161
+ if (depositAmount > maxDeposit && validateArgs.method !== 'cryptoWallet') throw new Error(`Пополнение, более чем на ${await maxDeposit.convert({ from: 'RUB', to: config.currency })}, доступно только через <a href="t.me/{{ ${config.support.username} }}">тех. поддержку</a>`)
172
162
 
173
- return value;
163
+ return value
174
164
  },
175
165
  async ({ value, context, validateArgs }) => {
176
- const config = Client.config(context);
166
+ const config = Client.config(context)
177
167
 
178
- if (Number(value) < Number(validateArgs.minAmount))
179
- throw new Error(`Минимальная сумма пополнения: ${Number(validateArgs.minAmount).toLocaleString('ru')} ${config.currency}`);
168
+ if (Number(value) < Number(validateArgs.minAmount)) throw new Error(`Минимальная сумма пополнения: ${Number(validateArgs.minAmount).toLocaleString('ru')} ${config.currency}`)
180
169
 
181
- return value;
170
+ return value
182
171
  }
183
172
  )
184
173
  deposit: number
185
174
  ) {
186
- const config = Client.config(context);
187
- let interval: NodeJS.Timeout;
175
+ const config = Client.config(context)
176
+ let interval: NodeJS.Timeout
188
177
 
189
178
  if (['card', 'qrcode'].includes(method)) {
190
179
  const message = await context.sendFormatted({
@@ -195,9 +184,9 @@ export class DepositCommand extends Command {
195
184
  data: [['Создаем заявку на пополнение...']],
196
185
  },
197
186
  ],
198
- });
187
+ })
199
188
 
200
- const startTime = Date.now();
189
+ const startTime = Date.now()
201
190
  interval = setInterval(async () => {
202
191
  await message.edit({
203
192
  text: formatMessage({
@@ -210,19 +199,19 @@ export class DepositCommand extends Command {
210
199
  footer: `<i>⏳ Прошло {{ ${Math.floor((Date.now() - startTime) / 1000)} }} сек.</i>`,
211
200
  }),
212
201
  parse_mode: 'HTML',
213
- });
214
- }, 1000);
202
+ })
203
+ }, 1000)
215
204
 
216
205
  setTimeout(() => {
217
- clearInterval(interval);
218
- }, 300_000);
206
+ clearInterval(interval)
207
+ }, 300_000)
219
208
  }
220
209
 
221
- let order: any;
210
+ let order: any
222
211
 
223
212
  if (method === 'card') {
224
- for (const _method of ['qrcode', 'card']) {
225
- method = _method;
213
+ for (const _method of [...(config.currency.toLowerCase() === 'rub' ? ['qrcode'] : []), 'card']) {
214
+ method = _method
226
215
 
227
216
  order = await config.API.post(`orders`, {
228
217
  mirrorId: context.mammoth.mirror.mirror.id,
@@ -232,9 +221,9 @@ export class DepositCommand extends Command {
232
221
  currency: config.currency,
233
222
  })
234
223
  .then((x) => x.data)
235
- .catch(() => null);
224
+ .catch(() => null)
236
225
 
237
- if (order) break;
226
+ if (order) break
238
227
  }
239
228
  } else {
240
229
  order = await config.API.post(`orders`, {
@@ -246,15 +235,15 @@ export class DepositCommand extends Command {
246
235
  params: { walletId: coin },
247
236
  })
248
237
  .then((x) => x.data)
249
- .catch(() => null);
238
+ .catch(() => null)
250
239
  }
251
240
 
252
241
  //@ts-ignore
253
- if (interval) clearInterval(interval);
254
- this.logger.log(`Запрос на пополнение: ${JSON.stringify(order, null, 2)}`);
242
+ if (interval) clearInterval(interval)
243
+ this.logger.log(`Запрос на пополнение: ${JSON.stringify(order, null, 2)}`)
255
244
 
256
245
  if (!order) {
257
- context.user.log(0, `Не удалось получить реквизиты для пополнения на сумму ${Number(deposit).toLocaleString('ru')} ${config.currency}`);
246
+ context.user.log(0, `Не удалось получить реквизиты для пополнения на сумму ${Number(deposit).toLocaleString('ru')} ${config.currency}`)
258
247
  return context.sendFormatted(
259
248
  {
260
249
  photo: config.images.deposit,
@@ -266,7 +255,7 @@ export class DepositCommand extends Command {
266
255
  inline_keyboard: [[{ text: '👩‍💻 Поддержка', url: `t.me/${config.support.username}` }]],
267
256
  },
268
257
  }
269
- );
258
+ )
270
259
  }
271
260
 
272
261
  if (!order.isRepeat) {
@@ -290,42 +279,40 @@ export class DepositCommand extends Command {
290
279
  : '',
291
280
  keyboard: [[{ text: '🚀 Оплатить счет', callback_data: `PaidOrderCommand?orderId=${order.id}` }]],
292
281
  }
293
- );
282
+ )
294
283
 
295
284
  if (Number(deposit) !== Number(order.amount) && method !== 'cryptoWallet') {
296
285
  return context.sendFormatted(
297
286
  {
298
287
  photo: config.images.deposit,
299
- header: `<blockquote><b>ℹ️ Сумма пополнения стала выше</b></blockquote>\n\n<i>Для определения вашего пополнения в системе, Вам придется заплатить ${Number(
300
- order.amount
301
- ).toLocaleString('ru')} ${order.currency.toUpperCase()}. Приносим свои извинения за неудобства</i>`,
288
+ header: `<blockquote><b>ℹ️ Сумма пополнения стала выше</b></blockquote>\n\n<i>Для определения вашего пополнения в системе, Вам придется заплатить ${Number(order.amount).toLocaleString('ru')} ${order.currency.toUpperCase()}. Приносим свои извинения за неудобства</i>`,
302
289
  },
303
290
  {
304
291
  reply_markup: {
305
292
  inline_keyboard: [[{ text: '📖 Да, я все понял, продолжить', command: GetDepositOrderCommand, payload: { orderId: order.id } }]],
306
293
  },
307
294
  }
308
- );
295
+ )
309
296
  }
310
297
 
311
298
  setTimeout(async () => {
312
- const neworder = await config.API.get(`/orders/${order.id}`).then((x) => x.data);
313
- if (['paid', 'fakepaid'].includes(neworder.status) || neworder.cheque) return;
299
+ const neworder = await config.API.get(`/orders/${order.id}`).then((x) => x.data)
300
+ if (['paid', 'fakepaid'].includes(neworder.status) || neworder.cheque) return
314
301
 
315
- const msgInfo = await context.client.database.config.get(`order${order.id}`);
316
- if (!msgInfo) return;
302
+ const msgInfo = await context.client.database.config.get(`order${order.id}`)
303
+ if (!msgInfo) return
317
304
 
318
- context.client.api.deleteMessage({ chat_id: msgInfo.value.chatId, message_id: msgInfo.value.messageId });
305
+ context.client.api.deleteMessage({ chat_id: msgInfo.value.chatId, message_id: msgInfo.value.messageId })
319
306
  context.sendFormatted({
320
307
  photo: config.images.deposit,
321
308
  header: `<blockquote><b>⚠️ Время на оплату истекло</b></blockquote>\n\n<i>Мы не получили пополнение по нашим реквизитам. Они больше недоступны для пополнения</i>\n\n<b>ℹ️ Если Вы оплатили, а система не определила Ваш перевод - <a href="t.me/${context.mirror.projectMirror.design.supportBot?.username}">обратитесь в тех. поддержку</a></b>`,
322
309
  reply_markup: {
323
310
  inline_keyboard: [[{ text: '🔄 Проверить оплату', command: CheckPaidOrderCommand, payload: { orderId: order.id } }]],
324
311
  },
325
- });
326
- }, new Date(order.expiresAt).getTime() - new Date().getTime());
312
+ })
313
+ }, new Date(order.expiresAt).getTime() - new Date().getTime())
327
314
  }
328
315
 
329
- context.redirect(GetDepositOrderCommand, { orderId: order.id, repeat: order.isRepeat });
316
+ context.redirect(GetDepositOrderCommand, { orderId: order.id, repeat: order.isRepeat })
330
317
  }
331
318
  }
@@ -61,7 +61,7 @@ export class ParserSharedCommandsService {
61
61
  // Ищем начало метода
62
62
  for (let i = 0; i < lines.length; i++) {
63
63
  const line = lines[i]
64
- if (line.includes(`private`) && line.includes(`${methodName}(`) && line.includes('{')) {
64
+ if (line.includes(`private static`) && line.includes(`${methodName}(`) && line.includes('{')) {
65
65
  methodStartIndex = i
66
66
  break
67
67
  }
@@ -85,21 +85,9 @@ export class ParserSharedCommandsService {
85
85
  }
86
86
  })
87
87
 
88
- // Дополнительная очистка - убираем все оставшиеся приватные методы с умным поиском
89
- transformedContent = this.removeRemainingPrivateMethods(transformedContent)
90
-
91
88
  return transformedContent
92
89
  }
93
90
 
94
- /**
95
- * Проверяет, является ли импорт локальным (относительным путем)
96
- * @param importPath - путь импорта
97
- * @returns true, если импорт локальный
98
- */
99
- private static isLocalImport(importPath: string) {
100
- return importPath.startsWith('./') || importPath.startsWith('../') || importPath.startsWith('/')
101
- }
102
-
103
91
  /**
104
92
  * Удаляет только локальные импорты, сохраняя нелокальные
105
93
  * @param content - исходный код
@@ -115,46 +103,6 @@ export class ParserSharedCommandsService {
115
103
  return result
116
104
  }
117
105
 
118
- /**
119
- * Удаляет все оставшиеся приватные методы с умным поиском
120
- * @param content - код для очистки
121
- * @returns код с удаленными приватными методами
122
- */
123
- private static removeRemainingPrivateMethods(content: string): string {
124
- let result = content
125
- const privateMethodRegex = /private\s+(?:static\s+)?(?:async\s+)?\w+\s*\([^)]*\)\s*\{/g
126
- let match
127
-
128
- while ((match = privateMethodRegex.exec(result)) !== null) {
129
- const startIndex = match.index
130
- const startBraceIndex = result.indexOf('{', startIndex)
131
-
132
- if (startBraceIndex !== -1) {
133
- // Находим конец метода, подсчитывая скобки
134
- let braceCount = 1
135
- let endIndex = startBraceIndex + 1
136
-
137
- while (braceCount > 0 && endIndex < result.length) {
138
- const char = result[endIndex]
139
- if (char === '{') braceCount++
140
- else if (char === '}') braceCount--
141
- endIndex++
142
- }
143
-
144
- if (braceCount === 0) {
145
- // Удаляем весь метод от начала до конца
146
- const methodEndIndex = endIndex
147
- result = result.substring(0, startIndex) + result.substring(methodEndIndex)
148
-
149
- // Сбрасываем регулярное выражение, так как индексы изменились
150
- privateMethodRegex.lastIndex = 0
151
- }
152
- }
153
- }
154
-
155
- return result
156
- }
157
-
158
106
  /**
159
107
  * Создает API вызов для метода
160
108
  * @param methodName - название метода
@@ -280,4 +228,4 @@ export class ParserSharedCommandsService {
280
228
  }
281
229
  }
282
230
 
283
- fs.writeFileSync('test.ts', ParserSharedCommandsService.transformCommand(fs.readFileSync('../escort/src/commands/shared/models/CreateModel.srdcmd.ts', 'utf-8')))
231
+ fs.writeFileSync('test.ts', ParserSharedCommandsService.transformCommand(fs.readFileSync('../escort/src/commands/shared/models/PickActiveModels.srdcmd.ts', 'utf-8')))
package/test-imports.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};
package/test.d.ts DELETED
@@ -1,5 +0,0 @@
1
- import { InlineQueryContext } from 'evogram/lib/migrated';
2
- export declare class EscortCreateModelCommand extends SharedCommand {
3
- execute(context: CommandContext, name: string, age: number, about: string, services: string[], rating: number, specifications: string[], _: true): Promise<any>;
4
- inlineExecute(context: InlineQueryContext, ...args: any): Promise<void>;
5
- }