@rlanz/socket 0.1.0 → 0.2.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.
@@ -1,9 +1,9 @@
1
- import { S as SocketService } from '../socket_service-C2YRbhrO.js';
1
+ import { S as SocketService } from '../socket_service-to3tlbrV.js';
2
2
  import 'node:http';
3
3
  import '@adonisjs/logger';
4
4
  import 'emittery';
5
5
  import 'ws';
6
- import '../base_channel-CasBQV5I.js';
6
+ import '../base_channel-DFyd3hVE.js';
7
7
  import '@adonisjs/core/types/http';
8
8
  import '@adonisjs/core/http';
9
9
  import '@boringnode/bus/types/main';
@@ -2,7 +2,7 @@ import { IncomingMessage, Server } from 'node:http';
2
2
  import { Logger } from '@adonisjs/logger';
3
3
  import Emittery from 'emittery';
4
4
  import { WebSocketServer } from 'ws';
5
- import { s as BaseChannelConstructor, B as BaseChannel, t as ChannelMiddlewareRunnerFactory, u as ChannelMatch, A as AuthenticatedSocket, v as PresenceData, C as ChannelOptions, i as SocketEvents, P as PresenceManager, a as SocketConfig, p as SocketServiceStatus, j as SocketHealthSnapshot } from './base_channel-CasBQV5I.js';
5
+ import { s as BaseChannelConstructor, B as BaseChannel, t as ChannelMiddlewareRunnerFactory, u as ChannelMatch, A as AuthenticatedSocket, v as PresenceData, C as ChannelOptions, i as SocketEvents, P as PresenceManager, a as SocketConfig, p as SocketServiceStatus, j as SocketHealthSnapshot } from './base_channel-DFyd3hVE.js';
6
6
  import { HttpContext } from '@adonisjs/core/http';
7
7
  import { SocketFake } from './src/testing.js';
8
8
 
@@ -1,3 +1,3 @@
1
1
  export { S as Socket } from '../../index-DCPtfkJL.js';
2
- export { ChannelBroadcastEvent, ChannelBroadcastPayload, ChannelCallArgs, ChannelClientEvent, ChannelClientEventPayload, ChannelParameters, ChannelPattern, ConnectionState, EventHandler, PresenceData, PresenceUser, SocketOptions, SubscribeAckData, SubscribeOptions, SubscribeResult, UnsubscribeOptions } from './types.js';
2
+ export { ChannelBroadcastEvent, ChannelBroadcastPayload, ChannelCallArgs, ChannelClientEvent, ChannelClientEventPayload, ChannelParameters, ChannelPattern, ConnectionState, EventHandler, PresenceData, PresenceUser, ResubscribeErrorContext, SocketOptions, SubscribeAckData, SubscribeOptions, SubscribeResult, UnsubscribeOptions } from './types.js';
3
3
  export { a as ChannelAck, b as ChannelMessage } from '../../shared_types-B11CaOr5.js';
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Socket
3
- } from "../../chunk-DR6GWQUW.js";
3
+ } from "../../chunk-3FY7EIZF.js";
4
4
  import "../../chunk-YSW4MNFR.js";
5
5
  import "../../chunk-DM3UQMWW.js";
6
6
  import "../../chunk-E6ILCRL3.js";
@@ -3,10 +3,10 @@ import {
3
3
  acquireSocketOwnership,
4
4
  createChannelCallArgs,
5
5
  resolveChannelEventArgs
6
- } from "../../chunk-UE75J3JE.js";
6
+ } from "../../chunk-OAI6SAER.js";
7
7
  import {
8
8
  buildChannelName
9
- } from "../../chunk-DR6GWQUW.js";
9
+ } from "../../chunk-3FY7EIZF.js";
10
10
  import "../../chunk-YSW4MNFR.js";
11
11
  import "../../chunk-DM3UQMWW.js";
12
12
  import "../../chunk-E6ILCRL3.js";
@@ -53,6 +53,11 @@ type ChannelClientEventPayload<Registry, Pattern extends ChannelPattern<Registry
53
53
  type ChannelBroadcastEvent<Registry, Pattern extends ChannelPattern<Registry>> = Extract<keyof ServerEvents<ChannelContractFor<Registry, Pattern>>, string>;
54
54
  /** Payload received from a server broadcast on a generated channel. */
55
55
  type ChannelBroadcastPayload<Registry, Pattern extends ChannelPattern<Registry>, Event extends ChannelBroadcastEvent<Registry, Pattern>> = ServerEvents<ChannelContractFor<Registry, Pattern>>[Event];
56
+ /** Details about a rejected automatic channel resubscription. */
57
+ interface ResubscribeErrorContext {
58
+ channel: string;
59
+ error: Error;
60
+ }
56
61
  /**
57
62
  * Connection options.
58
63
  */
@@ -82,6 +87,10 @@ interface SocketOptions {
82
87
  * By default, deliberate server disconnects are terminal and other closes reconnect.
83
88
  */
84
89
  shouldReconnect?: (event: CloseEvent) => boolean;
90
+ /**
91
+ * Handles a rejected automatic channel resubscription.
92
+ */
93
+ onResubscribeError?: (context: ResubscribeErrorContext) => void;
85
94
  }
