@natsail/effect 0.1.0 → 0.2.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
@@ -1,47 +1,189 @@
1
1
  # @natsail/effect
2
2
 
3
- `@natsail/effect` gives Effect programs one scoped NATSail service, typed failures, cancellable event Streams, and reference-counted shared-session Streams.
3
+ `@natsail/effect` gives Effect v4 programs scoped Core NATS and JetStream Streams, typed operations and failures, and optional shared-session Streams over one NATSail runtime.
4
+
5
+ The current v4 adapter targets `effect@4.0.0-rc.112`. Install the matching Effect release candidate while this version is published under NATSail's prerelease tag.
4
6
 
5
7
  ```sh
6
- pnpm add effect @natsail/core @natsail/session @natsail/effect
8
+ pnpm add effect@4.0.0-rc.112 @natsail/core @natsail/jetstream @natsail/session @natsail/effect
7
9
  ```
8
10
 
9
- The package targets stable Effect v3. It does not create a second connection, retry loop, checkpoint system, or consumer lifecycle. NATSail still owns those policies; Effect owns dependency injection, structured concurrency, interruption, and scope finalization.
11
+ ## Core subject Streams
12
+
13
+ Use `subscribe()` when every Effect consumer should own one ephemeral Core NATS subscription:
10
14
 
11
15
  ```ts
12
16
  import { Effect, Stream } from 'effect'
13
17
 
14
- import { createNatsRuntime } from '@natsail/core'
15
- import { Natsail, makeNatsailScopedLayer } from '@natsail/effect'
16
- import { createSessionRegistry } from '@natsail/session'
18
+ import { natsCodecs } from '@natsail/core'
19
+ import { makeNatsailScopedLayer, subscribe } from '@natsail/effect'
17
20
 
18
21
  const NatsLive = makeNatsailScopedLayer(
19
22
  Effect.sync(() => ({
20
23
  runtime: createNatsRuntime({ connect: connectToNats }),
21
- sessions: createSessionRegistry({ idleCloseMs: 250 }),
24
+ sessions: createSessionRegistry(),
22
25
  }))
23
26
  )
24
27
 
25
- const program = Effect.gen(function* () {
28
+ const messages = subscribe(
29
+ {
30
+ subject: 'chat.room.*',
31
+ queue: 'chat-workers',
32
+ codec: natsCodecs.json<ChatMessage>(),
33
+ },
34
+ {
35
+ bufferSize: 256,
36
+ overflowStrategy: 'suspend',
37
+ }
38
+ )
39
+
40
+ const program = messages.pipe(
41
+ Stream.runForEach((message) => Effect.log(message)),
42
+ Effect.provide(NatsLive)
43
+ )
44
+ ```
45
+
46
+ The Stream is cold. Starting a consumer creates one subscription; completion, failure, or interruption closes it. Wildcard subjects, queue groups, codecs, and metadata-aware `decode(message)` functions use the same Core NATS options as `runtime.subscribe()`.
47
+
48
+ Subject Streams queue at most 32 decoded messages by default. Their overflow policy is explicit:
49
+
50
+ - `suspend` is the default and waits for downstream capacity before NATSail's awaited delivery handler returns.
51
+ - `error` fails with `NatsailStreamBufferOverflowError` rather than losing a message.
52
+ - `dropping` drops a new message when the buffer is full.
53
+ - `sliding` keeps the newest messages by dropping the oldest buffered message.
54
+
55
+ The bound is measured in messages, not bytes. Core NATS remains ephemeral and at-most-once: local backpressure cannot add server retention, acknowledgement, or replay. Use JetStream when an application cannot tolerate missed messages.
56
+
57
+ `NatsailSubjectError` distinguishes subscription creation, readiness, and source/decoding failure while retaining the original cause.
58
+
59
+ For sustained streams, compose the subscription with Effect's native chunk operators instead of accumulating the entire stream:
60
+
61
+ ```ts
62
+ const processMessages = messages.pipe(
63
+ Stream.rechunk(256),
64
+ Stream.runForEachArray((batch) => persistBatch(batch))
65
+ )
66
+ ```
67
+
68
+ `Stream.rechunk()` bounds each processing batch, and `runForEachArray()` invokes the application once per non-empty batch. Avoid `Stream.runCollect()` for unbounded subjects because it retains every message until the Stream completes.
69
+
70
+ ## JetStream delivery
71
+
72
+ Use `jetStreamEvents()` when the application needs both ordered deliveries and the exact replay-to-live boundary. `jetStreamDeliveries()` exposes the same delivery path without the control event:
73
+
74
+ ```ts
75
+ import { natsCodecs } from '@natsail/core'
76
+ import { jetStreamEvents } from '@natsail/effect'
77
+
78
+ const events = jetStreamEvents(
79
+ {
80
+ stream: 'CHAT',
81
+ filter: 'chat.room.>',
82
+ start: 'all',
83
+ codec: natsCodecs.json<ChatEvent>(),
84
+ maxBufferedMessages: 64,
85
+ recovery: { delayMs: 500 },
86
+ },
87
+ {
88
+ bufferSize: 256,
89
+ overflowStrategy: 'suspend',
90
+ }
91
+ )
92
+ ```
93
+
94
+ The Stream is cold and scoped. NATSail owns the ordered consumer, checkpoint, duplicate policy, and package-level recovery. Effect owns downstream demand and structured cancellation. The default local Effect buffer is 32 events and suspends the awaited JetStream handler when full. Durable delivery deliberately supports only `suspend` and `error`; dropping or sliding would incorrectly allow the source checkpoint to advance past an event that was never admitted to the Effect Stream.
95
+
96
+ Delivery into the bounded Stream is the ordered-consumer acceptance boundary. If durable completion must mean that a business Effect succeeded—not merely that the event entered the Stream—use `runJetStreamProcessor()` and its explicit-ack consumer.
97
+
98
+ `maxBufferedMessages` or `maxBufferedBytes` controls the nats.js pull buffer. `bufferSize` controls the second, decoded Effect queue. Both bounds remain explicit.
99
+
100
+ ## Atomic replay materialization
101
+
102
+ `materializeJetStream()` avoids rendering every intermediate historical state. It emits an initial `replaying` state, silently reduces bounded replay batches, emits one complete `live` state at catch-up, and then emits microbatched live updates:
103
+
104
+ ```ts
105
+ import { Effect, Stream } from 'effect'
106
+
107
+ import { materializeJetStream } from '@natsail/effect'
108
+
109
+ const conversation = materializeJetStream(
110
+ {
111
+ stream: 'CHAT',
112
+ filter: `chat.room.${roomId}`,
113
+ start: 'all',
114
+ codec: chatEventCodec,
115
+ maxBufferedMessages: 64,
116
+ recovery: {},
117
+ },
118
+ {
119
+ initial: () => emptyConversation(),
120
+ reduceBatch: (state, deliveries) =>
121
+ Effect.sync(() => reduceConversationBatch(state, deliveries)),
122
+ },
123
+ {
124
+ bufferSize: 256,
125
+ batchSize: 256,
126
+ batchWithin: '16 millis',
127
+ }
128
+ )
129
+
130
+ const render = conversation.pipe(Stream.runForEach((snapshot) => updateConversation(snapshot.data)))
131
+ ```
132
+
133
+ `reduceBatch` is a native Effect. Its typed error and service requirements remain in the returned Stream type. Package-owned recovery can resume admitted events while the current materialized state remains alive. A fresh materializer rebuilds from replay, so `resume` is rejected until a state store can commit the materialized state and cursor atomically.
134
+
135
+ ## Explicit-ack processing
136
+
137
+ Use `runJetStreamProcessor()` for durable work queues or other named consumer workflows:
138
+
139
+ ```ts
140
+ import { runJetStreamProcessor } from '@natsail/effect'
141
+
142
+ const worker = runJetStreamProcessor(
143
+ {
144
+ stream: 'JOBS',
145
+ consumer: { mode: 'ensure', name: 'email-workers' },
146
+ filter: 'jobs.email',
147
+ start: 'all',
148
+ codec: emailJobCodec,
149
+ maxAckPending: 32,
150
+ recovery: { delayMs: 500 },
151
+ },
152
+ (delivery) => sendEmail(delivery.value)
153
+ )
154
+ ```
155
+
156
+ The package waits for the handler Effect before the underlying processor acknowledges the message. Package-owned recovery reopens the named consumer after infrastructure failures while preserving its acknowledgement floor. Typed application failures remain terminal typed Effect failures; consumer-contract and final processor lifecycle failures use `NatsailJetStreamError`.
157
+
158
+ ## Service and request/reply
159
+
160
+ The same scoped Layer supplies the `Natsail` service for publish, request/reply, reconnect, connection inspection, and escape hatches:
161
+
162
+ ```ts
163
+ const request = Effect.gen(function* () {
26
164
  const nats = yield* Natsail
27
165
 
28
- yield* nats.publish('chat.room.123', encodedMessage)
166
+ yield* nats.publish('jobs.created', encodedJob)
29
167
 
30
- yield* nats
31
- .sessionValues(conversationDefinition)
32
- .pipe(Stream.runForEach((conversation) => Effect.log(conversation)))
168
+ return yield* nats.request({
169
+ subject: 'jobs.lookup',
170
+ data: encodedRequest,
171
+ codec: natsCodecs.json<Job>(),
172
+ })
33
173
  }).pipe(Effect.provide(NatsLive))
34
174
  ```
