reactor-effect-client 0.7.1 → 0.8.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/NOTICE +7 -2
- package/README.md +103 -141
- package/dist/Coordinator.d.ts +382 -0
- package/dist/Coordinator.d.ts.map +1 -0
- package/dist/Coordinator.js +732 -0
- package/dist/Coordinator.js.map +1 -0
- package/dist/H3.d.ts +159 -0
- package/dist/H3.d.ts.map +1 -0
- package/dist/H3.js +21 -0
- package/dist/H3.js.map +1 -0
- package/dist/H3Source.d.ts +93 -0
- package/dist/H3Source.d.ts.map +1 -0
- package/dist/H3Source.js +401 -0
- package/dist/H3Source.js.map +1 -0
- package/dist/LocalSource.d.ts +68 -0
- package/dist/LocalSource.d.ts.map +1 -0
- package/dist/LocalSource.js +354 -0
- package/dist/LocalSource.js.map +1 -0
- package/dist/Media.d.ts +106 -0
- package/dist/Media.d.ts.map +1 -0
- package/dist/Media.js +16 -0
- package/dist/Media.js.map +1 -0
- package/dist/Peer.d.ts +134 -0
- package/dist/Peer.d.ts.map +1 -0
- package/dist/Peer.js +57 -0
- package/dist/Peer.js.map +1 -0
- package/dist/Playout.d.ts +724 -0
- package/dist/Playout.d.ts.map +1 -0
- package/dist/Playout.js +28 -0
- package/dist/Playout.js.map +1 -0
- package/dist/Reactor.d.ts +135 -0
- package/dist/Reactor.d.ts.map +1 -0
- package/dist/Reactor.js +158 -0
- package/dist/Reactor.js.map +1 -0
- package/dist/ReactorError.d.ts +331 -0
- package/dist/ReactorError.d.ts.map +1 -0
- package/dist/ReactorError.js +316 -0
- package/dist/ReactorError.js.map +1 -0
- package/dist/ReactorTest.d.ts +383 -0
- package/dist/ReactorTest.d.ts.map +1 -0
- package/dist/ReactorTest.js +317 -0
- package/dist/ReactorTest.js.map +1 -0
- package/dist/Session.d.ts +314 -0
- package/dist/Session.d.ts.map +1 -0
- package/dist/Session.js +51 -0
- package/dist/Session.js.map +1 -0
- package/dist/index.d.ts +12 -22
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -11
- package/dist/index.js.map +1 -1
- package/dist/internal/correlator.d.ts +46 -0
- package/dist/internal/correlator.d.ts.map +1 -0
- package/dist/internal/correlator.js +150 -0
- package/dist/internal/correlator.js.map +1 -0
- package/dist/internal/deadline.d.ts +24 -0
- package/dist/internal/deadline.d.ts.map +1 -0
- package/dist/internal/deadline.js +44 -0
- package/dist/internal/deadline.js.map +1 -0
- package/dist/{h3/_internal/contracts.d.ts → internal/h3/commands.d.ts} +39 -33
- package/dist/internal/h3/commands.d.ts.map +1 -0
- package/dist/internal/h3/commands.js +128 -0
- package/dist/internal/h3/commands.js.map +1 -0
- package/dist/{h3 → internal/h3}/messages.d.ts +16 -11
- package/dist/internal/h3/messages.d.ts.map +1 -0
- package/dist/{h3 → internal/h3}/messages.js +19 -31
- package/dist/internal/h3/messages.js.map +1 -0
- package/dist/internal/h3/operations.d.ts +145 -0
- package/dist/internal/h3/operations.d.ts.map +1 -0
- package/dist/internal/h3/operations.js +284 -0
- package/dist/internal/h3/operations.js.map +1 -0
- package/dist/{h3 → internal/h3}/profile.d.ts +63 -65
- package/dist/internal/h3/profile.d.ts.map +1 -0
- package/dist/{h3 → internal/h3}/profile.js +39 -39
- package/dist/internal/h3/profile.js.map +1 -0
- package/dist/internal/h3/provider.d.ts +14 -0
- package/dist/internal/h3/provider.d.ts.map +1 -0
- package/dist/internal/h3/provider.js +672 -0
- package/dist/internal/h3/provider.js.map +1 -0
- package/dist/internal/h3/references.d.ts +68 -0
- package/dist/internal/h3/references.d.ts.map +1 -0
- package/dist/internal/h3/references.js +339 -0
- package/dist/internal/h3/references.js.map +1 -0
- package/dist/internal/h3/request.d.ts +56 -0
- package/dist/internal/h3/request.d.ts.map +1 -0
- package/dist/internal/h3/request.js +70 -0
- package/dist/internal/h3/request.js.map +1 -0
- package/dist/internal/h3/state.d.ts +120 -0
- package/dist/internal/h3/state.d.ts.map +1 -0
- package/dist/internal/h3/state.js +270 -0
- package/dist/internal/h3/state.js.map +1 -0
- package/dist/{Submission.d.ts → internal/h3/submission.d.ts} +1 -3
- package/dist/internal/h3/submission.d.ts.map +1 -0
- package/dist/{Submission.js → internal/h3/submission.js} +1 -9
- package/dist/internal/h3/submission.js.map +1 -0
- package/dist/internal/hub.d.ts +32 -0
- package/dist/internal/hub.d.ts.map +1 -0
- package/dist/internal/hub.js +92 -0
- package/dist/internal/hub.js.map +1 -0
- package/dist/internal/playout/errors.d.ts +51 -0
- package/dist/internal/playout/errors.d.ts.map +1 -0
- package/dist/internal/playout/errors.js +40 -0
- package/dist/internal/playout/errors.js.map +1 -0
- package/dist/internal/playout/policy.d.ts +559 -0
- package/dist/internal/playout/policy.d.ts.map +1 -0
- package/dist/internal/playout/policy.js +2338 -0
- package/dist/internal/playout/policy.js.map +1 -0
- package/dist/internal/playout/runtime.d.ts +28 -0
- package/dist/internal/playout/runtime.d.ts.map +1 -0
- package/dist/internal/playout/runtime.js +766 -0
- package/dist/internal/playout/runtime.js.map +1 -0
- package/dist/internal/playout/tag.d.ts +14 -0
- package/dist/internal/playout/tag.d.ts.map +1 -0
- package/dist/internal/playout/tag.js +43 -0
- package/dist/internal/playout/tag.js.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/common_pb.d.ts +55 -0
- package/dist/internal/proto/reactor_wire/v1/common_pb.d.ts.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/common_pb.js +42 -0
- package/dist/internal/proto/reactor_wire/v1/common_pb.js.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/control_pb.d.ts +160 -0
- package/dist/internal/proto/reactor_wire/v1/control_pb.d.ts.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/control_pb.js +21 -0
- package/dist/internal/proto/reactor_wire/v1/control_pb.js.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/data_pb.d.ts +89 -0
- package/dist/internal/proto/reactor_wire/v1/data_pb.d.ts.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/data_pb.js +20 -0
- package/dist/internal/proto/reactor_wire/v1/data_pb.js.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/model_pb.d.ts +85 -0
- package/dist/internal/proto/reactor_wire/v1/model_pb.d.ts.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/model_pb.js +24 -0
- package/dist/internal/proto/reactor_wire/v1/model_pb.js.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/platform_pb.d.ts +190 -0
- package/dist/internal/proto/reactor_wire/v1/platform_pb.d.ts.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/platform_pb.js +54 -0
- package/dist/internal/proto/reactor_wire/v1/platform_pb.js.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/track_pb.d.ts +88 -0
- package/dist/internal/proto/reactor_wire/v1/track_pb.d.ts.map +1 -0
- package/dist/internal/proto/reactor_wire/v1/track_pb.js +33 -0
- package/dist/internal/proto/reactor_wire/v1/track_pb.js.map +1 -0
- package/dist/internal/queue.d.ts +4 -0
- package/dist/internal/queue.d.ts.map +1 -0
- package/dist/{_internal → internal}/queue.js +0 -9
- package/dist/internal/queue.js.map +1 -0
- package/dist/internal/reactorTest/coordinator.d.ts +5 -0
- package/dist/internal/reactorTest/coordinator.d.ts.map +1 -0
- package/dist/internal/reactorTest/coordinator.js +178 -0
- package/dist/internal/reactorTest/coordinator.js.map +1 -0
- package/dist/internal/reactorTest/faults.d.ts +172 -0
- package/dist/internal/reactorTest/faults.d.ts.map +1 -0
- package/dist/internal/reactorTest/faults.js +23 -0
- package/dist/internal/reactorTest/faults.js.map +1 -0
- package/dist/internal/reactorTest/h3.d.ts +431 -0
- package/dist/internal/reactorTest/h3.d.ts.map +1 -0
- package/dist/internal/reactorTest/h3.js +625 -0
- package/dist/internal/reactorTest/h3.js.map +1 -0
- package/dist/internal/reactorTest/media.d.ts +22 -0
- package/dist/internal/reactorTest/media.d.ts.map +1 -0
- package/dist/internal/reactorTest/media.js +34 -0
- package/dist/internal/reactorTest/media.js.map +1 -0
- package/dist/internal/reactorTest/peer.d.ts +318 -0
- package/dist/internal/reactorTest/peer.d.ts.map +1 -0
- package/dist/internal/reactorTest/peer.js +206 -0
- package/dist/internal/reactorTest/peer.js.map +1 -0
- package/dist/internal/reactorTest/playout.d.ts +34 -0
- package/dist/internal/reactorTest/playout.d.ts.map +1 -0
- package/dist/internal/reactorTest/playout.js +340 -0
- package/dist/internal/reactorTest/playout.js.map +1 -0
- package/dist/internal/reactorTest/references.d.ts +25 -0
- package/dist/internal/reactorTest/references.d.ts.map +1 -0
- package/dist/{testing/Png.js → internal/reactorTest/references.js} +50 -12
- package/dist/internal/reactorTest/references.js.map +1 -0
- package/dist/internal/reactorTest/sessions.d.ts +364 -0
- package/dist/internal/reactorTest/sessions.d.ts.map +1 -0
- package/dist/internal/reactorTest/sessions.js +592 -0
- package/dist/internal/reactorTest/sessions.js.map +1 -0
- package/dist/internal/reactorTest/timing.d.ts +13 -0
- package/dist/internal/reactorTest/timing.d.ts.map +1 -0
- package/dist/internal/reactorTest/timing.js +20 -0
- package/dist/internal/reactorTest/timing.js.map +1 -0
- package/dist/internal/recording.d.ts +52 -0
- package/dist/internal/recording.d.ts.map +1 -0
- package/dist/internal/recording.js +141 -0
- package/dist/internal/recording.js.map +1 -0
- package/dist/internal/session/connect.d.ts +34 -0
- package/dist/internal/session/connect.d.ts.map +1 -0
- package/dist/internal/session/connect.js +502 -0
- package/dist/internal/session/connect.js.map +1 -0
- package/dist/internal/session/generation.d.ts +35 -0
- package/dist/internal/session/generation.d.ts.map +1 -0
- package/dist/internal/session/generation.js +185 -0
- package/dist/internal/session/generation.js.map +1 -0
- package/dist/internal/session/ice.d.ts +23 -0
- package/dist/internal/session/ice.d.ts.map +1 -0
- package/dist/internal/session/ice.js +57 -0
- package/dist/internal/session/ice.js.map +1 -0
- package/dist/internal/session/inbound.d.ts +50 -0
- package/dist/internal/session/inbound.d.ts.map +1 -0
- package/dist/internal/session/inbound.js +202 -0
- package/dist/internal/session/inbound.js.map +1 -0
- package/dist/internal/session/model.d.ts +163 -0
- package/dist/internal/session/model.d.ts.map +1 -0
- package/dist/internal/session/model.js +78 -0
- package/dist/internal/session/model.js.map +1 -0
- package/dist/internal/session/requests.d.ts +71 -0
- package/dist/internal/session/requests.d.ts.map +1 -0
- package/dist/internal/session/requests.js +240 -0
- package/dist/internal/session/requests.js.map +1 -0
- package/dist/internal/session/tracks.d.ts +21 -0
- package/dist/internal/session/tracks.d.ts.map +1 -0
- package/dist/internal/session/tracks.js +166 -0
- package/dist/internal/session/tracks.js.map +1 -0
- package/dist/internal/session/upload.d.ts +21 -0
- package/dist/internal/session/upload.d.ts.map +1 -0
- package/dist/internal/session/upload.js +68 -0
- package/dist/internal/session/upload.js.map +1 -0
- package/dist/internal/session.d.ts +66 -0
- package/dist/internal/session.d.ts.map +1 -0
- package/dist/internal/session.js +280 -0
- package/dist/internal/session.js.map +1 -0
- package/dist/{stats.d.ts → internal/stats.d.ts} +30 -16
- package/dist/internal/stats.d.ts.map +1 -0
- package/dist/internal/stats.js +201 -0
- package/dist/internal/stats.js.map +1 -0
- package/dist/internal/token.d.ts +22 -0
- package/dist/internal/token.d.ts.map +1 -0
- package/dist/internal/token.js +65 -0
- package/dist/internal/token.js.map +1 -0
- package/dist/internal/wire.d.ts +37 -0
- package/dist/internal/wire.d.ts.map +1 -0
- package/dist/internal/wire.js +49 -0
- package/dist/internal/wire.js.map +1 -0
- package/notices/bufbuild-protobuf-LICENSE +201 -0
- package/package.json +17 -38
- package/dist/FetchHttp.d.ts +0 -9
- package/dist/FetchHttp.d.ts.map +0 -1
- package/dist/FetchHttp.js +0 -63
- package/dist/FetchHttp.js.map +0 -1
- package/dist/PeerFactory.d.ts +0 -26
- package/dist/PeerFactory.d.ts.map +0 -1
- package/dist/PeerFactory.js +0 -4
- package/dist/PeerFactory.js.map +0 -1
- package/dist/PeerTypes.d.ts +0 -64
- package/dist/PeerTypes.d.ts.map +0 -1
- package/dist/PeerTypes.js +0 -2
- package/dist/PeerTypes.js.map +0 -1
- package/dist/Sequence.d.ts +0 -85
- package/dist/Sequence.d.ts.map +0 -1
- package/dist/Sequence.js +0 -210
- package/dist/Sequence.js.map +0 -1
- package/dist/SessionTypes.d.ts +0 -312
- package/dist/SessionTypes.d.ts.map +0 -1
- package/dist/SessionTypes.js +0 -19
- package/dist/SessionTypes.js.map +0 -1
- package/dist/Submission.d.ts.map +0 -1
- package/dist/Submission.js.map +0 -1
- package/dist/_internal/queue.d.ts +0 -6
- package/dist/_internal/queue.d.ts.map +0 -1
- package/dist/_internal/queue.js.map +0 -1
- package/dist/bytes.d.ts +0 -6
- package/dist/bytes.d.ts.map +0 -1
- package/dist/bytes.js +0 -32
- package/dist/bytes.js.map +0 -1
- package/dist/contract.d.ts +0 -149
- package/dist/contract.d.ts.map +0 -1
- package/dist/contract.js +0 -119
- package/dist/contract.js.map +0 -1
- package/dist/coordinator/_internal/client.d.ts +0 -215
- package/dist/coordinator/_internal/client.d.ts.map +0 -1
- package/dist/coordinator/_internal/client.js +0 -563
- package/dist/coordinator/_internal/client.js.map +0 -1
- package/dist/coordinator/_internal/recording.d.ts +0 -31
- package/dist/coordinator/_internal/recording.d.ts.map +0 -1
- package/dist/coordinator/_internal/recording.js +0 -123
- package/dist/coordinator/_internal/recording.js.map +0 -1
- package/dist/coordinator/_internal/response.d.ts +0 -15
- package/dist/coordinator/_internal/response.d.ts.map +0 -1
- package/dist/coordinator/_internal/response.js +0 -55
- package/dist/coordinator/_internal/response.js.map +0 -1
- package/dist/coordinator/_internal/schemas.d.ts +0 -73
- package/dist/coordinator/_internal/schemas.d.ts.map +0 -1
- package/dist/coordinator/_internal/schemas.js +0 -200
- package/dist/coordinator/_internal/schemas.js.map +0 -1
- package/dist/coordinator/index.d.ts +0 -40
- package/dist/coordinator/index.d.ts.map +0 -1
- package/dist/coordinator/index.js +0 -21
- package/dist/coordinator/index.js.map +0 -1
- package/dist/correlation.d.ts +0 -47
- package/dist/correlation.d.ts.map +0 -1
- package/dist/correlation.js +0 -131
- package/dist/correlation.js.map +0 -1
- package/dist/duration.d.ts +0 -27
- package/dist/duration.d.ts.map +0 -1
- package/dist/duration.js +0 -47
- package/dist/duration.js.map +0 -1
- package/dist/errors.d.ts +0 -1303
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -745
- package/dist/errors.js.map +0 -1
- package/dist/h3/_internal/client.d.ts +0 -9
- package/dist/h3/_internal/client.d.ts.map +0 -1
- package/dist/h3/_internal/client.js +0 -652
- package/dist/h3/_internal/client.js.map +0 -1
- package/dist/h3/_internal/contracts.d.ts.map +0 -1
- package/dist/h3/_internal/contracts.js +0 -123
- package/dist/h3/_internal/contracts.js.map +0 -1
- package/dist/h3/_internal/deployment.d.ts +0 -8
- package/dist/h3/_internal/deployment.d.ts.map +0 -1
- package/dist/h3/_internal/deployment.js +0 -149
- package/dist/h3/_internal/deployment.js.map +0 -1
- package/dist/h3/_internal/evidence.d.ts +0 -17
- package/dist/h3/_internal/evidence.d.ts.map +0 -1
- package/dist/h3/_internal/evidence.js +0 -48
- package/dist/h3/_internal/evidence.js.map +0 -1
- package/dist/h3/_internal/operations.d.ts +0 -58
- package/dist/h3/_internal/operations.d.ts.map +0 -1
- package/dist/h3/_internal/operations.js +0 -268
- package/dist/h3/_internal/operations.js.map +0 -1
- package/dist/h3/_internal/references.d.ts +0 -24
- package/dist/h3/_internal/references.d.ts.map +0 -1
- package/dist/h3/_internal/references.js +0 -309
- package/dist/h3/_internal/references.js.map +0 -1
- package/dist/h3/_internal/request.d.ts +0 -21
- package/dist/h3/_internal/request.d.ts.map +0 -1
- package/dist/h3/_internal/request.js +0 -97
- package/dist/h3/_internal/request.js.map +0 -1
- package/dist/h3/_internal/retained.d.ts +0 -22
- package/dist/h3/_internal/retained.d.ts.map +0 -1
- package/dist/h3/_internal/retained.js +0 -89
- package/dist/h3/_internal/retained.js.map +0 -1
- package/dist/h3/_internal/state.d.ts +0 -44
- package/dist/h3/_internal/state.d.ts.map +0 -1
- package/dist/h3/_internal/state.js +0 -283
- package/dist/h3/_internal/state.js.map +0 -1
- package/dist/h3/index.d.ts +0 -10
- package/dist/h3/index.d.ts.map +0 -1
- package/dist/h3/index.js +0 -7
- package/dist/h3/index.js.map +0 -1
- package/dist/h3/messages.d.ts.map +0 -1
- package/dist/h3/messages.js.map +0 -1
- package/dist/h3/profile.d.ts.map +0 -1
- package/dist/h3/profile.js.map +0 -1
- package/dist/h3/types.d.ts +0 -291
- package/dist/h3/types.d.ts.map +0 -1
- package/dist/h3/types.js +0 -2
- package/dist/h3/types.js.map +0 -1
- package/dist/host.d.ts +0 -26
- package/dist/host.d.ts.map +0 -1
- package/dist/host.js +0 -20
- package/dist/host.js.map +0 -1
- package/dist/json.d.ts +0 -25
- package/dist/json.d.ts.map +0 -1
- package/dist/json.js +0 -143
- package/dist/json.js.map +0 -1
- package/dist/media-stream.d.ts +0 -10
- package/dist/media-stream.d.ts.map +0 -1
- package/dist/media-stream.js +0 -18
- package/dist/media-stream.js.map +0 -1
- package/dist/observation.d.ts +0 -38
- package/dist/observation.d.ts.map +0 -1
- package/dist/observation.js +0 -113
- package/dist/observation.js.map +0 -1
- package/dist/orchestration/elapsed.d.ts +0 -9
- package/dist/orchestration/elapsed.d.ts.map +0 -1
- package/dist/orchestration/elapsed.js +0 -8
- package/dist/orchestration/elapsed.js.map +0 -1
- package/dist/orchestration/h3-source.d.ts +0 -58
- package/dist/orchestration/h3-source.d.ts.map +0 -1
- package/dist/orchestration/h3-source.js +0 -362
- package/dist/orchestration/h3-source.js.map +0 -1
- package/dist/orchestration/index.d.ts +0 -17
- package/dist/orchestration/index.d.ts.map +0 -1
- package/dist/orchestration/index.js +0 -12
- package/dist/orchestration/index.js.map +0 -1
- package/dist/orchestration/media-buffer.d.ts +0 -32
- package/dist/orchestration/media-buffer.d.ts.map +0 -1
- package/dist/orchestration/media-buffer.js +0 -94
- package/dist/orchestration/media-buffer.js.map +0 -1
- package/dist/orchestration/open-h3.d.ts +0 -101
- package/dist/orchestration/open-h3.d.ts.map +0 -1
- package/dist/orchestration/open-h3.js +0 -127
- package/dist/orchestration/open-h3.js.map +0 -1
- package/dist/orchestration/queries.d.ts +0 -10
- package/dist/orchestration/queries.d.ts.map +0 -1
- package/dist/orchestration/queries.js +0 -43
- package/dist/orchestration/queries.js.map +0 -1
- package/dist/orchestration/references.d.ts +0 -18
- package/dist/orchestration/references.d.ts.map +0 -1
- package/dist/orchestration/references.js +0 -79
- package/dist/orchestration/references.js.map +0 -1
- package/dist/orchestration/renewal-state.d.ts +0 -84
- package/dist/orchestration/renewal-state.d.ts.map +0 -1
- package/dist/orchestration/renewal-state.js +0 -95
- package/dist/orchestration/renewal-state.js.map +0 -1
- package/dist/orchestration/renewal.d.ts +0 -103
- package/dist/orchestration/renewal.d.ts.map +0 -1
- package/dist/orchestration/renewal.js +0 -1099
- package/dist/orchestration/renewal.js.map +0 -1
- package/dist/orchestration/request.d.ts +0 -65
- package/dist/orchestration/request.d.ts.map +0 -1
- package/dist/orchestration/request.js +0 -134
- package/dist/orchestration/request.js.map +0 -1
- package/dist/orchestration/retention.d.ts +0 -100
- package/dist/orchestration/retention.d.ts.map +0 -1
- package/dist/orchestration/retention.js +0 -134
- package/dist/orchestration/retention.js.map +0 -1
- package/dist/orchestration/routing.d.ts +0 -21
- package/dist/orchestration/routing.d.ts.map +0 -1
- package/dist/orchestration/routing.js +0 -93
- package/dist/orchestration/routing.js.map +0 -1
- package/dist/orchestration/scheduler-key.d.ts +0 -14
- package/dist/orchestration/scheduler-key.d.ts.map +0 -1
- package/dist/orchestration/scheduler-key.js +0 -62
- package/dist/orchestration/scheduler-key.js.map +0 -1
- package/dist/orchestration/scheduler-policy.d.ts +0 -246
- package/dist/orchestration/scheduler-policy.d.ts.map +0 -1
- package/dist/orchestration/scheduler-policy.js +0 -668
- package/dist/orchestration/scheduler-policy.js.map +0 -1
- package/dist/orchestration/scheduler.d.ts +0 -393
- package/dist/orchestration/scheduler.d.ts.map +0 -1
- package/dist/orchestration/scheduler.js +0 -2621
- package/dist/orchestration/scheduler.js.map +0 -1
- package/dist/orchestration/source-slot.d.ts +0 -124
- package/dist/orchestration/source-slot.d.ts.map +0 -1
- package/dist/orchestration/source-slot.js +0 -348
- package/dist/orchestration/source-slot.js.map +0 -1
- package/dist/orchestration/types.d.ts +0 -1462
- package/dist/orchestration/types.d.ts.map +0 -1
- package/dist/orchestration/types.js +0 -135
- package/dist/orchestration/types.js.map +0 -1
- package/dist/protobuf.d.ts +0 -63
- package/dist/protobuf.d.ts.map +0 -1
- package/dist/protobuf.js +0 -252
- package/dist/protobuf.js.map +0 -1
- package/dist/session/_internal/acquire.d.ts +0 -21
- package/dist/session/_internal/acquire.d.ts.map +0 -1
- package/dist/session/_internal/acquire.js +0 -168
- package/dist/session/_internal/acquire.js.map +0 -1
- package/dist/session/_internal/cleanup.d.ts +0 -19
- package/dist/session/_internal/cleanup.d.ts.map +0 -1
- package/dist/session/_internal/cleanup.js +0 -102
- package/dist/session/_internal/cleanup.js.map +0 -1
- package/dist/session/_internal/lifecycle.d.ts +0 -67
- package/dist/session/_internal/lifecycle.d.ts.map +0 -1
- package/dist/session/_internal/lifecycle.js +0 -142
- package/dist/session/_internal/lifecycle.js.map +0 -1
- package/dist/session/_internal/remote.d.ts +0 -28
- package/dist/session/_internal/remote.d.ts.map +0 -1
- package/dist/session/_internal/remote.js +0 -71
- package/dist/session/_internal/remote.js.map +0 -1
- package/dist/session/_internal/uploads.d.ts +0 -7
- package/dist/session/_internal/uploads.d.ts.map +0 -1
- package/dist/session/_internal/uploads.js +0 -31
- package/dist/session/_internal/uploads.js.map +0 -1
- package/dist/session/commands.d.ts +0 -2
- package/dist/session/commands.d.ts.map +0 -1
- package/dist/session/commands.js +0 -2
- package/dist/session/commands.js.map +0 -1
- package/dist/session/files.d.ts +0 -21
- package/dist/session/files.d.ts.map +0 -1
- package/dist/session/files.js +0 -49
- package/dist/session/files.js.map +0 -1
- package/dist/session/index.d.ts +0 -84
- package/dist/session/index.d.ts.map +0 -1
- package/dist/session/index.js +0 -16
- package/dist/session/index.js.map +0 -1
- package/dist/session/media.d.ts +0 -114
- package/dist/session/media.d.ts.map +0 -1
- package/dist/session/media.js +0 -2
- package/dist/session/media.js.map +0 -1
- package/dist/session/recorder.d.ts +0 -24
- package/dist/session/recorder.d.ts.map +0 -1
- package/dist/session/recorder.js +0 -19
- package/dist/session/recorder.js.map +0 -1
- package/dist/session.d.ts +0 -105
- package/dist/session.d.ts.map +0 -1
- package/dist/session.js +0 -976
- package/dist/session.js.map +0 -1
- package/dist/simulation/_internal/source.d.ts +0 -12
- package/dist/simulation/_internal/source.d.ts.map +0 -1
- package/dist/simulation/_internal/source.js +0 -513
- package/dist/simulation/_internal/source.js.map +0 -1
- package/dist/simulation/index.d.ts +0 -13
- package/dist/simulation/index.d.ts.map +0 -1
- package/dist/simulation/index.js +0 -12
- package/dist/simulation/index.js.map +0 -1
- package/dist/simulation/types.d.ts +0 -39
- package/dist/simulation/types.d.ts.map +0 -1
- package/dist/simulation/types.js +0 -2
- package/dist/simulation/types.js.map +0 -1
- package/dist/stats.d.ts.map +0 -1
- package/dist/stats.js +0 -205
- package/dist/stats.js.map +0 -1
- package/dist/testing/Faults.d.ts +0 -4
- package/dist/testing/Faults.d.ts.map +0 -1
- package/dist/testing/Faults.js +0 -7
- package/dist/testing/Faults.js.map +0 -1
- package/dist/testing/Png.d.ts +0 -3
- package/dist/testing/Png.d.ts.map +0 -1
- package/dist/testing/Png.js.map +0 -1
- package/dist/testing/Wav.d.ts +0 -14
- package/dist/testing/Wav.d.ts.map +0 -1
- package/dist/testing/Wav.js +0 -37
- package/dist/testing/Wav.js.map +0 -1
- package/dist/testing/index.d.ts +0 -5
- package/dist/testing/index.d.ts.map +0 -1
- package/dist/testing/index.js +0 -4
- package/dist/testing/index.js.map +0 -1
- package/dist/wire.d.ts +0 -7
- package/dist/wire.d.ts.map +0 -1
- package/dist/wire.generated.d.ts +0 -305
- package/dist/wire.generated.d.ts.map +0 -1
- package/dist/wire.generated.js +0 -1257
- package/dist/wire.generated.js.map +0 -1
- package/dist/wire.js +0 -5
- package/dist/wire.js.map +0 -1
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/** An H3 clip request, and its projection onto the `enqueue` command's arguments. */
|
|
2
|
+
import * as Schema from "effect/Schema";
|
|
3
|
+
import { audioReferenceLimits, metadataMaxChars, referenceLimits, requestSeconds, } from "./profile.js";
|
|
4
|
+
import { Reference, ValidatedAudioReferenceSchema, ValidatedReferenceSchema, } from "./references.js";
|
|
5
|
+
const isWellFormed = (text) => {
|
|
6
|
+
for (let index = 0; index < text.length; index++) {
|
|
7
|
+
const code = text.charCodeAt(index);
|
|
8
|
+
if (code >= 0xdc00 && code <= 0xdfff)
|
|
9
|
+
return false;
|
|
10
|
+
if (code >= 0xd800 && code <= 0xdbff) {
|
|
11
|
+
const next = text.charCodeAt(++index);
|
|
12
|
+
if (!(next >= 0xdc00 && next <= 0xdfff))
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return true;
|
|
17
|
+
};
|
|
18
|
+
/** The SDK's own prompt bound; the provider's tokenizer decides the model's. */
|
|
19
|
+
const maxPromptBytes = 1_048_576;
|
|
20
|
+
/**
|
|
21
|
+
* A clip request. Up to three audio references (`Audio 1`, `Audio 2`, ... in
|
|
22
|
+
* the prompt), each 2–15 s of WAV, MP3, AAC/M4A, OGG/Opus, FLAC or WebM, mono
|
|
23
|
+
* or stereo, at most 25 MiB. A clip with audio needs at least one image
|
|
24
|
+
* reference or a `continueFrom`, and a continued clip takes at most two,
|
|
25
|
+
* because its continuation uses the third for the previous clip's soundtrack.
|
|
26
|
+
* Audio is sent only to a deployment that declares it (`Contract.referenceAudio`).
|
|
27
|
+
*/
|
|
28
|
+
export const Request = Schema.Struct({
|
|
29
|
+
prompt: Schema.String.check(Schema.makeFilter((prompt) => prompt.trim().length > 0 || "must contain text"), Schema.makeFilter((prompt) => isWellFormed(prompt) || "must be well-formed UTF-16"), Schema.makeFilter((prompt) => new TextEncoder().encode(prompt).length <= maxPromptBytes ||
|
|
30
|
+
"exceeds the SDK's 1 MiB bound")),
|
|
31
|
+
references: Schema.optionalKey(Schema.Array(Schema.Union([Reference, ValidatedReferenceSchema])).check(Schema.isMaxLength(referenceLimits.maxImages))),
|
|
32
|
+
audio: Schema.optionalKey(Schema.Array(Schema.Union([Reference, ValidatedAudioReferenceSchema])).check(Schema.isMaxLength(audioReferenceLimits.maxAudio))),
|
|
33
|
+
seconds: Schema.optionalKey(Schema.Finite.check(Schema.isBetween({ minimum: requestSeconds.min, maximum: requestSeconds.max }))),
|
|
34
|
+
seed: Schema.optionalKey(Schema.Natural),
|
|
35
|
+
position: Schema.optionalKey(Schema.Natural),
|
|
36
|
+
continueFrom: Schema.optionalKey(Schema.String.check(Schema.isUUID())),
|
|
37
|
+
/** The caller's own metadata; acceptance wraps it and gives it back unchanged. */
|
|
38
|
+
metadata: Schema.optionalKey(Schema.String.check(Schema.makeFilter((metadata) => Array.from(metadata).length <= metadataMaxChars || "is too long"))),
|
|
39
|
+
}).check(Schema.makeFilter((request) => {
|
|
40
|
+
const images = request.references?.length ?? 0;
|
|
41
|
+
const audio = request.audio?.length ?? 0;
|
|
42
|
+
const continued = request.continueFrom !== undefined;
|
|
43
|
+
if (continued && audio > audioReferenceLimits.maxAudioWithContinuation)
|
|
44
|
+
return "a continued clip takes at most two audio references";
|
|
45
|
+
if (audio > 0 && images === 0 && !continued)
|
|
46
|
+
return "audio references need an image reference or a continuation";
|
|
47
|
+
if (images + audio + (continued ? 1 : 0) > audioReferenceLimits.maxTotal)
|
|
48
|
+
return "H3 takes at most twelve references in total";
|
|
49
|
+
return true;
|
|
50
|
+
}));
|
|
51
|
+
const wireUpload = (file) => ({
|
|
52
|
+
upload_id: file.uploadId,
|
|
53
|
+
name: file.name,
|
|
54
|
+
mime_type: file.mimeType,
|
|
55
|
+
size: Number(file.size),
|
|
56
|
+
});
|
|
57
|
+
/** The `enqueue` arguments; audio is sent only when the request has some. */
|
|
58
|
+
export const enqueueArguments = (input) => ({
|
|
59
|
+
prompt: input.request.prompt,
|
|
60
|
+
reference_images: input.images.map(wireUpload),
|
|
61
|
+
...(input.audio.length === 0 ? {} : { reference_audios: input.audio.map(wireUpload) }),
|
|
62
|
+
metadata: input.metadata,
|
|
63
|
+
...(input.request.seconds === undefined ? {} : { seconds: input.request.seconds }),
|
|
64
|
+
...(input.request.seed === undefined ? {} : { seed: input.request.seed }),
|
|
65
|
+
...(input.request.position === undefined ? {} : { position: input.request.position }),
|
|
66
|
+
...(input.request.continueFrom === undefined
|
|
67
|
+
? {}
|
|
68
|
+
: { continue_from_clip_id: input.request.continueFrom }),
|
|
69
|
+
});
|
|
70
|
+
//# sourceMappingURL=request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../../src/internal/h3/request.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,SAAS,EACT,6BAA6B,EAC7B,wBAAwB,GACzB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,YAAY,GAAG,CAAC,IAAY,EAAW,EAAE;IAC7C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM;YAAE,OAAO,KAAK,CAAC;QACnD,IAAI,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC;gBAAE,OAAO,KAAK,CAAC;QACxD,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,gFAAgF;AAChF,MAAM,cAAc,GAAG,SAAS,CAAC;AAEjC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CACzB,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,mBAAmB,CAAC,EAC9E,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,4BAA4B,CAAC,EACnF,MAAM,CAAC,UAAU,CACf,CAAC,MAAM,EAAE,EAAE,CACT,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,cAAc;QACzD,+BAA+B,CAClC,CACF;IACD,UAAU,EAAE,MAAM,CAAC,WAAW,CAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC,KAAK,CACrE,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAC9C,CACF;IACD,KAAK,EAAE,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,6BAA6B,CAAC,CAAC,CAAC,CAAC,KAAK,CAC1E,MAAM,CAAC,WAAW,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAClD,CACF;IACD,OAAO,EAAE,MAAM,CAAC,WAAW,CACzB,MAAM,CAAC,MAAM,CAAC,KAAK,CACjB,MAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,cAAc,CAAC,GAAG,EAAE,CAAC,CAC/E,CACF;IACD,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;IACxC,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;IAC5C,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACtE,kFAAkF;IAClF,QAAQ,EAAE,MAAM,CAAC,WAAW,CAC1B,MAAM,CAAC,MAAM,CAAC,KAAK,CACjB,MAAM,CAAC,UAAU,CACf,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,gBAAgB,IAAI,aAAa,CAC/E,CACF,CACF;CACF,CAAC,CAAC,KAAK,CACN,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,EAAE;IAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC;IACrD,IAAI,SAAS,IAAI,KAAK,GAAG,oBAAoB,CAAC,wBAAwB;QACpE,OAAO,qDAAqD,CAAC;IAC/D,IAAI,KAAK,GAAG,CAAC,IAAI,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS;QACzC,OAAO,4DAA4D,CAAC;IACtE,IAAI,MAAM,GAAG,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,QAAQ;QACtE,OAAO,6CAA6C,CAAC;IACvD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC,CACH,CAAC;AASF,MAAM,UAAU,GAAG,CAAC,IAAqB,EAAE,EAAE,CAAC,CAAC;IAC7C,SAAS,EAAE,IAAI,CAAC,QAAQ;IACxB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,SAAS,EAAE,IAAI,CAAC,QAAQ;IACxB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;CACxB,CAAC,CAAC;AAEH,6EAA6E;AAC7E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAKhC,EAA0B,EAAE,CAAC,CAAC;IAC7B,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;IAC5B,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;IAC9C,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;IACtF,QAAQ,EAAE,KAAK,CAAC,QAAQ;IACxB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IAClF,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACzE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IACrF,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS;QAC1C,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,EAAE,qBAAqB,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;CAC3D,CAAC,CAAC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The provider's facts as a pure reducer over session events: which state and
|
|
3
|
+
* queue H3 last reported, whether the two agree, and each clip's latest
|
|
4
|
+
* lifecycle. Acceptance evidence is decided here too, from a clip's exact
|
|
5
|
+
* captured prompt and namespaced metadata.
|
|
6
|
+
*/
|
|
7
|
+
import * as Result from "effect/Result";
|
|
8
|
+
import { ReactorError } from "../../ReactorError.js";
|
|
9
|
+
import type { CommandReply, SessionEvent } from "../../Session.js";
|
|
10
|
+
import type { Clip, DecodedMessage, MessageType, Queue, State } from "./messages.js";
|
|
11
|
+
export interface ClipObservation {
|
|
12
|
+
readonly clip: Clip;
|
|
13
|
+
/** The last explicit lifecycle message; null means only a queue snapshot listed it. */
|
|
14
|
+
readonly lifecycle: Exclude<MessageType, "queue_update" | "state_update"> | null;
|
|
15
|
+
readonly source: CommandReply;
|
|
16
|
+
}
|
|
17
|
+
export interface Facts {
|
|
18
|
+
readonly state: State;
|
|
19
|
+
readonly queue: Queue;
|
|
20
|
+
}
|
|
21
|
+
interface SnapshotBase {
|
|
22
|
+
readonly sessionId: string;
|
|
23
|
+
readonly transportGeneration: bigint;
|
|
24
|
+
readonly revision: bigint;
|
|
25
|
+
readonly clips: ReadonlyArray<ClipObservation>;
|
|
26
|
+
}
|
|
27
|
+
export type ProviderSnapshot = SnapshotBase & ({
|
|
28
|
+
readonly _tag: "Synchronizing";
|
|
29
|
+
readonly lastFacts: Facts | null;
|
|
30
|
+
} | {
|
|
31
|
+
readonly _tag: "Ready";
|
|
32
|
+
readonly state: State;
|
|
33
|
+
readonly queue: Queue;
|
|
34
|
+
} | {
|
|
35
|
+
readonly _tag: "Unavailable";
|
|
36
|
+
readonly cause: ReactorError;
|
|
37
|
+
readonly lastFacts: Facts | null;
|
|
38
|
+
});
|
|
39
|
+
export interface Model {
|
|
40
|
+
readonly sessionId: string;
|
|
41
|
+
readonly generation: bigint;
|
|
42
|
+
readonly revision: bigint;
|
|
43
|
+
readonly maxClips: number;
|
|
44
|
+
readonly state: State | undefined;
|
|
45
|
+
readonly queue: Queue | undefined;
|
|
46
|
+
/** A message implied a change the last full state or queue does not show. */
|
|
47
|
+
readonly stateDirty: boolean;
|
|
48
|
+
readonly queueDirty: boolean;
|
|
49
|
+
readonly lastFacts: Facts | null;
|
|
50
|
+
readonly cause: ReactorError | undefined;
|
|
51
|
+
readonly clips: ReadonlyMap<string, ClipObservation>;
|
|
52
|
+
/** Request ids whose message body this generation applied, to drop a repeated body. */
|
|
53
|
+
readonly bodies: ReadonlyMap<string, bigint>;
|
|
54
|
+
}
|
|
55
|
+
type Disposition = "applied" | "duplicate" | "stale";
|
|
56
|
+
export declare const initial: ({ sessionId, generation, revision, maxClips, }: {
|
|
57
|
+
readonly sessionId: string;
|
|
58
|
+
readonly generation: bigint;
|
|
59
|
+
readonly revision: bigint;
|
|
60
|
+
readonly maxClips: number;
|
|
61
|
+
}) => Model;
|
|
62
|
+
export declare const availability: (model: Model) => ProviderSnapshot["_tag"];
|
|
63
|
+
export declare const snapshot: (model: Model) => ProviderSnapshot;
|
|
64
|
+
export declare const unavailable: ({ model, cause, }: {
|
|
65
|
+
readonly model: Model;
|
|
66
|
+
readonly cause: ReactorError;
|
|
67
|
+
}) => Model;
|
|
68
|
+
/** Orders an event against the facts: a later generation starts over from fresh reads. */
|
|
69
|
+
export declare const admit: ({ model, source, }: {
|
|
70
|
+
readonly model: Model;
|
|
71
|
+
readonly source: SessionEvent;
|
|
72
|
+
}) => readonly [Disposition, Model];
|
|
73
|
+
/** Applies a decoded message; only full state and queue reads make the facts current. */
|
|
74
|
+
export declare const apply: ({ model, message, source, }: {
|
|
75
|
+
readonly model: Model;
|
|
76
|
+
readonly message: DecodedMessage;
|
|
77
|
+
readonly source: CommandReply;
|
|
78
|
+
}) => Result.Result<readonly [Disposition, Model], ReactorError>;
|
|
79
|
+
export interface Acceptance {
|
|
80
|
+
readonly submissionId: string;
|
|
81
|
+
readonly clip: Clip;
|
|
82
|
+
readonly evidence: {
|
|
83
|
+
readonly kind: "correlated" | "metadata";
|
|
84
|
+
readonly source: CommandReply;
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/** What a submission sent, captured once, which only its own clip can match. */
|
|
88
|
+
export interface Identity {
|
|
89
|
+
readonly id: string;
|
|
90
|
+
readonly metadata: string;
|
|
91
|
+
readonly prompt: string;
|
|
92
|
+
readonly generation: bigint;
|
|
93
|
+
}
|
|
94
|
+
/** The caller's metadata wrapped with this provider's namespace and the submission id. */
|
|
95
|
+
export declare const encodeMetadata: ({ namespace, submission, caller, }: {
|
|
96
|
+
readonly namespace: string;
|
|
97
|
+
readonly submission: string;
|
|
98
|
+
readonly caller?: string | undefined;
|
|
99
|
+
}) => Result.Result<string, ReactorError>;
|
|
100
|
+
/** Random bytes in a provider's namespace, which its metadata carries in hex. */
|
|
101
|
+
export declare const namespaceBytes = 16;
|
|
102
|
+
/**
|
|
103
|
+
* Whether `caller` stays within the metadata bound once any provider wraps it,
|
|
104
|
+
* so it can be checked before a provider exists: what `encodeMetadata` refuses
|
|
105
|
+
* for some provider, this refuses.
|
|
106
|
+
*/
|
|
107
|
+
export declare const callerFits: (caller: string) => boolean;
|
|
108
|
+
/** The local submission a clip's metadata names; foreign or extended metadata names none. */
|
|
109
|
+
export declare const submissionFromMetadata: ({ namespace, metadata, }: {
|
|
110
|
+
readonly namespace: string;
|
|
111
|
+
readonly metadata: string;
|
|
112
|
+
}) => string | undefined;
|
|
113
|
+
/** Only the exact captured prompt and metadata, in the submission's generation, prove acceptance. */
|
|
114
|
+
export declare const acceptanceFor: ({ identity, clip, source, }: {
|
|
115
|
+
readonly identity: Identity;
|
|
116
|
+
readonly clip: Clip;
|
|
117
|
+
readonly source: CommandReply;
|
|
118
|
+
}) => Acceptance | undefined;
|
|
119
|
+
export {};
|
|
120
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/internal/h3/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The provider's facts as a pure reducer over session events: which state and
|
|
3
|
+
* queue H3 last reported, whether the two agree, and each clip's latest
|
|
4
|
+
* lifecycle. Acceptance evidence is decided here too, from a clip's exact
|
|
5
|
+
* captured prompt and namespaced metadata.
|
|
6
|
+
*/
|
|
7
|
+
import * as Result from "effect/Result";
|
|
8
|
+
import * as Schema from "effect/Schema";
|
|
9
|
+
import { ReactorError } from "../../ReactorError.js";
|
|
10
|
+
import { metadataMaxChars } from "./profile.js";
|
|
11
|
+
export const initial = ({ sessionId, generation, revision, maxClips, }) => ({
|
|
12
|
+
sessionId,
|
|
13
|
+
generation,
|
|
14
|
+
revision,
|
|
15
|
+
maxClips,
|
|
16
|
+
state: undefined,
|
|
17
|
+
queue: undefined,
|
|
18
|
+
stateDirty: true,
|
|
19
|
+
queueDirty: true,
|
|
20
|
+
lastFacts: null,
|
|
21
|
+
cause: undefined,
|
|
22
|
+
clips: new Map(),
|
|
23
|
+
bodies: new Map(),
|
|
24
|
+
});
|
|
25
|
+
const rank = (type) => {
|
|
26
|
+
switch (type) {
|
|
27
|
+
case "clip_generated":
|
|
28
|
+
return 1;
|
|
29
|
+
case "clip_started":
|
|
30
|
+
return 2;
|
|
31
|
+
case "clip_finished":
|
|
32
|
+
case "clip_stopped":
|
|
33
|
+
case "clip_failed":
|
|
34
|
+
case "clip_popped":
|
|
35
|
+
return 3;
|
|
36
|
+
default:
|
|
37
|
+
return 0;
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* A state and queue that were each read in full, and that agree with each
|
|
42
|
+
* other. H3 reports a clip armed to start after its seam as playing; whether
|
|
43
|
+
* it has left the playout queue by then is undocumented, so a playing clip at
|
|
44
|
+
* the front of that queue is taken as armed rather than as a disagreement.
|
|
45
|
+
*/
|
|
46
|
+
const coherent = (model) => model.state !== undefined &&
|
|
47
|
+
model.queue !== undefined &&
|
|
48
|
+
!model.stateDirty &&
|
|
49
|
+
!model.queueDirty &&
|
|
50
|
+
model.state.generation_queued === model.queue.generation.length &&
|
|
51
|
+
model.state.playout_queued === model.queue.playout.length &&
|
|
52
|
+
![...model.queue.generation, ...model.queue.playout.slice(1)].some((clip) => clip.clip_id === model.state?.playing_clip_id);
|
|
53
|
+
export const availability = (model) => {
|
|
54
|
+
if (model.cause !== undefined)
|
|
55
|
+
return "Unavailable";
|
|
56
|
+
return coherent(model) ? "Ready" : "Synchronizing";
|
|
57
|
+
};
|
|
58
|
+
export const snapshot = (model) => {
|
|
59
|
+
const base = {
|
|
60
|
+
sessionId: model.sessionId,
|
|
61
|
+
transportGeneration: model.generation,
|
|
62
|
+
revision: model.revision,
|
|
63
|
+
clips: [...model.clips.values()],
|
|
64
|
+
};
|
|
65
|
+
if (model.cause !== undefined)
|
|
66
|
+
return { ...base, _tag: "Unavailable", cause: model.cause, lastFacts: model.lastFacts };
|
|
67
|
+
if (coherent(model))
|
|
68
|
+
return { ...base, _tag: "Ready", state: model.state, queue: model.queue };
|
|
69
|
+
return { ...base, _tag: "Synchronizing", lastFacts: model.lastFacts };
|
|
70
|
+
};
|
|
71
|
+
const remember = (model) => coherent(model) &&
|
|
72
|
+
(model.lastFacts?.state !== model.state || model.lastFacts.queue !== model.queue)
|
|
73
|
+
? { ...model, lastFacts: { state: model.state, queue: model.queue } }
|
|
74
|
+
: model;
|
|
75
|
+
export const unavailable = ({ model, cause, }) => ({
|
|
76
|
+
...remember(model),
|
|
77
|
+
cause,
|
|
78
|
+
});
|
|
79
|
+
const reread = (model) => ({
|
|
80
|
+
...model,
|
|
81
|
+
state: undefined,
|
|
82
|
+
queue: undefined,
|
|
83
|
+
stateDirty: true,
|
|
84
|
+
queueDirty: true,
|
|
85
|
+
});
|
|
86
|
+
/** Orders an event against the facts: a later generation starts over from fresh reads. */
|
|
87
|
+
export const admit = ({ model, source, }) => {
|
|
88
|
+
if (source.generation < model.generation)
|
|
89
|
+
return ["stale", model];
|
|
90
|
+
if (source.sequence <= model.revision)
|
|
91
|
+
return ["duplicate", model];
|
|
92
|
+
let next = { ...model, revision: source.sequence };
|
|
93
|
+
if (source.generation > model.generation)
|
|
94
|
+
next = {
|
|
95
|
+
...reread(remember(next)),
|
|
96
|
+
generation: source.generation,
|
|
97
|
+
bodies: new Map(),
|
|
98
|
+
cause: undefined,
|
|
99
|
+
};
|
|
100
|
+
if (source._tag === "Model" && source.correlation === "stale-generation")
|
|
101
|
+
return ["stale", next];
|
|
102
|
+
// The correlator labels a body that follows an ACK duplicate; an ACK is never a payload.
|
|
103
|
+
if (source._tag === "Model" && source.kind === "message" && source.requestId !== "") {
|
|
104
|
+
if (source.correlation === "duplicate" &&
|
|
105
|
+
next.bodies.get(source.requestId) === source.generation)
|
|
106
|
+
return ["duplicate", next];
|
|
107
|
+
const bodies = new Map(next.bodies).set(source.requestId, source.generation);
|
|
108
|
+
if (bodies.size > 256)
|
|
109
|
+
bodies.delete(bodies.keys().next().value ?? "");
|
|
110
|
+
next = { ...next, bodies };
|
|
111
|
+
}
|
|
112
|
+
if (source._tag === "Status") {
|
|
113
|
+
if (source.status === "disconnected" ||
|
|
114
|
+
source.status === "closing" ||
|
|
115
|
+
source.status === "closed")
|
|
116
|
+
next = unavailable({
|
|
117
|
+
model: next,
|
|
118
|
+
cause: ReactorError.fromCode(source.status === "disconnected" ? "Disconnected" : "Closed", `H3 session is ${source.status}`, { operation: "H3 observation" }),
|
|
119
|
+
});
|
|
120
|
+
else if (source.status === "ready" && next.cause !== undefined)
|
|
121
|
+
next = { ...reread(next), cause: undefined };
|
|
122
|
+
}
|
|
123
|
+
return ["applied", next];
|
|
124
|
+
};
|
|
125
|
+
const overflow = () => ReactorError.fromCode("Overflow", "H3 clip observation bound exceeded", {
|
|
126
|
+
operation: "H3 observation",
|
|
127
|
+
});
|
|
128
|
+
const invalidate = (model, state, queue) => ({
|
|
129
|
+
...remember(model),
|
|
130
|
+
stateDirty: model.stateDirty || state,
|
|
131
|
+
queueDirty: model.queueDirty || queue,
|
|
132
|
+
});
|
|
133
|
+
/** Applies a decoded message; only full state and queue reads make the facts current. */
|
|
134
|
+
export const apply = ({ model, message, source, }) => {
|
|
135
|
+
const done = (next) => Result.succeed(["applied", next.cause === undefined ? remember(next) : next]);
|
|
136
|
+
if (message.type === "unknown")
|
|
137
|
+
return done(model);
|
|
138
|
+
if (message.type === "state_update")
|
|
139
|
+
return done({ ...model, state: message.data, stateDirty: false });
|
|
140
|
+
if (message.type === "queue_update") {
|
|
141
|
+
const listed = [...message.data.generation, ...message.data.playout, ...message.data.history];
|
|
142
|
+
const clips = new Map(model.clips);
|
|
143
|
+
for (const clip of listed)
|
|
144
|
+
clips.set(clip.clip_id, {
|
|
145
|
+
clip,
|
|
146
|
+
source,
|
|
147
|
+
lifecycle: clips.get(clip.clip_id)?.lifecycle ?? null,
|
|
148
|
+
});
|
|
149
|
+
if (clips.size > model.maxClips)
|
|
150
|
+
return Result.fail(overflow());
|
|
151
|
+
return done({ ...model, queue: message.data, queueDirty: false, clips });
|
|
152
|
+
}
|
|
153
|
+
if (!("clip" in message.data))
|
|
154
|
+
return done(settingChanged(model, message));
|
|
155
|
+
const clip = message.data.clip;
|
|
156
|
+
const previous = model.clips.get(clip.clip_id);
|
|
157
|
+
if (previous === undefined && model.clips.size >= model.maxClips)
|
|
158
|
+
return Result.fail(overflow());
|
|
159
|
+
const put = (lifecycle) => ({
|
|
160
|
+
...model,
|
|
161
|
+
clips: new Map(model.clips).set(clip.clip_id, { clip, source, lifecycle }),
|
|
162
|
+
});
|
|
163
|
+
if (message.type === "clip_moved") {
|
|
164
|
+
const next = put(previous?.lifecycle ?? null);
|
|
165
|
+
const moved = model.queue?.[message.data.queue][message.data.position]?.clip_id === clip.clip_id;
|
|
166
|
+
return done(moved ? next : invalidate(next, false, true));
|
|
167
|
+
}
|
|
168
|
+
// An end is final, and a later phase is never reversed by an earlier one.
|
|
169
|
+
if (previous !== undefined &&
|
|
170
|
+
previous.lifecycle !== null &&
|
|
171
|
+
(previous.lifecycle === message.type ||
|
|
172
|
+
rank(previous.lifecycle) === 3 ||
|
|
173
|
+
rank(previous.lifecycle) > rank(message.type)))
|
|
174
|
+
return Result.succeed(["duplicate", model]);
|
|
175
|
+
const next = put(message.type);
|
|
176
|
+
const queued = model.queue?.generation.some((entry) => entry.clip_id === clip.clip_id) === true;
|
|
177
|
+
const ready = model.queue?.playout.some((entry) => entry.clip_id === clip.clip_id) === true;
|
|
178
|
+
const playing = model.state?.playing_clip_id === clip.clip_id;
|
|
179
|
+
switch (message.type) {
|
|
180
|
+
case "clip_queued":
|
|
181
|
+
return done(!queued && !ready && !playing ? invalidate(next, true, true) : next);
|
|
182
|
+
case "clip_generated":
|
|
183
|
+
return done(!ready && !playing ? invalidate(next, true, true) : next);
|
|
184
|
+
case "clip_started":
|
|
185
|
+
return done(invalidate(next, !playing, queued || ready));
|
|
186
|
+
case "clip_failed":
|
|
187
|
+
case "clip_popped":
|
|
188
|
+
return done(queued || ready ? invalidate(next, true, true) : next);
|
|
189
|
+
case "clip_finished":
|
|
190
|
+
case "clip_stopped":
|
|
191
|
+
return done(playing || model.state === undefined ? invalidate(next, true, false) : next);
|
|
192
|
+
default:
|
|
193
|
+
// Only the clip lifecycle messages above carry a clip.
|
|
194
|
+
return done(model);
|
|
195
|
+
}
|
|
196
|
+
};
|
|
197
|
+
/** A setting's acknowledgement invalidates the state only when it differs from it. */
|
|
198
|
+
const settingChanged = (model, message) => {
|
|
199
|
+
const state = model.state;
|
|
200
|
+
switch (message.type) {
|
|
201
|
+
case "seed_accepted":
|
|
202
|
+
return state?.seed === message.data.seed ? model : invalidate(model, true, false);
|
|
203
|
+
case "clip_length_accepted":
|
|
204
|
+
return state?.clip_seconds === message.data.clip_seconds
|
|
205
|
+
? model
|
|
206
|
+
: invalidate(model, true, false);
|
|
207
|
+
case "canvas_accepted":
|
|
208
|
+
return state?.aspect === message.data.aspect &&
|
|
209
|
+
state.width === message.data.width &&
|
|
210
|
+
state.height === message.data.height
|
|
211
|
+
? model
|
|
212
|
+
: invalidate(model, true, false);
|
|
213
|
+
case "autoplay_accepted":
|
|
214
|
+
return state?.autoplay === message.data.enabled ? model : invalidate(model, true, false);
|
|
215
|
+
case "flush_accepted":
|
|
216
|
+
return state?.flush_on_clip_end === message.data.enabled
|
|
217
|
+
? model
|
|
218
|
+
: invalidate(model, true, false);
|
|
219
|
+
case "session_reset":
|
|
220
|
+
return state?.playing === false &&
|
|
221
|
+
model.queue?.generation.length === 0 &&
|
|
222
|
+
model.queue.playout.length === 0
|
|
223
|
+
? model
|
|
224
|
+
: invalidate(model, true, true);
|
|
225
|
+
default:
|
|
226
|
+
return model;
|
|
227
|
+
}
|
|
228
|
+
};
|
|
229
|
+
const Envelope = Schema.fromJsonString(Schema.Struct({
|
|
230
|
+
reactor_effect_h3: Schema.Literal(1),
|
|
231
|
+
namespace: Schema.String,
|
|
232
|
+
submission: Schema.String,
|
|
233
|
+
caller: Schema.String,
|
|
234
|
+
}));
|
|
235
|
+
/** The caller's metadata wrapped with this provider's namespace and the submission id. */
|
|
236
|
+
export const encodeMetadata = ({ namespace, submission, caller = "", }) => Result.flatMap(Result.mapError(Schema.encodeResult(Envelope)({ reactor_effect_h3: 1, namespace, submission, caller }), () => ReactorError.fromCode("InvalidInput", "Metadata could not be encoded")), (value) => Array.from(value).length > metadataMaxChars
|
|
237
|
+
? Result.fail(ReactorError.fromCode("InvalidInput", `Metadata including acceptance identity exceeds ${metadataMaxChars} characters`, { operation: "enqueue", outcome: "not-submitted" }))
|
|
238
|
+
: Result.succeed(value));
|
|
239
|
+
/** Random bytes in a provider's namespace, which its metadata carries in hex. */
|
|
240
|
+
export const namespaceBytes = 16;
|
|
241
|
+
const widestNamespace = "f".repeat(namespaceBytes * 2);
|
|
242
|
+
/** A submission counted to twenty digits, more enqueues than one provider ever sends. */
|
|
243
|
+
const widestSubmission = `${widestNamespace}:${"9".repeat(20)}`;
|
|
244
|
+
/**
|
|
245
|
+
* Whether `caller` stays within the metadata bound once any provider wraps it,
|
|
246
|
+
* so it can be checked before a provider exists: what `encodeMetadata` refuses
|
|
247
|
+
* for some provider, this refuses.
|
|
248
|
+
*/
|
|
249
|
+
export const callerFits = (caller) => Result.isSuccess(encodeMetadata({ namespace: widestNamespace, submission: widestSubmission, caller }));
|
|
250
|
+
/** The local submission a clip's metadata names; foreign or extended metadata names none. */
|
|
251
|
+
export const submissionFromMetadata = ({ namespace, metadata, }) => {
|
|
252
|
+
const decoded = Schema.decodeResult(Envelope)(metadata, { onExcessProperty: "error" });
|
|
253
|
+
return Result.isSuccess(decoded) && decoded.success.namespace === namespace
|
|
254
|
+
? decoded.success.submission
|
|
255
|
+
: undefined;
|
|
256
|
+
};
|
|
257
|
+
/** Only the exact captured prompt and metadata, in the submission's generation, prove acceptance. */
|
|
258
|
+
export const acceptanceFor = ({ identity, clip, source, }) => {
|
|
259
|
+
if (identity.generation !== source.generation ||
|
|
260
|
+
identity.metadata !== clip.metadata ||
|
|
261
|
+
identity.prompt !== clip.prompt)
|
|
262
|
+
return undefined;
|
|
263
|
+
const correlated = source.kind === "message" && source.type === "clip_queued" && source.correlation === "matched";
|
|
264
|
+
return {
|
|
265
|
+
submissionId: identity.id,
|
|
266
|
+
clip,
|
|
267
|
+
evidence: { kind: correlated ? "correlated" : "metadata", source },
|
|
268
|
+
};
|
|
269
|
+
};
|
|
270
|
+
//# sourceMappingURL=state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/internal/h3/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,4 @@ export interface Options<P, A, E> {
|
|
|
37
37
|
* because a caller holds a prepared Submission.
|
|
38
38
|
*/
|
|
39
39
|
export declare const make: <P, A, E>(options: Options<P, A, E>) => Effect.Effect<Submission<A, E>, never, Scope.Scope>;
|
|
40
|
-
|
|
41
|
-
export declare const map: <A, B, E>(submission: Submission<A, E>, project: (value: A) => B) => Submission<B, E>;
|
|
42
|
-
//# sourceMappingURL=Submission.d.ts.map
|
|
40
|
+
//# sourceMappingURL=submission.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submission.d.ts","sourceRoot":"","sources":["../../../src/internal/h3/submission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AAEpC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,8EAA8E;AAC9E,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,IAClB;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;CAAE,CAAC;AAEnE,MAAM,WAAW,UAAU,CAAC,CAAC,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,+FAA+F;IAC/F,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAC5C;AAED,MAAM,WAAW,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACnD;;;;;;OAMG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1D,qGAAqG;IACrG,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACxD;AAED;;;;GAIG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,WACjB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACxB,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CA8CjD,CAAC"}
|
|
@@ -41,12 +41,4 @@ export const make = (options) => Effect.gen(function* () {
|
|
|
41
41
|
state: Effect.sync(() => state),
|
|
42
42
|
};
|
|
43
43
|
});
|
|
44
|
-
|
|
45
|
-
export const map = (submission, project) => ({
|
|
46
|
-
id: submission.id,
|
|
47
|
-
submit: submission.submit.pipe(Effect.map(project)),
|
|
48
|
-
state: submission.state.pipe(Effect.map((state) => state._tag === "Completed"
|
|
49
|
-
? { _tag: "Completed", exit: Exit.map(state.exit, project) }
|
|
50
|
-
: state)),
|
|
51
|
-
});
|
|
52
|
-
//# sourceMappingURL=Submission.js.map
|
|
44
|
+
//# sourceMappingURL=submission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submission.js","sourceRoot":"","sources":["../../../src/internal/h3/submission.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fan-out to bounded observers. Publishing never waits for a reader, and an
|
|
3
|
+
* observer that falls behind fails with `Overflow` rather than silently
|
|
4
|
+
* missing values: it can observe again for a fresh state. `PubSub` offers
|
|
5
|
+
* backpressure, dropping or sliding, none of which fails the one slow reader.
|
|
6
|
+
*
|
|
7
|
+
* A reader is bounded by a count and, when values are weighed, by the weight
|
|
8
|
+
* it holds, so a few large media frames cannot buffer without bound.
|
|
9
|
+
*/
|
|
10
|
+
import * as Cause from "effect/Cause";
|
|
11
|
+
import * as Effect from "effect/Effect";
|
|
12
|
+
import type * as Scope from "effect/Scope";
|
|
13
|
+
import * as Stream from "effect/Stream";
|
|
14
|
+
import { ReactorError } from "../ReactorError.js";
|
|
15
|
+
export interface Hub<A> {
|
|
16
|
+
/** Delivers to every observer; one that is full fails with `Overflow`. */
|
|
17
|
+
readonly publish: (value: A) => Effect.Effect<void>;
|
|
18
|
+
/** An observer registered now; its stream has one reader at a time. */
|
|
19
|
+
readonly subscribe: (capacity?: number, maxWeight?: number) => Effect.Effect<Stream.Stream<A, ReactorError>, ReactorError, Scope.Scope>;
|
|
20
|
+
readonly end: Effect.Effect<void>;
|
|
21
|
+
readonly fail: (cause: Cause.Cause<ReactorError>) => Effect.Effect<void>;
|
|
22
|
+
readonly observers: Effect.Effect<number>;
|
|
23
|
+
/** Observers that fell behind and failed. */
|
|
24
|
+
readonly overflows: Effect.Effect<bigint>;
|
|
25
|
+
}
|
|
26
|
+
export interface Options<A> {
|
|
27
|
+
readonly maxObservers?: number;
|
|
28
|
+
/** A value's weight against a reader's `maxWeight`; unweighed values weigh nothing. */
|
|
29
|
+
readonly weigh?: (value: A) => number;
|
|
30
|
+
}
|
|
31
|
+
export declare const make: <A>(options?: Options<A>) => Effect.Effect<Hub<A>>;
|
|
32
|
+
//# sourceMappingURL=hub.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hub.d.ts","sourceRoot":"","sources":["../../src/internal/hub.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAqBlD,MAAM,WAAW,GAAG,CAAC,CAAC;IACpB,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACpD,uEAAuE;IACvE,QAAQ,CAAC,SAAS,EAAE,CAClB,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,KACf,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IAC9E,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACzE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1C,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,OAAO,CAAC,CAAC;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,uFAAuF;IACvF,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,MAAM,CAAC;CACvC;AAMD,eAAO,MAAM,IAAI,GAAI,CAAC,YAAW,OAAO,CAAC,CAAC,CAAC,KAAQ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAmHpE,CAAC"}
|