@@ -30,19 +30,19 @@ import { markdownToSignalTextChunks } from "./format.js";
3030import { signalMessageActions } from "./message-actions.js" ;
3131import { resolveSignalOutboundTarget } from "./outbound-session.js" ;
3232import { resolveSignalReactionLevel } from "./reaction-level.js" ;
33- import { sendMessageSignal } from "./send.js" ;
3433import { signalSetupAdapter } from "./setup-core.js" ;
3534import {
3635 signalConfigAdapter ,
3736 createSignalPluginBase ,
3837 signalSecurityAdapter ,
3938 signalSetupWizard ,
4039} from "./shared.js" ;
41- type SignalSendFn = typeof sendMessageSignal ;
40+ type SignalSendFn = typeof import ( "./send.runtime.js" ) . sendMessageSignal ;
4241type SignalProbe = import ( "./probe.js" ) . SignalProbe ;
4342
4443let signalMonitorModulePromise : Promise < typeof import ( "./monitor.js" ) > | null = null ;
4544let signalProbeModulePromise : Promise < typeof import ( "./probe.js" ) > | null = null ;
45+ let signalSendRuntimePromise : Promise < typeof import ( "./send.runtime.js" ) > | null = null ;
4646
4747async function loadSignalMonitorModule ( ) {
4848 signalMonitorModulePromise ??= import ( "./monitor.js" ) ;
@@ -54,12 +54,19 @@ async function loadSignalProbeModule() {
5454 return await signalProbeModulePromise ;
5555}
5656
57- function resolveSignalSendContext ( params : {
57+ async function loadSignalSendRuntime ( ) {
58+ signalSendRuntimePromise ??= import ( "./send.runtime.js" ) ;
59+ return await signalSendRuntimePromise ;
60+ }
61+
62+ async function resolveSignalSendContext ( params : {
5863 cfg : Parameters < typeof resolveSignalAccount > [ 0 ] [ "cfg" ] ;
5964 accountId ?: string ;
6065 deps ?: { [ channelId : string ] : unknown } ;
6166} ) {
62- const send = resolveOutboundSendDep < SignalSendFn > ( params . deps , "signal" ) ?? sendMessageSignal ;
67+ const send =
68+ resolveOutboundSendDep < SignalSendFn > ( params . deps , "signal" ) ??
69+ ( await loadSignalSendRuntime ( ) ) . sendMessageSignal ;
6370 const maxBytes = resolveChannelMediaMaxBytes ( {
6471 cfg : params . cfg ,
6572 resolveChannelLimitMb : ( { cfg, accountId } ) =>
@@ -79,7 +86,7 @@ async function sendSignalOutbound(params: {
7986 accountId ?: string ;
8087 deps ?: { [ channelId : string ] : unknown } ;
8188} ) {
82- const { send, maxBytes } = resolveSignalSendContext ( params ) ;
89+ const { send, maxBytes } = await resolveSignalSendContext ( params ) ;
8390 return await send ( params . to , params . text , {
8491 cfg : params . cfg ,
8592 ...( params . mediaUrl ? { mediaUrl : params . mediaUrl } : { } ) ,
@@ -162,7 +169,7 @@ async function sendFormattedSignalText(ctx: {
162169 deps ?: { [ channelId : string ] : unknown } ;
163170 abortSignal ?: AbortSignal ;
164171} ) {
165- const { send, maxBytes } = resolveSignalSendContext ( {
172+ const { send, maxBytes } = await resolveSignalSendContext ( {
166173 cfg : ctx . cfg ,
167174 accountId : ctx . accountId ?? undefined ,
168175 deps : ctx . deps ,
@@ -209,7 +216,7 @@ async function sendFormattedSignalMedia(ctx: {
209216 abortSignal ?: AbortSignal ;
210217} ) {
211218 ctx . abortSignal ?. throwIfAborted ( ) ;
212- const { send, maxBytes } = resolveSignalSendContext ( {
219+ const { send, maxBytes } = await resolveSignalSendContext ( {
213220 cfg : ctx . cfg ,
214221 accountId : ctx . accountId ?? undefined ,
215222 deps : ctx . deps ,
@@ -329,7 +336,7 @@ export const signalPlugin: ChannelPlugin<ResolvedSignalAccount, SignalProbe> =
329336 message : PAIRING_APPROVED_MESSAGE ,
330337 normalizeAllowEntry : createPairingPrefixStripper ( / ^ s i g n a l : / i) ,
331338 notify : async ( { id, message } ) => {
332- await sendMessageSignal ( id , message ) ;
339+ await ( await loadSignalSendRuntime ( ) ) . sendMessageSignal ( id , message ) ;
333340 } ,
334341 } ,
335342 } ,
0 commit comments