reactor-effect-client 0.7.0 → 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 -1088
- 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 -222
- package/dist/orchestration/scheduler-policy.d.ts.map +0 -1
- package/dist/orchestration/scheduler-policy.js +0 -582
- package/dist/orchestration/scheduler-policy.js.map +0 -1
- package/dist/orchestration/scheduler.d.ts +0 -383
- package/dist/orchestration/scheduler.d.ts.map +0 -1
- package/dist/orchestration/scheduler.js +0 -2597
- 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,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* H3's commands: each one's arguments and the message it replies with, and
|
|
3
|
+
* the check that a deployment's OpenAPI document offers them.
|
|
4
|
+
*/
|
|
5
|
+
import * as Result from "effect/Result";
|
|
6
|
+
import * as Schema from "effect/Schema";
|
|
7
|
+
import * as Struct from "effect/Struct";
|
|
8
|
+
import { ReactorError } from "../../ReactorError.js";
|
|
9
|
+
import { documentedVersion, modelName, source } from "./profile.js";
|
|
10
|
+
const Upload = Schema.Struct({
|
|
11
|
+
upload_id: Schema.String,
|
|
12
|
+
name: Schema.String,
|
|
13
|
+
mime_type: Schema.String,
|
|
14
|
+
size: Schema.Int,
|
|
15
|
+
});
|
|
16
|
+
const NoArguments = Schema.Record(Schema.String, Schema.Never);
|
|
17
|
+
/**
|
|
18
|
+
* One command-to-reply authority for the client, the simulated model and the
|
|
19
|
+
* deployment check. Required keys are what this adapter always sends;
|
|
20
|
+
* nullable parameters follow the documented deployment shape.
|
|
21
|
+
*/
|
|
22
|
+
export const Commands = {
|
|
23
|
+
enqueue: {
|
|
24
|
+
args: Schema.Struct({
|
|
25
|
+
prompt: Schema.String,
|
|
26
|
+
reference_images: Upload.pipe(Schema.Array, Schema.NullOr),
|
|
27
|
+
reference_audios: Upload.pipe(Schema.Array, Schema.NullOr, Schema.optionalKey),
|
|
28
|
+
seconds: Schema.Finite.pipe(Schema.NullOr, Schema.optionalKey),
|
|
29
|
+
seed: Schema.Int.pipe(Schema.NullOr, Schema.optionalKey),
|
|
30
|
+
position: Schema.Int.pipe(Schema.NullOr, Schema.optionalKey),
|
|
31
|
+
metadata: Schema.String,
|
|
32
|
+
continue_from_clip_id: Schema.optionalKey(Schema.String),
|
|
33
|
+
}),
|
|
34
|
+
reply: "clip_queued",
|
|
35
|
+
},
|
|
36
|
+
move: {
|
|
37
|
+
args: Schema.Struct({ clip_id: Schema.String, position: Schema.Int }),
|
|
38
|
+
reply: "clip_moved",
|
|
39
|
+
},
|
|
40
|
+
pop: { args: Schema.Struct({ clip_id: Schema.String }), reply: "clip_popped" },
|
|
41
|
+
play: { args: Schema.Struct({ clip_id: Schema.String }), reply: null },
|
|
42
|
+
stop: { args: NoArguments, reply: null },
|
|
43
|
+
set_seed: { args: Schema.Struct({ seed: Schema.Int }), reply: "seed_accepted" },
|
|
44
|
+
set_clip_seconds: {
|
|
45
|
+
args: Schema.Struct({ seconds: Schema.Finite }),
|
|
46
|
+
reply: "clip_length_accepted",
|
|
47
|
+
},
|
|
48
|
+
set_canvas: { args: Schema.Struct({ aspect: Schema.String }), reply: "canvas_accepted" },
|
|
49
|
+
set_autoplay: { args: Schema.Struct({ enabled: Schema.Boolean }), reply: "autoplay_accepted" },
|
|
50
|
+
set_flush_on_clip_end: {
|
|
51
|
+
args: Schema.Struct({ enabled: Schema.Boolean }),
|
|
52
|
+
reply: "flush_accepted",
|
|
53
|
+
},
|
|
54
|
+
get_queue: { args: NoArguments, reply: "queue_update" },
|
|
55
|
+
get_state: { args: NoArguments, reply: "state_update" },
|
|
56
|
+
reset: { args: NoArguments, reply: "session_reset" },
|
|
57
|
+
};
|
|
58
|
+
/** What a provider needs to start: it enqueues, and reads the state and queue in full. */
|
|
59
|
+
const required = ["enqueue", "get_state", "get_queue"];
|
|
60
|
+
const Operation = Schema.Struct({
|
|
61
|
+
post: Schema.Struct({
|
|
62
|
+
requestBody: Schema.optionalKey(Schema.Struct({
|
|
63
|
+
content: Schema.Struct({
|
|
64
|
+
"application/json": Schema.Struct({ schema: Schema.Json }),
|
|
65
|
+
}),
|
|
66
|
+
})),
|
|
67
|
+
}),
|
|
68
|
+
});
|
|
69
|
+
const Document = Schema.Struct({
|
|
70
|
+
openapi: Schema.String.check(Schema.isPattern(/^3\.[01]\./)),
|
|
71
|
+
info: Schema.optionalKey(Schema.Struct({
|
|
72
|
+
title: Schema.optionalKey(Schema.String),
|
|
73
|
+
version: Schema.optionalKey(Schema.String),
|
|
74
|
+
})),
|
|
75
|
+
paths: Schema.Record(Schema.String, Schema.Json),
|
|
76
|
+
components: Schema.optionalKey(Schema.Struct({ schemas: Schema.optionalKey(Schema.Record(Schema.String, Schema.Json)) })),
|
|
77
|
+
});
|
|
78
|
+
const Properties = Schema.Struct({ properties: Schema.Record(Schema.String, Schema.Json) });
|
|
79
|
+
const Reference = Schema.Struct({ $ref: Schema.String });
|
|
80
|
+
const incompatible = (reason) => ReactorError.fromCode("UnsupportedCapability", `Deployment does not offer H3 ${documentedVersion}: ${reason}`, { operation: "H3 schema", outcome: "not-submitted" });
|
|
81
|
+
/**
|
|
82
|
+
* Admits a deployment whose OpenAPI document offers the commands a provider
|
|
83
|
+
* needs to start, and records which others it offers. Payloads are checked
|
|
84
|
+
* where they arrive: a message that does not match its Schema fails the
|
|
85
|
+
* provider as `Protocol`.
|
|
86
|
+
*/
|
|
87
|
+
export const deploymentContract = (openapi) => Result.gen(function* () {
|
|
88
|
+
const document = yield* Result.mapError(Schema.decodeUnknownResult(Document)(openapi), () => incompatible("not an OpenAPI 3.0 or 3.1 document"));
|
|
89
|
+
const components = document.components?.schemas ?? {};
|
|
90
|
+
const resolve = (schema) => {
|
|
91
|
+
const reference = Schema.decodeUnknownResult(Reference)(schema);
|
|
92
|
+
if (Result.isFailure(reference))
|
|
93
|
+
return schema;
|
|
94
|
+
const name = reference.success.$ref.replace("#/components/schemas/", "");
|
|
95
|
+
return components[name] ?? schema;
|
|
96
|
+
};
|
|
97
|
+
let referenceAudio = false;
|
|
98
|
+
const commands = new Set();
|
|
99
|
+
for (const name of Struct.keys(Commands)) {
|
|
100
|
+
const operation = Schema.decodeUnknownResult(Operation)(document.paths[`/events/${name}`]);
|
|
101
|
+
if (Result.isFailure(operation)) {
|
|
102
|
+
if (required.includes(name))
|
|
103
|
+
return yield* Result.fail(incompatible(`command ${name}`));
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
commands.add(name);
|
|
107
|
+
if (name !== "enqueue")
|
|
108
|
+
continue;
|
|
109
|
+
const body = operation.success.post.requestBody?.content["application/json"].schema;
|
|
110
|
+
const declared = body === undefined ? undefined : Schema.decodeUnknownResult(Properties)(resolve(body));
|
|
111
|
+
referenceAudio =
|
|
112
|
+
declared !== undefined &&
|
|
113
|
+
Result.isSuccess(declared) &&
|
|
114
|
+
Object.hasOwn(declared.success.properties, "reference_audios");
|
|
115
|
+
}
|
|
116
|
+
return {
|
|
117
|
+
modelName,
|
|
118
|
+
documentedVersion,
|
|
119
|
+
source,
|
|
120
|
+
referenceAudio,
|
|
121
|
+
commands,
|
|
122
|
+
deployment: {
|
|
123
|
+
title: document.info?.title ?? null,
|
|
124
|
+
version: document.info?.version ?? null,
|
|
125
|
+
},
|
|
126
|
+
};
|
|
127
|
+
});
|
|
128
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../src/internal/h3/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import * as Result from "effect/Result";
|
|
1
2
|
import * as Schema from "effect/Schema";
|
|
2
|
-
import
|
|
3
|
+
import { ReactorError } from "../../ReactorError.js";
|
|
3
4
|
/** Required fields follow the H3 Reference Turbo Realtime 0.5.5 documentation. */
|
|
4
5
|
export declare const Clip: Schema.Struct<{
|
|
5
6
|
readonly clip_id: Schema.String;
|
|
@@ -299,21 +300,25 @@ export declare const Payloads: {
|
|
|
299
300
|
};
|
|
300
301
|
export type MessageType = keyof typeof Payloads;
|
|
301
302
|
export type Payload<K extends MessageType> = (typeof Payloads)[K]["Type"];
|
|
302
|
-
export type Message = {
|
|
303
|
-
[
|
|
304
|
-
readonly type:
|
|
305
|
-
readonly data: Payload<
|
|
303
|
+
export type Message<K extends MessageType = MessageType> = {
|
|
304
|
+
[P in K]: {
|
|
305
|
+
readonly type: P;
|
|
306
|
+
readonly data: Payload<P>;
|
|
306
307
|
};
|
|
307
|
-
}[
|
|
308
|
+
}[K];
|
|
308
309
|
export type DecodedMessage = Message | {
|
|
309
310
|
readonly type: "unknown";
|
|
310
311
|
readonly name: string;
|
|
311
|
-
readonly data: JsonObject | undefined;
|
|
312
|
+
readonly data: Schema.JsonObject | undefined;
|
|
312
313
|
};
|
|
313
314
|
/**
|
|
314
|
-
* Unknown events
|
|
315
|
-
* payload: its Schema, cross-field rules included, rejects it as Protocol
|
|
316
|
-
*
|
|
315
|
+
* Unknown events stay observable. A known message never accepts a partial
|
|
316
|
+
* payload: its Schema, cross-field rules included, rejects it as `Protocol`,
|
|
317
|
+
* and the `SchemaError`, which names the path but no input value, stays in
|
|
318
|
+
* the error's detail.
|
|
317
319
|
*/
|
|
318
|
-
export declare const decodeMessage: (type
|
|
320
|
+
export declare const decodeMessage: ({ type, data, }: {
|
|
321
|
+
readonly type: string;
|
|
322
|
+
readonly data?: Schema.JsonObject | undefined;
|
|
323
|
+
}) => Result.Result<DecodedMessage, ReactorError>;
|
|
319
324
|
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../../src/internal/h3/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAIrD,kFAAkF;AAClF,eAAO,MAAM,IAAI;;;;;;;;;;;;EAYf,CAAC;AACH,MAAM,MAAM,IAAI,GAAG,OAAO,IAAI,CAAC,IAAI,CAAC;AAWpC;;;;GAIG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBjB,CAAC;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAC;AAEtC,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;EA+BjB,CAAC;AACF,MAAM,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAC;AAEtC,eAAO,MAAM,QAAQ;aACnB,WAAW;;;;;;;;;;;;;;;aACX,UAAU;;;;;;;;;;;;;;;;;aAKV,WAAW;;;;;;;;;;;;;;;aACX,cAAc;;;;;;;;;;;;;;;aACd,WAAW;;;;;;;;;;;;;;;;aACX,YAAY;;;;;;;;;;;;;;;aACZ,aAAa;;;;;;;;;;;;;;;;aACb,YAAY;;;;;;;;;;;;;;;;aACZ,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aACZ,YAAY;;;;;;;;;;;;;;;;;;;;aACZ,aAAa;;;;aACb,aAAa;;;aACb,oBAAoB;;;;aACpB,eAAe;;;;;aACf,iBAAiB;;;aACjB,cAAc;;;aACd,aAAa;;;;CACL,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,QAAQ,CAAC;AAChD,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,WAAW,IAAI,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1E,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAAI;KACxD,CAAC,IAAI,CAAC,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;KAAE;CAC1D,CAAC,CAAC,CAAC,CAAC;AACL,MAAM,MAAM,cAAc,GACtB,OAAO,GACP;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;CAC9C,CAAC;AAEN;;;;;GAKG;AACH,eAAO,MAAM,aAAa,oBAGvB;IACD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,SAAS,CAAC;CAC/C,KAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,CAG7C,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as Result from "effect/Result";
|
|
2
2
|
import * as Schema from "effect/Schema";
|
|
3
|
-
import { ReactorError } from "
|
|
4
|
-
import { jsonObject } from "../json.js";
|
|
3
|
+
import { ReactorError } from "../../ReactorError.js";
|
|
5
4
|
const Positive = Schema.Int.check(Schema.isGreaterThan(0));
|
|
6
5
|
const Id = Schema.String.check(Schema.isUUID());
|
|
7
6
|
/** Required fields follow the H3 Reference Turbo Realtime 0.5.5 documentation. */
|
|
@@ -76,8 +75,8 @@ export const State = Schema.Struct({
|
|
|
76
75
|
issues.push({ path: ["clip_seconds_max"], issue: "must be at least clip_seconds_min" });
|
|
77
76
|
if (state.clip_seconds <= 0)
|
|
78
77
|
issues.push({ path: ["clip_seconds"], issue: "must be positive" });
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
// `playing` also covers a clip armed for its seam, and H3 does not say whether
|
|
79
|
+
// `playing_clip_id` names that clip yet, so the two are not held to agree.
|
|
81
80
|
return issues;
|
|
82
81
|
}));
|
|
83
82
|
export const Payloads = {
|
|
@@ -103,34 +102,23 @@ export const Payloads = {
|
|
|
103
102
|
flush_accepted: Schema.Struct({ enabled: Schema.Boolean }),
|
|
104
103
|
session_reset: Schema.Struct({ cleared_clips: Schema.Natural, was_playing: Schema.Boolean }),
|
|
105
104
|
};
|
|
106
|
-
const freeze = (value) => {
|
|
107
|
-
if (value !== null && typeof value === "object") {
|
|
108
|
-
for (const child of Object.values(value))
|
|
109
|
-
freeze(child);
|
|
110
|
-
Object.freeze(value);
|
|
111
|
-
}
|
|
112
|
-
return value;
|
|
113
|
-
};
|
|
114
|
-
/** The `SchemaError`, which names the path but no input value, stays in `detail`. */
|
|
115
|
-
const malformed = (type, cause) => ReactorError.fromCode("Protocol", `H3 ${type} payload is malformed`, {
|
|
116
|
-
operation: "h3 observation",
|
|
117
|
-
detail: cause,
|
|
118
|
-
});
|
|
119
105
|
/**
|
|
120
|
-
* Unknown events
|
|
121
|
-
* payload: its Schema, cross-field rules included, rejects it as Protocol
|
|
122
|
-
*
|
|
106
|
+
* Unknown events stay observable. A known message never accepts a partial
|
|
107
|
+
* payload: its Schema, cross-field rules included, rejects it as `Protocol`,
|
|
108
|
+
* and the `SchemaError`, which names the path but no input value, stays in
|
|
109
|
+
* the error's detail.
|
|
123
110
|
*/
|
|
124
|
-
export const decodeMessage = (type,
|
|
125
|
-
if (!
|
|
126
|
-
return
|
|
127
|
-
|
|
128
|
-
name: type,
|
|
129
|
-
data: input === undefined ? undefined : jsonObject(input),
|
|
130
|
-
});
|
|
131
|
-
const decoded = Schema.decodeUnknownResult(Payloads[type])(input);
|
|
132
|
-
if (Result.isFailure(decoded))
|
|
133
|
-
throw malformed(type, decoded.failure);
|
|
134
|
-
return freeze({ type, data: decoded.success });
|
|
111
|
+
export const decodeMessage = ({ type, data, }) => {
|
|
112
|
+
if (!isMessageType(type))
|
|
113
|
+
return Result.succeed({ type: "unknown", name: type, data });
|
|
114
|
+
return decodeKnown(type, data);
|
|
135
115
|
};
|
|
116
|
+
const decodeKnown = (type, data) => Result.mapBoth(Schema.decodeUnknownResult(Payloads[type])(data), {
|
|
117
|
+
onFailure: (cause) => ReactorError.fromCode("Protocol", `H3 ${type} payload is malformed`, {
|
|
118
|
+
operation: "H3 observation",
|
|
119
|
+
detail: cause,
|
|
120
|
+
}),
|
|
121
|
+
onSuccess: (decoded) => ({ type, data: decoded }),
|
|
122
|
+
});
|
|
123
|
+
const isMessageType = (type) => Object.hasOwn(Payloads, type);
|
|
136
124
|
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../../src/internal/h3/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAChD,kFAAkF;AAClF,MAAM,CAAC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAChC,OAAO,EAAE,EAAE;IACX,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC,MAAM;IACvB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACrD,IAAI,EAAE,MAAM,CAAC,OAAO;IACpB,KAAK,EAAE,MAAM,CAAC,OAAO;IACrB,mBAAmB,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;IACvD,qBAAqB,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;IACzD,mBAAmB,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;IACvD,qBAAqB,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC;CAC1D,CAAC,CAAC;AAGH,2DAA2D;AAC3D,MAAM,QAAQ,GAAG,CAAC,KAAsB,EAAE,IAAI,GAAG,IAAI,GAAG,EAAU,EAAU,EAAE;IAC5E,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;QAC5C,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;CAC5B,CAAC,CAAC,KAAK,CACN,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE;IAC1B,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACtD,IAAI,UAAU,IAAI,CAAC;QACjB,OAAO,EAAE,IAAI,EAAE,CAAC,YAAY,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;IACxF,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAChD,IAAI,OAAO,IAAI,CAAC;QACd,OAAO,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAClF,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,OAAO,IAAI,CAAC;QACd,OAAO,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC;IACtF,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC,CACH,CAAC;AAGF,MAAM,CAAC,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC,MAAM;IAC3B,gBAAgB,EAAE,MAAM,CAAC,MAAM;IAC/B,gBAAgB,EAAE,MAAM,CAAC,MAAM;IAC/B,IAAI,EAAE,MAAM,CAAC,OAAO;IACpB,QAAQ,EAAE,MAAM,CAAC,OAAO;IACxB,iBAAiB,EAAE,MAAM,CAAC,OAAO;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,MAAM,CAAC,OAAO;IACvB,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAClC,iBAAiB,EAAE,MAAM,CAAC,OAAO;IACjC,mBAAmB,EAAE,QAAQ;IAC7B,cAAc,EAAE,MAAM,CAAC,OAAO;IAC9B,gBAAgB,EAAE,QAAQ;IAC1B,YAAY,EAAE,MAAM,CAAC,OAAO;IAC5B,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACnE,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;CAC5C,CAAC,CAAC,KAAK,CACN,MAAM,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE;IAC1B,MAAM,MAAM,GAAyB,EAAE,CAAC;IACxC,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACzE,IAAI,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB;QACjD,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,mCAAmC,EAAE,CAAC,CAAC;IAC1F,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,cAAc,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAChG,+EAA+E;IAC/E,2EAA2E;IAC3E,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC,CACH,CAAC;AAGF,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1C,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;QACxB,IAAI,EAAE,IAAI;QACV,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QACjD,QAAQ,EAAE,MAAM,CAAC,OAAO;KACzB,CAAC;IACF,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1C,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7C,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACjE,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3C,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACzE,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IACxE,YAAY,EAAE,KAAK;IACnB,YAAY,EAAE,KAAK;IACnB,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IAC/E,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IACtD,oBAAoB,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACtF,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC5F,iBAAiB,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IAC7D,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;IAC1D,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;CACpF,CAAC;AAcX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,IAAI,EACJ,IAAI,GAIL,EAA+C,EAAE;IAChD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACvF,OAAO,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAClB,IAAO,EACP,IAAmC,EACM,EAAE,CAC3C,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;IAC/D,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CACnB,YAAY,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,uBAAuB,EAAE;QACnE,SAAS,EAAE,gBAAgB;QAC3B,MAAM,EAAE,KAAK;KACd,CAAC;IACJ,SAAS,EAAE,CAAC,OAAO,EAAc,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;CAC9D,CAAC,CAAC;AAEL,MAAM,aAAa,GAAG,CAAC,IAAY,EAAuB,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clip operations by submission: what the provider's evidence established
|
|
3
|
+
* about each committed clip, from acceptance to its end. Every transition is
|
|
4
|
+
* pure and returns the waiters it completes, run once the new table is in place.
|
|
5
|
+
*/
|
|
6
|
+
import * as Deferred from "effect/Deferred";
|
|
7
|
+
import * as Effect from "effect/Effect";
|
|
8
|
+
import * as Exit from "effect/Exit";
|
|
9
|
+
import * as Result from "effect/Result";
|
|
10
|
+
import { CommandFailure, ReactorError } from "../../ReactorError.js";
|
|
11
|
+
import type { CommandReply } from "../../Session.js";
|
|
12
|
+
import type { Clip, DecodedMessage, MessageType } from "./messages.js";
|
|
13
|
+
import type { Acceptance, Identity } from "./state.js";
|
|
14
|
+
/** A phase a clip can be awaited to reach. */
|
|
15
|
+
export type ClipPhase = "generated" | "started";
|
|
16
|
+
/** One piece of evidence about a clip, and the transport generation that carried it. */
|
|
17
|
+
export interface ClipFact {
|
|
18
|
+
readonly clipId: string;
|
|
19
|
+
/** The lifecycle message that established it, or the snapshot that listed the clip. */
|
|
20
|
+
readonly message: MessageType;
|
|
21
|
+
readonly transportGeneration: bigint;
|
|
22
|
+
readonly source: CommandReply;
|
|
23
|
+
}
|
|
24
|
+
/** What one clip operation has established so far; monotone. */
|
|
25
|
+
export interface OperationFacts {
|
|
26
|
+
readonly submissionId: string;
|
|
27
|
+
readonly acceptance?: Acceptance;
|
|
28
|
+
readonly generated?: ClipFact;
|
|
29
|
+
readonly started?: ClipFact;
|
|
30
|
+
readonly ended?: ClipFact;
|
|
31
|
+
/** The provider retired before evidence decided the rest. */
|
|
32
|
+
readonly indeterminate: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* A committed clip's facts as they arrive, each resolved at most once from the
|
|
36
|
+
* provider's own evidence, and a phase only once the acceptance is decided. A
|
|
37
|
+
* phase completes when it or a later one is observed, fails with `ClipEnded`
|
|
38
|
+
* when the clip failed or was popped first, and fails `Indeterminate` if the
|
|
39
|
+
* provider retires before evidence decides it. Every fact fails with the
|
|
40
|
+
* enqueue's own failure when that failure was definite. Evidence from a later
|
|
41
|
+
* transport generation of the same session still resolves the operation.
|
|
42
|
+
*/
|
|
43
|
+
export interface ClipOperation {
|
|
44
|
+
readonly submissionId: string;
|
|
45
|
+
readonly accepted: Effect.Effect<Acceptance, ReactorError | CommandFailure>;
|
|
46
|
+
readonly reached: (phase: ClipPhase) => Effect.Effect<ClipFact, ReactorError | CommandFailure>;
|
|
47
|
+
readonly ended: Effect.Effect<ClipFact, ReactorError | CommandFailure>;
|
|
48
|
+
readonly facts: Effect.Effect<OperationFacts>;
|
|
49
|
+
}
|
|
50
|
+
type Failure = ReactorError | CommandFailure;
|
|
51
|
+
export interface Waiters {
|
|
52
|
+
readonly accepted: Deferred.Deferred<Acceptance, Failure>;
|
|
53
|
+
readonly generated: Deferred.Deferred<ClipFact, Failure>;
|
|
54
|
+
readonly started: Deferred.Deferred<ClipFact, Failure>;
|
|
55
|
+
readonly finished: Deferred.Deferred<ClipFact, Failure>;
|
|
56
|
+
}
|
|
57
|
+
export interface Operation {
|
|
58
|
+
readonly identity: Identity;
|
|
59
|
+
readonly waiters: Waiters;
|
|
60
|
+
readonly acceptance: Acceptance | undefined;
|
|
61
|
+
/** The clip the evidence names, known before the acceptance is decided. */
|
|
62
|
+
readonly clipId: string | undefined;
|
|
63
|
+
readonly generated: ClipFact | undefined;
|
|
64
|
+
readonly started: ClipFact | undefined;
|
|
65
|
+
readonly ended: ClipFact | undefined;
|
|
66
|
+
readonly indeterminate: boolean;
|
|
67
|
+
/** Decided without a clip: the enqueue's failure was definite. */
|
|
68
|
+
readonly rejected: boolean;
|
|
69
|
+
readonly holders: number;
|
|
70
|
+
}
|
|
71
|
+
export interface Table {
|
|
72
|
+
readonly capacity: number;
|
|
73
|
+
readonly operations: ReadonlyMap<string, Operation>;
|
|
74
|
+
readonly byClip: ReadonlyMap<string, string>;
|
|
75
|
+
}
|
|
76
|
+
export type Step = readonly [Table, ReadonlyArray<Effect.Effect<void>>];
|
|
77
|
+
export declare const empty: (capacity: number) => Table;
|
|
78
|
+
export declare const makeWaiters: Effect.Effect<Waiters>;
|
|
79
|
+
/**
|
|
80
|
+
* Takes a slot for a submission about to dispatch. Operations that ended are
|
|
81
|
+
* evicted first, oldest first; a table of unresolved operations refuses.
|
|
82
|
+
*/
|
|
83
|
+
export declare const reserve: ({ table, identity, waiters, }: {
|
|
84
|
+
readonly table: Table;
|
|
85
|
+
readonly identity: Identity;
|
|
86
|
+
readonly waiters: Waiters;
|
|
87
|
+
}) => Result.Result<Table, ReactorError>;
|
|
88
|
+
/** A commit that failed after reserving sent nothing. */
|
|
89
|
+
export declare const abandon: ({ table, id }: {
|
|
90
|
+
readonly table: Table;
|
|
91
|
+
readonly id: string;
|
|
92
|
+
}) => Table;
|
|
93
|
+
/** The enqueue's own result: a definite failure decides the operation without a clip. */
|
|
94
|
+
export declare const settle: ({ table, id, exit, }: {
|
|
95
|
+
readonly table: Table;
|
|
96
|
+
readonly id: string;
|
|
97
|
+
readonly exit: Exit.Exit<Acceptance, unknown>;
|
|
98
|
+
}) => Step;
|
|
99
|
+
/**
|
|
100
|
+
* Evidence the provider holds until the enqueue's reply decides the
|
|
101
|
+
* acceptance: the clip's facts accrue meanwhile.
|
|
102
|
+
*/
|
|
103
|
+
export declare const identify: ({ table, acceptance, }: {
|
|
104
|
+
readonly table: Table;
|
|
105
|
+
readonly acceptance: Acceptance;
|
|
106
|
+
}) => Table;
|
|
107
|
+
/** The acceptance the provider recorded, on the same path that records it. */
|
|
108
|
+
export declare const accept: ({ table, acceptance, }: {
|
|
109
|
+
readonly table: Table;
|
|
110
|
+
readonly acceptance: Acceptance;
|
|
111
|
+
}) => Step;
|
|
112
|
+
/**
|
|
113
|
+
* A clip carrying a submission's exact prompt and metadata after its pending
|
|
114
|
+
* acceptance expired, or in a later generation. It resolves the operation only.
|
|
115
|
+
*/
|
|
116
|
+
export declare const lateEvidence: ({ table, id, clip, source, }: {
|
|
117
|
+
readonly table: Table;
|
|
118
|
+
readonly id: string;
|
|
119
|
+
readonly clip: Clip;
|
|
120
|
+
readonly source: CommandReply;
|
|
121
|
+
}) => Step;
|
|
122
|
+
/** Advances operations from a message the reducer applied. */
|
|
123
|
+
export declare const observe: ({ table, message, source, }: {
|
|
124
|
+
readonly table: Table;
|
|
125
|
+
readonly message: DecodedMessage;
|
|
126
|
+
readonly source: CommandReply;
|
|
127
|
+
}) => Step;
|
|
128
|
+
/** The provider retired: what evidence did not decide is `Indeterminate`. */
|
|
129
|
+
export declare const retire: (table: Table) => Step;
|
|
130
|
+
/** A holder of an operation; releasing the last holder acknowledges it and frees its slot. */
|
|
131
|
+
export declare const hold: ({ table, id, }: {
|
|
132
|
+
readonly table: Table;
|
|
133
|
+
readonly id: string;
|
|
134
|
+
}) => Result.Result<Table, ReactorError>;
|
|
135
|
+
export declare const release: ({ table, id }: {
|
|
136
|
+
readonly table: Table;
|
|
137
|
+
readonly id: string;
|
|
138
|
+
}) => Table;
|
|
139
|
+
/** A clip's facts are the operation's once its acceptance is decided. */
|
|
140
|
+
export declare const factsOf: ({ id, operation, }: {
|
|
141
|
+
readonly id: string;
|
|
142
|
+
readonly operation: Operation | undefined;
|
|
143
|
+
}) => OperationFacts;
|
|
144
|
+
export {};
|
|
145
|
+
//# sourceMappingURL=operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../../src/internal/h3/operations.ts"],"names":[],"mappings":"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"}
|