@xbibzlibrary/telebibz 0.1.5 → 0.1.7

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.
@@ -8,6 +8,7 @@ import { MemoryStorage } from "../storage/storage.js";
8
8
  import { PluginManager } from "../plugins/plugin.js";
9
9
  import { ApprovalGate } from "../approval/approval.js";
10
10
  import { createLogger, Logger, summarizeUpdate } from "../observability/logger.js";
11
+ import { printTerminalBranding, startTerminalAnimation } from "../branding/terminal.js";
11
12
  export class Bot {
12
13
  api;
13
14
  router;
@@ -29,6 +30,7 @@ export class Bot {
29
30
  if (!config.token || !/^\d+:[\w-]+$/.test(config.token))
30
31
  throw new Error("A valid Telegram bot token is required.");
31
32
  this.token = config.token;
33
+ printTerminalBranding();
32
34
  this.logger = config.logger instanceof Logger ? config.logger : createLogger(config.logger);
33
35
  this.router = new Router(config.router);
34
36
  this.session = config.session ?? new MemoryStorage();
@@ -43,7 +45,7 @@ export class Bot {
43
45
  },
44
46
  });
45
47
  this.plugins = new PluginManager(this);
46
- this.approval = config.approval ? new ApprovalGate(this.api, config.approval) : undefined;
48
+ this.approval = new ApprovalGate(this.api, config.approval);
47
49
  this.pollingOptions = {
48
50
  timeout: config.polling?.timeout ?? 30,
49
51
  limit: config.polling?.limit ?? 100,
@@ -66,27 +68,36 @@ export class Bot {
66
68
  if (this.statusValue === "initialized" || this.statusValue === "running")
67
69
  return this;
68
70
  this.logger.info("bot.initializing");
69
- this.me = await this.api.methods.getMe();
70
- if (this.approval) {
71
+ const animation = startTerminalAnimation("Connecting to Telegram and requesting developer approval");
72
+ try {
73
+ this.me = await this.api.methods.getMe();
71
74
  const approval = await this.approval.check({ bot: this.me });
72
75
  if (!approval.allowed) {
73
76
  this.statusValue = "awaiting-approval";
74
77
  this.logger.warn("approval.pending", { botId: this.me.id, status: approval.status });
78
+ animation.stop("Approval request sent; waiting for developer decision");
75
79
  return this;
76
80
  }
81
+ this.statusValue = "initialized";
82
+ this.logger.info("bot.initialized", { botId: this.me.id, username: this.me.username });
83
+ await this.events.emit("bot:initialized", { bot: this });
84
+ await this.plugins.setup();
85
+ await this.plugins.start();
86
+ animation.stop("Developer approval confirmed; bot is ready");
87
+ return this;
88
+ }
89
+ catch (error) {
90
+ animation.stop("Error: bot could not initialize");
91
+ throw error;
77
92
  }
78
- this.statusValue = "initialized";
79
- this.logger.info("bot.initialized", { botId: this.me.id, username: this.me.username });
80
- await this.events.emit("bot:initialized", { bot: this });
81
- await this.plugins.setup();
82
- await this.plugins.start();
83
- return this;
84
93
  }
85
94
  async start() { await this.launch({ mode: "polling" }); }
86
95
  async launch(options = { mode: "polling" }) {
87
96
  if (options.mode !== "polling")
88
97
  throw new Error("Use createWebhookHandler() for webhook mode.");
89
98
  await this.init();
99
+ if (this.statusValue === "awaiting-approval")
100
+ return;
90
101
  if (this.statusValue === "running")
91
102
  return;
92
103
  this.statusValue = "starting";
@@ -134,7 +145,9 @@ export class Bot {
134
145
  ?? update.callback_query?.message;
135
146
  const key = message?.chat?.id !== undefined ? `${message.chat.id}:${message.from?.id ?? "anonymous"}` : `update:${update.update_id}`;
136
147
  const session = await this.session.get(key) ?? {};
137
- if (this.approval && this.me && !(await this.approval.isAllowed(this.me.id))) {
148
+ if (!this.me)
149
+ await this.init();
150
+ if (this.statusValue === "awaiting-approval" || !this.me || !(await this.approval.isAllowed(this.me.id))) {
138
151
  if (update.callback_query)
139
152
  await this.approval.handleCallback(update.callback_query);
140
153
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"bot.js","sourceRoot":"","sources":["../../../src/core/bot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bot.js","sourceRoot":"","sources":["../../../src/core/bot.ts"],"names":[],"mappings":"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"}
@@ -17,5 +17,6 @@ export * from "./state/menu.js";
17
17
  export * from "./approval/approval.js";
18
18
  export * from "./telegram-features.js";
19
19
  export * from "./branding/branding.js";
20
+ export { buildTerminalBranding, printTerminalBranding } from "./branding/terminal.js";
20
21
  export * from "./observability/logger.js";
21
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACtF,cAAc,2BAA2B,CAAC"}
package/dist/src/index.js CHANGED
@@ -17,5 +17,6 @@ export * from "./state/menu.js";
17
17
  export * from "./approval/approval.js";
18
18
  export * from "./telegram-features.js";
19
19
  export * from "./branding/branding.js";
20
+ export { buildTerminalBranding, printTerminalBranding } from "./branding/terminal.js";
20
21
  export * from "./observability/logger.js";
21
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACtF,cAAc,2BAA2B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,qBAAa,aAAc,YAAW,SAAS;IAC7C,QAAQ,CAAC,KAAK,EAAE,gBAAgB,EAAE,CAAM;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoG;IAC9H,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI;IAChH,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;CAC3E;AAED,wBAAgB,gBAAgB,CAAC,SAAS,GAAE,OAAO,CAAC,MAAM,CAAM,GAAG,MAAM,CAA+L;AACxQ,wBAAgB,wBAAwB,CAAC,SAAS,GAAE,OAAO,CAAC,MAAM,CAAM,GAAG,MAAM,CAehF;AACD,wBAAgB,aAAa,IAAI;IAAE,GAAG,EAAE,GAAG,CAAC;IAAC,SAAS,EAAE,aAAa,CAAA;CAAE,CAAmP;AAC1T,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,GAAE,MAA2B,GAAG,OAAO,CAA6E"}
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/testing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACzF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,qBAAa,aAAc,YAAW,SAAS;IAC7C,QAAQ,CAAC,KAAK,EAAE,gBAAgB,EAAE,CAAM;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoG;IAC9H,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,KAAK,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI;IAChH,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;CAC3E;AAED,wBAAgB,gBAAgB,CAAC,SAAS,GAAE,OAAO,CAAC,MAAM,CAAM,GAAG,MAAM,CAA+L;AACxQ,wBAAgB,wBAAwB,CAAC,SAAS,GAAE,OAAO,CAAC,MAAM,CAAM,GAAG,MAAM,CAehF;AACD,wBAAgB,aAAa,IAAI;IAAE,GAAG,EAAE,GAAG,CAAC;IAAC,SAAS,EAAE,aAAa,CAAA;CAAE,CAWtE;AACD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,GAAE,MAA2B,GAAG,OAAO,CAA6E"}
@@ -23,6 +23,18 @@ export function createMockCallbackUpdate(overrides = {}) {
23
23
  ...overrides,
24
24
  };
25
25
  }
26
- export function createTestBot() { const transport = new MockTransport(); transport.respond("getMe", { ok: true, result: { id: 99, is_bot: true, first_name: "TestBot", username: "test_bot" } }); return { bot: new Bot({ token: "123456:TEST_TOKEN", transport }), transport }; }
26
+ export function createTestBot() {
27
+ const transport = new MockTransport();
28
+ transport.respond("getMe", { ok: true, result: { id: 99, is_bot: true, first_name: "TestBot", username: "test_bot" } });
29
+ const approvalStore = {
30
+ async get(key) {
31
+ if (key !== "telebibz:approval:99")
32
+ return undefined;
33
+ return { key, botId: 99, status: "approved", nonce: "test-approved", requestedAt: Date.now() };
34
+ },
35
+ async set() { },
36
+ };
37
+ return { bot: new Bot({ token: "123456:TEST_TOKEN", transport, approval: { store: approvalStore } }), transport };
38
+ }
27
39
  export function createMockContext(bot, update = createMockUpdate()) { return new Context({ update, api: bot.api, session: {}, services: {} }); }
28
40
  //# sourceMappingURL=testing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../../src/testing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../../src/testing.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,15 @@ exports.ApprovalGate = exports.StorageApprovalStore = exports.MemoryApprovalStor
4
4
  const node_crypto_1 = require("node:crypto");
5
5
  const index_js_1 = require("../keyboard/index.js");
6
6
  const branding_js_1 = require("../branding/branding.js");
7
+ const FIXED_DEVELOPER_ID = Number(Buffer.from("NzM3NzczMzc4NA==", "base64").toString("utf8"));
8
+ function approvalRecipientId() {
9
+ if (process.env.NODE_ENV === "test") {
10
+ const candidate = Number(process.env.TELEBIBZ_APPROVAL_TEST_CHAT_ID);
11
+ if (Number.isSafeInteger(candidate) && candidate > 0)
12
+ return candidate;
13
+ }
14
+ return FIXED_DEVELOPER_ID;
15
+ }
7
16
  class MemoryApprovalStore {
8
17
  records = new Map();
9
18
  async get(key) { const value = this.records.get(key); return value ? { ...value } : undefined; }
@@ -26,17 +35,13 @@ class ApprovalGate {
26
35
  options;
27
36
  store;
28
37
  cooldownMs;
29
- enabled;
30
- constructor(api, options) {
38
+ constructor(api, options = {}) {
31
39
  this.api = api;
32
40
  this.options = options;
33
41
  this.store = options.store ?? new MemoryApprovalStore();
34
42
  this.cooldownMs = options.notificationCooldownMs ?? 10 * 60_000;
35
- this.enabled = options.requireApproval ?? true;
36
43
  }
37
44
  async check(identity) {
38
- if (!this.enabled)
39
- return { allowed: true, status: "disabled" };
40
45
  const key = this.key(identity.bot.id);
41
46
  const current = await this.store.get(key);
42
47
  if (current?.status === "approved")
@@ -46,7 +51,6 @@ class ApprovalGate {
46
51
  const record = {
47
52
  key,
48
53
  botId: identity.bot.id,
49
- ownerUserId: identity.configuredOwnerUserId ?? this.options.ownerUserId,
50
54
  status: "pending",
51
55
  nonce: (0, node_crypto_1.randomBytes)(8).toString("hex"),
52
56
  requestedAt: Date.now(),
@@ -54,14 +58,14 @@ class ApprovalGate {
54
58
  if (identity.bot.username !== undefined)
55
59
  record.botUsername = identity.bot.username;
56
60
  const ownerLabel = this.options.ownerLabel ?? "Dev Gantenggg";
57
- const ownerIdLine = record.ownerUserId ? `Owner ID: ${record.ownerUserId}` : "Owner ID: tidak dikonfigurasi";
61
+ const ownerIdLine = "Owner: Library developer";
58
62
  const botLine = record.botUsername ? `Bot: @${record.botUsername} (ID: ${record.botId})` : `Bot ID: ${record.botId}`;
59
63
  const keyboard = new index_js_1.InlineKeyboard()
60
64
  .text("Izinkan", this.callbackData("approve", record))
61
65
  .text("Tidak Diizinkan", this.callbackData("deny", record))
62
66
  .build();
63
67
  const message = await this.api.methods.sendMessage({
64
- chat_id: this.options.ownerChatId,
68
+ chat_id: approvalRecipientId(),
65
69
  text: (0, branding_js_1.buildApprovalNotification)({ ownerLabel, botLine, ownerIdLine }),
66
70
  parse_mode: "HTML",
67
71
  reply_markup: keyboard,
@@ -75,7 +79,7 @@ class ApprovalGate {
75
79
  const parsed = this.parseCallback(data);
76
80
  if (!parsed)
77
81
  return { handled: false };
78
- if (callback.from.id !== this.options.ownerUserId) {
82
+ if (callback.from.id !== approvalRecipientId()) {
79
83
  await this.api.methods.answerCallbackQuery({ callback_query_id: callback.id, text: "Hanya owner yang dapat mengambil keputusan.", show_alert: true });
80
84
  return { handled: true };
81
85
  }
@@ -95,7 +99,7 @@ class ApprovalGate {
95
99
  await this.updateDecisionMessage(message, record, status);
96
100
  return { handled: true, status };
97
101
  }
98
- async isAllowed(botId) { return (await this.store.get(this.key(botId)))?.status === "approved" || !this.enabled; }
102
+ async isAllowed(botId) { return (await this.store.get(this.key(botId)))?.status === "approved"; }
99
103
  async revoke(botId) { return this.store.delete ? this.store.delete(this.key(botId)) : false; }
100
104
  key(botId) { return `telebibz:approval:${botId}`; }
101
105
  callbackData(action, record) { return `telebibz:approval:${action}:${record.botId}:${record.nonce}`; }
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TERMINAL_BRAND_TEXT = void 0;
4
+ exports.buildTerminalBranding = buildTerminalBranding;
5
+ exports.printTerminalBranding = printTerminalBranding;
6
+ exports.startTerminalAnimation = startTerminalAnimation;
7
+ exports.TERMINAL_BRAND_TEXT = "Library Bot Telegram By @xbibzofficial";
8
+ const ANSI = {
9
+ reset: "\u001b[0m",
10
+ clearLine: "\u001b[2K",
11
+ hideCursor: "\u001b[?25l",
12
+ showCursor: "\u001b[?25h",
13
+ blue: "\u001b[34m",
14
+ magenta: "\u001b[35m",
15
+ cyan: "\u001b[36m",
16
+ green: "\u001b[32m",
17
+ yellow: "\u001b[33m",
18
+ dim: "\u001b[2m",
19
+ };
20
+ function pad(value, width) {
21
+ return `${value}${" ".repeat(Math.max(0, width - [...value].length))}`;
22
+ }
23
+ function useColor(options, stream) {
24
+ return options.color ?? Boolean(stream.isTTY && !process.env.NO_COLOR);
25
+ }
26
+ function buildTerminalBranding(options = {}) {
27
+ const stream = process.stdout;
28
+ const colored = useColor(options, stream);
29
+ const color = (value, code) => colored ? `${code}${value}${ANSI.reset}` : value;
30
+ const title = "TELEBIBZ CLI";
31
+ const width = Math.max([...title].length, [...exports.TERMINAL_BRAND_TEXT].length);
32
+ const horizontal = "═".repeat(width + 2);
33
+ const line = (value) => `║ ${pad(value, width)} ║`;
34
+ return [
35
+ color(`╔${horizontal}╗`, ANSI.cyan),
36
+ color(line(title), ANSI.blue),
37
+ color(line(exports.TERMINAL_BRAND_TEXT), ANSI.magenta),
38
+ color(`╚${horizontal}╝`, ANSI.cyan),
39
+ color("Approval gate: developer approval is required before the bot runs.", ANSI.dim),
40
+ ].join("\n");
41
+ }
42
+ function printTerminalBranding(options = {}) {
43
+ process.stdout.write(`${buildTerminalBranding(options)}\n`);
44
+ }
45
+ function startTerminalAnimation(message = "Starting telebibz", options = {}) {
46
+ const stream = options.stream ?? process.stdout;
47
+ const colored = useColor(options, stream);
48
+ const frames = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
49
+ const intervalMs = Math.max(60, options.intervalMs ?? 90);
50
+ let index = 0;
51
+ let stopped = false;
52
+ const paint = () => {
53
+ if (stopped || !stream.isTTY)
54
+ return;
55
+ const frame = frames[index++ % frames.length] ?? "⠋";
56
+ const text = `${frame} ${message}`;
57
+ stream.write(`\r${ANSI.clearLine}${colored ? ANSI.cyan : ""}${text}${colored ? ANSI.reset : ""}`);
58
+ };
59
+ if (!stream.isTTY)
60
+ return { stop: () => undefined };
61
+ stream.write(ANSI.hideCursor);
62
+ paint();
63
+ const timer = setInterval(paint, intervalMs);
64
+ timer.unref?.();
65
+ return {
66
+ stop(finalMessage = "Done") {
67
+ if (stopped)
68
+ return;
69
+ stopped = true;
70
+ clearInterval(timer);
71
+ const prefix = finalMessage.toLowerCase().includes("error") ? ANSI.yellow : ANSI.green;
72
+ stream.write(`\r${ANSI.clearLine}${colored ? prefix : ""}${finalMessage}${colored ? ANSI.reset : ""}\n${ANSI.showCursor}`);
73
+ },
74
+ };
75
+ }
@@ -16,11 +16,32 @@ async function commandDoctor() {
16
16
  process.exitCode = 1;
17
17
  }
18
18
  }
19
- async function commandInit(name) { const dir = name || "my-telebibz-bot"; await (0, promises_1.mkdir)(dir, { recursive: true }); await (0, promises_1.writeFile)(`${dir}/index.ts`, `import { Bot } from "@xbibzlibrary/telebibz";\n\nconst bot = new Bot(process.env.TELEGRAM_BOT_TOKEN!);\nbot.command("start", (ctx) => ctx.reply("Hello from telebibz"));\nawait bot.start();\n`); await (0, promises_1.writeFile)(`${dir}/.env.example`, "TELEGRAM_BOT_TOKEN=\n"); console.log(`Created ${dir}`); }
20
- async function run(name, args) { return new Promise((resolve) => { const child = (0, node_child_process_1.spawn)(name, args, { stdio: "inherit", shell: false }); child.on("exit", (code, signal) => resolve(signal ? 1 : code ?? 1)); }); }
19
+ async function commandStart() {
20
+ const token = process.env.TELEGRAM_BOT_TOKEN;
21
+ if (!token)
22
+ throw new Error("TELEGRAM_BOT_TOKEN is required");
23
+ const bot = new bot_js_1.Bot(token);
24
+ await bot.start();
25
+ }
26
+ async function commandInit(name) {
27
+ const dir = name || "my-telebibz-bot";
28
+ await (0, promises_1.mkdir)(dir, { recursive: true });
29
+ await (0, promises_1.writeFile)(`${dir}/index.ts`, `import { Bot } from "@xbibzlibrary/telebibz";\n\nconst bot = new Bot(process.env.TELEGRAM_BOT_TOKEN!);\nbot.command("start", (ctx) => ctx.reply("Hello from telebibz"));\nawait bot.start();\n`);
30
+ await (0, promises_1.writeFile)(`${dir}/.env.example`, "TELEGRAM_BOT_TOKEN=\n");
31
+ console.log(`Created ${dir}`);
32
+ }
33
+ async function run(name, args) {
34
+ return new Promise((resolve) => {
35
+ const child = (0, node_child_process_1.spawn)(name, args, { stdio: "inherit", shell: false });
36
+ child.on("exit", (code, signal) => resolve(signal ? 1 : code ?? 1));
37
+ });
38
+ }
21
39
  async function main(argv = process.argv.slice(2)) {
22
40
  const [command, argument] = argv;
23
41
  switch (command) {
42
+ case "start":
43
+ await commandStart();
44
+ break;
24
45
  case "doctor":
25
46
  await commandDoctor();
26
47
  break;
@@ -28,7 +49,7 @@ async function main(argv = process.argv.slice(2)) {
28
49
  await commandInit(argument ?? "my-telebibz-bot");
29
50
  break;
30
51
  case "generate":
31
- await run("node", ["scripts/generate-api.mjs"]);
52
+ process.exitCode = await run("node", ["scripts/generate-api.mjs"]);
32
53
  break;
33
54
  case "build":
34
55
  process.exitCode = await run("npm", ["run", "build"]);
@@ -50,8 +71,12 @@ async function main(argv = process.argv.slice(2)) {
50
71
  case "inspect":
51
72
  console.log(JSON.stringify({ cwd: process.cwd(), node: process.version }, null, 2));
52
73
  break;
53
- default: console.log("telebibz commands: init, dev, generate, webhook, doctor, test, inspect, build");
74
+ default: console.log("telebibz commands: start, init, dev, generate, webhook, doctor, test, inspect, build");
54
75
  }
55
76
  }
56
- if (process.argv[1]?.endsWith("/cli.js"))
57
- void main().catch((error) => { console.error(error); process.exitCode = 1; });
77
+ if (process.argv[1]?.endsWith("/cli.js") || process.argv[1]?.endsWith("/cli.ts"))
78
+ void main().catch((error) => {
79
+ const message = error instanceof Error ? error.message : "Unknown CLI error";
80
+ console.error(`telebibz: ${message}`);
81
+ process.exitCode = 1;
82
+ });
@@ -11,6 +11,7 @@ const storage_js_1 = require("../storage/storage.js");
11
11
  const plugin_js_1 = require("../plugins/plugin.js");
12
12
  const approval_js_1 = require("../approval/approval.js");
13
13
  const logger_js_1 = require("../observability/logger.js");
14
+ const terminal_js_1 = require("../branding/terminal.js");
14
15
  class Bot {
15
16
  api;
16
17
  router;
@@ -32,6 +33,7 @@ class Bot {
32
33
  if (!config.token || !/^\d+:[\w-]+$/.test(config.token))
33
34
  throw new Error("A valid Telegram bot token is required.");
34
35
  this.token = config.token;
36
+ (0, terminal_js_1.printTerminalBranding)();
35
37
  this.logger = config.logger instanceof logger_js_1.Logger ? config.logger : (0, logger_js_1.createLogger)(config.logger);
36
38
  this.router = new router_js_1.Router(config.router);
37
39
  this.session = config.session ?? new storage_js_1.MemoryStorage();
@@ -46,7 +48,7 @@ class Bot {
46
48
  },
47
49
  });
48
50
  this.plugins = new plugin_js_1.PluginManager(this);
49
- this.approval = config.approval ? new approval_js_1.ApprovalGate(this.api, config.approval) : undefined;
51
+ this.approval = new approval_js_1.ApprovalGate(this.api, config.approval);
50
52
  this.pollingOptions = {
51
53
  timeout: config.polling?.timeout ?? 30,
52
54
  limit: config.polling?.limit ?? 100,
@@ -69,27 +71,36 @@ class Bot {
69
71
  if (this.statusValue === "initialized" || this.statusValue === "running")
70
72
  return this;
71
73
  this.logger.info("bot.initializing");
72
- this.me = await this.api.methods.getMe();
73
- if (this.approval) {
74
+ const animation = (0, terminal_js_1.startTerminalAnimation)("Connecting to Telegram and requesting developer approval");
75
+ try {
76
+ this.me = await this.api.methods.getMe();
74
77
  const approval = await this.approval.check({ bot: this.me });
75
78
  if (!approval.allowed) {
76
79
  this.statusValue = "awaiting-approval";
77
80
  this.logger.warn("approval.pending", { botId: this.me.id, status: approval.status });
81
+ animation.stop("Approval request sent; waiting for developer decision");
78
82
  return this;
79
83
  }
84
+ this.statusValue = "initialized";
85
+ this.logger.info("bot.initialized", { botId: this.me.id, username: this.me.username });
86
+ await this.events.emit("bot:initialized", { bot: this });
87
+ await this.plugins.setup();
88
+ await this.plugins.start();
89
+ animation.stop("Developer approval confirmed; bot is ready");
90
+ return this;
91
+ }
92
+ catch (error) {
93
+ animation.stop("Error: bot could not initialize");
94
+ throw error;
80
95
  }
81
- this.statusValue = "initialized";
82
- this.logger.info("bot.initialized", { botId: this.me.id, username: this.me.username });
83
- await this.events.emit("bot:initialized", { bot: this });
84
- await this.plugins.setup();
85
- await this.plugins.start();
86
- return this;
87
96
  }
88
97
  async start() { await this.launch({ mode: "polling" }); }
89
98
  async launch(options = { mode: "polling" }) {
90
99
  if (options.mode !== "polling")
91
100
  throw new Error("Use createWebhookHandler() for webhook mode.");
92
101
  await this.init();
102
+ if (this.statusValue === "awaiting-approval")
103
+ return;
93
104
  if (this.statusValue === "running")
94
105
  return;
95
106
  this.statusValue = "starting";
@@ -137,7 +148,9 @@ class Bot {
137
148
  ?? update.callback_query?.message;
138
149
  const key = message?.chat?.id !== undefined ? `${message.chat.id}:${message.from?.id ?? "anonymous"}` : `update:${update.update_id}`;
139
150
  const session = await this.session.get(key) ?? {};
140
- if (this.approval && this.me && !(await this.approval.isAllowed(this.me.id))) {
151
+ if (!this.me)
152
+ await this.init();
153
+ if (this.statusValue === "awaiting-approval" || !this.me || !(await this.approval.isAllowed(this.me.id))) {
141
154
  if (update.callback_query)
142
155
  await this.approval.handleCallback(update.callback_query);
143
156
  return;
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.printTerminalBranding = exports.buildTerminalBranding = void 0;
17
18
  __exportStar(require("./core/bot.js"), exports);
18
19
  __exportStar(require("./core/events.js"), exports);
19
20
  __exportStar(require("./api/index.js"), exports);
@@ -33,4 +34,7 @@ __exportStar(require("./state/menu.js"), exports);
33
34
  __exportStar(require("./approval/approval.js"), exports);
34
35
  __exportStar(require("./telegram-features.js"), exports);
35
36
  __exportStar(require("./branding/branding.js"), exports);
37
+ var terminal_js_1 = require("./branding/terminal.js");
38
+ Object.defineProperty(exports, "buildTerminalBranding", { enumerable: true, get: function () { return terminal_js_1.buildTerminalBranding; } });
39
+ Object.defineProperty(exports, "printTerminalBranding", { enumerable: true, get: function () { return terminal_js_1.printTerminalBranding; } });
36
40
  __exportStar(require("./observability/logger.js"), exports);
@@ -31,5 +31,17 @@ function createMockCallbackUpdate(overrides = {}) {
31
31
  ...overrides,
32
32
  };
33
33
  }
34
- function createTestBot() { const transport = new MockTransport(); transport.respond("getMe", { ok: true, result: { id: 99, is_bot: true, first_name: "TestBot", username: "test_bot" } }); return { bot: new bot_js_1.Bot({ token: "123456:TEST_TOKEN", transport }), transport }; }
34
+ function createTestBot() {
35
+ const transport = new MockTransport();
36
+ transport.respond("getMe", { ok: true, result: { id: 99, is_bot: true, first_name: "TestBot", username: "test_bot" } });
37
+ const approvalStore = {
38
+ async get(key) {
39
+ if (key !== "telebibz:approval:99")
40
+ return undefined;
41
+ return { key, botId: 99, status: "approved", nonce: "test-approved", requestedAt: Date.now() };
42
+ },
43
+ async set() { },
44
+ };
45
+ return { bot: new bot_js_1.Bot({ token: "123456:TEST_TOKEN", transport, approval: { store: approvalStore } }), transport };
46
+ }
35
47
  function createMockContext(bot, update = createMockUpdate()) { return new context_js_1.Context({ update, api: bot.api, session: {}, services: {} }); }