35
175
 
36
- `makeNatsailScopedLayer()` closes the session registry and runtime when the Layer scope exits, including failure or fiber interruption. `makeNatsailLayer()` supplies application-owned objects without closing them.
176
+ 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.
177
+
178
+ ## Shared sessions
37
179
 
38
- `sessionSnapshots()` and `sessionValues()` are cold Streams. Each Effect consumer retains one registry handle; consumers of the same validated definition still share one underlying NATS source. The handle is released whenever the stream completes, fails, or is interrupted.
180
+ `sessionSnapshots()` and `sessionValues()` remain available for application state that should share one validated `SessionRegistry` source. Each Effect consumer retains one registry handle, and the handle is released whenever the Stream completes, fails, or is interrupted.
39
181
 
40
- Session Streams queue at most 32 snapshots by default. Overflow fails with `NatsailStreamBufferOverflowError` instead of silently losing state. Applications may choose `dropping`, `sliding`, a different bound, or an explicit `unbounded` buffer.
182
+ Session Streams queue at most 32 snapshots by default. Overflow fails with `NatsailStreamBufferOverflowError`; applications may explicitly choose `dropping`, `sliding`, a different bound, or `unbounded`.
41
183
 
42
- `NatsailOperationError` covers Promise operations and event iterators. `NatsailSessionError` distinguishes session acquisition from source failure. Both retain the original cause for tagged Effect recovery.
184
+ Session snapshot buffering happens after the registry updates. Use direct subject Streams when downstream Effect demand must reach the NATSail delivery handler.
43
185
 
44
- The service exposes `runtime` and `sessions` as escape hatches. Advanced nats.js, JetStream manager, explicit-ack processor, and custom session operations remain available without leaving the Layer-owned lifecycle.
186
+ NATSail continues to own connection, authentication, ordered-consumer recovery, and checkpoints. The Effect adapter does not create a second connection or retry loop. The service exposes `runtime` and `sessions` for JetStream manager calls and other advanced nats.js or custom session operations without leaving the Layer-owned lifecycle.
45
187
 
46
188
  ## License
47
189
 
