@mtcute/web 0.18.0-rc.5 → 0.18.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/client.d.cts +23 -0
- package/common-internals-web/logging.d.cts +2 -0
- package/crypto.d.cts +21 -0
- package/exit-hook.d.cts +1 -0
- package/idb/driver.d.cts +18 -0
- package/idb/idb.test.d.cts +1 -0
- package/idb/index.d.cts +22 -0
- package/idb/repository/auth-keys.d.cts +14 -0
- package/idb/repository/kv.d.cts +11 -0
- package/idb/repository/peers.d.cts +12 -0
- package/idb/repository/ref-messages.d.cts +12 -0
- package/idb/utils.d.cts +2 -0
- package/index.d.cts +7 -0
- package/methods.d.cts +1 -0
- package/package.json +11 -11
- package/platform.d.cts +11 -0
- package/utils.d.cts +1 -0
- package/wasm.d.cts +2 -0
- package/websocket.d.cts +18 -0
- package/worker.d.cts +12 -0
package/client.d.cts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ITelegramStorageProvider, PartialOnly } from '@mtcute/core';
|
|
2
|
+
import { BaseTelegramClientOptions as BaseTelegramClientOptionsBase, TelegramClientOptions, BaseTelegramClient as BaseTelegramClientBase, TelegramClient as TelegramClientBase } from '@mtcute/core/client.js';
|
|
3
|
+
export type { TelegramClientOptions };
|
|
4
|
+
export interface BaseTelegramClientOptions extends PartialOnly<Omit<BaseTelegramClientOptionsBase, 'storage'>, 'transport' | 'crypto' | 'platform'> {
|
|
5
|
+
/**
|
|
6
|
+
* Storage to use for this client.
|
|
7
|
+
*
|
|
8
|
+
* If a string is passed, it will be used as
|
|
9
|
+
* a name for an IndexedDB database.
|
|
10
|
+
*
|
|
11
|
+
* @default `"client.session"`
|
|
12
|
+
*/
|
|
13
|
+
storage?: string | ITelegramStorageProvider;
|
|
14
|
+
}
|
|
15
|
+
export declare class BaseTelegramClient extends BaseTelegramClientBase {
|
|
16
|
+
constructor(opts: BaseTelegramClientOptions);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Telegram client for use in Node.js
|
|
20
|
+
*/
|
|
21
|
+
export declare class TelegramClient extends TelegramClientBase {
|
|
22
|
+
constructor(opts: TelegramClientOptions);
|
|
23
|
+
}
|
package/crypto.d.cts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { IAesCtr, ICryptoProvider, IEncryptionScheme, BaseCryptoProvider } from '@mtcute/core/utils.js';
|
|
2
|
+
import { WasmInitInput } from './wasm.js';
|
|
3
|
+
export interface WebCryptoProviderOptions {
|
|
4
|
+
crypto?: Crypto;
|
|
5
|
+
wasmInput?: WasmInitInput;
|
|
6
|
+
}
|
|
7
|
+
export declare class WebCryptoProvider extends BaseCryptoProvider implements ICryptoProvider {
|
|
8
|
+
readonly crypto: Crypto;
|
|
9
|
+
private _wasmInput?;
|
|
10
|
+
sha1(data: Uint8Array): Uint8Array;
|
|
11
|
+
sha256(data: Uint8Array): Uint8Array;
|
|
12
|
+
createAesCtr(key: Uint8Array, iv: Uint8Array): IAesCtr;
|
|
13
|
+
createAesIge(key: Uint8Array, iv: Uint8Array): IEncryptionScheme;
|
|
14
|
+
gzip(data: Uint8Array, maxSize: number): Uint8Array | null;
|
|
15
|
+
gunzip(data: Uint8Array): Uint8Array;
|
|
16
|
+
constructor(params?: WebCryptoProviderOptions);
|
|
17
|
+
initialize(): Promise<void>;
|
|
18
|
+
pbkdf2(password: Uint8Array, salt: Uint8Array, iterations: number, keylen?: number | undefined, algo?: string | undefined): Promise<Uint8Array>;
|
|
19
|
+
hmacSha256(data: Uint8Array, key: Uint8Array): Promise<Uint8Array>;
|
|
20
|
+
randomFill(buf: Uint8Array): void;
|
|
21
|
+
}
|
package/exit-hook.d.cts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function beforeExit(fn: () => void): () => void;
|
package/idb/driver.d.cts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BaseStorageDriver } from '@mtcute/core';
|
|
2
|
+
export type PostMigrationFunction = (db: IDBDatabase) => Promise<void>;
|
|
3
|
+
type MigrationFunction = (db: IDBDatabase) => void | PostMigrationFunction;
|
|
4
|
+
export declare class IdbStorageDriver extends BaseStorageDriver {
|
|
5
|
+
readonly _dbName: string;
|
|
6
|
+
db: IDBDatabase;
|
|
7
|
+
constructor(_dbName: string);
|
|
8
|
+
private _pendingWrites;
|
|
9
|
+
private _pendingWritesOses;
|
|
10
|
+
private _migrations;
|
|
11
|
+
private _maxVersion;
|
|
12
|
+
registerMigration(repo: string, version: number, migration: MigrationFunction): void;
|
|
13
|
+
writeLater(os: string, obj: unknown): void;
|
|
14
|
+
_load(): Promise<void>;
|
|
15
|
+
_save(): Promise<void>;
|
|
16
|
+
_destroy(): void;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/idb/index.d.cts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { IMtStorageProvider } from '@mtcute/core';
|
|
2
|
+
import { IdbStorageDriver } from './driver.js';
|
|
3
|
+
import { IdbAuthKeysRepository } from './repository/auth-keys.js';
|
|
4
|
+
import { IdbKvRepository } from './repository/kv.js';
|
|
5
|
+
import { IdbPeersRepository } from './repository/peers.js';
|
|
6
|
+
import { IdbRefMsgRepository } from './repository/ref-messages.js';
|
|
7
|
+
export { IdbStorageDriver } from './driver.js';
|
|
8
|
+
/**
|
|
9
|
+
* mtcute storage that uses IndexedDB as a backend.
|
|
10
|
+
*
|
|
11
|
+
* This storage is the default one for browsers, and is generally
|
|
12
|
+
* recommended over local storage based one.
|
|
13
|
+
*/
|
|
14
|
+
export declare class IdbStorage implements IMtStorageProvider {
|
|
15
|
+
readonly dbName: string;
|
|
16
|
+
readonly driver: IdbStorageDriver;
|
|
17
|
+
readonly kv: IdbKvRepository;
|
|
18
|
+
readonly authKeys: IdbAuthKeysRepository;
|
|
19
|
+
readonly peers: IdbPeersRepository;
|
|
20
|
+
readonly refMessages: IdbRefMsgRepository;
|
|
21
|
+
constructor(dbName: string);
|
|
22
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { IAuthKeysRepository } from '@mtcute/core';
|
|
2
|
+
import { IdbStorageDriver } from '../driver.js';
|
|
3
|
+
export declare class IdbAuthKeysRepository implements IAuthKeysRepository {
|
|
4
|
+
readonly _driver: IdbStorageDriver;
|
|
5
|
+
constructor(_driver: IdbStorageDriver);
|
|
6
|
+
private os;
|
|
7
|
+
set(dc: number, key: Uint8Array | null): Promise<void>;
|
|
8
|
+
get(dc: number): Promise<Uint8Array | null>;
|
|
9
|
+
private osTemp;
|
|
10
|
+
setTemp(dc: number, idx: number, key: Uint8Array | null, expires: number): Promise<void>;
|
|
11
|
+
getTemp(dc: number, idx: number, now: number): Promise<Uint8Array | null>;
|
|
12
|
+
deleteByDc(dc: number): Promise<void>;
|
|
13
|
+
deleteAll(): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IKeyValueRepository } from '@mtcute/core';
|
|
2
|
+
import { IdbStorageDriver } from '../driver.js';
|
|
3
|
+
export declare class IdbKvRepository implements IKeyValueRepository {
|
|
4
|
+
readonly _driver: IdbStorageDriver;
|
|
5
|
+
constructor(_driver: IdbStorageDriver);
|
|
6
|
+
set(key: string, value: Uint8Array): void;
|
|
7
|
+
private os;
|
|
8
|
+
get(key: string): Promise<Uint8Array | null>;
|
|
9
|
+
delete(key: string): Promise<void>;
|
|
10
|
+
deleteAll(): Promise<void>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IPeersRepository } from '@mtcute/core';
|
|
2
|
+
import { IdbStorageDriver } from '../driver.js';
|
|
3
|
+
export declare class IdbPeersRepository implements IPeersRepository {
|
|
4
|
+
readonly _driver: IdbStorageDriver;
|
|
5
|
+
constructor(_driver: IdbStorageDriver);
|
|
6
|
+
store(peer: IPeersRepository.PeerInfo): void;
|
|
7
|
+
private os;
|
|
8
|
+
getById(id: number, allowMin: boolean): Promise<IPeersRepository.PeerInfo | null>;
|
|
9
|
+
getByUsername(username: string): Promise<IPeersRepository.PeerInfo | null>;
|
|
10
|
+
getByPhone(phone: string): Promise<IPeersRepository.PeerInfo | null>;
|
|
11
|
+
deleteAll(): Promise<void>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IReferenceMessagesRepository } from '@mtcute/core';
|
|
2
|
+
import { IdbStorageDriver } from '../driver.js';
|
|
3
|
+
export declare class IdbRefMsgRepository implements IReferenceMessagesRepository {
|
|
4
|
+
readonly _driver: IdbStorageDriver;
|
|
5
|
+
constructor(_driver: IdbStorageDriver);
|
|
6
|
+
private os;
|
|
7
|
+
store(peerId: number, chatId: number, msgId: number): Promise<void>;
|
|
8
|
+
getByPeer(peerId: number): Promise<[number, number] | null>;
|
|
9
|
+
delete(chatId: number, msgIds: number[]): Promise<void>;
|
|
10
|
+
deleteByPeer(peerId: number): Promise<void>;
|
|
11
|
+
deleteAll(): Promise<void>;
|
|
12
|
+
}
|
package/idb/utils.d.cts
ADDED
package/index.d.cts
ADDED
package/methods.d.cts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@mtcute/core/methods.js';
|
package/package.json
CHANGED
|
@@ -1,19 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mtcute/web",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.18.0
|
|
4
|
+
"version": "0.18.0",
|
|
5
5
|
"description": "Meta-package for the web platform",
|
|
6
6
|
"license": "MIT",
|
|
7
|
-
"homepage": "https://mtcute.dev",
|
|
8
|
-
"repository": {
|
|
9
|
-
"type": "git",
|
|
10
|
-
"url": "git+https://github.com/mtcute/mtcute.git"
|
|
11
|
-
},
|
|
12
|
-
"scripts": {},
|
|
13
7
|
"dependencies": {
|
|
14
|
-
"@mtcute/core": "0.18.0
|
|
15
|
-
"@mtcute/wasm": "0.18.0
|
|
16
|
-
"@fuman/net": "0.0.
|
|
8
|
+
"@mtcute/core": "^0.18.0",
|
|
9
|
+
"@mtcute/wasm": "^0.18.0",
|
|
10
|
+
"@fuman/net": "0.0.4",
|
|
17
11
|
"events": "3.2.0"
|
|
18
12
|
},
|
|
19
13
|
"exports": {
|
|
@@ -58,5 +52,11 @@
|
|
|
58
52
|
"WebWorker"
|
|
59
53
|
]
|
|
60
54
|
}
|
|
61
|
-
}
|
|
55
|
+
},
|
|
56
|
+
"homepage": "https://mtcute.dev",
|
|
57
|
+
"repository": {
|
|
58
|
+
"type": "git",
|
|
59
|
+
"url": "git+https://github.com/mtcute/mtcute.git"
|
|
60
|
+
},
|
|
61
|
+
"scripts": {}
|
|
62
62
|
}
|
package/platform.d.cts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ICorePlatform } from '@mtcute/core';
|
|
2
|
+
import { defaultLoggingHandler } from './common-internals-web/logging.js';
|
|
3
|
+
import { beforeExit } from './exit-hook.js';
|
|
4
|
+
export declare class WebPlatform implements ICorePlatform {
|
|
5
|
+
log: typeof defaultLoggingHandler;
|
|
6
|
+
beforeExit: typeof beforeExit;
|
|
7
|
+
getDeviceModel(): string;
|
|
8
|
+
getDefaultLogLevel(): number | null;
|
|
9
|
+
onNetworkChanged(fn: (connected: boolean) => void): () => void;
|
|
10
|
+
isOnline(): boolean;
|
|
11
|
+
}
|
package/utils.d.cts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '@mtcute/core/utils.js';
|
package/wasm.d.cts
ADDED
package/websocket.d.cts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { WebSocketConstructor } from '@fuman/net';
|
|
2
|
+
import { IPacketCodec, ITelegramConnection, TelegramTransport } from '@mtcute/core';
|
|
3
|
+
import { BasicDcOption } from './utils.js';
|
|
4
|
+
export declare class WebSocketTransport implements TelegramTransport {
|
|
5
|
+
private _baseDomain;
|
|
6
|
+
private _subdomains;
|
|
7
|
+
private _WebSocket;
|
|
8
|
+
constructor({ ws, baseDomain, subdomains, }?: {
|
|
9
|
+
/** Custom implementation of WebSocket (e.g. https://npm.im/ws) */
|
|
10
|
+
ws?: WebSocketConstructor;
|
|
11
|
+
/** Base WebSocket domain */
|
|
12
|
+
baseDomain?: string;
|
|
13
|
+
/** Map of sub-domains (key is DC ID, value is string) */
|
|
14
|
+
subdomains?: Record<string, string>;
|
|
15
|
+
});
|
|
16
|
+
connect(dc: BasicDcOption): Promise<ITelegramConnection>;
|
|
17
|
+
packetCodec(): IPacketCodec;
|
|
18
|
+
}
|
package/worker.d.cts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ClientMessageHandler, RespondFn, SendFn, SomeWorker, TelegramWorkerOptions, WorkerCustomMethods, WorkerMessageHandler, TelegramWorker as TelegramWorkerBase, TelegramWorkerPort as TelegramWorkerPortBase } from '@mtcute/core/worker.js';
|
|
2
|
+
export type { TelegramWorkerOptions, WorkerCustomMethods };
|
|
3
|
+
export interface TelegramWorkerPortOptions {
|
|
4
|
+
worker: SomeWorker;
|
|
5
|
+
}
|
|
6
|
+
export declare class TelegramWorker<T extends WorkerCustomMethods> extends TelegramWorkerBase<T> {
|
|
7
|
+
registerWorker(handler: WorkerMessageHandler): RespondFn;
|
|
8
|
+
}
|
|
9
|
+
export declare class TelegramWorkerPort<T extends WorkerCustomMethods> extends TelegramWorkerPortBase<T> {
|
|
10
|
+
constructor(options: TelegramWorkerPortOptions);
|
|
11
|
+
connectToWorker(worker: SomeWorker, handler: ClientMessageHandler): [SendFn, () => void];
|
|
12
|
+
}
|