@usebridger/core 0.2.1 → 0.3.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/dist/adapter.d.mts +1 -1
- package/dist/index.d.mts +58 -39
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +344 -44
- package/dist/index.mjs.map +1 -1
- package/dist/{reconnection-BGpkqq4C.d.mts → reconnection-COfwSj9L.d.mts} +91 -52
- package/dist/reconnection-COfwSj9L.d.mts.map +1 -0
- package/package.json +1 -1
- package/dist/reconnection-BGpkqq4C.d.mts.map +0 -1
package/dist/adapter.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { _ as StoragePort, c as FindQuery, g as SortDirection, i as CollectionOptions, l as JsonObject, m as Scalar, n as AuthStateStore, t as AuthKeyData, u as JsonValue, y as Where } from "./types-Cq6JEmsh.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { A as GroupParticipant, B as TransportCommands, Ct as assertCapability, Dt as isCapability, E as CommandInteraction, Et as hasCapability, G as TransportPacing, H as TransportEventHandler, K as TypingKind, M as Interaction, Ot as missingCapabilities, P as MessageKey, R as TextLimits, St as assertCanSend, Tt as groupActionCapability, U as TransportEventName, V as TransportDeps, W as TransportEvents, bt as CapabilityHolder, c as Contact, g as MessageOf, h as Message, i as ReconnectionState, k as GroupMetadata, n as ReconnectionPolicy, p as Media, q as Unsubscribe, r as ReconnectionPolicyOptions, t as ReconnectionDecision, vt as CAPABILITIES, w as ActionInteraction, wt as capabilitiesForSend, yt as Capability, z as Transport } from "./reconnection-COfwSj9L.mjs";
|
|
3
3
|
//#region src/message/media.d.ts
|
|
4
4
|
/**
|
|
5
5
|
* O que o transport fornece para cada mídia: metadados e o loader nativo. O core cuida de
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { _ as StoragePort, a as FieldCondition, b as WithId, c as FindQuery, d as KeyValueStore, f as Patch, g as SortDirection, h as Sort, i as CollectionOptions, l as JsonObject, m as Scalar, o as FieldName, p as PluginStorage, r as Collection, s as FieldOperators, u as JsonValue, v as Target, y as Where } from "./types-Cq6JEmsh.mjs";
|
|
2
|
-
import { $t as
|
|
2
|
+
import { $ as HttpServer, $t as SendPriority, A as GroupParticipant, At as ExpectReply, Bt as BotMessageContext, C as VoiceMessage, D as ConnectionStatus, F as OutgoingAction, Ft as MessageText$1, G as TransportPacing, Gt as Reply, Ht as ActionOptions, I as OutgoingContent, It as ContextExpiredError, J as HttpHandler, Jt as ReplyDocumentOptions, K as TypingKind, Kt as ReplyAlbumOptions, L as SendOptions, Lt as ExecutionTimeoutError, Mt as StepContext, N as MediaInput, Nt as StepHandler, O as DisconnectReason, P as MessageKey, Pt as StepTimeoutError, Q as HttpRoutes, Qt as ReplyTextOptions, R as TextLimits, Rt as JobTimeoutError, S as VideoMessage, T as AlbumItem, Ut as Outbound, V as TransportDeps, Vt as MessageContext, W as TransportEvents, Wt as OutboundSendOptions, X as HttpOptions, Xt as ReplyOptions, Y as HttpMethod, Yt as ReplyMediaOptions, Z as HttpRequestInfo, Zt as ReplyPollOptions, _ as MessageType, _n as LogLevel, _t as Roles, a as AudioMessage, an as MentionTarget, at as CommandContext, b as TextMessage, c as Contact, cn as TextPart, ct as CommandRejection, d as ImageMessage, dn as fmt, dt as command, en as Sender, et as HttpSocket, f as LocationMessage, fn as italic, ft as RoleCheck, g as MessageOf, gn as LogFields, gt as RoleTimeoutError, h as Message, hn as plainText, ht as RoleName, in as FormattedText, it as AcceptedMessage, j as GroupParticipantAction, jt as ExpectReplyOptions, k as GroupMetadata, kt as Conversations, l as ContactMessage, ln as bold, lt as CommandRole, m as MediaMessageType, mn as mention, mt as RoleContext, nn as MessageAction, nt as HttpSocketHandlers, o as Chat, on as MessageText, ot as CommandDefinition, p as Media, pn as link, pt as RoleConflictError, q as Unsubscribe, qt as ReplyAudioOptions, r as ReconnectionPolicyOptions, rn as StepAction, rt as AcceptSpec, s as ChatKind, sn as TextNode, st as CommandInfo, tn as CommandAction, tt as HttpSocketAccept, u as DocumentMessage, un as code, ut as RejectContext, v as PollMessage, vn as Logger, x as UnknownMessage, xt as UnsupportedError, y as StickerMessage, yt as Capability, z as Transport, zt as ListenerTimeoutError } from "./reconnection-COfwSj9L.mjs";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import "hono/ws";
|
|
5
5
|
//#region src/commands/prefixes.d.ts
|
|
@@ -200,6 +200,8 @@ interface MessageListenerFields<M extends Message = Message> {
|
|
|
200
200
|
readonly expectReply: ExpectReply;
|
|
201
201
|
/** Logger com `plugin` e `chatId` no contexto. */
|
|
202
202
|
readonly log: Logger;
|
|
203
|
+
/** Texto de `messages` do plugin com os placeholders preenchidos (ver `CommandContext.t`). */
|
|
204
|
+
readonly t: MessageText$1;
|
|
203
205
|
}
|
|
204
206
|
/**
|
|
205
207
|
* O que um listener recebe: a base e, nos eventos de mensagem, os campos de
|
|
@@ -538,12 +540,17 @@ interface PluginContext<TConfig = unknown, TMessages extends PluginMessages = Pl
|
|
|
538
540
|
* Comando declarado no manifesto (ADR 0079): o `CommandDefinition` sem `name`, que vem da chave em
|
|
539
541
|
* `commands`. O kernel o registra com `ctx.commands.add` antes do `setup`.
|
|
540
542
|
*/
|
|
541
|
-
interface PluginCommand<TConfig = unknown, TMessages extends PluginMessages = PluginMessages> extends Omit<CommandDefinition, "name" | "run"> {
|
|
543
|
+
interface PluginCommand<TConfig = unknown, TMessages extends PluginMessages = PluginMessages> extends Omit<CommandDefinition, "name" | "run" | "onReject"> {
|
|
542
544
|
/**
|
|
543
545
|
* O `run` do comando, com o contexto do plugin (`storage`, `config`, `send`...) no 2º
|
|
544
546
|
* argumento. Devolver texto responde, como em qualquer comando.
|
|
545
547
|
*/
|
|
546
548
|
run(ctx: CommandContext, plugin: PluginContext<TConfig, TMessages>): unknown;
|
|
549
|
+
/**
|
|
550
|
+
* O `onReject` do comando, com o contexto do plugin no 3º argumento: a recusa pode usar
|
|
551
|
+
* `plugin.plugin.messages`, que a config sobrescreve (ADR 0025).
|
|
552
|
+
*/
|
|
553
|
+
onReject?(ctx: RejectContext, rejection: CommandRejection, plugin: PluginContext<TConfig, TMessages>): ReturnType<NonNullable<CommandDefinition["onReject"]>>;
|
|
547
554
|
}
|
|
548
555
|
/** Listener declarado no manifesto: o de `ctx.events.on`, com o contexto do plugin no 2º argumento. */
|
|
549
556
|
type PluginListener<E extends BotEventName, TConfig = unknown, TMessages extends PluginMessages = PluginMessages> = {
|
|
@@ -675,6 +682,47 @@ interface PluginConfigs {
|
|
|
675
682
|
jsonSchema(plugin: string): PluginConfigJsonSchema | undefined;
|
|
676
683
|
}
|
|
677
684
|
//#endregion
|
|
685
|
+
//#region src/logger/logger.d.ts
|
|
686
|
+
/** Para onde vão as linhas JSON (uma por chamada, terminada em `\n`). */
|
|
687
|
+
interface LogDestination {
|
|
688
|
+
write(line: string): void;
|
|
689
|
+
}
|
|
690
|
+
interface LoggerOptions {
|
|
691
|
+
/** Nível mínimo emitido. Padrão: `'info'`. */
|
|
692
|
+
readonly level?: LogLevel;
|
|
693
|
+
/**
|
|
694
|
+
* `'json'` (padrão): uma linha JSON por chamada, para agregador. Com `'pretty'`, cada linha
|
|
695
|
+
* sai como `14:03:22 INFO [plugin] mensagem chave=valor`, com o `err` (stack e causas) nas
|
|
696
|
+
* linhas seguintes, e colorida quando vai ao stdout de um terminal. Os segredos são censurados
|
|
697
|
+
* igual.
|
|
698
|
+
*/
|
|
699
|
+
readonly format?: "json" | "pretty";
|
|
700
|
+
/** Destino das linhas. Padrão: stdout do processo. */
|
|
701
|
+
readonly destination?: LogDestination;
|
|
702
|
+
/** Campos presentes em toda linha deste logger e dos filhos (ex.: `{ app: 'meu-bot' }`). */
|
|
703
|
+
readonly bindings?: LogFields;
|
|
704
|
+
/**
|
|
705
|
+
* Caminhos de campos trocados por `[REDACTED]`, na sintaxe de redação do pino
|
|
706
|
+
* (`'password'`, `'config.apiKey'`, `'*.token'`). Pega o campo pelo nome, onde quer que o
|
|
707
|
+
* valor esteja.
|
|
708
|
+
*/
|
|
709
|
+
readonly redact?: readonly string[];
|
|
710
|
+
/**
|
|
711
|
+
* Valores secretos (ex.: campos `secret` da config) trocados por `[REDACTED]` em qualquer
|
|
712
|
+
* lugar da linha: mensagem, campos, bindings, `err.message`/`err.stack`. Pega o valor, sob
|
|
713
|
+
* qualquer nome de campo. Valores com menos de `MIN_SECRET_LENGTH` caracteres são ignorados.
|
|
714
|
+
* Uma `SecretSource` (ex.: `createSecretSet()`) é consultada a cada linha: segredos descobertos
|
|
715
|
+
* depois da criação do logger — como os da config de plugin, resolvida no setup e no reload —
|
|
716
|
+
* também são censurados.
|
|
717
|
+
*/
|
|
718
|
+
readonly secrets?: readonly string[] | SecretSource;
|
|
719
|
+
}
|
|
720
|
+
/**
|
|
721
|
+
* Logger estruturado em JSON. `child({ plugin })` e `child({ chatId })` acumulam contexto; o
|
|
722
|
+
* campo `err` é serializado com `message`, `stack` e `cause`.
|
|
723
|
+
*/
|
|
724
|
+
export declare function createLogger(options?: LoggerOptions): Logger;
|
|
725
|
+
//#endregion
|
|
678
726
|
//#region src/middleware/pipeline.d.ts
|
|
679
727
|
/** Avança para o próximo middleware (ou para o fim do pipeline). Chamar duas vezes é erro. */
|
|
680
728
|
type Next = () => Promise<void>;
|
|
@@ -915,6 +963,11 @@ interface BotConfig {
|
|
|
915
963
|
readonly logger?: Logger;
|
|
916
964
|
/** Nível do logger criado pelo bot. Padrão: `'info'`. */
|
|
917
965
|
readonly logLevel?: LogLevel;
|
|
966
|
+
/**
|
|
967
|
+
* Formato do logger criado pelo bot: `'json'` (padrão) ou `'pretty'`, legível no terminal
|
|
968
|
+
* (ver `LoggerOptions.format`).
|
|
969
|
+
*/
|
|
970
|
+
readonly logFormat?: LoggerOptions["format"];
|
|
918
971
|
/** Fonte de segredos compartilhada entre a config de plugin e o logger. Padrão: uma nova. */
|
|
919
972
|
readonly secrets?: SecretSet;
|
|
920
973
|
readonly middlewares?: BotMiddlewaresConfig;
|
|
@@ -959,8 +1012,8 @@ interface Bot {
|
|
|
959
1012
|
stats(): BotStats;
|
|
960
1013
|
/**
|
|
961
1014
|
* Resolve quando o bot terminou de processar o que recebeu: fila de entrada vazia, nenhum
|
|
962
|
-
* listener em andamento (inclusive de eventos diretos e
|
|
963
|
-
*
|
|
1015
|
+
* comando em segundo plano (ADR 0087) nem listener em andamento (inclusive de eventos diretos e
|
|
1016
|
+
* `plugin.error`) e fila de saída vazia, tudo ao mesmo tempo (ADR 0044). Chamado durante o boot, espera o boot assentar. Não
|
|
964
1017
|
* espera jobs do scheduler; com a fila de saída pausada (conexão caída), espera a reconexão ou
|
|
965
1018
|
* o `maxPauseMs`. Resolve na hora antes do `start()` e depois do `stop()`; nunca rejeita.
|
|
966
1019
|
*/
|
|
@@ -1076,40 +1129,6 @@ export declare class CommandTimeoutError extends ExecutionTimeoutError {
|
|
|
1076
1129
|
*/
|
|
1077
1130
|
export declare function secret<T extends z.ZodType>(schema: T): T;
|
|
1078
1131
|
//#endregion
|
|
1079
|
-
//#region src/logger/logger.d.ts
|
|
1080
|
-
/** Para onde vão as linhas JSON (uma por chamada, terminada em `\n`). */
|
|
1081
|
-
interface LogDestination {
|
|
1082
|
-
write(line: string): void;
|
|
1083
|
-
}
|
|
1084
|
-
interface LoggerOptions {
|
|
1085
|
-
/** Nível mínimo emitido. Padrão: `'info'`. */
|
|
1086
|
-
readonly level?: LogLevel;
|
|
1087
|
-
/** Destino das linhas. Padrão: stdout do processo. */
|
|
1088
|
-
readonly destination?: LogDestination;
|
|
1089
|
-
/** Campos presentes em toda linha deste logger e dos filhos (ex.: `{ app: 'meu-bot' }`). */
|
|
1090
|
-
readonly bindings?: LogFields;
|
|
1091
|
-
/**
|
|
1092
|
-
* Caminhos de campos trocados por `[REDACTED]`, na sintaxe de redação do pino
|
|
1093
|
-
* (`'password'`, `'config.apiKey'`, `'*.token'`). Pega o campo pelo nome, onde quer que o
|
|
1094
|
-
* valor esteja.
|
|
1095
|
-
*/
|
|
1096
|
-
readonly redact?: readonly string[];
|
|
1097
|
-
/**
|
|
1098
|
-
* Valores secretos (ex.: campos `secret` da config) trocados por `[REDACTED]` em qualquer
|
|
1099
|
-
* lugar da linha: mensagem, campos, bindings, `err.message`/`err.stack`. Pega o valor, sob
|
|
1100
|
-
* qualquer nome de campo. Valores com menos de `MIN_SECRET_LENGTH` caracteres são ignorados.
|
|
1101
|
-
* Uma `SecretSource` (ex.: `createSecretSet()`) é consultada a cada linha: segredos descobertos
|
|
1102
|
-
* depois da criação do logger — como os da config de plugin, resolvida no setup e no reload —
|
|
1103
|
-
* também são censurados.
|
|
1104
|
-
*/
|
|
1105
|
-
readonly secrets?: readonly string[] | SecretSource;
|
|
1106
|
-
}
|
|
1107
|
-
/**
|
|
1108
|
-
* Logger estruturado em JSON. `child({ plugin })` e `child({ chatId })` acumulam contexto; o
|
|
1109
|
-
* campo `err` é serializado com `message`, `stack` e `cause`.
|
|
1110
|
-
*/
|
|
1111
|
-
export declare function createLogger(options?: LoggerOptions): Logger;
|
|
1112
|
-
//#endregion
|
|
1113
1132
|
//#region src/middleware/ignore-bots.d.ts
|
|
1114
1133
|
/**
|
|
1115
1134
|
* Descarta mensagens de outros bots (`sender.isBot`): no Discord e no Telegram, dois bots que
|
|
@@ -1159,7 +1178,7 @@ export declare function createMemoryStorage(): StoragePort;
|
|
|
1159
1178
|
* Não edite à mão: `pnpm version-packages` roda o `changeset version` e reescreve esta linha
|
|
1160
1179
|
* (`scripts/sync-version.ts`); o `version.test.ts` falha se ela divergir do `package.json`.
|
|
1161
1180
|
*/
|
|
1162
|
-
export declare const CORE_VERSION = "0.
|
|
1181
|
+
export declare const CORE_VERSION = "0.3.0";
|
|
1163
1182
|
//#endregion
|
|
1164
1183
|
export { type AcceptSpec, type AcceptedMessage, type ActionOptions, type AlbumItem, type AudioMessage, type BaseListenerContext, type Bot, type BotConfig, type BotEventName, type BotEvents, type BotMessageContext, type BotMiddlewareEntry, type BotMiddlewaresConfig, type BotPluginConfigs, type BotReconnectionOptions, type BotState, type BotStats, type BotTimeouts, type Capability, type Chat, type ChatFilterOptions, type ChatKind, type Collection, type CollectionOptions, type CommandAction, type CommandContext, type CommandDefinition, type CommandEvent, type CommandInfo, type CommandRejection, type CommandRole, type ConfigEnv, type ConfigSource, type ConnectionStatus, type Contact, type ContactMessage, ContextExpiredError, type Conversations, type DisconnectReason, type DocumentMessage, type EventSubscriber, ExecutionTimeoutError, type ExpectReply, type ExpectReplyOptions, type FieldCondition, type FieldName, type FieldOperators, type FindQuery, type FormattedText, type GroupMetadata, type GroupParticipant, type GroupParticipantAction, type Groups, type HttpHandler, type HttpMethod, type HttpOptions, type HttpRequestInfo, type HttpRoutes, type HttpServer, type HttpSocket, type HttpSocketAccept, type HttpSocketHandlers, type ImageMessage, type InboundQueueStats, type JobContext, type JobHandler, JobTimeoutError, type JsonObject, type JsonValue, type KeyValueStore, type Listener, type ListenerContext, type ListenerExtras, type ListenerOptions, ListenerTimeoutError, type LocationMessage, type LogDestination, type LogFields, type LogLevel, type Logger, type LoggerOptions, type Media, type MediaInput, type MediaMessageType, type MentionTarget, type Message, type MessageAction, type MessageContext, type MessageFilter, type MessageKey, type MessageListenerFields, type MessageOf, type MessageText, type MessageType, type MessageTypeEvents, type Middleware, type Next, type Outbound, type OutboundQueueStats, type OutboundSendOptions, type OutgoingAction, type OutgoingContent, type Patch, type PluginCommand, type PluginConfigEntry, type PluginConfigFile, type PluginConfigIssue, type PluginConfigJsonSchema, type PluginConfigView, type PluginContext, type PluginContextStorage, type PluginDefinition, type PluginErrorEvent, type PluginListener, type PluginListeners, type PluginManifest, type PluginMessages, type PluginPhase, type PluginReloadResult, type PluginReportEntry, type PluginSkipReason, type PluginStorage, type PollMessage, type PrefixConfig, type Prefixes, type RateLimitOptions, type RateLimitScope, type RejectContext, type Reply, type ReplyAlbumOptions, type ReplyAudioOptions, type ReplyDocumentOptions, type ReplyMediaOptions, type ReplyOptions, type ReplyPollOptions, type ReplyTextOptions, type RoleCheck, RoleConflictError, type RoleContext, type RoleName, RoleTimeoutError, type Roles, type SanitizeOptions, type SanitizedContext, type SanitizedFields, type Scalar, type Scheduler, type SecretSet, type SecretSource, type SendOptions, type SendPriority, type Sender, type ServiceAccess, type ServiceName, type Services, type ShutdownOptions, type Sort, type SortDirection, type StepAction, type StepContext, type StepHandler, StepTimeoutError, type StickerMessage, type StopHook, type StopHookOptions, type StoragePort, type SubscribeOptions, type Target, type TenantStorage, type TextLimits, type TextMessage, type TextNode, type TextPart, type Transport, type TransportPacing, type TypingKind, type UnknownMessage, type Unsafe, type Unsubscribe, UnsupportedError, type VideoMessage, type VoiceMessage, type Where, type WithId, bold, code, command, fmt, italic, link, mention, plainText };
|
|
1165
1184
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/commands/prefixes.ts","../src/config/env.ts","../src/config/owners.ts","../src/logger/secrets.ts","../src/plugin/report.ts","../src/events/types.ts","../src/outbound/queue.ts","../src/groups/groups.ts","../src/scheduler/types.ts","../src/services/types.ts","../src/storage/tenant.ts","../src/unsafe/types.ts","../src/plugin/types.ts","../src/plugin/sources.ts","../src/plugin/host.ts","../src/config/errors.ts","../src/config/plugin-configs.ts","../src/middleware/pipeline.ts","../src/middleware/chat-filter.ts","../src/middleware/rate-limit.ts","../src/middleware/sanitize.ts","../src/queue/inbound.ts","../src/bot/reconnect.ts","../src/bot/stop-hooks.ts","../src/bot/bot.ts","../src/commands/registry.ts","../src/http/server.ts","../src/scheduler/service.ts","../src/services/registry.ts","../src/bot/plugin-context.ts","../src/config/schema.ts","../src/
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":["MessageText"],"sources":["../src/commands/prefixes.ts","../src/config/env.ts","../src/config/owners.ts","../src/logger/secrets.ts","../src/plugin/report.ts","../src/events/types.ts","../src/outbound/queue.ts","../src/groups/groups.ts","../src/scheduler/types.ts","../src/services/types.ts","../src/storage/tenant.ts","../src/unsafe/types.ts","../src/plugin/types.ts","../src/plugin/sources.ts","../src/plugin/host.ts","../src/config/errors.ts","../src/config/plugin-configs.ts","../src/logger/logger.ts","../src/middleware/pipeline.ts","../src/middleware/chat-filter.ts","../src/middleware/rate-limit.ts","../src/middleware/sanitize.ts","../src/queue/inbound.ts","../src/bot/reconnect.ts","../src/bot/stop-hooks.ts","../src/bot/bot.ts","../src/commands/registry.ts","../src/http/server.ts","../src/scheduler/service.ts","../src/services/registry.ts","../src/bot/plugin-context.ts","../src/config/schema.ts","../src/middleware/ignore-bots.ts","../src/middleware/ignore-self.ts","../src/plugin/define.ts","../src/plugin/order.ts","../src/storage/memory.ts","../src/version.ts"],"mappings":"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"}
|