@natsail/effect 0.6.0 → 0.7.1

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/README.md CHANGED
@@ -15,10 +15,11 @@ Use `subscribe()` when every Effect consumer should own one ephemeral Core NATS
15
15
  ```ts
16
16
  import { Effect, Stream } from 'effect'
17
17
 
18
- import { natsCodecs } from '@natsail/core'
19
- import { makeNatsailScopedLayer, subscribe } from '@natsail/effect'
18
+ import { createNatsRuntime, natsCodecs } from '@natsail/core'
19
+ import { Natsail, subscribe } from '@natsail/effect'
20
+ import { createSessionRegistry } from '@natsail/session'
20
21
 
21
- const NatsLive = makeNatsailScopedLayer(
22
+ const NatsLive = Natsail.layerScoped(
22
23
  Effect.sync(() => ({
23
24
  runtime: createNatsRuntime({ connect: connectToNats }),
24
25
  sessions: createSessionRegistry(),
@@ -222,7 +223,17 @@ const request = Effect.gen(function* () {
222
223
  }).pipe(Effect.provide(NatsLive))
223
224
  ```
224
225
 
225
- An interrupted request aborts the underlying NATS request. `makeNatsailScopedLayer()` closes the session registry and runtime when the Layer scope exits. `makeNatsailLayer()` supplies application-owned objects without closing them.
226
+ An interrupted request aborts the underlying NATS request. `Natsail.layerScoped()` closes the session registry and runtime together when the Layer scope exits. `Natsail.layer()` supplies application-owned objects without closing them.
227
+
228
+ `publish()` and `request()` run in `Natsail.publish` and `Natsail.request` spans. Each processor delivery runs in its own root `process <stream>` consumer span, linked to the producer trace when the message carries a W3C `traceparent` header. Spans carry the subject as `messaging.destination.name` and are exported only when a tracer is installed.
229
+
230
+ Interrupting a processor aborts the in-flight handler and closes the consumer. The in-flight message is not acknowledged, so JetStream redelivers it after `ack_wait`; processor handlers must be idempotent.
231
+
232
+ `natsSchemaCodec(schema)`, imported from `@natsail/effect/schema`, returns a JSON `NatsPayloadCodec` backed by an Effect `Schema`, for both `codec` options and publishing. Schemas with `Schema.Date`, `BigInt` or classes encode through their JSON codec. A payload that fails the schema is terminal for the subscription; to skip bad messages, decode `natsCodecs.bytes` inside the Stream instead.
233
+
234
+ Decode failures from JetStream surface as `NatsailJetStreamError` (`stage: 'catch-up'` during the initial backlog, `'source'` after it, `'processor'` for processors) or, for shared sessions, `NatsailSessionError` (`stage: 'source'`), with a `JetStreamDecodeError` as the `cause`. Set the processor option `onDecodeFailure` to choose a disposition instead of stopping the processor.
235
+
236
+ Invalid stream options (for example `bufferSize: 0`) surface as a defect when the Stream runs, the same way through the service and the free functions.
226
237
 
227
238
  ## Shared sessions
228
239
 