86
95
  /**
87
96
  * Channel subscription options.
@@ -147,4 +156,4 @@ interface SocketClientTransport {
147
156
  off<T = unknown>(event: string, handler: EventHandler<T>): void;
148
157
  }
149
158
 
150
- export { ChannelAck, type ChannelBroadcastEvent, type ChannelBroadcastPayload, type ChannelCallArgs, type ChannelClientEvent, type ChannelClientEventPayload, type ChannelContract, type ChannelContractFor, type ChannelParameterValue, type ChannelParameters, type ChannelPattern, ChannelServerEventsOf, type ConnectionState, type EventHandler, type PresenceData, type PresenceUser, type SocketClientTransport, type SocketOptions, type SubscribeAckData, type SubscribeOptions, type SubscribeResult, type UnsubscribeOptions };
159
+ export { ChannelAck, type ChannelBroadcastEvent, type ChannelBroadcastPayload, type ChannelCallArgs, type ChannelClientEvent, type ChannelClientEventPayload, type ChannelContract, type ChannelContractFor, type ChannelParameterValue, type ChannelParameters, type ChannelPattern, ChannelServerEventsOf, type ConnectionState, type EventHandler, type PresenceData, type PresenceUser, type ResubscribeErrorContext, type SocketClientTransport, type SocketOptions, type SubscribeAckData, type SubscribeOptions, type SubscribeResult, type UnsubscribeOptions };
@@ -3,10 +3,10 @@ import {
3
3
  acquireSocketOwnership,
4
4
  createChannelCallArgs,
5
5
  resolveChannelEventArgs
6
- } from "../../chunk-UE75J3JE.js";
6
+ } from "../../chunk-OAI6SAER.js";
7
7
  import {
8
8
  buildChannelName
9
- } from "../../chunk-DR6GWQUW.js";
9
+ } from "../../chunk-3FY7EIZF.js";
10
10
  import "../../chunk-YSW4MNFR.js";
11
11
  import "../../chunk-DM3UQMWW.js";
12
12
  import "../../chunk-E6ILCRL3.js";
@@ -1,6 +1,5 @@
1
- import { A as AuthenticatedSocket } from '../base_channel-CasBQV5I.js';
1
+ import { A as AuthenticatedSocket } from '../base_channel-DFyd3hVE.js';
2
2
  import 'ws';
3
- import 'node:http';
4
3
  import '@adonisjs/core/types/http';
5
4
  import '@adonisjs/core/http';
6
5
  import '@boringnode/bus/types/main';
@@ -1,10 +1,10 @@
1
1
  import { BaseCheck, Result } from '@adonisjs/core/health';
2
- import { S as SocketService } from '../socket_service-C2YRbhrO.js';
2
+ import { S as SocketService } from '../socket_service-to3tlbrV.js';
3
3
  import 'node:http';
4
4
  import '@adonisjs/logger';
5
5
  import 'emittery';
6
6
  import 'ws';
7
- import '../base_channel-CasBQV5I.js';
7
+ import '../base_channel-DFyd3hVE.js';
8
8
  import '@adonisjs/core/types/http';
9
9
  import '@adonisjs/core/http';
10
10
  import '@boringnode/bus/types/main';
package/build/src/otel.js CHANGED
@@ -20,7 +20,7 @@ import { InstrumentationBase } from "@opentelemetry/instrumentation";
20
20
  // package.json
21
21
  var package_default = {
22
22
  name: "@rlanz/socket",
23
- version: "0.1.0",
23
+ version: "0.2.0",
24
24
  description: "WebSocket integration for AdonisJS",
25
25
  type: "module",
26
26
  main: "./build/index.js",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/otel.ts","../../package.json"],"sourcesContent":["import {\n context,\n SpanKind,\n SpanStatusCode,\n trace,\n type Counter,\n type Span,\n type UpDownCounter,\n} from '@opentelemetry/api'\nimport type { TracingChannelSubscribers } from 'node:diagnostics_channel'\nimport { InstrumentationBase } from '@opentelemetry/instrumentation'\nimport type { InstrumentationConfig } from '@opentelemetry/instrumentation'\nimport packageJson from '../package.json' with { type: 'json' }\nimport {\n broadcastChannel,\n channelMessageChannel,\n connectChannel,\n disconnectChannel,\n subscribeChannel,\n setTracingOperationRunner,\n unsubscribeChannel,\n} from './tracing_channels.js'\nimport type {\n SocketBroadcastMessage,\n SocketChannelMessage,\n SocketConnectMessage,\n SocketDisconnectMessage,\n SocketSubscribeMessage,\n SocketUnsubscribeMessage,\n} from './types/tracing_channels.js'\n\nexport interface SocketInstrumentationConfig extends InstrumentationConfig {\n /**\n * The messaging system identifier.\n *\n * @default '@rlanz/socket'\n */\n messagingSystem?: string\n}\n\ntype AttributeValue = string | number | boolean\n\nexport class SocketInstrumentation extends InstrumentationBase<SocketInstrumentationConfig> {\n protected subscribed = false\n protected spans = new WeakMap<object, Span>()\n protected connectHandlers?: TracingChannelSubscribers<SocketConnectMessage>\n protected disconnectHandlers?: TracingChannelSubscribers<SocketDisconnectMessage>\n protected subscribeHandlers?: TracingChannelSubscribers<SocketSubscribeMessage>\n protected unsubscribeHandlers?: TracingChannelSubscribers<SocketUnsubscribeMessage>\n protected messageHandlers?: TracingChannelSubscribers<SocketChannelMessage>\n protected broadcastHandlers?: TracingChannelSubscribers<SocketBroadcastMessage>\n\n #connectionCounter!: Counter\n #disconnectionCounter!: Counter\n #activeConnections!: UpDownCounter\n #subscriptionCounter!: Counter\n #activeSubscriptions!: UpDownCounter\n #messageCounter!: Counter\n #broadcastCounter!: Counter\n #broadcastDeliveryCounter!: Counter\n\n constructor(config: SocketInstrumentationConfig = {}) {\n super('@rlanz/socket', packageJson.version, config)\n this._updateMetricInstruments()\n if (this.isEnabled()) this.enable()\n }\n\n get #messagingSystem(): string {\n return this.getConfig().messagingSystem ?? '@rlanz/socket'\n }\n\n protected init() {\n return undefined\n }\n\n protected _updateMetricInstruments() {\n if (this.subscribed === undefined) return\n\n this.#connectionCounter = this.meter.createCounter('rlanz_socket_connections_total', {\n description: 'Total number of accepted socket connections',\n })\n this.#disconnectionCounter = this.meter.createCounter('rlanz_socket_disconnections_total', {\n description: 'Total number of closed socket connections',\n })\n this.#activeConnections = this.meter.createUpDownCounter('rlanz_socket_connections_active', {\n description: 'Number of currently active socket connections',\n })\n this.#subscriptionCounter = this.meter.createCounter('rlanz_socket_subscriptions_total', {\n description: 'Total number of successful channel subscriptions',\n })\n this.#activeSubscriptions = this.meter.createUpDownCounter(\n 'rlanz_socket_subscriptions_active',\n { description: 'Number of currently active channel subscriptions' }\n )\n this.#messageCounter = this.meter.createCounter('rlanz_socket_messages_total', {\n description: 'Total number of channel messages received from clients',\n })\n this.#broadcastCounter = this.meter.createCounter('rlanz_socket_broadcasts_total', {\n description: 'Total number of broadcast operations',\n })\n this.#broadcastDeliveryCounter = this.meter.createCounter(\n 'rlanz_socket_broadcast_deliveries_total',\n { description: 'Total number of socket deliveries made by broadcast operations' }\n )\n }\n\n enable() {\n super.enable()\n // `InstrumentationBase` calls `enable()` from its constructor, before this\n // subclass's fields and private methods are installed on the instance.\n // During that premature call `this.subscribed` is still `undefined`, so the\n // guard prevents calling `#subscribe()` on a not-yet-branded instance.\n if (this.subscribed !== undefined) this.#subscribe()\n }\n\n disable() {\n if (this.subscribed !== undefined) this.#unsubscribe()\n super.disable()\n }\n\n manuallyRegister() {\n this.#subscribe()\n }\n\n #subscribe() {\n if (this.subscribed) return\n if (!this.isEnabled()) return\n\n this.subscribed = true\n\n this.connectHandlers = {\n start: (message) =>\n this.#startSpan(message, 'socket connect', SpanKind.SERVER, {\n 'network.transport': 'websocket',\n }),\n end: (message) => this.#handleConnectEnd(message),\n asyncStart: () => {},\n asyncEnd: () => {},\n error: (message) => this.#recordError(message),\n }\n\n this.disconnectHandlers = {\n start: (message) =>\n this.#startSpan(message, 'socket disconnect', SpanKind.INTERNAL, {\n 'socket.disconnect.reason': message.reason,\n 'socket.disconnect.subscriptions': message.subscriptions ?? 0,\n }),\n end: () => {},\n asyncStart: () => {},\n asyncEnd: (message) => this.#handleDisconnectEnd(message),\n error: (message) => this.#recordError(message),\n }\n\n this.subscribeHandlers = {\n start: (message) =>\n this.#startSpan(message, `socket subscribe ${message.channel}`, SpanKind.SERVER, {\n 'messaging.destination.name': message.channel,\n 'messaging.operation.name': 'subscribe',\n 'messaging.operation.type': 'receive',\n }),\n end: () => {},\n asyncStart: () => {},\n asyncEnd: (message) => this.#handleSubscribeEnd(message),\n error: (message) => this.#recordError(message),\n }\n\n this.unsubscribeHandlers = {\n start: (message) =>\n this.#startSpan(message, `socket unsubscribe ${message.channel}`, SpanKind.SERVER, {\n 'messaging.destination.name': message.channel,\n 'messaging.operation.name': 'unsubscribe',\n 'messaging.operation.type': 'receive',\n }),\n end: () => {},\n asyncStart: () => {},\n asyncEnd: (message) => this.#handleUnsubscribeEnd(message),\n error: (message) => this.#recordError(message),\n }\n\n this.messageHandlers = {\n start: (message) =>\n this.#startSpan(message, `socket message ${message.channel}`, SpanKind.SERVER, {\n 'messaging.destination.name': message.channel,\n 'messaging.operation.name': 'process',\n 'messaging.operation.type': 'receive',\n 'messaging.event.name': message.event,\n }),\n end: () => {},\n asyncStart: () => {},\n asyncEnd: (message) => this.#handleMessageEnd(message),\n error: (message) => this.#recordError(message),\n }\n\n this.broadcastHandlers = {\n start: (message) =>\n this.#startSpan(message, `socket broadcast ${message.target}`, SpanKind.PRODUCER, {\n ...this.#broadcastAttributes(message),\n }),\n end: (message) => this.#handleBroadcastEnd(message),\n asyncStart: () => {},\n asyncEnd: () => {},\n error: (message) => this.#recordError(message),\n }\n\n connectChannel.subscribe(this.connectHandlers)\n disconnectChannel.subscribe(this.disconnectHandlers)\n subscribeChannel.subscribe(this.subscribeHandlers)\n unsubscribeChannel.subscribe(this.unsubscribeHandlers)\n channelMessageChannel.subscribe(this.messageHandlers)\n broadcastChannel.subscribe(this.broadcastHandlers)\n }\n\n #unsubscribe() {\n if (!this.subscribed) return\n\n if (this.connectHandlers) connectChannel.unsubscribe(this.connectHandlers)\n if (this.disconnectHandlers) disconnectChannel.unsubscribe(this.disconnectHandlers)\n if (this.subscribeHandlers) subscribeChannel.unsubscribe(this.subscribeHandlers)\n if (this.unsubscribeHandlers) unsubscribeChannel.unsubscribe(this.unsubscribeHandlers)\n if (this.messageHandlers) channelMessageChannel.unsubscribe(this.messageHandlers)\n if (this.broadcastHandlers) broadcastChannel.unsubscribe(this.broadcastHandlers)\n\n this.subscribed = false\n this.spans = new WeakMap()\n }\n\n #startSpan(\n message: object,\n name: string,\n kind: SpanKind,\n attributes: Record<string, AttributeValue> = {}\n ) {\n const span = this.tracer.startSpan(name, {\n kind,\n attributes: {\n 'messaging.system': this.#messagingSystem,\n ...attributes,\n },\n })\n\n this.spans.set(message, span)\n const spanContext = trace.setSpan(context.active(), span)\n setTracingOperationRunner(message, (operation) => context.with(spanContext, operation))\n }\n\n #handleDisconnectEnd(message: SocketDisconnectMessage) {\n this.#disconnectionCounter.add(1, { 'socket.disconnect.reason': message.reason })\n this.#activeConnections.add(-1)\n if (message.subscriptions) {\n this.#activeSubscriptions.add(-message.subscriptions)\n }\n\n this.#endSpan(message)\n }\n\n #handleConnectEnd(message: SocketConnectMessage) {\n this.#connectionCounter.add(1)\n this.#activeConnections.add(1)\n this.#endSpan(message)\n }\n\n #handleSubscribeEnd(message: SocketSubscribeMessage) {\n const attributes = {\n 'messaging.destination.name': message.channel,\n 'socket.subscription.created': Boolean(message.created),\n }\n\n if (message.ok) {\n this.#subscriptionCounter.add(1, attributes)\n if (message.created) this.#activeSubscriptions.add(1, attributes)\n }\n\n this.#endSpanWithOutcome(message, attributes)\n }\n\n #handleUnsubscribeEnd(message: SocketUnsubscribeMessage) {\n const attributes = {\n 'messaging.destination.name': message.channel,\n 'socket.subscription.removed': Boolean(message.removed),\n }\n\n if (message.ok && message.removed) {\n this.#activeSubscriptions.add(-1, attributes)\n }\n\n this.#endSpanWithOutcome(message, attributes)\n }\n\n #handleMessageEnd(message: SocketChannelMessage) {\n const attributes = {\n 'messaging.destination.name': message.channel,\n 'messaging.event.name': message.event,\n }\n\n this.#messageCounter.add(1, {\n ...attributes,\n 'socket.message.ok': Boolean(message.ok),\n })\n\n this.#endSpanWithOutcome(message, attributes)\n }\n\n #handleBroadcastEnd(message: SocketBroadcastMessage) {\n const attributes = this.#broadcastAttributes(message)\n\n this.#broadcastCounter.add(1, attributes)\n if (message.delivered !== undefined) {\n this.#broadcastDeliveryCounter.add(message.delivered, attributes)\n }\n\n this.#endSpan(message, {\n ...attributes,\n ...(message.delivered !== undefined\n ? { 'socket.broadcast.delivered': message.delivered }\n : {}),\n })\n }\n\n #recordError(message: object & { error: unknown }) {\n const span = this.spans.get(message)\n if (!span) return\n\n if (message.error instanceof Error) {\n span.recordException(message.error)\n span.setStatus({ code: SpanStatusCode.ERROR, message: message.error.message })\n } else {\n span.setStatus({ code: SpanStatusCode.ERROR })\n }\n\n span.end()\n this.spans.delete(message)\n }\n\n #endSpanWithOutcome(\n message: SocketSubscribeMessage | SocketUnsubscribeMessage | SocketChannelMessage,\n attributes: Record<string, AttributeValue>\n ) {\n this.#endSpan(message, attributes, message)\n }\n\n #endSpan(\n message: object,\n attributes: Record<string, AttributeValue> = {},\n outcome?: { ok?: boolean; error?: string }\n ) {\n const span = this.spans.get(message)\n if (!span) return\n\n span.setAttributes(attributes)\n\n if (outcome?.ok === false) {\n span.setStatus({ code: SpanStatusCode.ERROR, message: outcome.error })\n if (outcome.error) {\n span.setAttribute('error.type', outcome.error)\n }\n } else {\n span.setStatus({ code: SpanStatusCode.OK })\n }\n\n span.end()\n this.spans.delete(message)\n }\n\n #broadcastAttributes(message: SocketBroadcastMessage): Record<string, AttributeValue> {\n const attributes: Record<string, AttributeValue> = {\n 'messaging.operation.name': 'publish',\n 'messaging.operation.type': 'send',\n 'messaging.event.name': message.event,\n 'socket.broadcast.target': message.target,\n 'socket.broadcast.via': message.via,\n }\n\n if (message.channel) attributes['messaging.destination.name'] = message.channel\n if (message.except) attributes['socket.broadcast.except_count'] = message.except.length\n\n return attributes\n }\n}\n","{\n \"name\": \"@rlanz/socket\",\n \"version\": \"0.1.0\",\n \"description\": \"WebSocket integration for AdonisJS\",\n \"type\": \"module\",\n \"main\": \"./build/index.js\",\n \"types\": \"./build/index.d.ts\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=24.0.0\"\n },\n \"packageManager\": \"yarn@4.18.0\",\n \"files\": [\n \"build\"\n ],\n \"exports\": {\n \".\": \"./build/index.js\",\n \"./provider\": \"./build/providers/socket_provider.js\",\n \"./assembler_hook\": \"./build/src/assembler_hook.js\",\n \"./services/main\": \"./build/services/socket.js\",\n \"./decorators\": \"./build/src/decorators.js\",\n \"./health_check\": \"./build/src/health_check.js\",\n \"./otel\": \"./build/src/otel.js\",\n \"./testing\": \"./build/src/testing.js\",\n \"./types\": \"./build/src/types.js\",\n \"./types/tracing_channels\": \"./build/src/types/tracing_channels.js\",\n \"./client\": \"./build/src/client/index.js\",\n \"./client/types\": \"./build/src/client/types.js\",\n \"./client/react\": \"./build/src/client/react.js\",\n \"./client/vue\": \"./build/src/client/vue.js\"\n },\n \"scripts\": {\n \"build\": \"npm run compile\",\n \"clean\": \"del-cli build\",\n \"compile\": \"npm run clean && tsup-node\",\n \"lint\": \"oxlint\",\n \"lint:fix\": \"oxlint --fix\",\n \"format\": \"oxfmt --check .\",\n \"format:fix\": \"oxfmt --write .\",\n \"prepublishOnly\": \"npm run build\",\n \"release\": \"release-it\",\n \"test\": \"node --import=@poppinss/ts-exec --enable-source-maps bin/test.ts\",\n \"typecheck\": \"tsc --noEmit\",\n \"version\": \"npm run build\"\n },\n \"dependencies\": {\n \"@boringnode/bus\": \"^0.9.1\",\n \"@lukeed/ms\": \"^2.0.2\",\n \"emittery\": \"^1.2.0\",\n \"ws\": \"^8.21.0\"\n },\n \"devDependencies\": {\n \"@adonisjs/assembler\": \"^8.0.0\",\n \"@adonisjs/core\": \"^7.0.1\",\n \"@adonisjs/tsconfig\": \"^2.0.0\",\n \"@japa/assert\": \"^4.2.0\",\n \"@japa/runner\": \"^5.3.0\",\n \"@opentelemetry/api\": \"^1.9.1\",\n \"@opentelemetry/context-async-hooks\": \"^2.7.1\",\n \"@opentelemetry/core\": \"^2.7.1\",\n \"@opentelemetry/instrumentation\": \"^0.218.0\",\n \"@opentelemetry/sdk-metrics\": \"^2.7.1\",\n \"@opentelemetry/sdk-trace-base\": \"^2.7.1\",\n \"@poppinss/ts-exec\": \"^1.4.4\",\n \"@release-it/conventional-changelog\": \"^12.0.0\",\n \"@types/node\": \"^24.0.0\",\n \"@types/react\": \"^19.1.9\",\n \"@types/react-test-renderer\": \"^19.1.0\",\n \"@types/scheduler\": \"^0\",\n \"@types/ws\": \"^8.18.1\",\n \"del-cli\": \"^7.0.0\",\n \"oxfmt\": \"^0.38.0\",\n \"oxlint\": \"^1.53.0\",\n \"react\": \"^19.1.1\",\n \"react-test-renderer\": \"^19.1.1\",\n \"reflect-metadata\": \"^0.2.2\",\n \"release-it\": \"^19.2.4\",\n \"scheduler\": \"^0.27.0\",\n \"tsup\": \"^8.5.1\",\n \"typescript\": \"^5.9.3\",\n \"vue\": \"^3.5.18\"\n },\n \"peerDependencies\": {\n \"@adonisjs/assembler\": \"^8.0.0\",\n \"@adonisjs/core\": \"^7.0.1\",\n \"@opentelemetry/api\": \"^1.9.0\",\n \"@opentelemetry/instrumentation\": \"^0.200.0\",\n \"react\": \"^18.0.0 || ^19.0.0\",\n \"typescript\": \"^5.9.0 || ^6.0.0\",\n \"vue\": \"^3.3.0\"\n },\n \"peerDependenciesMeta\": {\n \"@adonisjs/assembler\": {\n \"optional\": true\n },\n \"@opentelemetry/api\": {\n \"optional\": true\n },\n \"@opentelemetry/instrumentation\": {\n \"optional\": true\n },\n \"react\": {\n \"optional\": true\n },\n \"typescript\": {\n \"optional\": true\n },\n \"vue\": {\n \"optional\": true\n }\n },\n \"keywords\": [\n \"adonisjs\",\n \"adonis\",\n \"websocket\",\n \"realtime\"\n ],\n \"homepage\": \"https://github.com/rlanz/socket#readme\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/RomainLanz/socket\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/rlanz/socket/issues\"\n },\n \"author\": \"Romain Lanz <romain.lanz@pm.me>\",\n \"publishConfig\": {\n \"access\": \"public\",\n \"tag\": \"latest\",\n \"provenance\": true\n },\n \"release-it\": {\n \"git\": {\n \"requireCleanWorkingDir\": true,\n \"requireUpstream\": true,\n \"commitMessage\": \"chore(release): ${version}\",\n \"tagAnnotation\": \"v${version}\",\n \"push\": true,\n \"tagName\": \"v${version}\"\n },\n \"github\": {\n \"release\": true,\n \"releaseName\": \"v${version}\"\n },\n \"npm\": {\n \"publish\": true,\n \"skipChecks\": true\n },\n \"plugins\": {\n \"@release-it/conventional-changelog\": {\n \"preset\": {\n \"name\": \"angular\"\n }\n }\n }\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/otel.ts","../../package.json"],"sourcesContent":["import {\n context,\n SpanKind,\n SpanStatusCode,\n trace,\n type Counter,\n type Span,\n type UpDownCounter,\n} from '@opentelemetry/api'\nimport type { TracingChannelSubscribers } from 'node:diagnostics_channel'\nimport { InstrumentationBase } from '@opentelemetry/instrumentation'\nimport type { InstrumentationConfig } from '@opentelemetry/instrumentation'\nimport packageJson from '../package.json' with { type: 'json' }\nimport {\n broadcastChannel,\n channelMessageChannel,\n connectChannel,\n disconnectChannel,\n subscribeChannel,\n setTracingOperationRunner,\n unsubscribeChannel,\n} from './tracing_channels.js'\nimport type {\n SocketBroadcastMessage,\n SocketChannelMessage,\n SocketConnectMessage,\n SocketDisconnectMessage,\n SocketSubscribeMessage,\n SocketUnsubscribeMessage,\n} from './types/tracing_channels.js'\n\nexport interface SocketInstrumentationConfig extends InstrumentationConfig {\n /**\n * The messaging system identifier.\n *\n * @default '@rlanz/socket'\n */\n messagingSystem?: string\n}\n\ntype AttributeValue = string | number | boolean\n\nexport class SocketInstrumentation extends InstrumentationBase<SocketInstrumentationConfig> {\n protected subscribed = false\n protected spans = new WeakMap<object, Span>()\n protected connectHandlers?: TracingChannelSubscribers<SocketConnectMessage>\n protected disconnectHandlers?: TracingChannelSubscribers<SocketDisconnectMessage>\n protected subscribeHandlers?: TracingChannelSubscribers<SocketSubscribeMessage>\n protected unsubscribeHandlers?: TracingChannelSubscribers<SocketUnsubscribeMessage>\n protected messageHandlers?: TracingChannelSubscribers<SocketChannelMessage>\n protected broadcastHandlers?: TracingChannelSubscribers<SocketBroadcastMessage>\n\n #connectionCounter!: Counter\n #disconnectionCounter!: Counter\n #activeConnections!: UpDownCounter\n #subscriptionCounter!: Counter\n #activeSubscriptions!: UpDownCounter\n #messageCounter!: Counter\n #broadcastCounter!: Counter\n #broadcastDeliveryCounter!: Counter\n\n constructor(config: SocketInstrumentationConfig = {}) {\n super('@rlanz/socket', packageJson.version, config)\n this._updateMetricInstruments()\n if (this.isEnabled()) this.enable()\n }\n\n get #messagingSystem(): string {\n return this.getConfig().messagingSystem ?? '@rlanz/socket'\n }\n\n protected init() {\n return undefined\n }\n\n protected _updateMetricInstruments() {\n if (this.subscribed === undefined) return\n\n this.#connectionCounter = this.meter.createCounter('rlanz_socket_connections_total', {\n description: 'Total number of accepted socket connections',\n })\n this.#disconnectionCounter = this.meter.createCounter('rlanz_socket_disconnections_total', {\n description: 'Total number of closed socket connections',\n })\n this.#activeConnections = this.meter.createUpDownCounter('rlanz_socket_connections_active', {\n description: 'Number of currently active socket connections',\n })\n this.#subscriptionCounter = this.meter.createCounter('rlanz_socket_subscriptions_total', {\n description: 'Total number of successful channel subscriptions',\n })\n this.#activeSubscriptions = this.meter.createUpDownCounter(\n 'rlanz_socket_subscriptions_active',\n { description: 'Number of currently active channel subscriptions' }\n )\n this.#messageCounter = this.meter.createCounter('rlanz_socket_messages_total', {\n description: 'Total number of channel messages received from clients',\n })\n this.#broadcastCounter = this.meter.createCounter('rlanz_socket_broadcasts_total', {\n description: 'Total number of broadcast operations',\n })\n this.#broadcastDeliveryCounter = this.meter.createCounter(\n 'rlanz_socket_broadcast_deliveries_total',\n { description: 'Total number of socket deliveries made by broadcast operations' }\n )\n }\n\n enable() {\n super.enable()\n // `InstrumentationBase` calls `enable()` from its constructor, before this\n // subclass's fields and private methods are installed on the instance.\n // During that premature call `this.subscribed` is still `undefined`, so the\n // guard prevents calling `#subscribe()` on a not-yet-branded instance.\n if (this.subscribed !== undefined) this.#subscribe()\n }\n\n disable() {\n if (this.subscribed !== undefined) this.#unsubscribe()\n super.disable()\n }\n\n manuallyRegister() {\n this.#subscribe()\n }\n\n #subscribe() {\n if (this.subscribed) return\n if (!this.isEnabled()) return\n\n this.subscribed = true\n\n this.connectHandlers = {\n start: (message) =>\n this.#startSpan(message, 'socket connect', SpanKind.SERVER, {\n 'network.transport': 'websocket',\n }),\n end: (message) => this.#handleConnectEnd(message),\n asyncStart: () => {},\n asyncEnd: () => {},\n error: (message) => this.#recordError(message),\n }\n\n this.disconnectHandlers = {\n start: (message) =>\n this.#startSpan(message, 'socket disconnect', SpanKind.INTERNAL, {\n 'socket.disconnect.reason': message.reason,\n 'socket.disconnect.subscriptions': message.subscriptions ?? 0,\n }),\n end: () => {},\n asyncStart: () => {},\n asyncEnd: (message) => this.#handleDisconnectEnd(message),\n error: (message) => this.#recordError(message),\n }\n\n this.subscribeHandlers = {\n start: (message) =>\n this.#startSpan(message, `socket subscribe ${message.channel}`, SpanKind.SERVER, {\n 'messaging.destination.name': message.channel,\n 'messaging.operation.name': 'subscribe',\n 'messaging.operation.type': 'receive',\n }),\n end: () => {},\n asyncStart: () => {},\n asyncEnd: (message) => this.#handleSubscribeEnd(message),\n error: (message) => this.#recordError(message),\n }\n\n this.unsubscribeHandlers = {\n start: (message) =>\n this.#startSpan(message, `socket unsubscribe ${message.channel}`, SpanKind.SERVER, {\n 'messaging.destination.name': message.channel,\n 'messaging.operation.name': 'unsubscribe',\n 'messaging.operation.type': 'receive',\n }),\n end: () => {},\n asyncStart: () => {},\n asyncEnd: (message) => this.#handleUnsubscribeEnd(message),\n error: (message) => this.#recordError(message),\n }\n\n this.messageHandlers = {\n start: (message) =>\n this.#startSpan(message, `socket message ${message.channel}`, SpanKind.SERVER, {\n 'messaging.destination.name': message.channel,\n 'messaging.operation.name': 'process',\n 'messaging.operation.type': 'receive',\n 'messaging.event.name': message.event,\n }),\n end: () => {},\n asyncStart: () => {},\n asyncEnd: (message) => this.#handleMessageEnd(message),\n error: (message) => this.#recordError(message),\n }\n\n this.broadcastHandlers = {\n start: (message) =>\n this.#startSpan(message, `socket broadcast ${message.target}`, SpanKind.PRODUCER, {\n ...this.#broadcastAttributes(message),\n }),\n end: (message) => this.#handleBroadcastEnd(message),\n asyncStart: () => {},\n asyncEnd: () => {},\n error: (message) => this.#recordError(message),\n }\n\n connectChannel.subscribe(this.connectHandlers)\n disconnectChannel.subscribe(this.disconnectHandlers)\n subscribeChannel.subscribe(this.subscribeHandlers)\n unsubscribeChannel.subscribe(this.unsubscribeHandlers)\n channelMessageChannel.subscribe(this.messageHandlers)\n broadcastChannel.subscribe(this.broadcastHandlers)\n }\n\n #unsubscribe() {\n if (!this.subscribed) return\n\n if (this.connectHandlers) connectChannel.unsubscribe(this.connectHandlers)\n if (this.disconnectHandlers) disconnectChannel.unsubscribe(this.disconnectHandlers)\n if (this.subscribeHandlers) subscribeChannel.unsubscribe(this.subscribeHandlers)\n if (this.unsubscribeHandlers) unsubscribeChannel.unsubscribe(this.unsubscribeHandlers)\n if (this.messageHandlers) channelMessageChannel.unsubscribe(this.messageHandlers)\n if (this.broadcastHandlers) broadcastChannel.unsubscribe(this.broadcastHandlers)\n\n this.subscribed = false\n this.spans = new WeakMap()\n }\n\n #startSpan(\n message: object,\n name: string,\n kind: SpanKind,\n attributes: Record<string, AttributeValue> = {}\n ) {\n const span = this.tracer.startSpan(name, {\n kind,\n attributes: {\n 'messaging.system': this.#messagingSystem,\n ...attributes,\n },\n })\n\n this.spans.set(message, span)\n const spanContext = trace.setSpan(context.active(), span)\n setTracingOperationRunner(message, (operation) => context.with(spanContext, operation))\n }\n\n #handleDisconnectEnd(message: SocketDisconnectMessage) {\n this.#disconnectionCounter.add(1, { 'socket.disconnect.reason': message.reason })\n this.#activeConnections.add(-1)\n if (message.subscriptions) {\n this.#activeSubscriptions.add(-message.subscriptions)\n }\n\n this.#endSpan(message)\n }\n\n #handleConnectEnd(message: SocketConnectMessage) {\n this.#connectionCounter.add(1)\n this.#activeConnections.add(1)\n this.#endSpan(message)\n }\n\n #handleSubscribeEnd(message: SocketSubscribeMessage) {\n const attributes = {\n 'messaging.destination.name': message.channel,\n 'socket.subscription.created': Boolean(message.created),\n }\n\n if (message.ok) {\n this.#subscriptionCounter.add(1, attributes)\n if (message.created) this.#activeSubscriptions.add(1, attributes)\n }\n\n this.#endSpanWithOutcome(message, attributes)\n }\n\n #handleUnsubscribeEnd(message: SocketUnsubscribeMessage) {\n const attributes = {\n 'messaging.destination.name': message.channel,\n 'socket.subscription.removed': Boolean(message.removed),\n }\n\n if (message.ok && message.removed) {\n this.#activeSubscriptions.add(-1, attributes)\n }\n\n this.#endSpanWithOutcome(message, attributes)\n }\n\n #handleMessageEnd(message: SocketChannelMessage) {\n const attributes = {\n 'messaging.destination.name': message.channel,\n 'messaging.event.name': message.event,\n }\n\n this.#messageCounter.add(1, {\n ...attributes,\n 'socket.message.ok': Boolean(message.ok),\n })\n\n this.#endSpanWithOutcome(message, attributes)\n }\n\n #handleBroadcastEnd(message: SocketBroadcastMessage) {\n const attributes = this.#broadcastAttributes(message)\n\n this.#broadcastCounter.add(1, attributes)\n if (message.delivered !== undefined) {\n this.#broadcastDeliveryCounter.add(message.delivered, attributes)\n }\n\n this.#endSpan(message, {\n ...attributes,\n ...(message.delivered !== undefined\n ? { 'socket.broadcast.delivered': message.delivered }\n : {}),\n })\n }\n\n #recordError(message: object & { error: unknown }) {\n const span = this.spans.get(message)\n if (!span) return\n\n if (message.error instanceof Error) {\n span.recordException(message.error)\n span.setStatus({ code: SpanStatusCode.ERROR, message: message.error.message })\n } else {\n span.setStatus({ code: SpanStatusCode.ERROR })\n }\n\n span.end()\n this.spans.delete(message)\n }\n\n #endSpanWithOutcome(\n message: SocketSubscribeMessage | SocketUnsubscribeMessage | SocketChannelMessage,\n attributes: Record<string, AttributeValue>\n ) {\n this.#endSpan(message, attributes, message)\n }\n\n #endSpan(\n message: object,\n attributes: Record<string, AttributeValue> = {},\n outcome?: { ok?: boolean; error?: string }\n ) {\n const span = this.spans.get(message)\n if (!span) return\n\n span.setAttributes(attributes)\n\n if (outcome?.ok === false) {\n span.setStatus({ code: SpanStatusCode.ERROR, message: outcome.error })\n if (outcome.error) {\n span.setAttribute('error.type', outcome.error)\n }\n } else {\n span.setStatus({ code: SpanStatusCode.OK })\n }\n\n span.end()\n this.spans.delete(message)\n }\n\n #broadcastAttributes(message: SocketBroadcastMessage): Record<string, AttributeValue> {\n const attributes: Record<string, AttributeValue> = {\n 'messaging.operation.name': 'publish',\n 'messaging.operation.type': 'send',\n 'messaging.event.name': message.event,\n 'socket.broadcast.target': message.target,\n 'socket.broadcast.via': message.via,\n }\n\n if (message.channel) attributes['messaging.destination.name'] = message.channel\n if (message.except) attributes['socket.broadcast.except_count'] = message.except.length\n\n return attributes\n }\n}\n","{\n \"name\": \"@rlanz/socket\",\n \"version\": \"0.2.0\",\n \"description\": \"WebSocket integration for AdonisJS\",\n \"type\": \"module\",\n \"main\": \"./build/index.js\",\n \"types\": \"./build/index.d.ts\",\n \"license\": \"MIT\",\n \"engines\": {\n \"node\": \">=24.0.0\"\n },\n \"packageManager\": \"yarn@4.18.0\",\n \"files\": [\n \"build\"\n ],\n \"exports\": {\n \".\": \"./build/index.js\",\n \"./provider\": \"./build/providers/socket_provider.js\",\n \"./assembler_hook\": \"./build/src/assembler_hook.js\",\n \"./services/main\": \"./build/services/socket.js\",\n \"./decorators\": \"./build/src/decorators.js\",\n \"./health_check\": \"./build/src/health_check.js\",\n \"./otel\": \"./build/src/otel.js\",\n \"./testing\": \"./build/src/testing.js\",\n \"./types\": \"./build/src/types.js\",\n \"./types/tracing_channels\": \"./build/src/types/tracing_channels.js\",\n \"./client\": \"./build/src/client/index.js\",\n \"./client/types\": \"./build/src/client/types.js\",\n \"./client/react\": \"./build/src/client/react.js\",\n \"./client/vue\": \"./build/src/client/vue.js\"\n },\n \"scripts\": {\n \"build\": \"npm run compile\",\n \"clean\": \"del-cli build\",\n \"compile\": \"npm run clean && tsup-node\",\n \"lint\": \"oxlint\",\n \"lint:fix\": \"oxlint --fix\",\n \"format\": \"oxfmt --check .\",\n \"format:fix\": \"oxfmt --write .\",\n \"prepublishOnly\": \"npm run build\",\n \"release\": \"release-it\",\n \"test\": \"node --import=@poppinss/ts-exec --enable-source-maps bin/test.ts\",\n \"typecheck\": \"tsc --noEmit\",\n \"version\": \"npm run build\"\n },\n \"dependencies\": {\n \"@boringnode/bus\": \"^0.9.1\",\n \"@lukeed/ms\": \"^2.0.2\",\n \"emittery\": \"^1.2.0\",\n \"ws\": \"^8.21.0\"\n },\n \"devDependencies\": {\n \"@adonisjs/assembler\": \"^8.0.0\",\n \"@adonisjs/core\": \"^7.0.1\",\n \"@adonisjs/tsconfig\": \"^2.0.0\",\n \"@japa/assert\": \"^4.2.0\",\n \"@japa/runner\": \"^5.3.0\",\n \"@opentelemetry/api\": \"^1.9.1\",\n \"@opentelemetry/context-async-hooks\": \"^2.7.1\",\n \"@opentelemetry/core\": \"^2.7.1\",\n \"@opentelemetry/instrumentation\": \"^0.218.0\",\n \"@opentelemetry/sdk-metrics\": \"^2.7.1\",\n \"@opentelemetry/sdk-trace-base\": \"^2.7.1\",\n \"@poppinss/ts-exec\": \"^1.4.4\",\n \"@release-it/conventional-changelog\": \"^12.0.0\",\n \"@types/node\": \"^24.0.0\",\n \"@types/react\": \"^19.1.9\",\n \"@types/react-test-renderer\": \"^19.1.0\",\n \"@types/scheduler\": \"^0\",\n \"@types/ws\": \"^8.18.1\",\n \"del-cli\": \"^7.0.0\",\n \"oxfmt\": \"^0.38.0\",\n \"oxlint\": \"^1.53.0\",\n \"react\": \"^19.1.1\",\n \"react-test-renderer\": \"^19.1.1\",\n \"reflect-metadata\": \"^0.2.2\",\n \"release-it\": \"^19.2.4\",\n \"scheduler\": \"^0.27.0\",\n \"tsup\": \"^8.5.1\",\n \"typescript\": \"^5.9.3\",\n \"vue\": \"^3.5.18\"\n },\n \"peerDependencies\": {\n \"@adonisjs/assembler\": \"^8.0.0\",\n \"@adonisjs/core\": \"^7.0.1\",\n \"@opentelemetry/api\": \"^1.9.0\",\n \"@opentelemetry/instrumentation\": \"^0.200.0\",\n \"react\": \"^18.0.0 || ^19.0.0\",\n \"typescript\": \"^5.9.0 || ^6.0.0\",\n \"vue\": \"^3.3.0\"\n },\n \"peerDependenciesMeta\": {\n \"@adonisjs/assembler\": {\n \"optional\": true\n },\n \"@opentelemetry/api\": {\n \"optional\": true\n },\n \"@opentelemetry/instrumentation\": {\n \"optional\": true\n },\n \"react\": {\n \"optional\": true\n },\n \"typescript\": {\n \"optional\": true\n },\n \"vue\": {\n \"optional\": true\n }\n },\n \"keywords\": [\n \"adonisjs\",\n \"adonis\",\n \"websocket\",\n \"realtime\"\n ],\n \"homepage\": \"https://github.com/rlanz/socket#readme\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/RomainLanz/socket\"\n },\n \"bugs\": {\n \"url\": \"https://github.com/rlanz/socket/issues\"\n },\n \"author\": \"Romain Lanz <romain.lanz@pm.me>\",\n \"publishConfig\": {\n \"access\": \"public\",\n \"tag\": \"latest\",\n \"provenance\": true\n },\n \"release-it\": {\n \"git\": {\n \"requireCleanWorkingDir\": true,\n \"requireUpstream\": true,\n \"commitMessage\": \"chore(release): ${version}\",\n \"tagAnnotation\": \"v${version}\",\n \"push\": true,\n \"tagName\": \"v${version}\"\n },\n \"github\": {\n \"release\": true,\n \"releaseName\": \"v${version}\"\n },\n \"npm\": {\n \"publish\": true,\n \"skipChecks\": true\n },\n \"plugins\": {\n \"@release-it/conventional-changelog\": {\n \"preset\": {\n \"name\": \"angular\"\n }\n }\n }\n }\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,5 @@
1
- export { A as AuthenticatedSocket, u as ChannelMatch, C as ChannelOptions, D as Duration, M as Middleware, b as MiddlewareClass, c as MiddlewareConstructor, d as MiddlewareContext, e as MiddlewareFn, f as PresenceInfo, g as PresenceMember, R as RawSocket, S as SocketAuthenticationHandler, h as SocketAuthenticationResult, a as SocketConfig, i as SocketEvents, j as SocketHealthSnapshot, k as SocketHttpMiddleware, l as SocketOriginResolver, m as SocketOriginValues, o as SocketRetryQueueConfig, p as SocketServiceStatus, q as SocketTransportConfig, r as SocketUpgradeContext } from '../base_channel-CasBQV5I.js';
1
+ export { A as AuthenticatedSocket, u as ChannelMatch, C as ChannelOptions, D as Duration, M as Middleware, b as MiddlewareClass, c as MiddlewareConstructor, d as MiddlewareContext, e as MiddlewareFn, f as PresenceInfo, g as PresenceMember, R as RawSocket, S as SocketAuthenticationHandler, h as SocketAuthenticationResult, a as SocketConfig, i as SocketEvents, j as SocketHealthSnapshot, k as SocketHttpMiddleware, l as SocketOriginResolver, m as SocketOriginValues, o as SocketRetryQueueConfig, p as SocketServiceStatus, q as SocketTransportConfig, r as SocketUpgradeContext } from '../base_channel-DFyd3hVE.js';
2
2
  import 'ws';
3
- import 'node:http';
4
3
  import '@adonisjs/core/types/http';
5
4
  import '@adonisjs/core/http';
6
5
  export { a as ChannelAck, b as ChannelMessage, C as ChannelServerEventsOf } from '../shared_types-B11CaOr5.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rlanz/socket",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "WebSocket integration for AdonisJS",
5
5
  "type": "module",
6
6
  "main": "./build/index.js",