package/dist/index.d.ts CHANGED
@@ -1,8 +1,10 @@
1
- import { Context, Effect, Layer, Stream } from 'effect';
2
- import type { CoreRequestOptions, NatsConnection, NatsRuntime, NatsRuntimeEvent, NatsRuntimeReconnectOptions, NatsRuntimeStatusEvent } from '@natsail/core';
1
+ import { Cause, Context, Effect, Layer, Stream } from 'effect';
2
+ import type { Duration } from 'effect';
3
+ import type { CoreRequestOptions, CoreSubscriptionOptions, NatsConnection, NatsRuntime, NatsRuntimeEvent, NatsRuntimeReconnectOptions, NatsRuntimeStatusEvent } from '@natsail/core';
4
+ import { type JetStreamCatchUp, type JetStreamDelivery, type JetStreamProcessingDelivery, type JetStreamProcessorOptions, type ReducingJetStreamSessionOptions, type JetStreamSessionSourceOptions, type StreamCursor } from '@natsail/jetstream';
3
5
  import type { SessionDefinition, SessionRegistry, SessionRegistryEvent, SessionSnapshot } from '@natsail/session';
4
6
  export type NatsailOperation = 'connection' | 'publish' | 'reconnect' | 'request' | 'restart-session' | 'runtime-events' | 'session-events';
5
- declare const NatsailOperationError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
7
+ declare const NatsailOperationError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Cause.YieldableError & {
6
8
  readonly _tag: "NatsailOperationError";
7
9
  } & Readonly<A>;
