{"version":3,"sources":["../../src/events/index.ts","../../src/events/MeshEventBus.ts","../../src/events/RedisMeshEventBus.ts","../../src/streaming/MemoryMeshStream.ts","../../src/streaming/MeshStreamSerializer.ts","../../src/registry/redis/SimpleRedisClient.ts","../../src/streaming/MeshStreamChannels.ts","../../src/streaming/redis/RedisPubSubConnection.ts","../../src/streaming/redis/RedisMeshStream.ts","../../src/streaming/MeshStreamFactory.ts"],"sourcesContent":["export { MemoryMeshEventBus, type MeshEventBus, type MeshEventEnvelope, type MeshEventHandler } from './MeshEventBus.js'\nexport { RedisMeshEventBus } from './RedisMeshEventBus.js'\n","import { EventEmitter } from 'node:events'\nimport { randomUUID } from 'node:crypto'\n\nexport interface MeshEventEnvelope<TPayload = unknown> {\n  readonly id: string\n  readonly app: string\n  readonly type: string\n  readonly payload: TPayload\n  readonly emittedAt: string\n  readonly source?: string\n}\n\nexport type MeshEventHandler<TPayload = unknown> = (event: MeshEventEnvelope<TPayload>) => void | Promise<void>\n\nexport interface MeshEventBus {\n  emit<TPayload>(type: string, payload: TPayload, source?: string): Promise<MeshEventEnvelope<TPayload>>\n  on<TPayload>(type: string, handler: MeshEventHandler<TPayload>): () => void\n}\n\nexport class MemoryMeshEventBus implements MeshEventBus {\n  private readonly emitter = new EventEmitter()\n\n  public constructor(private readonly app: string) {}\n\n  public async emit<TPayload>(type: string, payload: TPayload, source?: string): Promise<MeshEventEnvelope<TPayload>> {\n    const envelope: MeshEventEnvelope<TPayload> = {\n      id: randomUUID(),\n      app: this.app,\n      type,\n      payload,\n      emittedAt: new Date().toISOString(),\n      ...(source !== undefined ? { source } : {})\n    }\n    this.emitter.emit(type, envelope)\n    this.emitter.emit('*', envelope)\n    return envelope\n  }\n\n  public on<TPayload>(type: string, handler: MeshEventHandler<TPayload>): () => void {\n    const wrapped = (event: MeshEventEnvelope<TPayload>): void => {\n      void handler(event)\n    }\n    this.emitter.on(type, wrapped)\n    return () => this.emitter.off(type, wrapped)\n  }\n}\n","import { randomUUID } from 'node:crypto'\nimport type { NormalizedMeshConfig } from '../core/types.js'\nimport { MeshStreamFactory } from '../streaming/MeshStreamFactory.js'\nimport type { MeshStreamEnvelope } from '../streaming/types.js'\nimport type { MeshEventBus, MeshEventEnvelope, MeshEventHandler } from './MeshEventBus.js'\n\nexport class RedisMeshEventBus implements MeshEventBus {\n  public constructor(private readonly config: NormalizedMeshConfig) {}\n\n  public async emit<TPayload>(type: string, payload: TPayload, source?: string): Promise<MeshEventEnvelope<TPayload>> {\n    const envelope: MeshEventEnvelope<TPayload> = {\n      id: randomUUID(),\n      app: this.config.app,\n      type,\n      payload,\n      emittedAt: new Date().toISOString(),\n      ...(source !== undefined ? { source } : {})\n    }\n    const publisher = new MeshStreamFactory().createPublisher(this.config)\n    await publisher?.publish({ kind: 'event', type, ...(source !== undefined ? { source } : {}), payload })\n    return envelope\n  }\n\n  public on<TPayload>(type: string, handler: MeshEventHandler<TPayload>): () => void {\n    const subscriber = new MeshStreamFactory().createSubscriber(this.config)\n    if (!subscriber) return () => undefined\n    let stop: (() => void | Promise<void>) | null = null\n    void subscriber.subscribe([type === '*' ? '*' : type], event => {\n      if (event.kind !== 'event') return\n      const converted = this.toEventEnvelope<TPayload>(event)\n      if (!converted) return\n      void handler(converted)\n    }).then(unsubscribe => { stop = unsubscribe })\n    return () => { if (stop) void stop() }\n  }\n\n  private toEventEnvelope<TPayload>(event: MeshStreamEnvelope): MeshEventEnvelope<TPayload> | null {\n    return {\n      id: event.id,\n      app: event.app,\n      type: event.type,\n      payload: event.payload as TPayload,\n      emittedAt: event.emittedAt,\n      ...(event.source !== undefined ? { source: event.source } : {})\n    }\n  }\n}\n","import { EventEmitter } from 'node:events'\nimport type { NormalizedMeshConfig } from '../core/types.js'\nimport { MeshStreamSerializer } from './MeshStreamSerializer.js'\nimport type { MeshLogPublishInput, MeshLogStreamPayload, MeshStreamEnvelope, MeshStreamHandler, MeshStreamPublisher, MeshStreamSubscriber } from './types.js'\n\nclass MemoryMeshStreamHub {\n  public readonly emitter = new EventEmitter()\n}\n\nconst hubs = new Map<string, MemoryMeshStreamHub>()\n\nfunction hubFor(app: string): MemoryMeshStreamHub {\n  const existing = hubs.get(app)\n  if (existing) return existing\n  const created = new MemoryMeshStreamHub()\n  hubs.set(app, created)\n  return created\n}\n\nexport class MemoryMeshStream implements MeshStreamPublisher, MeshStreamSubscriber {\n  private readonly serializer = new MeshStreamSerializer()\n  private readonly hub: MemoryMeshStreamHub\n  private logSequence = 0\n\n  public constructor(private readonly config: NormalizedMeshConfig) {\n    this.hub = hubFor(config.app)\n  }\n\n  public async publish<TPayload>(input: Omit<MeshStreamEnvelope<TPayload>, 'id' | 'emittedAt' | 'app'> & { readonly app?: string }): Promise<MeshStreamEnvelope<TPayload>> {\n    const envelope = this.serializer.create(this.config.app, input)\n    this.hub.emitter.emit(envelope.type, envelope)\n    this.hub.emitter.emit('*', envelope)\n    return envelope\n  }\n\n  public async publishLog(input: MeshLogPublishInput): Promise<MeshStreamEnvelope<MeshLogStreamPayload> | null> {\n    if (!this.config.streaming.enabled || !this.config.streaming.logs) return null\n    const raw = Buffer.isBuffer(input.chunk) ? input.chunk.toString('utf8') : input.chunk\n    const max = this.config.streaming.maxLogChunkBytes\n    const chunk = raw.length > max ? raw.slice(0, max) : raw\n    return this.publish<MeshLogStreamPayload>({\n      kind: 'log',\n      type: 'mesh.log',\n      ...(input.source !== undefined ? { source: input.source } : {}),\n      instanceId: input.instanceId,\n      service: input.service,\n      payload: {\n        stream: input.stream,\n        chunk,\n        sequence: this.logSequence += 1,\n        truncated: raw.length > max,\n        ...(input.serviceType !== undefined ? { serviceType: input.serviceType } : {})\n      }\n    })\n  }\n\n  public async subscribe(types: readonly string[], handler: MeshStreamHandler): Promise<() => void> {\n    const eventNames = types.length > 0 ? types : ['*']\n    const wrapped = (event: MeshStreamEnvelope): void => { void handler(event) }\n    for (const type of eventNames) this.hub.emitter.on(type, wrapped)\n    return () => {\n      for (const type of eventNames) this.hub.emitter.off(type, wrapped)\n    }\n  }\n}\n","import { randomUUID } from 'node:crypto'\nimport type { MeshStreamEnvelope } from './types.js'\n\nexport class MeshStreamSerializer {\n  public create<TPayload>(app: string, input: Omit<MeshStreamEnvelope<TPayload>, 'id' | 'emittedAt' | 'app'> & { readonly app?: string }): MeshStreamEnvelope<TPayload> {\n    return {\n      id: randomUUID(),\n      app: input.app ?? app,\n      kind: input.kind,\n      type: input.type,\n      payload: input.payload,\n      emittedAt: new Date().toISOString(),\n      ...(input.source !== undefined ? { source: input.source } : {}),\n      ...(input.instanceId !== undefined ? { instanceId: input.instanceId } : {}),\n      ...(input.service !== undefined ? { service: input.service } : {})\n    }\n  }\n\n  public encode(event: MeshStreamEnvelope): string {\n    return JSON.stringify(event)\n  }\n\n  public decode(value: string): MeshStreamEnvelope | null {\n    try {\n      const parsed = JSON.parse(value) as Partial<MeshStreamEnvelope>\n      if (!parsed || typeof parsed !== 'object') return null\n      if (typeof parsed.id !== 'string' || typeof parsed.app !== 'string' || typeof parsed.kind !== 'string' || typeof parsed.type !== 'string') return null\n      return parsed as MeshStreamEnvelope\n    } catch {\n      return null\n    }\n  }\n}\n","import net from 'node:net'\nimport tls from 'node:tls'\n\nexport type RedisCommandArg = string | number\n\nexport interface SimpleRedisClientOptions {\n  readonly url: string\n  readonly connectTimeoutMs?: number\n}\n\nexport class SimpleRedisClient {\n  private readonly url: URL\n  private readonly timeoutMs: number\n\n  public constructor(options: SimpleRedisClientOptions) {\n    this.url = new URL(options.url)\n    this.timeoutMs = options.connectTimeoutMs ?? 5_000\n  }\n\n  public async command(args: readonly RedisCommandArg[]): Promise<unknown> {\n    const socket = await this.connect()\n    try {\n      const reader = new RespReader(socket)\n      socket.write(this.encode(args))\n      return await reader.read()\n    } finally {\n      socket.end()\n    }\n  }\n\n  private async connect(): Promise<net.Socket> {\n    const port = Number(this.url.port || (this.url.protocol === 'rediss:' ? 6380 : 6379))\n    const host = this.url.hostname || '127.0.0.1'\n    const socket = this.url.protocol === 'rediss:' ? tls.connect({ port, host }) : net.connect({ port, host })\n\n    await new Promise<void>((resolve, reject) => {\n      const timer = setTimeout(() => {\n        socket.destroy(new Error('Redis connection timed out.'))\n      }, this.timeoutMs)\n      socket.once('connect', () => {\n        clearTimeout(timer)\n        resolve()\n      })\n      socket.once('error', error => {\n        clearTimeout(timer)\n        reject(error)\n      })\n    })\n\n    if (this.url.password) {\n      if (this.url.username) await this.commandOnSocket(socket, ['AUTH', decodeURIComponent(this.url.username), decodeURIComponent(this.url.password)])\n      else await this.commandOnSocket(socket, ['AUTH', decodeURIComponent(this.url.password)])\n    }\n\n    const db = this.url.pathname.replace(/^\\//, '')\n    if (db) await this.commandOnSocket(socket, ['SELECT', db])\n    return socket\n  }\n\n  private async commandOnSocket(socket: net.Socket, args: readonly RedisCommandArg[]): Promise<unknown> {\n    const reader = new RespReader(socket)\n    socket.write(this.encode(args))\n    return reader.read()\n  }\n\n  private encode(args: readonly RedisCommandArg[]): string {\n    return `*${args.length}\\r\\n${args.map(arg => {\n      const value = String(arg)\n      return `$${Buffer.byteLength(value)}\\r\\n${value}\\r\\n`\n    }).join('')}`\n  }\n}\n\nclass RespReader {\n  private buffer = Buffer.alloc(0)\n  private waiters: Array<() => void> = []\n\n  public constructor(private readonly socket: net.Socket) {\n    socket.on('data', chunk => {\n      this.buffer = Buffer.concat([this.buffer, chunk])\n      for (const waiter of this.waiters.splice(0)) waiter()\n    })\n  }\n\n  public async read(): Promise<unknown> {\n    while (true) {\n      const parsed = this.tryParse(0)\n      if (parsed) {\n        this.buffer = this.buffer.subarray(parsed.offset)\n        if (parsed.value instanceof RedisError) throw parsed.value\n        return parsed.value\n      }\n      await new Promise<void>((resolve, reject) => {\n        const onError = (error: Error): void => {\n          cleanup()\n          reject(error)\n        }\n        const onClose = (): void => {\n          cleanup()\n          reject(new Error('Redis socket closed before response.'))\n        }\n        const wake = (): void => {\n          cleanup()\n          resolve()\n        }\n        const cleanup = (): void => {\n          this.socket.off('error', onError)\n          this.socket.off('close', onClose)\n          const index = this.waiters.indexOf(wake)\n          if (index >= 0) this.waiters.splice(index, 1)\n        }\n        this.socket.once('error', onError)\n        this.socket.once('close', onClose)\n        this.waiters.push(wake)\n      })\n    }\n  }\n\n  private tryParse(offset: number): { value: unknown; offset: number } | null {\n    if (offset >= this.buffer.length) return null\n    const type = String.fromCharCode(this.buffer[offset]!)\n    const line = this.readLine(offset + 1)\n    if (!line) return null\n\n    if (type === '+') return { value: line.text, offset: line.offset }\n    if (type === '-') return { value: new RedisError(line.text), offset: line.offset }\n    if (type === ':') return { value: Number(line.text), offset: line.offset }\n    if (type === '$') {\n      const length = Number(line.text)\n      if (length === -1) return { value: null, offset: line.offset }\n      const end = line.offset + length\n      if (this.buffer.length < end + 2) return null\n      return { value: this.buffer.subarray(line.offset, end).toString('utf8'), offset: end + 2 }\n    }\n    if (type === '*') {\n      const count = Number(line.text)\n      if (count === -1) return { value: null, offset: line.offset }\n      const values: unknown[] = []\n      let current = line.offset\n      for (let index = 0; index < count; index += 1) {\n        const item = this.tryParse(current)\n        if (!item) return null\n        values.push(item.value)\n        current = item.offset\n      }\n      return { value: values, offset: current }\n    }\n    return null\n  }\n\n  private readLine(offset: number): { text: string; offset: number } | null {\n    const end = this.buffer.indexOf('\\r\\n', offset)\n    if (end < 0) return null\n    return { text: this.buffer.subarray(offset, end).toString('utf8'), offset: end + 2 }\n  }\n}\n\nclass RedisError extends Error {\n  public constructor(message: string) {\n    super(message)\n    this.name = 'RedisError'\n  }\n}\n","import type { NormalizedMeshStreamingConfig } from '../core/types.js'\n\nexport class MeshStreamChannels {\n  public constructor(private readonly config: NormalizedMeshStreamingConfig) {}\n\n  public logs(): string {\n    return `${this.config.keyPrefix}:stream:logs`\n  }\n\n  public events(): string {\n    return `${this.config.keyPrefix}:stream:events`\n  }\n\n  public all(): readonly string[] {\n    return [this.logs(), this.events()]\n  }\n}\n","import net from 'node:net'\nimport tls from 'node:tls'\nimport type { RedisCommandArg } from '../../registry/redis/SimpleRedisClient.js'\n\nexport interface RedisPubSubConnectionOptions {\n  readonly url: string\n  readonly connectTimeoutMs?: number\n}\n\nexport class RedisPubSubConnection {\n  private socket: net.Socket | null = null\n  private reader: RespStreamReader | null = null\n  private closed = false\n\n  public constructor(private readonly options: RedisPubSubConnectionOptions) {}\n\n  public async subscribe(channels: readonly string[], onMessage: (channel: string, message: string) => void): Promise<() => Promise<void>> {\n    if (channels.length === 0) throw new Error('RedisPubSubConnection.subscribe requires at least one channel.')\n    const socket = await this.connect()\n    this.socket = socket\n    this.reader = new RespStreamReader(socket)\n    socket.write(encode(['SUBSCRIBE', ...channels]))\n\n    void this.readLoop(onMessage)\n\n    return async () => {\n      this.closed = true\n      if (!socket.destroyed) {\n        try { socket.write(encode(['UNSUBSCRIBE', ...channels])) } catch { /* noop */ }\n        socket.end()\n      }\n    }\n  }\n\n  private async readLoop(onMessage: (channel: string, message: string) => void): Promise<void> {\n    const reader = this.reader\n    if (!reader) return\n    while (!this.closed) {\n      try {\n        const value = await reader.read()\n        if (!Array.isArray(value) || value.length < 3) continue\n        const [kind, channel, message] = value\n        if (kind === 'message' && typeof channel === 'string' && typeof message === 'string') {\n          onMessage(channel, message)\n        }\n      } catch {\n        if (!this.closed) this.closed = true\n      }\n    }\n  }\n\n  private async connect(): Promise<net.Socket> {\n    const url = new URL(this.options.url)\n    const port = Number(url.port || (url.protocol === 'rediss:' ? 6380 : 6379))\n    const host = url.hostname || '127.0.0.1'\n    const socket = url.protocol === 'rediss:' ? tls.connect({ port, host }) : net.connect({ port, host })\n    const timeoutMs = this.options.connectTimeoutMs ?? 5_000\n\n    await new Promise<void>((resolve, reject) => {\n      const timer = setTimeout(() => {\n        socket.destroy(new Error('Redis pub/sub connection timed out.'))\n      }, timeoutMs)\n      socket.once('connect', () => {\n        clearTimeout(timer)\n        resolve()\n      })\n      socket.once('error', error => {\n        clearTimeout(timer)\n        reject(error)\n      })\n    })\n\n    if (url.password) {\n      if (url.username) await commandOnSocket(socket, ['AUTH', decodeURIComponent(url.username), decodeURIComponent(url.password)])\n      else await commandOnSocket(socket, ['AUTH', decodeURIComponent(url.password)])\n    }\n    const db = url.pathname.replace(/^\\//, '')\n    if (db) await commandOnSocket(socket, ['SELECT', db])\n    return socket\n  }\n}\n\nasync function commandOnSocket(socket: net.Socket, args: readonly RedisCommandArg[]): Promise<unknown> {\n  const reader = new RespStreamReader(socket)\n  socket.write(encode(args))\n  return reader.read()\n}\n\nfunction encode(args: readonly RedisCommandArg[]): string {\n  return `*${args.length}\\r\\n${args.map(arg => {\n    const value = String(arg)\n    return `$${Buffer.byteLength(value)}\\r\\n${value}\\r\\n`\n  }).join('')}`\n}\n\nclass RespStreamReader {\n  private buffer = Buffer.alloc(0)\n  private waiters: Array<() => void> = []\n\n  public constructor(private readonly socket: net.Socket) {\n    socket.on('data', chunk => {\n      this.buffer = Buffer.concat([this.buffer, chunk])\n      for (const waiter of this.waiters.splice(0)) waiter()\n    })\n  }\n\n  public async read(): Promise<unknown> {\n    while (true) {\n      const parsed = this.tryParse(0)\n      if (parsed) {\n        this.buffer = this.buffer.subarray(parsed.offset)\n        return parsed.value\n      }\n      await new Promise<void>((resolve, reject) => {\n        const onError = (error: Error): void => {\n          cleanup()\n          reject(error)\n        }\n        const onClose = (): void => {\n          cleanup()\n          reject(new Error('Redis socket closed before response.'))\n        }\n        const wake = (): void => {\n          cleanup()\n          resolve()\n        }\n        const cleanup = (): void => {\n          this.socket.off('error', onError)\n          this.socket.off('close', onClose)\n          const index = this.waiters.indexOf(wake)\n          if (index >= 0) this.waiters.splice(index, 1)\n        }\n        this.socket.once('error', onError)\n        this.socket.once('close', onClose)\n        this.waiters.push(wake)\n      })\n    }\n  }\n\n  private tryParse(offset: number): { value: unknown; offset: number } | null {\n    if (offset >= this.buffer.length) return null\n    const type = String.fromCharCode(this.buffer[offset]!)\n    const line = this.readLine(offset + 1)\n    if (!line) return null\n    if (type === '+') return { value: line.text, offset: line.offset }\n    if (type === '-') throw new Error(line.text)\n    if (type === ':') return { value: Number(line.text), offset: line.offset }\n    if (type === '$') {\n      const length = Number(line.text)\n      if (length === -1) return { value: null, offset: line.offset }\n      const end = line.offset + length\n      if (this.buffer.length < end + 2) return null\n      return { value: this.buffer.subarray(line.offset, end).toString('utf8'), offset: end + 2 }\n    }\n    if (type === '*') {\n      const count = Number(line.text)\n      if (count === -1) return { value: null, offset: line.offset }\n      const values: unknown[] = []\n      let current = line.offset\n      for (let index = 0; index < count; index += 1) {\n        const item = this.tryParse(current)\n        if (!item) return null\n        values.push(item.value)\n        current = item.offset\n      }\n      return { value: values, offset: current }\n    }\n    return null\n  }\n\n  private readLine(offset: number): { text: string; offset: number } | null {\n    const end = this.buffer.indexOf('\\r\\n', offset)\n    if (end < 0) return null\n    return { text: this.buffer.subarray(offset, end).toString('utf8'), offset: end + 2 }\n  }\n}\n","import type { NormalizedMeshConfig } from '../../core/types.js'\nimport { SimpleRedisClient } from '../../registry/redis/SimpleRedisClient.js'\nimport { MeshStreamChannels } from '../MeshStreamChannels.js'\nimport { MeshStreamSerializer } from '../MeshStreamSerializer.js'\nimport type { MeshLogPublishInput, MeshLogStreamPayload, MeshStreamEnvelope, MeshStreamHandler, MeshStreamPublisher, MeshStreamSubscriber } from '../types.js'\nimport { RedisPubSubConnection } from './RedisPubSubConnection.js'\n\nexport class RedisMeshStream implements MeshStreamPublisher, MeshStreamSubscriber {\n  private readonly client: SimpleRedisClient\n  private readonly channels: MeshStreamChannels\n  private readonly serializer = new MeshStreamSerializer()\n  private logSequence = 0\n\n  public constructor(private readonly config: NormalizedMeshConfig) {\n    this.client = new SimpleRedisClient({ url: config.streaming.url, connectTimeoutMs: config.streaming.connectTimeoutMs })\n    this.channels = new MeshStreamChannels(config.streaming)\n  }\n\n  public async publish<TPayload>(input: Omit<MeshStreamEnvelope<TPayload>, 'id' | 'emittedAt' | 'app'> & { readonly app?: string }): Promise<MeshStreamEnvelope<TPayload>> {\n    const envelope = this.serializer.create(this.config.app, input)\n    const channel = envelope.kind === 'log' ? this.channels.logs() : this.channels.events()\n    await this.client.command(['PUBLISH', channel, this.serializer.encode(envelope)])\n    return envelope\n  }\n\n  public async publishLog(input: MeshLogPublishInput): Promise<MeshStreamEnvelope<MeshLogStreamPayload> | null> {\n    if (!this.config.streaming.enabled || !this.config.streaming.logs) return null\n    const raw = Buffer.isBuffer(input.chunk) ? input.chunk.toString('utf8') : input.chunk\n    const max = this.config.streaming.maxLogChunkBytes\n    const chunk = raw.length > max ? raw.slice(0, max) : raw\n    return this.publish<MeshLogStreamPayload>({\n      kind: 'log',\n      type: 'mesh.log',\n      ...(input.source !== undefined ? { source: input.source } : {}),\n      instanceId: input.instanceId,\n      service: input.service,\n      payload: {\n        stream: input.stream,\n        chunk,\n        sequence: this.logSequence += 1,\n        truncated: raw.length > max,\n        ...(input.serviceType !== undefined ? { serviceType: input.serviceType } : {})\n      }\n    })\n  }\n\n  public async subscribe(types: readonly string[], handler: MeshStreamHandler): Promise<() => Promise<void>> {\n    const channels = this.channels.all()\n    const wanted = new Set(types)\n    const any = wanted.size === 0 || wanted.has('*')\n    const connection = new RedisPubSubConnection({ url: this.config.streaming.url, connectTimeoutMs: this.config.streaming.connectTimeoutMs })\n    return connection.subscribe(channels, (_channel, message) => {\n      const envelope = this.serializer.decode(message)\n      if (!envelope) return\n      if (!any && !wanted.has(envelope.type) && !wanted.has(envelope.kind)) return\n      void handler(envelope)\n    })\n  }\n}\n","import type { NormalizedMeshConfig } from '../core/types.js'\nimport { MemoryMeshStream } from './MemoryMeshStream.js'\nimport { RedisMeshStream } from './redis/RedisMeshStream.js'\nimport type { MeshStreamPublisher, MeshStreamSubscriber } from './types.js'\n\nexport class MeshStreamFactory {\n  public createPublisher(config: NormalizedMeshConfig): MeshStreamPublisher | null {\n    if (!config.streaming.enabled) return null\n    if (config.streaming.transport === 'redis') return new RedisMeshStream(config)\n    return new MemoryMeshStream(config)\n  }\n\n  public createSubscriber(config: NormalizedMeshConfig): MeshStreamSubscriber | null {\n    if (!config.streaming.enabled) return null\n    if (config.streaming.transport === 'redis') return new RedisMeshStream(config)\n    return new MemoryMeshStream(config)\n  }\n}\n"],"mappings":"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","names":["import_node_crypto","import_node_events","import_node_crypto","tls","net","import_node_net","import_node_tls","tls","net"]}