effect-jetstream 1.0.3 → 1.1.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.
- package/README.md +52 -4
- package/dist/Jetstream.d.ts +1 -0
- package/dist/Jetstream.d.ts.map +1 -1
- package/dist/Jetstream.js.map +1 -1
- package/dist/JetstreamClient.d.ts +2 -1
- package/dist/JetstreamClient.d.ts.map +1 -1
- package/dist/JetstreamClient.js.map +1 -1
- package/dist/JetstreamConfig.d.ts +68 -0
- package/dist/JetstreamConfig.d.ts.map +1 -1
- package/dist/JetstreamConfig.js +5 -1
- package/dist/JetstreamConfig.js.map +1 -1
- package/dist/internal/client.d.ts +2 -1
- package/dist/internal/client.d.ts.map +1 -1
- package/dist/internal/client.js +4 -2
- package/dist/internal/client.js.map +1 -1
- package/dist/internal/decoder.js +2 -2
- package/dist/internal/decoder.js.map +1 -1
- package/dist/internal/jetstream.d.ts +1 -0
- package/dist/internal/jetstream.d.ts.map +1 -1
- package/dist/internal/jetstream.js +145 -36
- package/dist/internal/jetstream.js.map +1 -1
- package/dist/internal/websocket.d.ts +1 -1
- package/dist/internal/websocket.d.ts.map +1 -1
- package/dist/internal/websocket.js +25 -19
- package/dist/internal/websocket.js.map +1 -1
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -96,12 +96,20 @@ JetstreamConfig.JetstreamConfig.make({
|
|
|
96
96
|
compress: false,
|
|
97
97
|
|
|
98
98
|
// Optional decoder for compressed payloads
|
|
99
|
-
// If omitted, Bun.zstdDecompress is used without a dictionary and a warning is logged.
|
|
99
|
+
// If omitted in Bun, Bun.zstdDecompress is used without a dictionary and a warning is logged.
|
|
100
|
+
// In non-Bun runtimes, a decoder is required when compress=true.
|
|
100
101
|
// decoder: (data) => Effect.tryPromise(() => Bun.zstdDecompress(data))
|
|
102
|
+
|
|
103
|
+
// Inbound message buffering
|
|
104
|
+
inboundBufferSize: 4096,
|
|
105
|
+
inboundBufferStrategy: "suspend", // "suspend" | "dropping" | "sliding"
|
|
106
|
+
|
|
107
|
+
// Optional runtime observer for instrumentation
|
|
108
|
+
runtimeObserver: (event) => Effect.logDebug("jetstream-runtime", event)
|
|
101
109
|
})
|
|
102
110
|
```
|
|
103
111
|
|
|
104
|
-
When `compress` is true, provide a decoder that understands Jetstream's dictionary. If you omit it, the client falls back to `Bun.zstdDecompress`
|
|
112
|
+
When `compress` is true, provide a decoder that understands Jetstream's dictionary. If you omit it, the client falls back to `Bun.zstdDecompress` only in Bun and logs a warning. In runtimes without Bun, layer construction fails with a typed `ParseError`.
|
|
105
113
|
|
|
106
114
|
## Behavior
|
|
107
115
|
|
|
@@ -141,6 +149,9 @@ interface Jetstream {
|
|
|
141
149
|
|
|
142
150
|
// Update subscription options
|
|
143
151
|
readonly updateOptions: (options: OptionsUpdate) => Effect<void, JetstreamError>
|
|
152
|
+
|
|
153
|
+
// Gracefully close the connection and end the stream
|
|
154
|
+
readonly shutdown: Effect<void>
|
|
144
155
|
}
|
|
145
156
|
```
|
|
146
157
|
|
|
@@ -172,11 +183,48 @@ interface JetstreamClient {
|
|
|
172
183
|
handler: (event: EventFor<K>) => Effect<void>
|
|
173
184
|
) => Effect<void>
|
|
174
185
|
|
|
175
|
-
// Run the client (
|
|
176
|
-
readonly run: Effect<
|
|
186
|
+
// Run the client until the stream ends (e.g. on shutdown)
|
|
187
|
+
readonly run: Effect<void, JetstreamError>
|
|
188
|
+
|
|
189
|
+
// Run the client forever
|
|
190
|
+
readonly runForever: Effect<never, JetstreamError>
|
|
177
191
|
}
|
|
178
192
|
```
|
|
179
193
|
|
|
194
|
+
## Local Harness
|
|
195
|
+
|
|
196
|
+
The repository includes a local Bun harness for smoke/performance testing with Effect metrics.
|
|
197
|
+
|
|
198
|
+
### Commands
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
bun run harness
|
|
202
|
+
bun run harness:live
|
|
203
|
+
bun run harness:replay
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Modes
|
|
207
|
+
|
|
208
|
+
- `live`: connects to Jetstream and tracks throughput/runtime signals.
|
|
209
|
+
- `replay`: replays NDJSON fixture messages (default fixture: `examples/fixtures/jetstream-sample.ndjson`).
|
|
210
|
+
|
|
211
|
+
### Useful Flags
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
bun run harness --mode replay --durationSec 30 --reportEverySec 5 --replayRatePerSec 200
|
|
215
|
+
bun run harness --mode live --collections app.bsky.feed.post --jsonOut tmp/live-report.json
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Optional gate flags fail the run (`exit 1`) when violated:
|
|
219
|
+
|
|
220
|
+
- `--gateMinEventsPerSec`
|
|
221
|
+
- `--gateMaxDecodeErrors`
|
|
222
|
+
- `--gateMaxInboundDrops`
|
|
223
|
+
- `--gateMaxReconnects`
|
|
224
|
+
- `--gateMaxP95LagMs`
|
|
225
|
+
|
|
226
|
+
The harness prints periodic summaries and writes a final JSON report (`tmp/harness-report.json` by default).
|
|
227
|
+
|
|
180
228
|
## License
|
|
181
229
|
|
|
182
230
|
MIT
|
package/dist/Jetstream.d.ts
CHANGED
|
@@ -28,6 +28,7 @@ export interface Jetstream {
|
|
|
28
28
|
readonly stream: Stream.Stream<JetstreamMessage, JetstreamError>;
|
|
29
29
|
readonly send: (message: SubscriberSourcedMessage) => Effect.Effect<void, JetstreamError>;
|
|
30
30
|
readonly updateOptions: (options: OptionsUpdate) => Effect.Effect<void, JetstreamError>;
|
|
31
|
+
readonly shutdown: Effect.Effect<void>;
|
|
31
32
|
}
|
|
32
33
|
/**
|
|
33
34
|
* @since 1.0.0
|
package/dist/Jetstream.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Jetstream.d.ts","sourceRoot":"","sources":["../src/Jetstream.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,yBAAyB,CAAA;AACtD,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AACpG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAA;AAEnD;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,QAAQ,CAAC,MAAwB,CAAA;AAE7D;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;AAElC;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;IAChE,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IACzF,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"Jetstream.d.ts","sourceRoot":"","sources":["../src/Jetstream.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,yBAAyB,CAAA;AACtD,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAA;AACpG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAC7D,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAA;AAEnD;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,QAAQ,CAAC,MAAwB,CAAA;AAE7D;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;AAElC;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;IAChE,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IACzF,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IACvF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACvC;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,OAAO,QAAQ,CAAC,GAAkB,CAAA;AAE1D;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,CAClB,MAAM,EAAE,eAAe,KACpB,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC,oBAAoB,CAAkB,CAAA;AAEzF;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,CACjB,MAAM,EAAE,eAAe,KACpB,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,CAAiB,CAAA"}
|
package/dist/Jetstream.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Jetstream.js","sourceRoot":"","sources":["../src/Jetstream.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAA;AAEnD;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAA2B,QAAQ,CAAC,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"Jetstream.js","sourceRoot":"","sources":["../src/Jetstream.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAA;AAEnD;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAA2B,QAAQ,CAAC,MAAM,CAAA;AAoB7D;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAwB,QAAQ,CAAC,GAAG,CAAA;AAE1D;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAEyD,QAAQ,CAAC,KAAK,CAAA;AAEzF;;;GAGG;AACH,MAAM,CAAC,MAAM,IAAI,GAE6B,QAAQ,CAAC,IAAI,CAAA"}
|
|
@@ -36,7 +36,8 @@ export interface JetstreamClient {
|
|
|
36
36
|
}) => Effect.Effect<void>) => Effect.Effect<void>;
|
|
37
37
|
readonly onDelete: <C extends Collection>(collection: C, handler: (event: CommitDelete) => Effect.Effect<void>) => Effect.Effect<void>;
|
|
38
38
|
readonly on: <K extends EventKind>(kind: K, handler: (event: EventFor<K>) => Effect.Effect<void>) => Effect.Effect<void>;
|
|
39
|
-
readonly run: Effect.Effect<
|
|
39
|
+
readonly run: Effect.Effect<void, JetstreamError>;
|
|
40
|
+
readonly runForever: Effect.Effect<never, JetstreamError>;
|
|
40
41
|
}
|
|
41
42
|
/**
|
|
42
43
|
* @since 1.0.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JetstreamClient.d.ts","sourceRoot":"","sources":["../src/JetstreamClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAC1G,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,QAAQ,CAAC,MAAwB,CAAA;AAE7D;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;AAElC;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,UAAU,EACtC,UAAU,EAAE,CAAC,EACb,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG;QAAE,QAAQ,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;SAAE,CAAA;KAAE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAC3G,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,UAAU,EACtC,UAAU,EAAE,CAAC,EACb,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG;QAAE,QAAQ,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;SAAE,CAAA;KAAE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAC3G,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,UAAU,EACtC,UAAU,EAAE,CAAC,EACb,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAClD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxB,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,SAAS,EAC/B,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KACjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"JetstreamClient.d.ts","sourceRoot":"","sources":["../src/JetstreamClient.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAC1G,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAExD;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,QAAQ,CAAC,MAAwB,CAAA;AAE7D;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;AAElC;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,UAAU,EACtC,UAAU,EAAE,CAAC,EACb,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG;QAAE,QAAQ,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;SAAE,CAAA;KAAE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAC3G,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,UAAU,EACtC,UAAU,EAAE,CAAC,EACb,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG;QAAE,QAAQ,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;SAAE,CAAA;KAAE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAC3G,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,UAAU,EACtC,UAAU,EAAE,CAAC,EACb,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAClD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxB,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,SAAS,EAC/B,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KACjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;CAC1D;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,OAAO,QAAQ,CAAC,GAAkB,CAAA;AAEhE;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,EAAE,SAAS,CAAkB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JetstreamClient.js","sourceRoot":"","sources":["../src/JetstreamClient.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAGhD;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAA2B,QAAQ,CAAC,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"JetstreamClient.js","sourceRoot":"","sources":["../src/JetstreamClient.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAGhD;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAA2B,QAAQ,CAAC,MAAM,CAAA;AAkC7D;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAwB,QAAQ,CAAC,GAAG,CAAA;AAEhE;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAmD,QAAQ,CAAC,KAAK,CAAA"}
|
|
@@ -9,6 +9,54 @@ import type { ParseError } from "./JetstreamError.js";
|
|
|
9
9
|
* @category models
|
|
10
10
|
*/
|
|
11
11
|
export type JetstreamDecoder = (data: Uint8Array) => Effect.Effect<Uint8Array, ParseError>;
|
|
12
|
+
/**
|
|
13
|
+
* @since 1.2.0
|
|
14
|
+
* @category models
|
|
15
|
+
*/
|
|
16
|
+
export type JetstreamRuntimeEvent = {
|
|
17
|
+
readonly _tag: "ConnectionAttempt";
|
|
18
|
+
readonly timestampMs: number;
|
|
19
|
+
readonly url: string;
|
|
20
|
+
} | {
|
|
21
|
+
readonly _tag: "ConnectionOpened";
|
|
22
|
+
readonly timestampMs: number;
|
|
23
|
+
readonly url: string;
|
|
24
|
+
} | {
|
|
25
|
+
readonly _tag: "ConnectionClosed";
|
|
26
|
+
readonly timestampMs: number;
|
|
27
|
+
readonly reason: string;
|
|
28
|
+
readonly cause?: unknown;
|
|
29
|
+
} | {
|
|
30
|
+
readonly _tag: "DecodeFailed";
|
|
31
|
+
readonly timestampMs: number;
|
|
32
|
+
readonly message: string;
|
|
33
|
+
} | {
|
|
34
|
+
readonly _tag: "InboundDropped";
|
|
35
|
+
readonly timestampMs: number;
|
|
36
|
+
readonly kind: "commit" | "identity" | "account";
|
|
37
|
+
readonly did: string;
|
|
38
|
+
} | {
|
|
39
|
+
readonly _tag: "OutboundQueued";
|
|
40
|
+
readonly timestampMs: number;
|
|
41
|
+
} | {
|
|
42
|
+
readonly _tag: "OutboundEncoded";
|
|
43
|
+
readonly timestampMs: number;
|
|
44
|
+
} | {
|
|
45
|
+
readonly _tag: "OutboundEncodeFailed";
|
|
46
|
+
readonly timestampMs: number;
|
|
47
|
+
readonly message: string;
|
|
48
|
+
} | {
|
|
49
|
+
readonly _tag: "OutboundSent";
|
|
50
|
+
readonly timestampMs: number;
|
|
51
|
+
} | {
|
|
52
|
+
readonly _tag: "Shutdown";
|
|
53
|
+
readonly timestampMs: number;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* @since 1.2.0
|
|
57
|
+
* @category models
|
|
58
|
+
*/
|
|
59
|
+
export type JetstreamRuntimeObserver = (event: JetstreamRuntimeEvent) => Effect.Effect<void>;
|
|
12
60
|
declare const JetstreamConfig_base: Schema.Class<JetstreamConfig, {
|
|
13
61
|
endpoint: Schema.optionalWith<typeof Schema.String, {
|
|
14
62
|
default: () => string;
|
|
@@ -25,6 +73,13 @@ declare const JetstreamConfig_base: Schema.Class<JetstreamConfig, {
|
|
|
25
73
|
default: () => false;
|
|
26
74
|
}>;
|
|
27
75
|
decoder: Schema.optional<Schema.declare<JetstreamDecoder, JetstreamDecoder, readonly [], never>>;
|
|
76
|
+
inboundBufferSize: Schema.optionalWith<typeof Schema.Number, {
|
|
77
|
+
default: () => number;
|
|
78
|
+
}>;
|
|
79
|
+
inboundBufferStrategy: Schema.optionalWith<Schema.Literal<["suspend", "dropping", "sliding"]>, {
|
|
80
|
+
default: () => "suspend";
|
|
81
|
+
}>;
|
|
82
|
+
runtimeObserver: Schema.optional<Schema.declare<JetstreamRuntimeObserver, JetstreamRuntimeObserver, readonly [], never>>;
|
|
28
83
|
}, Schema.Struct.Encoded<{
|
|
29
84
|
endpoint: Schema.optionalWith<typeof Schema.String, {
|
|
30
85
|
default: () => string;
|
|
@@ -41,6 +96,13 @@ declare const JetstreamConfig_base: Schema.Class<JetstreamConfig, {
|
|
|
41
96
|
default: () => false;
|
|
42
97
|
}>;
|
|
43
98
|
decoder: Schema.optional<Schema.declare<JetstreamDecoder, JetstreamDecoder, readonly [], never>>;
|
|
99
|
+
inboundBufferSize: Schema.optionalWith<typeof Schema.Number, {
|
|
100
|
+
default: () => number;
|
|
101
|
+
}>;
|
|
102
|
+
inboundBufferStrategy: Schema.optionalWith<Schema.Literal<["suspend", "dropping", "sliding"]>, {
|
|
103
|
+
default: () => "suspend";
|
|
104
|
+
}>;
|
|
105
|
+
runtimeObserver: Schema.optional<Schema.declare<JetstreamRuntimeObserver, JetstreamRuntimeObserver, readonly [], never>>;
|
|
44
106
|
}>, never, {
|
|
45
107
|
readonly endpoint?: string;
|
|
46
108
|
} & {
|
|
@@ -55,6 +117,12 @@ declare const JetstreamConfig_base: Schema.Class<JetstreamConfig, {
|
|
|
55
117
|
readonly compress?: boolean;
|
|
56
118
|
} & {
|
|
57
119
|
readonly decoder?: JetstreamDecoder | undefined;
|
|
120
|
+
} & {
|
|
121
|
+
readonly inboundBufferSize?: number;
|
|
122
|
+
} & {
|
|
123
|
+
readonly inboundBufferStrategy?: "suspend" | "dropping" | "sliding";
|
|
124
|
+
} & {
|
|
125
|
+
readonly runtimeObserver?: JetstreamRuntimeObserver | undefined;
|
|
58
126
|
}, {}, {}>;
|
|
59
127
|
/**
|
|
60
128
|
* @since 1.0.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JetstreamConfig.d.ts","sourceRoot":"","sources":["../src/JetstreamConfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAErD;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA
|
|
1
|
+
{"version":3,"file":"JetstreamConfig.d.ts","sourceRoot":"","sources":["../src/JetstreamConfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAErD;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;AAE1F;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAC7B;IACE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAA;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAA;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CACzB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAA;IAChD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAA;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAC7B,CAAA;AAEL;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,qBAAqB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAU5F;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,oBAoBnC;CAAG;AAEL;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAClD,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;CACtC;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;IAC/B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;CAChC"}
|
package/dist/JetstreamConfig.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as Schema from "effect/Schema";
|
|
2
2
|
const JetstreamDecoderSchema = Schema.declare((u) => typeof u === "function");
|
|
3
|
+
const JetstreamRuntimeObserverSchema = Schema.declare((u) => typeof u === "function");
|
|
3
4
|
/**
|
|
4
5
|
* @since 1.0.0
|
|
5
6
|
* @category schemas
|
|
@@ -17,7 +18,10 @@ export class JetstreamConfig extends Schema.Class("JetstreamConfig")({
|
|
|
17
18
|
cursor: Schema.optional(Schema.Number),
|
|
18
19
|
maxMessageSizeBytes: Schema.optional(Schema.Number),
|
|
19
20
|
compress: Schema.optionalWith(Schema.Boolean, { default: () => false }),
|
|
20
|
-
decoder: Schema.optional(JetstreamDecoderSchema)
|
|
21
|
+
decoder: Schema.optional(JetstreamDecoderSchema),
|
|
22
|
+
inboundBufferSize: Schema.optionalWith(Schema.Number, { default: () => 4096 }),
|
|
23
|
+
inboundBufferStrategy: Schema.optionalWith(Schema.Literal("suspend", "dropping", "sliding"), { default: () => "suspend" }),
|
|
24
|
+
runtimeObserver: Schema.optional(JetstreamRuntimeObserverSchema)
|
|
21
25
|
}) {
|
|
22
26
|
}
|
|
23
27
|
//# sourceMappingURL=JetstreamConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JetstreamConfig.js","sourceRoot":"","sources":["../src/JetstreamConfig.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"JetstreamConfig.js","sourceRoot":"","sources":["../src/JetstreamConfig.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAqEvC,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,CAC3C,CAAC,CAAC,EAAyB,EAAE,CAAC,OAAO,CAAC,KAAK,UAAU,CACtD,CAAA;AAED,MAAM,8BAA8B,GAAG,MAAM,CAAC,OAAO,CACnD,CAAC,CAAC,EAAiC,EAAE,CAAC,OAAO,CAAC,KAAK,UAAU,CAC9D,CAAA;AAED;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,MAAM,CAAC,KAAK,CAAkB,iBAAiB,CAAC,CAAC;IACpF,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE;QAC3C,OAAO,EAAE,GAAG,EAAE,CAAC,iDAAiD;KACjE,CAAC;IACF,iBAAiB,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QAClE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;KAClB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QAC3D,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE;KAClB,CAAC;IACF,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACtC,mBAAmB,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;IACnD,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;IACvE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC;IAChD,iBAAiB,EAAE,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAC9E,qBAAqB,EAAE,MAAM,CAAC,YAAY,CACxC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,EAChD,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAC7B;IACD,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,8BAA8B,CAAC;CACjE,CAAC;CAAG"}
|
|
@@ -36,7 +36,8 @@ export interface JetstreamClient {
|
|
|
36
36
|
}) => Effect.Effect<void>) => Effect.Effect<void>;
|
|
37
37
|
readonly onDelete: <C extends Collection>(collection: C, handler: (event: CommitDelete) => Effect.Effect<void>) => Effect.Effect<void>;
|
|
38
38
|
readonly on: <K extends EventKind>(kind: K, handler: (event: EventFor<K>) => Effect.Effect<void>) => Effect.Effect<void>;
|
|
39
|
-
readonly run: Effect.Effect<
|
|
39
|
+
readonly run: Effect.Effect<void, JetstreamError>;
|
|
40
|
+
readonly runForever: Effect.Effect<never, JetstreamError>;
|
|
40
41
|
}
|
|
41
42
|
/**
|
|
42
43
|
* @since 1.0.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/internal/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAIrC,OAAO,EAOL,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACtE,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,SAAS,EAEV,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAGpE;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,MAAuD,CAAA;AAEnF;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;AAElC;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,UAAU,EACtC,UAAU,EAAE,CAAC,EACb,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG;QAAE,QAAQ,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;SAAE,CAAA;KAAE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAC3G,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,UAAU,EACtC,UAAU,EAAE,CAAC,EACb,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG;QAAE,QAAQ,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;SAAE,CAAA;KAAE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAC3G,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,UAAU,EACtC,UAAU,EAAE,CAAC,EACb,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAClD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxB,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,SAAS,EAC/B,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KACjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/internal/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAIrC,OAAO,EAOL,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACtE,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,SAAS,EAEV,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAGpE;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,MAAuD,CAAA;AAEnF;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;AAElC;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,UAAU,EACtC,UAAU,EAAE,CAAC,EACb,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG;QAAE,QAAQ,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;SAAE,CAAA;KAAE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAC3G,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,UAAU,EACtC,UAAU,EAAE,CAAC,EACb,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,GAAG;QAAE,QAAQ,CAAC,MAAM,EAAE;YAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;SAAE,CAAA;KAAE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAC3G,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,UAAU,EACtC,UAAU,EAAE,CAAC,EACb,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAClD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxB,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,SAAS,EAC/B,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KACjD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;CAC1D;AAED;;;GAGG;AACH,eAAO,MAAM,GAAG,+CAA0E,CAAA;AAuD1F;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,EAAE,SAAS,CAiHhE,CAAA"}
|
package/dist/internal/client.js
CHANGED
|
@@ -110,14 +110,16 @@ export const layer = Layer.effect(tag, Effect.gen(function* () {
|
|
|
110
110
|
return handler(event).pipe(Effect.catchAllCause(logHandlerFailure("on", event)));
|
|
111
111
|
}));
|
|
112
112
|
const dispatchEvent = Effect.fn("JetstreamClient.dispatchEvent")((event) => Ref.get(handlers).pipe(Effect.flatMap((current) => Effect.forEach(current, (handler) => handler(event), { discard: true }))));
|
|
113
|
-
const run = jetstream.stream.pipe(Stream.runForEach(dispatchEvent)
|
|
113
|
+
const run = jetstream.stream.pipe(Stream.runForEach(dispatchEvent));
|
|
114
|
+
const runForever = run.pipe(Effect.zipRight(Effect.never));
|
|
114
115
|
return tag.of({
|
|
115
116
|
[TypeId]: TypeId,
|
|
116
117
|
onCreate,
|
|
117
118
|
onUpdate,
|
|
118
119
|
onDelete,
|
|
119
120
|
on,
|
|
120
|
-
run
|
|
121
|
+
run,
|
|
122
|
+
runForever
|
|
121
123
|
});
|
|
122
124
|
}));
|
|
123
125
|
//# sourceMappingURL=client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/internal/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,YAAY,CAAA;AACjC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EACL,KAAK,EACL,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,OAAO,EACP,MAAM,EAGP,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAuB,MAAM,sBAAsB,CAAA;AAStE,OAAO,EAAE,GAAG,IAAI,YAAY,EAAkB,MAAM,gBAAgB,CAAA;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAErD;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAkB,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/internal/client.ts"],"names":[],"mappings":"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"}
|
package/dist/internal/decoder.js
CHANGED
|
@@ -69,7 +69,7 @@ export const decodeMessage = (data, decoder) => {
|
|
|
69
69
|
};
|
|
70
70
|
switch (commit.operation) {
|
|
71
71
|
case "create":
|
|
72
|
-
if (commit.record
|
|
72
|
+
if (commit.record == null) {
|
|
73
73
|
return yield* Effect.fail(new ParseError({
|
|
74
74
|
message: "Missing record for commit create",
|
|
75
75
|
raw: text.slice(0, 200)
|
|
@@ -87,7 +87,7 @@ export const decodeMessage = (data, decoder) => {
|
|
|
87
87
|
}
|
|
88
88
|
});
|
|
89
89
|
case "update":
|
|
90
|
-
if (commit.record
|
|
90
|
+
if (commit.record == null) {
|
|
91
91
|
return yield* Effect.fail(new ParseError({
|
|
92
92
|
message: "Missing record for commit update",
|
|
93
93
|
raw: text.slice(0, 200)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/internal/decoder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../src/internal/decoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,6 +28,7 @@ export interface Jetstream {
|
|
|
28
28
|
readonly stream: Stream.Stream<JetstreamMessage, JetstreamError>;
|
|
29
29
|
readonly send: (message: SubscriberSourcedMessage) => Effect.Effect<void, JetstreamError>;
|
|
30
30
|
readonly updateOptions: (options: OptionsUpdate) => Effect.Effect<void, JetstreamError>;
|
|
31
|
+
readonly shutdown: Effect.Effect<void>;
|
|
31
32
|
}
|
|
32
33
|
/**
|
|
33
34
|
* @since 1.0.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jetstream.d.ts","sourceRoot":"","sources":["../../src/internal/jetstream.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"jetstream.d.ts","sourceRoot":"","sources":["../../src/internal/jetstream.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAA;AAEjD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAEzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAQrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EACV,eAAe,EAGf,aAAa,EACb,wBAAwB,EACzB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAA+B,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACvF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAK9D;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,OAAO,MAAiD,CAAA;AAE7E;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAA;AAElC;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAA;IAChE,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IACzF,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IACvF,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACvC;AAED;;;GAGG;AACH,eAAO,MAAM,GAAG,mCAA8D,CAAA;AA0E9E;;;GAGG;AACH,eAAO,MAAM,KAAK,GAChB,QAAQ,eAAe,KACtB,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC,oBAAoB,CAmPlE,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,IAAI,GACf,QAAQ,eAAe,KACtB,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,cAAc,CAGrC,CAAA"}
|
|
@@ -2,20 +2,24 @@
|
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
4
|
import * as Socket from "@effect/platform/Socket";
|
|
5
|
+
import * as Cause from "effect/Cause";
|
|
5
6
|
import * as Context from "effect/Context";
|
|
6
7
|
import * as Deferred from "effect/Deferred";
|
|
7
8
|
import * as Effect from "effect/Effect";
|
|
9
|
+
import * as Fiber from "effect/Fiber";
|
|
8
10
|
import * as Layer from "effect/Layer";
|
|
9
11
|
import * as Mailbox from "effect/Mailbox";
|
|
10
12
|
import * as Option from "effect/Option";
|
|
11
13
|
import * as Queue from "effect/Queue";
|
|
12
14
|
import * as Ref from "effect/Ref";
|
|
13
15
|
import * as Schedule from "effect/Schedule";
|
|
16
|
+
import * as Schema from "effect/Schema";
|
|
14
17
|
import * as Scope from "effect/Scope";
|
|
15
18
|
import * as Stream from "effect/Stream";
|
|
16
19
|
import { ConnectionError, ParseError } from "../JetstreamError.js";
|
|
17
20
|
import { decodeMessage } from "./decoder.js";
|
|
18
|
-
import {
|
|
21
|
+
import { summarizeParseError } from "./parseError.js";
|
|
22
|
+
import { buildUrl, createSocket } from "./websocket.js";
|
|
19
23
|
/**
|
|
20
24
|
* @since 1.0.0
|
|
21
25
|
* @category symbols
|
|
@@ -28,54 +32,87 @@ export const TypeId = Symbol.for("effect-jetstream/Jetstream");
|
|
|
28
32
|
export const tag = Context.GenericTag("effect-jetstream/Jetstream");
|
|
29
33
|
const reconnectSchedule = Schedule.exponential("1 second").pipe(Schedule.union(Schedule.spaced("30 seconds")));
|
|
30
34
|
const outboundBufferSize = 1024;
|
|
31
|
-
const
|
|
32
|
-
|
|
35
|
+
const OptionsUpdateSchema = Schema.Struct({
|
|
36
|
+
wantedCollections: Schema.optional(Schema.Array(Schema.String)),
|
|
37
|
+
wantedDids: Schema.optional(Schema.Array(Schema.String)),
|
|
38
|
+
maxMessageSizeBytes: Schema.optional(Schema.Number)
|
|
39
|
+
});
|
|
40
|
+
const SubscriberSourcedMessageSchema = Schema.Struct({
|
|
41
|
+
type: Schema.Literal("options_update"),
|
|
42
|
+
payload: OptionsUpdateSchema
|
|
43
|
+
});
|
|
44
|
+
const encodeOutboundMessage = Schema.encode(Schema.parseJson(SubscriberSourcedMessageSchema));
|
|
45
|
+
const makeDefaultZstdDecoder = (zstdDecompress) => (data) => Effect.tryPromise({
|
|
46
|
+
try: () => Promise.resolve(zstdDecompress(data)),
|
|
33
47
|
catch: (error) => new ParseError({
|
|
34
48
|
message: `Zstd decompression failed: ${String(error)}`
|
|
35
49
|
})
|
|
36
50
|
});
|
|
37
51
|
const resolveDecoder = (config) => {
|
|
38
52
|
if (!config.compress) {
|
|
39
|
-
return
|
|
53
|
+
return Effect.succeed({
|
|
54
|
+
decoder: undefined,
|
|
55
|
+
usingDefaultDecoder: false
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
if (config.decoder !== undefined) {
|
|
59
|
+
return Effect.succeed({
|
|
60
|
+
decoder: config.decoder,
|
|
61
|
+
usingDefaultDecoder: false
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
const bunRuntime = globalThis.Bun;
|
|
65
|
+
if (bunRuntime?.zstdDecompress !== undefined) {
|
|
66
|
+
return Effect.succeed({
|
|
67
|
+
decoder: makeDefaultZstdDecoder(bunRuntime.zstdDecompress),
|
|
68
|
+
usingDefaultDecoder: true
|
|
69
|
+
});
|
|
40
70
|
}
|
|
41
|
-
return
|
|
71
|
+
return Effect.fail(new ParseError({
|
|
72
|
+
message: "Jetstream compression requires a custom decoder when Bun.zstdDecompress is unavailable."
|
|
73
|
+
}));
|
|
42
74
|
};
|
|
43
75
|
/**
|
|
44
76
|
* @since 1.0.0
|
|
45
77
|
* @category layers
|
|
46
78
|
*/
|
|
47
79
|
export const layer = (config) => Layer.scoped(tag, Effect.gen(function* () {
|
|
48
|
-
const url = buildUrl(config);
|
|
80
|
+
const url = yield* buildUrl(config);
|
|
49
81
|
const scope = yield* Effect.scope;
|
|
50
|
-
const mailbox = yield* Mailbox.make(
|
|
82
|
+
const mailbox = yield* Mailbox.make({
|
|
83
|
+
capacity: config.inboundBufferSize,
|
|
84
|
+
strategy: config.inboundBufferStrategy
|
|
85
|
+
});
|
|
51
86
|
const outbound = yield* Queue.bounded(outboundBufferSize);
|
|
52
87
|
const pending = yield* Ref.make(Option.none());
|
|
53
|
-
const
|
|
54
|
-
|
|
88
|
+
const shutdownSignal = yield* Deferred.make();
|
|
89
|
+
const { decoder, usingDefaultDecoder } = yield* resolveDecoder(config);
|
|
90
|
+
const now = () => Date.now();
|
|
91
|
+
const emitRuntimeEvent = Effect.fn("Jetstream.emitRuntimeEvent")((event) => config.runtimeObserver === undefined
|
|
92
|
+
? Effect.void
|
|
93
|
+
: config.runtimeObserver(event).pipe(Effect.catchAllCause(() => Effect.void), Effect.forkDaemon, Effect.asVoid));
|
|
94
|
+
if (usingDefaultDecoder) {
|
|
55
95
|
yield* Effect.logWarning("Jetstream compression enabled without a custom decoder; using Bun.zstdDecompress without a dictionary.");
|
|
56
96
|
}
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
const pendingValue = yield* Ref.get(pending);
|
|
63
|
-
if (Option.isSome(pendingValue)) {
|
|
64
|
-
yield* Deferred.fail(pendingValue.value.done, closed);
|
|
65
|
-
}
|
|
66
|
-
const remaining = yield* Queue.takeAll(outbound);
|
|
67
|
-
for (const item of remaining) {
|
|
68
|
-
yield* Deferred.fail(item.done, closed);
|
|
69
|
-
}
|
|
70
|
-
yield* Queue.shutdown(outbound);
|
|
71
|
-
yield* mailbox.end;
|
|
72
|
-
});
|
|
73
|
-
yield* Scope.addFinalizer(scope, shutdown);
|
|
74
|
-
const logDecodeError = (error) => Effect.logWarning("Dropping malformed Jetstream message", {
|
|
97
|
+
const logDecodeError = (error) => emitRuntimeEvent({
|
|
98
|
+
_tag: "DecodeFailed",
|
|
99
|
+
timestampMs: now(),
|
|
100
|
+
message: error.message
|
|
101
|
+
}).pipe(Effect.zipRight(Effect.logWarning("Dropping malformed Jetstream message", {
|
|
75
102
|
message: error.message,
|
|
76
103
|
raw: error.raw
|
|
77
|
-
});
|
|
78
|
-
const handleIncoming = Effect.fn("Jetstream.handleIncoming")((data) => decodeMessage(data, decoder).pipe(Effect.flatMap((message) => mailbox.offer(message)
|
|
104
|
+
})));
|
|
105
|
+
const handleIncoming = Effect.fn("Jetstream.handleIncoming")((data) => decodeMessage(data, decoder).pipe(Effect.flatMap((message) => mailbox.offer(message).pipe(Effect.flatMap((accepted) => accepted
|
|
106
|
+
? Effect.void
|
|
107
|
+
: emitRuntimeEvent({
|
|
108
|
+
_tag: "InboundDropped",
|
|
109
|
+
timestampMs: now(),
|
|
110
|
+
kind: message.kind,
|
|
111
|
+
did: message.did
|
|
112
|
+
}).pipe(Effect.zipRight(Effect.logDebug("Dropping Jetstream message because inbound buffer is full", {
|
|
113
|
+
kind: message.kind,
|
|
114
|
+
did: message.did
|
|
115
|
+
})))))), Effect.catchAll(logDecodeError)));
|
|
79
116
|
const takeNextOutbound = Effect.uninterruptibleMask((restore) => Ref.get(pending).pipe(Effect.flatMap((pendingValue) => {
|
|
80
117
|
if (Option.isSome(pendingValue)) {
|
|
81
118
|
return Effect.succeed(pendingValue.value);
|
|
@@ -84,24 +121,95 @@ export const layer = (config) => Layer.scoped(tag, Effect.gen(function* () {
|
|
|
84
121
|
})));
|
|
85
122
|
const writeOne = (writer) => Effect.gen(function* () {
|
|
86
123
|
const next = yield* takeNextOutbound;
|
|
87
|
-
yield*
|
|
124
|
+
const encoded = yield* encodeOutboundMessage(next.message).pipe(Effect.mapError((error) => new ParseError({
|
|
125
|
+
message: `Failed to serialize outbound message: ${summarizeParseError(error)}`
|
|
126
|
+
})), Effect.catchAll((error) => Effect.gen(function* () {
|
|
127
|
+
yield* emitRuntimeEvent({
|
|
128
|
+
_tag: "OutboundEncodeFailed",
|
|
129
|
+
timestampMs: now(),
|
|
130
|
+
message: error.message
|
|
131
|
+
});
|
|
132
|
+
yield* Ref.set(pending, Option.none());
|
|
133
|
+
yield* Deferred.fail(next.done, error);
|
|
134
|
+
return yield* Effect.fail(error);
|
|
135
|
+
})));
|
|
136
|
+
yield* emitRuntimeEvent({
|
|
137
|
+
_tag: "OutboundEncoded",
|
|
138
|
+
timestampMs: now()
|
|
139
|
+
});
|
|
140
|
+
yield* writer(encoded).pipe(Effect.mapError((cause) => new ConnectionError({ reason: "Closed", cause })));
|
|
141
|
+
yield* emitRuntimeEvent({
|
|
142
|
+
_tag: "OutboundSent",
|
|
143
|
+
timestampMs: now()
|
|
144
|
+
});
|
|
88
145
|
yield* Ref.set(pending, Option.none());
|
|
89
146
|
yield* Deferred.succeed(next.done, undefined);
|
|
90
147
|
});
|
|
91
148
|
const writeLoop = (writer) => writeOne(writer).pipe(Effect.forever);
|
|
92
149
|
const readLoop = (socket) => socket.runRaw((data) => handleIncoming(data)).pipe(Effect.catchAll((cause) => Effect.fail(new ConnectionError({ reason: "Closed", cause }))), Effect.zipRight(Effect.fail(new ConnectionError({ reason: "Closed", cause: "Socket closed" }))));
|
|
93
150
|
const runConnection = Effect.scoped(Effect.gen(function* () {
|
|
94
|
-
|
|
151
|
+
yield* emitRuntimeEvent({
|
|
152
|
+
_tag: "ConnectionAttempt",
|
|
153
|
+
timestampMs: now(),
|
|
154
|
+
url
|
|
155
|
+
});
|
|
156
|
+
const socket = yield* createSocket(url);
|
|
157
|
+
yield* emitRuntimeEvent({
|
|
158
|
+
_tag: "ConnectionOpened",
|
|
159
|
+
timestampMs: now(),
|
|
160
|
+
url
|
|
161
|
+
});
|
|
95
162
|
const writer = yield* socket.writer;
|
|
96
163
|
yield* Effect.raceFirst(readLoop(socket), writeLoop(writer));
|
|
97
|
-
})).pipe(Effect.
|
|
98
|
-
|
|
164
|
+
})).pipe(Effect.tapError((error) => error._tag === "ConnectionError"
|
|
165
|
+
? emitRuntimeEvent({
|
|
166
|
+
_tag: "ConnectionClosed",
|
|
167
|
+
timestampMs: now(),
|
|
168
|
+
reason: error.reason,
|
|
169
|
+
...(error.cause === undefined ? {} : { cause: error.cause })
|
|
170
|
+
})
|
|
171
|
+
: Effect.void), Effect.retry(reconnectSchedule));
|
|
172
|
+
const runConnectionUntilShutdown = Effect.raceFirst(runConnection, Deferred.await(shutdownSignal)).pipe(Effect.catchAllCause((cause) => Cause.isInterrupted(cause)
|
|
173
|
+
? Effect.void
|
|
174
|
+
: Effect.failCause(cause)));
|
|
175
|
+
const connectionFiber = yield* Effect.forkIn(runConnectionUntilShutdown, scope);
|
|
176
|
+
const shutdown = Effect.uninterruptible(Effect.gen(function* () {
|
|
177
|
+
yield* emitRuntimeEvent({
|
|
178
|
+
_tag: "Shutdown",
|
|
179
|
+
timestampMs: now()
|
|
180
|
+
});
|
|
181
|
+
yield* Deferred.succeed(shutdownSignal, undefined);
|
|
182
|
+
yield* Fiber.interrupt(connectionFiber);
|
|
183
|
+
const closed = new ConnectionError({
|
|
184
|
+
reason: "Closed",
|
|
185
|
+
cause: "Jetstream shutdown"
|
|
186
|
+
});
|
|
187
|
+
const pendingValue = yield* Ref.get(pending);
|
|
188
|
+
if (Option.isSome(pendingValue)) {
|
|
189
|
+
yield* Deferred.fail(pendingValue.value.done, closed);
|
|
190
|
+
yield* Ref.set(pending, Option.none());
|
|
191
|
+
}
|
|
192
|
+
const remaining = yield* Queue.takeAll(outbound);
|
|
193
|
+
for (const item of remaining) {
|
|
194
|
+
yield* Deferred.fail(item.done, closed);
|
|
195
|
+
}
|
|
196
|
+
yield* mailbox.end;
|
|
197
|
+
}));
|
|
198
|
+
yield* Scope.addFinalizer(scope, shutdown);
|
|
99
199
|
const send = Effect.fn("Jetstream.send")((message) => Effect.gen(function* () {
|
|
200
|
+
const isShutdown = yield* Deferred.isDone(shutdownSignal);
|
|
201
|
+
if (isShutdown) {
|
|
202
|
+
return yield* Effect.fail(new ConnectionError({ reason: "Closed", cause: "Jetstream shutdown" }));
|
|
203
|
+
}
|
|
100
204
|
const done = yield* Deferred.make();
|
|
101
|
-
const accepted = yield* Queue.offer(outbound, { message, done });
|
|
205
|
+
const accepted = yield* Effect.raceFirst(Queue.offer(outbound, { message, done }), Deferred.await(shutdownSignal).pipe(Effect.as(false)));
|
|
102
206
|
if (!accepted) {
|
|
103
|
-
return yield* Effect.fail(new ConnectionError({ reason: "Closed", cause: "
|
|
207
|
+
return yield* Effect.fail(new ConnectionError({ reason: "Closed", cause: "Jetstream shutdown" }));
|
|
104
208
|
}
|
|
209
|
+
yield* emitRuntimeEvent({
|
|
210
|
+
_tag: "OutboundQueued",
|
|
211
|
+
timestampMs: now()
|
|
212
|
+
});
|
|
105
213
|
return yield* Deferred.await(done);
|
|
106
214
|
}));
|
|
107
215
|
const updateOptions = Effect.fn("Jetstream.updateOptions")((options) => send({ type: "options_update", payload: options }));
|
|
@@ -109,7 +217,8 @@ export const layer = (config) => Layer.scoped(tag, Effect.gen(function* () {
|
|
|
109
217
|
[TypeId]: TypeId,
|
|
110
218
|
stream: Mailbox.toStream(mailbox),
|
|
111
219
|
send,
|
|
112
|
-
updateOptions
|
|
220
|
+
updateOptions,
|
|
221
|
+
shutdown
|
|
113
222
|
});
|
|
114
223
|
}));
|
|
115
224
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jetstream.js","sourceRoot":"","sources":["../../src/internal/jetstream.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jetstream.js","sourceRoot":"","sources":["../../src/internal/jetstream.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import * as Effect from "effect/Effect";
|
|
|
6
6
|
import * as Stream from "effect/Stream";
|
|
7
7
|
import { ConnectionError } from "../JetstreamError.js";
|
|
8
8
|
import type { JetstreamConfig } from "../JetstreamConfig.js";
|
|
9
|
-
export declare const buildUrl: (config: JetstreamConfig) => string
|
|
9
|
+
export declare const buildUrl: (config: JetstreamConfig) => Effect.Effect<string, ConnectionError>;
|
|
10
10
|
export declare const createSocket: (url: string) => Effect.Effect<Socket.Socket, ConnectionError, Socket.WebSocketConstructor>;
|
|
11
11
|
export declare const messageStream: (socket: Socket.Socket) => Stream.Stream<string | Uint8Array, ConnectionError>;
|
|
12
12
|
//# sourceMappingURL=websocket.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/internal/websocket.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE5D,eAAO,MAAM,QAAQ,GAAI,QAAQ,eAAe,KAAG,
|
|
1
|
+
{"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/internal/websocket.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE5D,eAAO,MAAM,QAAQ,GAAI,QAAQ,eAAe,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAgCpF,CAAA;AAEJ,eAAO,MAAM,YAAY,GACvB,KAAK,MAAM,KACV,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,oBAAoB,CAGzE,CAAA;AAEH,eAAO,MAAM,aAAa,GACxB,QAAQ,MAAM,CAAC,MAAM,KACpB,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,UAAU,EAAE,eAAe,CAgBjD,CAAA"}
|
|
@@ -5,25 +5,31 @@ import * as Socket from "@effect/platform/Socket";
|
|
|
5
5
|
import * as Effect from "effect/Effect";
|
|
6
6
|
import * as Stream from "effect/Stream";
|
|
7
7
|
import { ConnectionError } from "../JetstreamError.js";
|
|
8
|
-
export const buildUrl = (config) => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
8
|
+
export const buildUrl = (config) => Effect.try({
|
|
9
|
+
try: () => {
|
|
10
|
+
const url = new URL(config.endpoint);
|
|
11
|
+
for (const collection of config.wantedCollections) {
|
|
12
|
+
url.searchParams.append("wantedCollections", collection);
|
|
13
|
+
}
|
|
14
|
+
for (const did of config.wantedDids) {
|
|
15
|
+
url.searchParams.append("wantedDids", did);
|
|
16
|
+
}
|
|
17
|
+
if (config.cursor !== undefined) {
|
|
18
|
+
url.searchParams.set("cursor", config.cursor.toString());
|
|
19
|
+
}
|
|
20
|
+
if (config.maxMessageSizeBytes !== undefined) {
|
|
21
|
+
url.searchParams.set("maxMessageSizeBytes", config.maxMessageSizeBytes.toString());
|
|
22
|
+
}
|
|
23
|
+
if (config.compress) {
|
|
24
|
+
url.searchParams.set("compress", "true");
|
|
25
|
+
}
|
|
26
|
+
return url.toString();
|
|
27
|
+
},
|
|
28
|
+
catch: (cause) => new ConnectionError({
|
|
29
|
+
reason: "Connect",
|
|
30
|
+
cause
|
|
31
|
+
})
|
|
32
|
+
});
|
|
27
33
|
export const createSocket = (url) => Socket.makeWebSocket(url).pipe(Effect.mapError((cause) => new ConnectionError({ reason: "Connect", cause })));
|
|
28
34
|
export const messageStream = (socket) => Stream.async((emit) => {
|
|
29
35
|
const run = socket.runRaw((data) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/internal/websocket.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAGtD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAuB,
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/internal/websocket.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAGtD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,MAAuB,EAA0C,EAAE,CAC1F,MAAM,CAAC,GAAG,CAAC;IACT,GAAG,EAAE,GAAG,EAAE;QACR,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QAEpC,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAClD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAA;QAC1D,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACpC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,YAAY,EAAE,GAAG,CAAC,CAAA;QAC5C,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC1D,CAAC;QAED,IAAI,MAAM,CAAC,mBAAmB,KAAK,SAAS,EAAE,CAAC;YAC7C,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAA;QACpF,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;QAC1C,CAAC;QAED,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAA;IACvB,CAAC;IACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,eAAe,CAAC;QAClB,MAAM,EAAE,SAAS;QACjB,KAAK;KACN,CAAC;CACL,CAAC,CAAA;AAEJ,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,GAAW,EACiE,EAAE,CAC9E,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,CAC5B,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAC9E,CAAA;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,MAAqB,EACgC,EAAE,CACvD,MAAM,CAAC,KAAK,CAAuC,CAAC,IAAI,EAAE,EAAE;IAC1D,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CACvB,CAAC,IAAI,EAAE,EAAE;QACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACnB,CAAC,CACF,CAAC,IAAI,CACJ,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CACxB,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;QACf,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IACpE,CAAC,CAAC,CACH,EACD,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAC/C,CAAA;IAED,OAAO,GAAG,CAAA;AACZ,CAAC,CAAC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "effect-jetstream",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Effect-based client for the Bluesky Jetstream API",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -34,6 +34,9 @@
|
|
|
34
34
|
"build": "tsc",
|
|
35
35
|
"prepare": "effect-language-service patch",
|
|
36
36
|
"typecheck": "tsc --noEmit",
|
|
37
|
+
"harness": "bun run examples/harness.ts",
|
|
38
|
+
"harness:live": "bun run examples/harness.ts --mode live --durationSec 60 --reportEverySec 5",
|
|
39
|
+
"harness:replay": "bun run examples/harness.ts --mode replay --durationSec 30 --replayFile examples/fixtures/jetstream-sample.ndjson",
|
|
37
40
|
"prepublishOnly": "bun run build",
|
|
38
41
|
"changeset": "changeset",
|
|
39
42
|
"version": "changeset version",
|