mirror of
https://github.com/hellodigua/ChatLab.git
synced 2026-10-26 02:04:37 +08:00
Thread ownerId and member aliases through the TS and native parsers. Persist aliases across full and incremental imports so exported ChatLab JSON retains user identity metadata.
61 lines
1.9 KiB
TypeScript
61 lines
1.9 KiB
TypeScript
/* auto-generated by NAPI-RS */
|
|
/* eslint-disable */
|
|
/**
|
|
* Unified Rust parser for all native-first formats. Usage from JS:
|
|
* `parse()` → `metaJson()` → `takeMembers()` → `takeBatch()` until null →
|
|
* `summaryJson()`. Constructing with an unknown format id throws, which the
|
|
* TS wrapper treats like any other native failure (falls back to TS).
|
|
*/
|
|
export declare class NativeParser {
|
|
constructor(formatId: string, filePath: string, optionsJson?: string | undefined | null)
|
|
/** Run the full parse on the libuv thread pool. */
|
|
parse(): Promise<unknown>
|
|
/** Poll progress while `parse()` is pending. */
|
|
progress(): NativeParseProgress
|
|
/** Format-specific meta as a JSON string (shape documented per kernel). */
|
|
metaJson(): string
|
|
/** Move members out to JS. Callable once. */
|
|
takeMembers(): Array<NativeMember>
|
|
/** Move the next batch of messages out to JS; null when exhausted. */
|
|
takeBatch(size: number): Array<NativeMessage> | null
|
|
/**
|
|
* Post-parse totals as JSON: `{"messageCount":n,"memberCount":n}`.
|
|
* Valid any time after `parse()`, even once the vectors are drained.
|
|
*/
|
|
summaryJson(): string
|
|
}
|
|
|
|
export interface NativeMember {
|
|
platformId: string
|
|
accountName: string
|
|
groupNickname?: string
|
|
aliases?: Array<string>
|
|
avatar?: string
|
|
roles?: Array<NativeMemberRole>
|
|
}
|
|
|
|
export interface NativeMemberRole {
|
|
id: string
|
|
/** Present only when the source role object had a `name` key. */
|
|
name?: string
|
|
}
|
|
|
|
export interface NativeMessage {
|
|
platformMessageId?: string
|
|
senderPlatformId: string
|
|
senderAccountName: string
|
|
senderGroupNickname?: string
|
|
/** None when the source timestamp was JSON null (importer skips those). */
|
|
timestamp?: number
|
|
/** Numeric MessageType enum value from shared-types. */
|
|
messageType: number
|
|
content?: string
|
|
replyToMessageId?: string
|
|
}
|
|
|
|
export interface NativeParseProgress {
|
|
bytesRead: number
|
|
totalBytes: number
|
|
messagesProcessed: number
|
|
}
|