package/dist/index.d.ts CHANGED
@@ -160,6 +160,10 @@ export interface NatsailService {
160
160
  declare const Natsail_base: Context.ServiceClass<Natsail, "@natsail/effect/Natsail", NatsailService>;
161
161
  /** Context service supplied by a NATSail Effect Layer. */
162
162
  export declare class Natsail extends Natsail_base {
163
+ /** Supplies an existing resource without taking ownership of it. */
164
+ static readonly layer: (resource: NatsailResource) => Layer.Layer<Natsail>;
165
+ /** Acquires a resource and closes the registry and runtime together when the Layer scope exits. */
166
+ static readonly layerScoped: <E, R>(acquire: Effect.Effect<NatsailResource, E, R>) => Layer.Layer<Natsail, E, R>;
163
167
  }
164
168
  /** Materializes an existing JetStream event stream with the service's batching semantics. */
165
169
  export declare function materializeNatsJetStreamEvents<Value, State, E, R, SourceError, SourceContext>(events: Stream.Stream<NatsailJetStreamEvent<Value>, SourceError, SourceContext>, materializer: NatsailJetStreamMaterializer<Value, State, E, R>, options?: NatsailJetStreamMaterializeOptions<Value>): Stream.Stream<NatsailJetStreamMaterializedState<State>, SourceError | E, SourceContext | R>;
@@ -193,13 +197,5 @@ export declare function jetStreamStates<State>(definition: SessionDefinition<Jet
193
197
  * only after the supplied Effect completes successfully.
194
198
  */
195
199
  export declare function runJetStreamProcessor<T, E, R>(options: JetStreamProcessorOptions<T>, handler: (delivery: JetStreamProcessingDelivery<T>) => Effect.Effect<void | JetStreamProcessorDisposition, E, R>): Effect.Effect<void, NatsailJetStreamError | E, Natsail | R>;
196
- /** Supplies an existing resource without taking ownership of it. */
197
- export declare function makeNatsailLayer(resource: NatsailResource): Layer.Layer<Natsail>;
198
- /**
199
- * Acquires one Layer-owned resource and closes it when the Layer scope exits.
200
- * The default finalizer closes the registry first and always attempts to close
201
- * the runtime, even if registry shutdown fails.
202
- */
203
- export declare function makeNatsailScopedLayer<E, R>(acquire: Effect.Effect<NatsailResource, E, R>): Layer.Layer<Natsail, E, R>;
204
200
  export {};
205
201
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,6 +1,8 @@
1
1
  import { Cause, Clock, Context, Data, Duration, Effect, Exit, Layer, Option, Queue, Schedule, Sink, Stream, } from 'effect';
2
+ import { Headers, HttpTraceContext } from 'effect/http';
2
3
  import { createNatsailWorkController, defineNatsailBatchPolicy, NATS_RUNTIME_ADAPTER, } from '@natsail/core';
3
4
  import { createJetStreamSessionSource, processJetStream, } from '@natsail/jetstream';
5
+ import { closeNatsResources } from '@natsail/session';
4
6
  export class NatsailOperationError extends Data.TaggedError('NatsailOperationError') {
5
7
  }
6
8
  export class NatsailSessionError extends Data.TaggedError('NatsailSessionError') {
@@ -13,6 +15,10 @@ export class NatsailJetStreamError extends Data.TaggedError('NatsailJetStreamErr
13
15
  }
14
16
  /** Context service supplied by a NATSail Effect Layer. */
15
17
  export class Natsail extends Context.Service()('@natsail/effect/Natsail') {
18
+ /** Supplies an existing resource without taking ownership of it. */
19
+ static layer = (resource) => Layer.succeed(Natsail, makeNatsail(resource));
20
+ /** Acquires a resource and closes the registry and runtime together when the Layer scope exits. */
21
+ static layerScoped = (acquire) => Layer.effect(Natsail, Effect.acquireRelease(acquire, (resource) => Effect.promise(() => closeResource(resource))).pipe(Effect.map(makeNatsail)));
16
22
  }
17
23
  class JetStreamEffectFailure {
18
24
  error;
@@ -122,135 +128,156 @@ function reportBufferOverflow(runtime, source) {
122
128
  attributes: { signal: 'overflow', source },
123
129
  });
124
130
  }
131
+ /** Stream.callback never surfaces a failed registration, so route failures and defects into the queue. */
132
+ function callbackStream(register, options) {
133
+ return Stream.callback((queue) => register(queue).pipe(Effect.catchCause((cause) => Cause.hasInterruptsOnly(cause) ? Effect.void : Queue.failCause(queue, cause))), options);
134
+ }
135
+ /** Fast path first; the queue strategy decides whether to park, and abort or shutdown wakes it. */
136
+ async function offerToQueue(queue, value, signal) {
137
+ if (Queue.offerUnsafe(queue, value))
138
+ return true;
139
+ return Effect.runPromise(Queue.offer(queue, value), { signal }).catch(() => false);
140
+ }
141
+ /** Stops the producer before closing the lease so an in-flight handler cannot block close(). */
142
+ const releaseLease = Effect.fnUntraced(function* (stop, lease, queue) {
143
+ stop.abort();
144
+ if (queue !== undefined)
145
+ yield* Queue.shutdown(queue);
146
+ yield* Effect.promise(() => lease.close().catch(() => undefined));
147
+ });
125
148
  function createSubjectStream(runtime, options, streamOptions) {
126
- const resolved = resolveSubjectStreamOptions(streamOptions);
127
- const streamName = `subject:${options.subject}`;
128
- return Stream.callback((queue) => Effect.gen(function* () {
129
- const effectSignal = yield* Effect.abortSignal;
130
- const signal = options.signal
131
- ? AbortSignal.any([options.signal, effectSignal])
132
- : effectSignal;
133
- const subscriptionOptions = { ...options, signal };
134
- const lease = yield* Effect.acquireRelease(Effect.try({
135
- try: () => runtime.subscribe(subscriptionOptions, async (value) => {
136
- const accepted = await Effect.runPromise(Queue.offer(queue, value));
137
- if (!accepted)
149
+ return Stream.suspend(() => {
150
+ const resolved = resolveSubjectStreamOptions(streamOptions);
151
+ const streamName = `subject:${options.subject}`;
152
+ return callbackStream((queue) => Effect.gen(function* () {
153
+ const stop = new AbortController();
154
+ const signal = options.signal
155
+ ? AbortSignal.any([options.signal, stop.signal])
156
+ : stop.signal;
157
+ const lease = yield* Effect.acquireRelease(Effect.try({
158
+ try: () => runtime.subscribe({ ...options, signal }, async (value) => {
159
+ const accepted = await offerToQueue(queue, value, signal);
160
+ if (accepted ||
161
+ resolved.overflowStrategy === 'suspend' ||
162
+ queue.state._tag !== 'Open') {
163
+ return;
164
+ }
165
+ reportBufferOverflow(runtime, 'effect');
166
+ if (resolved.overflowStrategy === 'error') {
167
+ const overflow = new NatsailStreamBufferOverflowError({
168
+ stream: streamName,
169
+ capacity: resolved.bufferSize,
170
+ message: `NATSail subject ${options.subject} exceeded its ${resolved.bufferSize}-message Effect buffer`,
171
+ });
172
+ await Effect.runPromise(Queue.fail(queue, overflow));
173
+ throw overflow;
174
+ }
175
+ }),
176
+ catch: (cause) => subjectError(options, 'subscribe', cause),
177
+ }), (active) => releaseLease(stop, active, queue));
178
+ yield* Effect.tryPromise({
179
+ try: () => lease.ready,
180
+ catch: (cause) => subjectError(options, 'ready', cause),
181
+ });
182
+ yield* Effect.tryPromise({
183
+ try: () => lease.closed,
184
+ catch: (cause) => cause instanceof NatsailStreamBufferOverflowError
185
+ ? cause
186
+ : subjectError(options, 'source', cause),
187
+ });
188
+ yield* Queue.end(queue);
189
+ }), {
190
+ bufferSize: resolved.bufferSize,
191
+ strategy: resolved.callbackStrategy,
192
+ });
193
+ });
194
+ }
195
+ function createJetStreamEventStream(runtime, options, streamOptions) {
196
+ return Stream.suspend(() => {
197
+ const resolved = resolveJetStreamStreamOptions(streamOptions);
198
+ const streamName = `jetstream:${options.stream}`;
199
+ return callbackStream((queue) => Effect.gen(function* () {
200
+ const stop = new AbortController();
201
+ const signal = options.signal
202
+ ? AbortSignal.any([options.signal, stop.signal])
203
+ : stop.signal;
204
+ let resolveCatchUpMarker;
205
+ let rejectCatchUpMarker;
206
+ const catchUpMarkerEnqueued = new Promise((resolve, reject) => {
207
+ resolveCatchUpMarker = resolve;
208
+ rejectCatchUpMarker = reject;
209
+ });
210
+ void catchUpMarkerEnqueued.catch(() => undefined);
211
+ // Throw on every unaccepted event so the resume checkpoint never passes an unseen one.
212
+ const offerEvent = async (event) => {
213
+ const accepted = await offerToQueue(queue, event, signal);
214
+ if (accepted)
215
+ return;
216
+ if (resolved.overflowStrategy === 'error' && queue.state._tag === 'Open') {
138
217
  reportBufferOverflow(runtime, 'effect');
139
- if (!accepted &&
140
- resolved.overflowStrategy === 'error' &&
141
- queue.state._tag === 'Open') {
142
218
  const overflow = new NatsailStreamBufferOverflowError({
143
219
  stream: streamName,
144
220
  capacity: resolved.bufferSize,
145
- message: `NATSail subject ${options.subject} exceeded its ${resolved.bufferSize}-message Effect buffer`,
221
+ message: `NATSail JetStream ${options.stream} exceeded its ${resolved.bufferSize}-event Effect buffer`,
146
222
  });
147
223
  await Effect.runPromise(Queue.fail(queue, overflow));
148
224
  throw overflow;
149
225
  }
150
- }),
151
- catch: (cause) => subjectError(options, 'subscribe', cause),
152
- }), (active) => Effect.promise(() => active.close().catch(() => undefined)));
153
- yield* Effect.tryPromise({
154
- try: () => lease.ready,
155
- catch: (cause) => subjectError(options, 'ready', cause),
156
- });
157
- yield* Effect.tryPromise({
158
- try: () => lease.closed,
159
- catch: (cause) => cause instanceof NatsailStreamBufferOverflowError
160
- ? cause
161
- : subjectError(options, 'source', cause),
162
- });
163
- }).pipe(Effect.matchEffect({
164
- onFailure: (error) => Queue.fail(queue, error),
165
- onSuccess: () => Queue.end(queue),
166
- })), {
167
- bufferSize: resolved.bufferSize,
168
- strategy: resolved.callbackStrategy,
169
- });
170
- }
171
- function createJetStreamEventStream(runtime, options, streamOptions) {
172
- const resolved = resolveJetStreamStreamOptions(streamOptions);
173
- const streamName = `jetstream:${options.stream}`;
174
- return Stream.callback((queue) => Effect.gen(function* () {
175
- const effectSignal = yield* Effect.abortSignal;
176
- const signal = options.signal
177
- ? AbortSignal.any([options.signal, effectSignal])
178
- : effectSignal;
179
- let resolveCatchUpMarker;
180
- let rejectCatchUpMarker;
181
- const catchUpMarkerEnqueued = new Promise((resolve, reject) => {
182
- resolveCatchUpMarker = resolve;
183
- rejectCatchUpMarker = reject;
184
- });
185
- void catchUpMarkerEnqueued.catch(() => undefined);
186
- const offerEvent = async (event) => {
187
- const accepted = await Effect.runPromise(Queue.offer(queue, event));
188
- if (!accepted)
189
- reportBufferOverflow(runtime, 'effect');
190
- if (!accepted && resolved.overflowStrategy === 'error' && queue.state._tag === 'Open') {
191
- const overflow = new NatsailStreamBufferOverflowError({
192
- stream: streamName,
193
- capacity: resolved.bufferSize,
194
- message: `NATSail JetStream ${options.stream} exceeded its ${resolved.bufferSize}-event Effect buffer`,
195
- });
196
- await Effect.runPromise(Queue.fail(queue, overflow));
197
- throw overflow;
198
- }
199
- };
200
- const lease = yield* Effect.acquireRelease(Effect.try({
201
- try: () => {
202
- const source = createJetStreamSessionSource(runtime, { ...options, signal });
203
- return source(async (delivery) => {
204
- if (delivery.replay === 'live')
205
- await catchUpMarkerEnqueued;
206
- await offerEvent({ type: 'delivery', delivery });
207
- });
208
- },
209
- catch: (cause) => jetStreamError(options, 'subscribe', cause),
210
- }), (active) => Effect.promise(() => active.close().catch(() => undefined)));
211
- yield* Effect.tryPromise({
212
- try: () => lease.ready,
213
- catch: (cause) => jetStreamError(options, 'ready', cause),
214
- });
215
- const catchUpEvent = lease.caughtUp.then(async (catchUp) => {
216
- await offerEvent({ type: 'caught-up', catchUp });
217
- return catchUp;
218
- });
219
- void catchUpEvent.then(resolveCatchUpMarker, rejectCatchUpMarker);
220
- yield* Effect.tryPromise({
221
- try: () => catchUpEvent,
222
- catch: (cause) => cause instanceof NatsailStreamBufferOverflowError
223
- ? cause
224
- : jetStreamError(options, 'catch-up', cause),
225
- });
226
- yield* Effect.tryPromise({
227
- try: () => lease.closed,
228
- catch: (cause) => cause instanceof NatsailStreamBufferOverflowError
229
- ? cause
230
- : jetStreamError(options, 'source', cause),
226
+ throw new Error(`NATSail JetStream ${options.stream} Effect stream closed before accepting an event`);
227
+ };
228
+ const lease = yield* Effect.acquireRelease(Effect.try({
229
+ try: () => {
230
+ const source = createJetStreamSessionSource(runtime, { ...options, signal });
231
+ return source(async (delivery) => {
232
+ if (delivery.replay === 'live')
233
+ await catchUpMarkerEnqueued;
234
+ await offerEvent({ type: 'delivery', delivery });
235
+ });
236
+ },
237
+ catch: (cause) => jetStreamError(options, 'subscribe', cause),
238
+ }), (active) => releaseLease(stop, active, queue));
239
+ yield* Effect.tryPromise({
240
+ try: () => lease.ready,
241
+ catch: (cause) => jetStreamError(options, 'ready', cause),
242
+ });
243
+ const catchUpEvent = lease.caughtUp.then(async (catchUp) => {
244
+ await offerEvent({ type: 'caught-up', catchUp });
245
+ return catchUp;
246
+ });
247
+ void catchUpEvent.then(resolveCatchUpMarker, rejectCatchUpMarker);
248
+ yield* Effect.tryPromise({
249
+ try: () => catchUpEvent,
250
+ catch: (cause) => cause instanceof NatsailStreamBufferOverflowError
251
+ ? cause
252
+ : jetStreamError(options, 'catch-up', cause),
253
+ });
254
+ yield* Effect.tryPromise({
255
+ try: () => lease.closed,
256
+ catch: (cause) => cause instanceof NatsailStreamBufferOverflowError
257
+ ? cause
258
+ : jetStreamError(options, 'source', cause),
259
+ });
260
+ yield* Queue.end(queue);
261
+ }), {
262
+ bufferSize: resolved.bufferSize,
263
+ strategy: resolved.callbackStrategy,
231
264
  });
232
- }).pipe(Effect.matchEffect({
233
- onFailure: (error) => Queue.fail(queue, error),
234
- onSuccess: () => Queue.end(queue),
235
- })), {
236
- bufferSize: resolved.bufferSize,
237
- strategy: resolved.callbackStrategy,
238
265
  });
239
266
  }
240
267
  function createJetStreamDeliveryStream(runtime, options, streamOptions) {
241
268
  return createJetStreamEventStream(runtime, options, streamOptions).pipe(Stream.filter((event) => event.type === 'delivery'), Stream.map((event) => event.delivery));
242
269
  }
243
270
  function materializeJetStreamEventStream(events, materializer, streamOptions = {}, telemetry) {
244
- const configuredPolicy = streamOptions.batchPolicy;
245
- const batchPolicy = defineNatsailBatchPolicy({
246
- ...configuredPolicy,
247
- maxItems: configuredPolicy?.maxItems ?? streamOptions.batchSize ?? 256,
248
- maxWaitMs: configuredPolicy?.maxWaitMs ??
249
- Duration.toMillis(Duration.fromInputUnsafe(streamOptions.batchWithin ?? '16 millis')),
250
- });
251
- const batchSize = batchPolicy.maxItems;
252
- const batchWithin = batchPolicy.maxWaitMs;
253
271
  return Stream.suspend(() => {
272
+ const configuredPolicy = streamOptions.batchPolicy;
273
+ const batchPolicy = defineNatsailBatchPolicy({
274
+ ...configuredPolicy,
275
+ maxItems: configuredPolicy?.maxItems ?? streamOptions.batchSize ?? 256,
276
+ maxWaitMs: configuredPolicy?.maxWaitMs ??
277
+ Duration.toMillis(Duration.fromInputUnsafe(streamOptions.batchWithin ?? '16 millis')),
278
+ });
279
+ const batchSize = batchPolicy.maxItems;
280
+ const batchWithin = batchPolicy.maxWaitMs;
254
281
  const work = streamOptions.workBudget === undefined
255
282
  ? undefined
256
283
  : createNatsailWorkController(streamOptions.workBudget, telemetry, 'effect');
@@ -341,22 +368,45 @@ export function materializeNatsJetStreamEvents(events, materializer, options = {
341
368
  return materializeJetStreamEventStream(events, materializer, options);
342
369
  }
343
370
  function createJetStreamMaterializedStream(runtime, options, materializer, streamOptions = {}) {
344
- if (options.resume) {
345
- throw new TypeError('A JetStream materializer cannot resume an event cursor without restoring matching materialized state');
346
- }
347
- return materializeJetStreamEventStream(createJetStreamEventStream(runtime, options, streamOptions), materializer, streamOptions, runtime[NATS_RUNTIME_ADAPTER]?.telemetry);
371
+ return Stream.suspend(() => {
372
+ if (options.resume) {
373
+ throw new TypeError('A JetStream materializer cannot resume an event cursor without restoring matching materialized state');
374
+ }
375
+ return materializeJetStreamEventStream(createJetStreamEventStream(runtime, options, streamOptions), materializer, streamOptions, runtime[NATS_RUNTIME_ADAPTER]?.telemetry);
376
+ });
377
+ }
378
+ /** Links a delivery span to the producer trace in a W3C `traceparent` header, when present. */
379
+ function producerLinks(headers) {
380
+ const traceparent = headers?.get('traceparent');
381
+ if (!traceparent)
382
+ return [];
383
+ const producer = HttpTraceContext.w3c(Headers.fromInput({ traceparent }));
384
+ return Option.isSome(producer) ? [{ span: producer.value, attributes: {} }] : [];
348
385
  }
349
386
  function runJetStreamProcessorEffect(runtime, options, handler) {
350
387
  return Effect.scoped(Effect.gen(function* () {
351
388
  const context = yield* Effect.context();
352
- const effectSignal = yield* Effect.abortSignal;
353
- const signal = options.signal ? AbortSignal.any([options.signal, effectSignal]) : effectSignal;
389
+ const stop = new AbortController();
390
+ const signal = options.signal ? AbortSignal.any([options.signal, stop.signal]) : stop.signal;
354
391
  const processorOptions = { ...options, signal };
355
392
  const lease = yield* Effect.acquireRelease(Effect.try({
356
393
  try: () => processJetStream(runtime, processorOptions, async (delivery, handling) => {
357
- const exit = await Effect.runPromiseExitWith(context)(handler(delivery), {
358
- signal: AbortSignal.any([signal, handling.signal]),
359
- });
394
+ const exit = await Effect.runPromiseExitWith(context)(handler(delivery).pipe(Effect.withSpan(`process ${delivery.cursor.stream}`, {
395
+ kind: 'consumer',
396
+ root: true,
397
+ links: producerLinks(delivery.headers),
398
+ attributes: {
399
+ 'messaging.system': 'nats',
400
+ 'messaging.destination.name': delivery.subject,
401
+ 'messaging.operation.type': 'process',
402
+ 'messaging.operation.name': 'process',
403
+ 'messaging.consumer.group.name': options.consumer.name,
404
+ 'natsail.jetstream.stream': delivery.cursor.stream,
405
+ 'natsail.jetstream.sequence': delivery.cursor.sequence,
406
+ 'natsail.delivery.attempt': delivery.deliveryAttempt,
407
+ 'natsail.delivery.redelivered': delivery.redelivered,
408
+ },
409
+ }, { captureStackTrace: false })), { signal: AbortSignal.any([signal, handling.signal]) });
360
410
  if (Exit.isFailure(exit)) {
361
411
  const expected = Cause.findErrorOption(exit.cause);
362
412
  if (Option.isSome(expected))
@@ -366,7 +416,7 @@ function runJetStreamProcessorEffect(runtime, options, handler) {
366
416
  return exit.value;
367
417
  }),
368
418
  catch: (cause) => jetStreamError(options, 'processor', cause),
369
- }), (active) => Effect.promise(() => active.close().catch(() => undefined)));
419
+ }), (active) => releaseLease(stop, active));
370
420
  yield* Effect.tryPromise({
371
421
  try: () => lease.ready,
372
422
  catch: (cause) => jetStreamError(options, 'processor', cause),
@@ -385,48 +435,50 @@ function runJetStreamProcessorEffect(runtime, options, handler) {
385
435
  }));
386
436
  }
387
437
  function createSessionSnapshotStream(runtime, sessions, definition, options) {
388
- const resolved = resolveStreamOptions(options);
389
- return Stream.callback((queue) => Effect.gen(function* () {
390
- const handle = yield* Effect.acquireRelease(Effect.try({
391
- try: () => sessions.acquire(definition),
392
- catch: (cause) => sessionError(definition.key, 'acquire', cause),
393
- }), (active) => Effect.promise(() => active.release()));
394
- let terminal = false;
395
- const emitSnapshot = () => {
396
- if (terminal)
397
- return;
398
- const snapshot = handle.getSnapshot();
399
- const accepted = Queue.offerUnsafe(queue, snapshot);
400
- if (!accepted)
401
- reportBufferOverflow(runtime, 'session');
402
- if (!accepted &&
403
- resolved.bufferSize !== 'unbounded' &&
404
- resolved.overflowStrategy === 'error') {
405
- terminal = true;
406
- Queue.failCauseUnsafe(queue, Cause.fail(new NatsailStreamBufferOverflowError({
407
- stream: `session:${definition.key}`,
408
- capacity: resolved.bufferSize,
409
- message: `NATSail session ${definition.key} exceeded its ${resolved.bufferSize}-snapshot Effect buffer`,
410
- })));
411
- return;
412
- }
413
- if (snapshot.phase === 'error') {
414
- terminal = true;
415
- Queue.failCauseUnsafe(queue, Cause.fail(sessionError(definition.key, 'source', snapshot.error ?? new Error('The session source failed'))));
416
- }
417
- else if (snapshot.phase === 'closed') {
418
- terminal = true;
419
- Queue.endUnsafe(queue);
420
- }
421
- };
422
- yield* Effect.acquireRelease(Effect.sync(() => handle.subscribe(emitSnapshot)), (unsubscribe) => Effect.sync(unsubscribe));
423
- emitSnapshot();
424
- }), resolved.callbackOptions.bufferSize === 'unbounded'
425
- ? undefined
426
- : {
427
- bufferSize: resolved.callbackOptions.bufferSize,
428
- strategy: resolved.callbackOptions.strategy,
429
- });
438
+ return Stream.suspend(() => {
439
+ const resolved = resolveStreamOptions(options);
440
+ return callbackStream((queue) => Effect.gen(function* () {
441
+ const handle = yield* Effect.acquireRelease(Effect.try({
442
+ try: () => sessions.acquire(definition),
443
+ catch: (cause) => sessionError(definition.key, 'acquire', cause),
444
+ }), (active) => Effect.promise(() => active.release()));
445
+ let terminal = false;
446
+ const emitSnapshot = () => {
447
+ if (terminal)
448
+ return;
449
+ const snapshot = handle.getSnapshot();
450
+ const accepted = Queue.offerUnsafe(queue, snapshot);
451
+ if (!accepted)
452
+ reportBufferOverflow(runtime, 'session');
453
+ if (!accepted &&
454
+ resolved.bufferSize !== 'unbounded' &&
455
+ resolved.overflowStrategy === 'error') {
456
+ terminal = true;
457
+ Queue.failCauseUnsafe(queue, Cause.fail(new NatsailStreamBufferOverflowError({
458
+ stream: `session:${definition.key}`,
459
+ capacity: resolved.bufferSize,
460
+ message: `NATSail session ${definition.key} exceeded its ${resolved.bufferSize}-snapshot Effect buffer`,
461
+ })));
462
+ return;
463
+ }
464
+ if (snapshot.phase === 'error') {
465
+ terminal = true;
466
+ Queue.failCauseUnsafe(queue, Cause.fail(sessionError(definition.key, 'source', snapshot.error ?? new Error('The session source failed'))));
467
+ }
468
+ else if (snapshot.phase === 'closed') {
469
+ terminal = true;
470
+ Queue.endUnsafe(queue);
471
+ }
472
+ };
473
+ yield* Effect.acquireRelease(Effect.sync(() => handle.subscribe(emitSnapshot)), (unsubscribe) => Effect.sync(unsubscribe));
474
+ emitSnapshot();
475
+ }), resolved.callbackOptions.bufferSize === 'unbounded'
476
+ ? undefined
477
+ : {
478
+ bufferSize: resolved.callbackOptions.bufferSize,
479
+ strategy: resolved.callbackOptions.strategy,
480
+ });
481
+ });
430
482
  }
431
483
  function createSessionValueStream(runtime, sessions, definition, options) {
432
484
  return createSessionSnapshotStream(runtime, sessions, definition, options).pipe(Stream.mapAccum(() => -1, (valueRevision, snapshot) => {
@@ -529,9 +581,10 @@ function coalesceJetStreamStates(source, liveBatchMs) {
529
581
  }));
530
582
  }
531
583
  function createJetStreamStateStream(runtime, sessions, definition, options = {}) {
532
- const { liveBatchWithin = '16 millis', ...sessionOptions } = options;
533
- const liveBatchMs = resolveLiveBatchMs(liveBatchWithin);
534
- return coalesceJetStreamStates(createSessionValueStream(runtime, sessions, definition, sessionOptions), liveBatchMs);
584
+ return Stream.suspend(() => {
585
+ const { liveBatchWithin = '16 millis', ...sessionOptions } = options;
586
+ return coalesceJetStreamStates(createSessionValueStream(runtime, sessions, definition, sessionOptions), resolveLiveBatchMs(liveBatchWithin));
587
+ });
535
588
  }
536
589
  /** Creates a service over application-owned runtime and registry objects. */
537
590
  export function makeNatsail(resource) {
@@ -543,20 +596,42 @@ export function makeNatsail(resource) {
543
596
  runtimeEvents,
544
597
  runtimeStatus: runtimeEvents.pipe(Stream.filter((event) => event.type === 'status'), Stream.changesWith((previous, next) => previous.state === next.state && previous.server === next.server)),
545
598
  sessionEvents: Stream.fromAsyncIterable(sessions.events, (cause) => operationError('session-events', cause)),
546
- connection: () => tryRuntimePromise('connection', () => runtime.connection()),
547
- reconnect: (options) => tryRuntimePromise('reconnect', () => runtime.reconnect(options)),
548
- publish: (subject, data, options) => tryRuntimePromise('publish', () => runtime.publish(subject, data, options)),
549
- request: (options) => tryRuntimePromise('request', (effectSignal) => runtime.request({
550
- ...options,
551
- signal: options.signal ? AbortSignal.any([options.signal, effectSignal]) : effectSignal,
552
- })),
599
+ connection: Effect.fn('Natsail.connection')(function* () {
600
+ return yield* tryRuntimePromise('connection', () => runtime.connection());
601
+ }),
602
+ reconnect: Effect.fn('Natsail.reconnect')(function* (options) {
603
+ return yield* tryRuntimePromise('reconnect', () => runtime.reconnect(options));
604
+ }),
605
+ publish: (subject, data, options) => tryRuntimePromise('publish', () => runtime.publish(subject, data, options)).pipe(Effect.withSpan('Natsail.publish', {
606
+ kind: 'producer',
607
+ attributes: {
608
+ 'messaging.system': 'nats',
609
+ 'messaging.destination.name': subject,
610
+ 'messaging.operation.type': 'send',
611
+ 'messaging.operation.name': 'publish',
612
+ },
613
+ }, { captureStackTrace: false })),
614
+ request: Effect.fn('Natsail.request', { kind: 'client' })(function* (options) {
615
+ yield* Effect.annotateCurrentSpan({
616
+ 'messaging.system': 'nats',
617
+ 'messaging.destination.name': options.subject,
618
+ 'messaging.operation.type': 'send',
619
+ 'messaging.operation.name': 'send',
620
+ });
621
+ return yield* tryRuntimePromise('request', (effectSignal) => runtime.request({
622
+ ...options,
623
+ signal: options.signal ? AbortSignal.any([options.signal, effectSignal]) : effectSignal,
624
+ }));
625
+ }),
553
626
  subscribe: (options, streamOptions) => createSubjectStream(runtime, options, streamOptions),
554
627
  jetStreamEvents: (options, streamOptions) => createJetStreamEventStream(runtime, options, streamOptions),
555
628
  jetStreamDeliveries: (options, streamOptions) => createJetStreamDeliveryStream(runtime, options, streamOptions),
556
629
  materializeJetStream: (options, materializer, streamOptions) => createJetStreamMaterializedStream(runtime, options, materializer, streamOptions),
557
630
  jetStreamStates: (definition, options) => createJetStreamStateStream(runtime, sessions, definition, options),
558
631
  runJetStreamProcessor: (options, handler) => runJetStreamProcessorEffect(runtime, options, handler),
559
- restartSession: (key) => tryRuntimePromise('restart-session', () => sessions.restart(key)),
632
+ restartSession: Effect.fn('Natsail.restartSession')(function* (key) {
633
+ return yield* tryRuntimePromise('restart-session', () => sessions.restart(key));
634
+ }),
560
635
  sessionSnapshots: (definition, options) => createSessionSnapshotStream(runtime, sessions, definition, options),
561
636
  sessionValues: (definition, options) => createSessionValueStream(runtime, sessions, definition, options),
562
637
  };
@@ -601,40 +676,7 @@ export function jetStreamStates(definition, options) {
601
676
  export function runJetStreamProcessor(options, handler) {
602
677
  return Natsail.use((service) => service.runJetStreamProcessor(options, handler));
603
678
  }
604
- /** Supplies an existing resource without taking ownership of it. */
605
- export function makeNatsailLayer(resource) {
606
- return Layer.succeed(Natsail, makeNatsail(resource));
607
- }
608
- async function closeResource(resource) {
609
- if (resource.close) {
610
- await resource.close();
611
- return;
612
- }
613
- const failures = [];
614
- try {
615
- await resource.sessions.close();
616
- }
617
- catch (error) {
618
- failures.push(error);
619
- }
620
- try {
621
- await resource.runtime.close();
622
- }
623
- catch (error) {
624
- failures.push(error);
625
- }
626
- if (failures.length === 1)
627
- throw failures[0];
628
- if (failures.length > 1) {
629
- throw new AggregateError(failures, 'NATSail registry and runtime shutdown both failed');
630
- }
631
- }
632
- /**
633
- * Acquires one Layer-owned resource and closes it when the Layer scope exits.
634
- * The default finalizer closes the registry first and always attempts to close
635
- * the runtime, even if registry shutdown fails.
636
- */
637
- export function makeNatsailScopedLayer(acquire) {
638
- return Layer.effect(Natsail, Effect.acquireRelease(acquire, (resource) => Effect.promise(() => closeResource(resource))).pipe(Effect.map(makeNatsail)));
679
+ function closeResource(resource) {
680
+ return resource.close ? resource.close() : closeNatsResources(resource);
639
681
  }
640
682
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { Schema } from 'effect';
2
+ import type { NatsPayloadCodec } from '@natsail/core';
3
+ /** Schema-backed JSON payload codec. A decode failure is terminal for the subscription. */
4
+ export declare function natsSchemaCodec<S extends Schema.Codec<unknown, unknown>>(schema: S): NatsPayloadCodec<S['Type']>;
5
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAErD,2FAA2F;AAC3F,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,EACtE,MAAM,EAAE,CAAC,GACR,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAU7B"}
package/dist/schema.js ADDED
@@ -0,0 +1,14 @@
1
+ import { Schema } from 'effect';
2
+ /** Schema-backed JSON payload codec. A decode failure is terminal for the subscription. */
3
+ export function natsSchemaCodec(schema) {
4
+ const json = Schema.fromJsonString(Schema.toCodecJson(schema));
5
+ const decode = Schema.decodeUnknownSync(json);
6
+ const encode = Schema.encodeSync(json);
7
+ const textEncoder = new TextEncoder();
8
+ const textDecoder = new TextDecoder();
9
+ return {
10
+ decode: (data) => decode(textDecoder.decode(data)),
11
+ encode: (value) => textEncoder.encode(encode(value)),
12
+ };
13
+ }
14
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAI/B,2FAA2F;AAC3F,MAAM,UAAU,eAAe,CAC7B,MAAS;IAET,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;IAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAC7C,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;IACtC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAA;IACrC,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAA;IACrC,OAAO;QACL,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACrD,CAAA;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@natsail/effect",
3
- "version": "0.6.0",
3
+ "version": "0.7.1",
4
4
  "description": "Scoped Effect v4 Streams for Core NATS, JetStream, and shared sessions.",
5
5
  "keywords": [
6
6
  "nats",
@@ -19,6 +19,10 @@
19
19
  ".": {
20
20
  "types": "./dist/index.d.ts",
21
21
  "import": "./dist/index.js"
22
+ },
23
+ "./schema": {
24
+ "types": "./dist/schema.d.ts",
25
+ "import": "./dist/schema.js"
22
26
  }
23
27
  },
24
28
  "files": [
@@ -38,9 +42,9 @@
38
42
  "registry": "https://registry.npmjs.org/"
39
43
  },
40
44
  "dependencies": {
41
- "@natsail/jetstream": "^0.6.1",
42
- "@natsail/core": "^0.5.0",
43
- "@natsail/session": "^0.5.0"
45
+ "@natsail/core": "^0.6.0",
46
+ "@natsail/session": "^0.5.1",
47
+ "@natsail/jetstream": "^0.8.0"
44
48
  },
45
49
  "peerDependencies": {
46
50
  "effect": "^4.0.0"