8
10
  export declare class NatsailOperationError extends NatsailOperationError_base<{
@@ -12,7 +14,7 @@ export declare class NatsailOperationError extends NatsailOperationError_base<{
12
14
  }> {
13
15
  }
14
16
  export type NatsailSessionErrorStage = 'acquire' | 'source';
15
- declare const NatsailSessionError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
17
+ declare const NatsailSessionError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Cause.YieldableError & {
16
18
  readonly _tag: "NatsailSessionError";
17
19
  } & Readonly<A>;
18
20
  export declare class NatsailSessionError extends NatsailSessionError_base<{
@@ -22,7 +24,7 @@ export declare class NatsailSessionError extends NatsailSessionError_base<{
22
24
  readonly cause: unknown;
23
25
  }> {
24
26
  }
25
- declare const NatsailStreamBufferOverflowError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
27
+ declare const NatsailStreamBufferOverflowError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Cause.YieldableError & {
26
28
  readonly _tag: "NatsailStreamBufferOverflowError";
27
29
  } & Readonly<A>;
28
30
  export declare class NatsailStreamBufferOverflowError extends NatsailStreamBufferOverflowError_base<{
@@ -33,6 +35,77 @@ export declare class NatsailStreamBufferOverflowError extends NatsailStreamBuffe
33
35
  }
34
36
  export type NatsailSessionStreamError = NatsailSessionError | NatsailStreamBufferOverflowError;
35
37
  export type NatsailStreamOverflowStrategy = 'error' | 'dropping' | 'sliding';
38
+ export type NatsailSubjectStreamOverflowStrategy = NatsailStreamOverflowStrategy | 'suspend';
39
+ export type NatsailSubjectErrorStage = 'subscribe' | 'ready' | 'source';
40
+ declare const NatsailSubjectError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Cause.YieldableError & {
41
+ readonly _tag: "NatsailSubjectError";
42
+ } & Readonly<A>;
43
+ export declare class NatsailSubjectError extends NatsailSubjectError_base<{
44
+ readonly subject: string;
45
+ readonly queue?: string;
46
+ readonly stage: NatsailSubjectErrorStage;
47
+ readonly message: string;
48
+ readonly cause: unknown;
49
+ }> {
50
+ }
51
+ export type NatsailSubjectStreamError = NatsailSubjectError | NatsailStreamBufferOverflowError;
52
+ export interface NatsailSubjectStreamOptions {
53
+ /** Maximum decoded messages waiting for the Effect consumer. Defaults to 32. */
54
+ readonly bufferSize?: number;
55
+ /**
56
+ * `suspend` applies local backpressure and is the default. `error` fails
57
+ * instead of losing messages. `dropping` and `sliding` are explicit
58
+ * best-effort policies for ephemeral subjects.
59
+ */
60
+ readonly overflowStrategy?: NatsailSubjectStreamOverflowStrategy;
61
+ }
62
+ export type NatsailJetStreamErrorStage = 'subscribe' | 'ready' | 'catch-up' | 'source' | 'processor';
63
+ declare const NatsailJetStreamError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Cause.YieldableError & {
64
+ readonly _tag: "NatsailJetStreamError";
65
+ } & Readonly<A>;
66
+ export declare class NatsailJetStreamError extends NatsailJetStreamError_base<{
67
+ readonly stream: string;
68
+ readonly filter: string | readonly string[];
69
+ readonly stage: NatsailJetStreamErrorStage;
70
+ readonly message: string;
71
+ readonly cause: unknown;
72
+ }> {
73
+ }
74
+ export type NatsailJetStreamStreamError = NatsailJetStreamError | NatsailStreamBufferOverflowError;
75
+ export interface NatsailJetStreamStreamOptions {
76
+ /** Maximum deliveries and control events waiting for Effect. Defaults to 32. */
77
+ readonly bufferSize?: number;
78
+ /** Reliable streams suspend by default. `error` terminates before a delivery is lost. */
79
+ readonly overflowStrategy?: 'suspend' | 'error';
80
+ }
81
+ export type NatsailJetStreamEvent<T> = {
82
+ readonly type: 'delivery';
83
+ readonly delivery: JetStreamDelivery<T>;
84
+ } | {
85
+ readonly type: 'caught-up';
86
+ readonly catchUp: JetStreamCatchUp;
87
+ };
88
+ export interface NatsailJetStreamMaterializer<Value, State, E = never, R = never> {
89
+ readonly initial: () => State;
90
+ /** Called serially with one non-empty bounded batch. */
91
+ readonly reduceBatch: (state: State, deliveries: readonly JetStreamDelivery<Value>[]) => Effect.Effect<State, E, R>;
92
+ }
93
+ /** A fresh materializer must rebuild state and therefore cannot resume only an event cursor. */
94
+ export type NatsailJetStreamMaterializeSourceOptions<T> = ReducingJetStreamSessionOptions<T>;
95
+ export interface NatsailJetStreamMaterializeOptions extends NatsailJetStreamStreamOptions {
96
+ /** Maximum deliveries reduced in one application call. Defaults to 256. */
97
+ readonly batchSize?: number;
98
+ /** Maximum wait before a partial live batch is reduced. Defaults to 16ms. */
99
+ readonly batchWithin?: Duration.Input;
100
+ }
101
+ export interface NatsailJetStreamMaterializedState<State> {
102
+ readonly phase: 'replaying' | 'live';
103
+ readonly data: State;
104
+ readonly cursor?: StreamCursor;
105
+ readonly replay: {
106
+ readonly delivered: number;
107
+ };
108
+ }
36
109
  export interface NatsailSessionStreamOptions {
37
110
  /** Maximum queued snapshots. Defaults to 32. Use `unbounded` only deliberately. */
38
111
  readonly bufferSize?: number | 'unbounded';
@@ -57,16 +130,48 @@ export interface NatsailService {
57
130
  reconnect(options?: NatsRuntimeReconnectOptions): Effect.Effect<NatsConnection, NatsailOperationError>;
58
131
  publish(subject: string, data?: Parameters<NatsRuntime['publish']>[1], options?: Parameters<NatsRuntime['publish']>[2]): Effect.Effect<void, NatsailOperationError>;
59
132
  request<T>(options: CoreRequestOptions<T>): Effect.Effect<T, NatsailOperationError>;
133
+ /** Creates a cold, scoped Stream over one ephemeral Core NATS subscription. */
134
+ subscribe<T>(options: CoreSubscriptionOptions<T>, streamOptions?: NatsailSubjectStreamOptions): Stream.Stream<T, NatsailSubjectStreamError>;
135
+ /** Ordered replay plus live delivery with an explicit caught-up event. */
136
+ jetStreamEvents<T>(options: JetStreamSessionSourceOptions<T>, streamOptions?: NatsailJetStreamStreamOptions): Stream.Stream<NatsailJetStreamEvent<T>, NatsailJetStreamStreamError>;
137
+ /** Ordered JetStream deliveries without the caught-up control event. */
138
+ jetStreamDeliveries<T>(options: JetStreamSessionSourceOptions<T>, streamOptions?: NatsailJetStreamStreamOptions): Stream.Stream<JetStreamDelivery<T>, NatsailJetStreamStreamError>;
139
+ /** Rebuilds replay silently, emits once at catch-up, then microbatches live state. */
140
+ materializeJetStream<Value, State, E, R>(options: NatsailJetStreamMaterializeSourceOptions<Value>, materializer: NatsailJetStreamMaterializer<Value, State, E, R>, streamOptions?: NatsailJetStreamMaterializeOptions): Stream.Stream<NatsailJetStreamMaterializedState<State>, NatsailJetStreamStreamError | E, R>;
141
+ /** Runs an explicit-ack processor and acknowledges only after the Effect succeeds. */
142
+ runJetStreamProcessor<T, E, R>(options: JetStreamProcessorOptions<T>, handler: (delivery: JetStreamProcessingDelivery<T>) => Effect.Effect<void, E, R>): Effect.Effect<void, NatsailJetStreamError | E, R>;
60
143
  restartSession(key: string): Effect.Effect<void, NatsailOperationError>;
61
144
  sessionSnapshots<T>(definition: SessionDefinition<T>, options?: NatsailSessionStreamOptions): Stream.Stream<SessionSnapshot<T>, NatsailSessionStreamError>;
62
145
  sessionValues<T>(definition: SessionDefinition<T>, options?: NatsailSessionStreamOptions): Stream.Stream<T, NatsailSessionStreamError>;
63
146
  }
64
- declare const Natsail_base: Context.TagClass<Natsail, "@natsail/effect/Natsail", NatsailService>;
147
+ declare const Natsail_base: Context.ServiceClass<Natsail, "@natsail/effect/Natsail", NatsailService>;
65
148
  /** Context service supplied by a NATSail Effect Layer. */
66
149
  export declare class Natsail extends Natsail_base {
67
150
  }
68
151
  /** Creates a service over application-owned runtime and registry objects. */
69
152
  export declare function makeNatsail(resource: NatsailResource): NatsailService;
153
+ /**
154
+ * Creates a cold Core NATS subject Stream that reads its runtime from the
155
+ * `Natsail` service. Each consumer owns one scoped subscription.
156
+ */
157
+ export declare function subscribe<T>(options: CoreSubscriptionOptions<T>, streamOptions?: NatsailSubjectStreamOptions): Stream.Stream<T, NatsailSubjectStreamError, Natsail>;
158
+ /**
159
+ * Creates a cold ordered JetStream Stream with an explicit replay-complete
160
+ * event. NATSail remains the single owner of recovery and checkpoints.
161
+ */
162
+ export declare function jetStreamEvents<T>(options: JetStreamSessionSourceOptions<T>, streamOptions?: NatsailJetStreamStreamOptions): Stream.Stream<NatsailJetStreamEvent<T>, NatsailJetStreamStreamError, Natsail>;
163
+ /** Creates a cold ordered JetStream Stream containing delivery values only. */
164
+ export declare function jetStreamDeliveries<T>(options: JetStreamSessionSourceOptions<T>, streamOptions?: NatsailJetStreamStreamOptions): Stream.Stream<JetStreamDelivery<T>, NatsailJetStreamStreamError, Natsail>;
165
+ /**
166
+ * Rebuilds historical state without rendering every intermediate state, emits
167
+ * one atomic live snapshot at catch-up, and then emits microbatched updates.
168
+ */
169
+ export declare function materializeJetStream<Value, State, E, R>(options: NatsailJetStreamMaterializeSourceOptions<Value>, materializer: NatsailJetStreamMaterializer<Value, State, E, R>, streamOptions?: NatsailJetStreamMaterializeOptions): Stream.Stream<NatsailJetStreamMaterializedState<State>, NatsailJetStreamStreamError | E, Natsail | R>;
170
+ /**
171
+ * Runs a named explicit-ack JetStream processor. The message is acknowledged
172
+ * only after the supplied Effect completes successfully.
173
+ */
174
+ export declare function runJetStreamProcessor<T, E, R>(options: JetStreamProcessorOptions<T>, handler: (delivery: JetStreamProcessingDelivery<T>) => Effect.Effect<void, E, R>): Effect.Effect<void, NatsailJetStreamError | E, Natsail | R>;
70
175
  /** Supplies an existing resource without taking ownership of it. */
71
176
  export declare function makeNatsailLayer(resource: NatsailResource): Layer.Layer<Natsail>;
72
177
  /**
@@ -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,12 +1,29 @@
1
- import { Context, Data, Effect, Layer, Option, Stream } from 'effect';
1
+ import { Cause, Context, Data, Effect, Exit, Layer, Option, Queue, Stream } from 'effect';
2
+ import { createJetStreamSessionSource, processJetStream, } from '@natsail/jetstream';
2
3
  export class NatsailOperationError extends Data.TaggedError('NatsailOperationError') {
3
4
  }
4
5
  export class NatsailSessionError extends Data.TaggedError('NatsailSessionError') {
5
6
  }
6
7
  export class NatsailStreamBufferOverflowError extends Data.TaggedError('NatsailStreamBufferOverflowError') {
7
8
  }
9
+ export class NatsailSubjectError extends Data.TaggedError('NatsailSubjectError') {
10
+ }
11
+ export class NatsailJetStreamError extends Data.TaggedError('NatsailJetStreamError') {
12
+ }
8
13
  /** Context service supplied by a NATSail Effect Layer. */
9
- export class Natsail extends Context.Tag('@natsail/effect/Natsail')() {
14
+ export class Natsail extends Context.Service()('@natsail/effect/Natsail') {
15
+ }
16
+ class JetStreamEffectFailure {
17
+ error;
18
+ constructor(error) {
19
+ this.error = error;
20
+ }
21
+ }
22
+ class JetStreamEffectCause {
23
+ cause;
24
+ constructor(cause) {
25
+ this.cause = cause;
26
+ }
10
27
  }
11
28
  const DEFAULT_STREAM_BUFFER_SIZE = 32;
12
29
  function describeCause(cause) {
@@ -42,7 +59,7 @@ function resolveStreamOptions(options = {}) {
42
59
  return {
43
60
  bufferSize,
44
61
  overflowStrategy,
45
- pushOptions: bufferSize === 'unbounded'
62
+ callbackOptions: bufferSize === 'unbounded'
46
63
  ? { bufferSize: 'unbounded' }
47
64
  : {
48
65
  bufferSize,
@@ -50,9 +67,272 @@ function resolveStreamOptions(options = {}) {
50
67
  },
51
68
  };
52
69
  }
70
+ function resolveSubjectStreamOptions(options = {}) {
71
+ const bufferSize = options.bufferSize ?? DEFAULT_STREAM_BUFFER_SIZE;
72
+ const overflowStrategy = options.overflowStrategy ?? 'suspend';
73
+ if (!Number.isSafeInteger(bufferSize) || bufferSize <= 0) {
74
+ throw new TypeError('NATSail Effect subject bufferSize must be a positive safe integer');
75
+ }
76
+ return {
77
+ bufferSize,
78
+ overflowStrategy,
79
+ callbackStrategy: overflowStrategy === 'error' ? 'dropping' : overflowStrategy,
80
+ };
81
+ }
82
+ function resolveJetStreamStreamOptions(options = {}) {
83
+ const bufferSize = options.bufferSize ?? DEFAULT_STREAM_BUFFER_SIZE;
84
+ const overflowStrategy = options.overflowStrategy ?? 'suspend';
85
+ if (!Number.isSafeInteger(bufferSize) || bufferSize <= 0) {
86
+ throw new TypeError('NATSail Effect JetStream bufferSize must be a positive safe integer');
87
+ }
88
+ return {
89
+ bufferSize,
90
+ overflowStrategy,
91
+ callbackStrategy: overflowStrategy === 'error' ? 'dropping' : 'suspend',
92
+ };
93
+ }
94
+ function subjectError(options, stage, cause) {
95
+ return new NatsailSubjectError({
96
+ subject: options.subject,
97
+ ...(options.queue === undefined ? {} : { queue: options.queue }),
98
+ stage,
99
+ cause,
100
+ message: `NATSail subject ${options.subject} ${stage} failed: ${describeCause(cause)}`,
101
+ });
102
+ }
103
+ function jetStreamError(options, stage, cause) {
104
+ return new NatsailJetStreamError({
105
+ stream: options.stream,
106
+ filter: options.filter,
107
+ stage,
108
+ cause,
109
+ message: `NATSail JetStream ${options.stream} ${stage} failed: ${describeCause(cause)}`,
110
+ });
111
+ }
112
+ function createSubjectStream(runtime, options, streamOptions) {
113
+ const resolved = resolveSubjectStreamOptions(streamOptions);
114
+ const streamName = `subject:${options.subject}`;
115
+ return Stream.callback((queue) => Effect.gen(function* () {
116
+ const effectSignal = yield* Effect.abortSignal;
117
+ const signal = options.signal
118
+ ? AbortSignal.any([options.signal, effectSignal])
119
+ : effectSignal;
120
+ const subscriptionOptions = { ...options, signal };
121
+ const lease = yield* Effect.acquireRelease(Effect.try({
122
+ try: () => runtime.subscribe(subscriptionOptions, async (value) => {
123
+ const accepted = await Effect.runPromise(Queue.offer(queue, value));
124
+ if (!accepted &&
125
+ resolved.overflowStrategy === 'error' &&
126
+ queue.state._tag === 'Open') {
127
+ const overflow = new NatsailStreamBufferOverflowError({
128
+ stream: streamName,
129
+ capacity: resolved.bufferSize,
130
+ message: `NATSail subject ${options.subject} exceeded its ${resolved.bufferSize}-message Effect buffer`,
131
+ });
132
+ await Effect.runPromise(Queue.fail(queue, overflow));
133
+ throw overflow;
134
+ }
135
+ }),
136
+ catch: (cause) => subjectError(options, 'subscribe', cause),
137
+ }), (active) => Effect.promise(() => active.close().catch(() => undefined)));
138
+ yield* Effect.tryPromise({
139
+ try: () => lease.ready,
140
+ catch: (cause) => subjectError(options, 'ready', cause),
141
+ });
142
+ yield* Effect.tryPromise({
143
+ try: () => lease.closed,
144
+ catch: (cause) => cause instanceof NatsailStreamBufferOverflowError
145
+ ? cause
146
+ : subjectError(options, 'source', cause),
147
+ });
148
+ }).pipe(Effect.matchEffect({
149
+ onFailure: (error) => Queue.fail(queue, error),
150
+ onSuccess: () => Queue.end(queue),
151
+ })), {
152
+ bufferSize: resolved.bufferSize,
153
+ strategy: resolved.callbackStrategy,
154
+ });
155
+ }
156
+ function createJetStreamEventStream(runtime, options, streamOptions) {
157
+ const resolved = resolveJetStreamStreamOptions(streamOptions);
158
+ const streamName = `jetstream:${options.stream}`;
159
+ return Stream.callback((queue) => Effect.gen(function* () {
160
+ const effectSignal = yield* Effect.abortSignal;
161
+ const signal = options.signal
162
+ ? AbortSignal.any([options.signal, effectSignal])
163
+ : effectSignal;
164
+ let resolveCatchUpMarker;
165
+ let rejectCatchUpMarker;
166
+ const catchUpMarkerEnqueued = new Promise((resolve, reject) => {
167
+ resolveCatchUpMarker = resolve;
168
+ rejectCatchUpMarker = reject;
169
+ });
170
+ void catchUpMarkerEnqueued.catch(() => undefined);
171
+ const offerEvent = async (event) => {
172
+ const accepted = await Effect.runPromise(Queue.offer(queue, event));
173
+ if (!accepted && resolved.overflowStrategy === 'error' && queue.state._tag === 'Open') {
174
+ const overflow = new NatsailStreamBufferOverflowError({
175
+ stream: streamName,
176
+ capacity: resolved.bufferSize,
177
+ message: `NATSail JetStream ${options.stream} exceeded its ${resolved.bufferSize}-event Effect buffer`,
178
+ });
179
+ await Effect.runPromise(Queue.fail(queue, overflow));
180
+ throw overflow;
181
+ }
182
+ };
183
+ const lease = yield* Effect.acquireRelease(Effect.try({
184
+ try: () => {
185
+ const source = createJetStreamSessionSource(runtime, { ...options, signal });
186
+ return source(async (delivery) => {
187
+ if (delivery.replay === 'live')
188
+ await catchUpMarkerEnqueued;
189
+ await offerEvent({ type: 'delivery', delivery });
190
+ });
191
+ },
192
+ catch: (cause) => jetStreamError(options, 'subscribe', cause),
193
+ }), (active) => Effect.promise(() => active.close().catch(() => undefined)));
194
+ yield* Effect.tryPromise({
195
+ try: () => lease.ready,
196
+ catch: (cause) => jetStreamError(options, 'ready', cause),
197
+ });
198
+ const catchUpEvent = lease.caughtUp.then(async (catchUp) => {
199
+ await offerEvent({ type: 'caught-up', catchUp });
200
+ return catchUp;
201
+ });
202
+ void catchUpEvent.then(resolveCatchUpMarker, rejectCatchUpMarker);
203
+ yield* Effect.tryPromise({
204
+ try: () => catchUpEvent,
205
+ catch: (cause) => cause instanceof NatsailStreamBufferOverflowError
206
+ ? cause
207
+ : jetStreamError(options, 'catch-up', cause),
208
+ });
209
+ yield* Effect.tryPromise({
210
+ try: () => lease.closed,
211
+ catch: (cause) => cause instanceof NatsailStreamBufferOverflowError
212
+ ? cause
213
+ : jetStreamError(options, 'source', cause),
214
+ });
215
+ }).pipe(Effect.matchEffect({
216
+ onFailure: (error) => Queue.fail(queue, error),
217
+ onSuccess: () => Queue.end(queue),
218
+ })), {
219
+ bufferSize: resolved.bufferSize,
220
+ strategy: resolved.callbackStrategy,
221
+ });
222
+ }
223
+ function createJetStreamDeliveryStream(runtime, options, streamOptions) {
224
+ return createJetStreamEventStream(runtime, options, streamOptions).pipe(Stream.filter((event) => event.type === 'delivery'), Stream.map((event) => event.delivery));
225
+ }
226
+ function createJetStreamMaterializedStream(runtime, options, materializer, streamOptions = {}) {
227
+ const batchSize = streamOptions.batchSize ?? 256;
228
+ const batchWithin = streamOptions.batchWithin ?? '16 millis';
229
+ if (options.resume) {
230
+ throw new TypeError('A JetStream materializer cannot resume an event cursor without restoring matching materialized state');
231
+ }
232
+ if (!Number.isSafeInteger(batchSize) || batchSize <= 0) {
233
+ throw new TypeError('NATSail Effect JetStream batchSize must be a positive safe integer');
234
+ }
235
+ return Stream.suspend(() => {
236
+ const initial = materializer.initial();
237
+ const initialAccumulator = {
238
+ phase: 'replaying',
239
+ data: initial,
240
+ replayDelivered: 0,
241
+ };
242
+ const initialSnapshot = {
243
+ phase: 'replaying',
244
+ data: initial,
245
+ replay: { delivered: 0 },
246
+ };
247
+ const updates = createJetStreamEventStream(runtime, options, streamOptions).pipe(Stream.groupedWithin(batchSize, batchWithin), Stream.mapAccumEffect(() => initialAccumulator, (previous, events) => Effect.gen(function* () {
248
+ let data = previous.data;
249
+ let phase = previous.phase;
250
+ let cursor = previous.cursor;
251
+ let replayDelivered = previous.replayDelivered;
252
+ let pending = [];
253
+ const snapshots = [];
254
+ const snapshot = () => ({
255
+ phase: 'live',
256
+ data,
257
+ ...(cursor === undefined ? {} : { cursor }),
258
+ replay: { delivered: replayDelivered },
259
+ });
260
+ const reducePending = () => {
261
+ if (pending.length === 0)
262
+ return Effect.void;
263
+ const deliveries = pending;
264
+ pending = [];
265
+ return materializer.reduceBatch(data, deliveries).pipe(Effect.tap((nextData) => Effect.sync(() => {
266
+ data = nextData;
267
+ cursor = deliveries[deliveries.length - 1]?.cursor ?? cursor;
268
+ if (phase === 'replaying')
269
+ replayDelivered += deliveries.length;
270
+ })), Effect.asVoid);
271
+ };
272
+ for (const event of events) {
273
+ if (event.type === 'delivery') {
274
+ pending.push(event.delivery);
275
+ continue;
276
+ }
277
+ yield* reducePending();
278
+ phase = 'live';
279
+ replayDelivered = event.catchUp.delivered;
280
+ cursor = event.catchUp.cursor ?? cursor;
281
+ snapshots.push(snapshot());
282
+ }
283
+ const hasDeliveriesAfterLastSnapshot = pending.length > 0;
284
+ yield* reducePending();
285
+ if (phase === 'live' && hasDeliveriesAfterLastSnapshot)
286
+ snapshots.push(snapshot());
287
+ const next = {
288
+ phase,
289
+ data,
290
+ replayDelivered,
291
+ ...(cursor === undefined ? {} : { cursor }),
292
+ };
293
+ return [next, snapshots];
294
+ })));
295
+ return Stream.concat(Stream.succeed(initialSnapshot), updates);
296
+ });
297
+ }
298
+ function runJetStreamProcessorEffect(runtime, options, handler) {
299
+ return Effect.scoped(Effect.gen(function* () {
300
+ const context = yield* Effect.context();
301
+ const effectSignal = yield* Effect.abortSignal;
302
+ const signal = options.signal ? AbortSignal.any([options.signal, effectSignal]) : effectSignal;
303
+ const processorOptions = { ...options, signal };
304
+ const lease = yield* Effect.acquireRelease(Effect.try({
305
+ try: () => processJetStream(runtime, processorOptions, async (delivery) => {
306
+ const exit = await Effect.runPromiseExitWith(context)(handler(delivery), { signal });
307
+ if (Exit.isFailure(exit)) {
308
+ const expected = Cause.findErrorOption(exit.cause);
309
+ if (Option.isSome(expected))
310
+ throw new JetStreamEffectFailure(expected.value);
311
+ throw new JetStreamEffectCause(exit.cause);
312
+ }
313
+ }),
314
+ catch: (cause) => jetStreamError(options, 'processor', cause),
315
+ }), (active) => Effect.promise(() => active.close().catch(() => undefined)));
316
+ yield* Effect.tryPromise({
317
+ try: () => lease.ready,
318
+ catch: (cause) => jetStreamError(options, 'processor', cause),
319
+ });
320
+ yield* Effect.tryPromise({
321
+ try: () => lease.closed,
322
+ catch: (cause) => cause,
323
+ }).pipe(Effect.catch((cause) => {
324
+ if (cause instanceof JetStreamEffectCause)
325
+ return Effect.failCause(cause.cause);
326
+ const error = cause instanceof JetStreamEffectFailure
327
+ ? cause.error
328
+ : jetStreamError(options, 'processor', cause);
329
+ return Effect.fail(error);
330
+ }));
331
+ }));
332
+ }
53
333
  function createSessionSnapshotStream(sessions, definition, options) {
54
334
  const resolved = resolveStreamOptions(options);
55
- return Stream.asyncPush((emit) => Effect.gen(function* () {
335
+ return Stream.callback((queue) => Effect.gen(function* () {
56
336
  const handle = yield* Effect.acquireRelease(Effect.try({
57
337
  try: () => sessions.acquire(definition),
58
338
  catch: (cause) => sessionError(definition.key, 'acquire', cause),
@@ -62,30 +342,35 @@ function createSessionSnapshotStream(sessions, definition, options) {
62
342
  if (terminal)
63
343
  return;
64
344
  const snapshot = handle.getSnapshot();
65
- const accepted = emit.single(snapshot);
345
+ const accepted = Queue.offerUnsafe(queue, snapshot);
66
346
  if (!accepted &&
67
347
  resolved.bufferSize !== 'unbounded' &&
68
348
  resolved.overflowStrategy === 'error') {
69
349
  terminal = true;
70
- emit.fail(new NatsailStreamBufferOverflowError({
350
+ Queue.failCauseUnsafe(queue, Cause.fail(new NatsailStreamBufferOverflowError({
71
351
  stream: `session:${definition.key}`,
72
352
  capacity: resolved.bufferSize,
73
353
  message: `NATSail session ${definition.key} exceeded its ${resolved.bufferSize}-snapshot Effect buffer`,
74
- }));
354
+ })));
75
355
  return;
76
356
  }
77
357
  if (snapshot.phase === 'error') {
78
358
  terminal = true;
79
- emit.fail(sessionError(definition.key, 'source', snapshot.error ?? new Error('The session source failed')));
359
+ Queue.failCauseUnsafe(queue, Cause.fail(sessionError(definition.key, 'source', snapshot.error ?? new Error('The session source failed'))));
80
360
  }
81
361
  else if (snapshot.phase === 'closed') {
82
362
  terminal = true;
83
- emit.end();
363
+ Queue.endUnsafe(queue);
84
364
  }
85
365
  };
86
366
  yield* Effect.acquireRelease(Effect.sync(() => handle.subscribe(emitSnapshot)), (unsubscribe) => Effect.sync(unsubscribe));
87
367
  emitSnapshot();
88
- }), resolved.pushOptions);
368
+ }), resolved.callbackOptions.bufferSize === 'unbounded'
369
+ ? undefined
370
+ : {
371
+ bufferSize: resolved.callbackOptions.bufferSize,
372
+ strategy: resolved.callbackOptions.strategy,
373
+ });
89
374
  }
90
375
  /** Creates a service over application-owned runtime and registry objects. */
91
376
  export function makeNatsail(resource) {
@@ -104,17 +389,54 @@ export function makeNatsail(resource) {
104
389
  ...options,
105
390
  signal: options.signal ? AbortSignal.any([options.signal, effectSignal]) : effectSignal,
106
391
  })),
392
+ subscribe: (options, streamOptions) => createSubjectStream(runtime, options, streamOptions),
393
+ jetStreamEvents: (options, streamOptions) => createJetStreamEventStream(runtime, options, streamOptions),
394
+ jetStreamDeliveries: (options, streamOptions) => createJetStreamDeliveryStream(runtime, options, streamOptions),
395
+ materializeJetStream: (options, materializer, streamOptions) => createJetStreamMaterializedStream(runtime, options, materializer, streamOptions),
396
+ runJetStreamProcessor: (options, handler) => runJetStreamProcessorEffect(runtime, options, handler),
107
397
  restartSession: (key) => tryRuntimePromise('restart-session', () => sessions.restart(key)),
108
398
  sessionSnapshots: (definition, options) => createSessionSnapshotStream(sessions, definition, options),
109
- sessionValues: (definition, options) => createSessionSnapshotStream(sessions, definition, options).pipe(Stream.mapAccum(-1, (valueRevision, snapshot) => {
399
+ sessionValues: (definition, options) => createSessionSnapshotStream(sessions, definition, options).pipe(Stream.mapAccum(() => -1, (valueRevision, snapshot) => {
110
400
  if (snapshot.valueRevision !== valueRevision &&
111
401
  Object.prototype.hasOwnProperty.call(snapshot, 'value')) {
112
- return [snapshot.valueRevision, Option.some(snapshot.value)];
402
+ return [snapshot.valueRevision, [snapshot.value]];
113
403
  }
114
- return [valueRevision, Option.none()];
115
- }), Stream.filterMap((value) => value)),
404
+ return [valueRevision, []];
405
+ })),
116
406
  };
117
407
  }
408
+ /**
409
+ * Creates a cold Core NATS subject Stream that reads its runtime from the
410
+ * `Natsail` service. Each consumer owns one scoped subscription.
411
+ */
412
+ export function subscribe(options, streamOptions) {
413
+ return Stream.unwrap(Natsail.useSync((service) => service.subscribe(options, streamOptions)));
414
+ }
415
+ /**
416
+ * Creates a cold ordered JetStream Stream with an explicit replay-complete
417
+ * event. NATSail remains the single owner of recovery and checkpoints.
418
+ */
419
+ export function jetStreamEvents(options, streamOptions) {
420
+ return Stream.unwrap(Natsail.useSync((service) => service.jetStreamEvents(options, streamOptions)));
421
+ }
422
+ /** Creates a cold ordered JetStream Stream containing delivery values only. */
423
+ export function jetStreamDeliveries(options, streamOptions) {
424
+ return Stream.unwrap(Natsail.useSync((service) => service.jetStreamDeliveries(options, streamOptions)));
425
+ }
426
+ /**
427
+ * Rebuilds historical state without rendering every intermediate state, emits
428
+ * one atomic live snapshot at catch-up, and then emits microbatched updates.
429
+ */
430
+ export function materializeJetStream(options, materializer, streamOptions) {
431
+ return Stream.unwrap(Natsail.useSync((service) => service.materializeJetStream(options, materializer, streamOptions)));
432
+ }
433
+ /**
434
+ * Runs a named explicit-ack JetStream processor. The message is acknowledged
435
+ * only after the supplied Effect completes successfully.
436
+ */
437
+ export function runJetStreamProcessor(options, handler) {
438
+ return Natsail.use((service) => service.runJetStreamProcessor(options, handler));
439
+ }
118
440
  /** Supplies an existing resource without taking ownership of it. */
119
441
  export function makeNatsailLayer(resource) {
120
442
  return Layer.succeed(Natsail, makeNatsail(resource));
@@ -149,6 +471,6 @@ async function closeResource(resource) {
149
471
  * the runtime, even if registry shutdown fails.
150
472
  */
151
473
  export function makeNatsailScopedLayer(acquire) {
152
- return Layer.scoped(Natsail, Effect.acquireRelease(acquire, (resource) => Effect.promise(() => closeResource(resource))).pipe(Effect.map(makeNatsail)));
474
+ return Layer.effect(Natsail, Effect.acquireRelease(acquire, (resource) => Effect.promise(() => closeResource(resource))).pipe(Effect.map(makeNatsail)));
153
475
  }
154
476
  //# 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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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@natsail/effect",
3
- "version": "0.1.0",
4
- "description": "Scoped Effect services and Streams for NATSail runtimes and shared sessions.",
3
+ "version": "0.2.1",
4
+ "description": "Scoped Effect v4 Streams for Core NATS, JetStream, and shared sessions.",
5
5
  "keywords": [
6
6
  "nats",
7
7
  "effect",
@@ -35,14 +35,16 @@
35
35
  },
36
36
  "publishConfig": {
37
37
  "access": "public",
38
- "registry": "https://registry.npmjs.org/"
38
+ "registry": "https://registry.npmjs.org/",
39
+ "tag": "next"
39
40
  },
40
41
  "dependencies": {
42
+ "@natsail/session": "^0.3.0",
41
43
  "@natsail/core": "^0.2.1",
42
- "@natsail/session": "^0.3.0"
44
+ "@natsail/jetstream": "^0.4.0"
43
45
  },
44
46
  "peerDependencies": {
45
- "effect": "^3.22.0"
47
+ "effect": "4.0.0-rc.112"
46
48
  },
47
49
  "scripts": {
48
50
  "build": "tsc -p tsconfig.json"