const { Api, TelegramClient } = require('telegram')
const { StringSession } = require('telegram/sessions')
const session = new StringSession('')

const apiId = 26746106
const apiHash = '29e5f83c04e635fa583721473a6003b5'
const BOT_TOKEN = '7236504417:AAGVaodw3cRwGlf-jAhwnYb51OHaXcgpW8k';

const client = new TelegramClient(session, apiId, apiHash, {})

(async function run() {
	await client.start({botAuthToken: BOT_TOKEN})
	...
})()

Получение информации о себе
const result = await client.getEntity("me")

Группа при создании имеет тип group. Её id выглядит как -4646437202
Для получения информации надо отбросить минус
const result = await client.getEntity(new Api.PeerChat({ chatId: 4646437202n }))
Для получения пользователей и описания
const result = await client.invoke(new Api.messages.GetFullChat({chatId: 4646437202n}))

После включения топиков группа меняется на канал и её id становится вида -1002496664184
Для получения информации 
const result = await client.getEntity(new Api.PeerChannel({ channelId: -1002496664184n })) 
При этом аттрибут forum = true
Если топики отключить, то id и класс уже не меняется, но forum = false
Для получения списка пользователей канала
const channel = new Api.PeerChannel({ channelId: -1002496664184n })
const result = await client.invoke(
	new Api.channels.GetParticipants({
		channel,
		filter: new Api.ChannelParticipantsRecent(),
		limit: 999999,
		offset:0 ,
	})
)

Скачивание файла из сообщения на диск
client.addEventHandler(async (update) => {
	const msg = update.message
	if (msg?.className == 'Message') {
		const buffer = await client.downloadMedia(msg, {})
		fs.writeFileSync("d:/CODES/Telegram/tmp/file", buffer)
	}
	
}, new NewMessage({}));

Примеры кода
Получение списка пользователей в супергруппе
https://gist.github.com/waptik/9de410055eac8a60668ce7ac1e5183ac

Ссылка для выбора группы - https://qna.habr.com/q/1374460

У пользователя есть Name = First Name + Last Name - обязательно, а также username - опционально для t.me/username

Выбор куда отправить - ForwardTo - https://core.telegram.org/widgets/share

Размеры превьюшек - https://core.telegram.org/api/files#stripped-thumbnails

you can just pass an ID.
if channel/superroup => add -100
if group add => -
if user don't add anything
for example for your test group2 it would be
client.sendMessage(-463172658,{params})
https://github.com/gram-js/gramjs/issues/146#issuecomment-913528553