@stinkycomputing/sesame-api-client 1.5.0-alpha.1 → 1.5.0-alpha.2

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.
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import { sesame } from './proto/api';
8
8
  export declare const FrameType: typeof sesame.v1.wire.FrameType;
9
+ export declare const DataType: typeof sesame.v1.wire.DataType;
9
10
  export type IFrameHeader = sesame.v1.wire.IFrameHeader;
10
11
  export declare const FrameHeader: typeof sesame.v1.wire.FrameHeader;
11
12
  export type IMediaCodecData = sesame.v1.wire.IMediaCodecData;
@@ -16,6 +17,75 @@ export interface ParsedFrame {
16
17
  header: sesame.v1.wire.FrameHeader | null;
17
18
  payload: Uint8Array | null;
18
19
  }
20
+ /** Strongly-typed discriminated union for decoded FRAME_TYPE_DATA payloads. */
21
+ export type ParsedDataFrame = {
22
+ dataType: 'json';
23
+ trackName: string;
24
+ json: unknown;
25
+ } | {
26
+ dataType: 'transport-status';
27
+ trackName: string;
28
+ event: sesame.v1.status.TransportEvent;
29
+ } | {
30
+ dataType: 'audio-state';
31
+ trackName: string;
32
+ status: sesame.v1.audio.AudioMixerStatus;
33
+ } | {
34
+ dataType: 'transport-control';
35
+ trackName: string;
36
+ request: sesame.v1.sources.TransportControlRequest;
37
+ } | {
38
+ dataType: 'audio-control';
39
+ trackName: string;
40
+ request: sesame.v1.audio.AudioControlRequest;
41
+ };
42
+ /**
43
+ * Decode a DATA frame into its typed payload.
44
+ *
45
+ * Returns `null` if the frame is not a valid `FRAME_TYPE_DATA` frame or if
46
+ * the payload cannot be decoded.
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * const frame = WireProtocol.parse(bytes);
51
+ * const data = parseDataFrame(frame);
52
+ * if (data?.dataType === 'audio-state') {
53
+ * console.log(data.status.vu);
54
+ * }
55
+ * ```
56
+ */
57
+ export declare function parseDataFrame(frame: ParsedFrame): ParsedDataFrame | null;
58
+ /**
59
+ * Build a ready-to-send wire frame carrying an `AudioControlRequest`.
60
+ *
61
+ * Send this over a WebSocket source connection to adjust mixer levels/pan/plugins
62
+ * on the server. The target mixer is resolved from the server's routing table —
63
+ * the payload contains no mixer ID.
64
+ *
65
+ * @example
66
+ * ```ts
67
+ * const bytes = buildAudioControlFrame('my-control-track', {
68
+ * channels: [{ channelId: 'ch1', level: 0.8 }]
69
+ * });
70
+ * ws.send(bytes);
71
+ * ```
72
+ */
73
+ export declare function buildAudioControlFrame(trackName: string, request: sesame.v1.audio.IAudioControlRequest): Uint8Array;
74
+ /**
75
+ * Build a ready-to-send wire frame carrying a `TransportControlRequest`.
76
+ *
77
+ * Send this over a WebSocket source connection to queue a playback command
78
+ * on the server. The target source is resolved from the server's routing table.
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * const bytes = buildTransportControlFrame('my-control-track', {
83
+ * cmdType: sesame.v1.sources.SourceTransportCommandType.SOURCE_TRANSPORT_COMMAND_PLAY,
84
+ * });
85
+ * ws.send(bytes);
86
+ * ```
87
+ */
88
+ export declare function buildTransportControlFrame(trackName: string, request: sesame.v1.sources.ITransportControlRequest): Uint8Array;
19
89
  export declare class WireProtocol {
20
90
  /**
21
91
  * Serialize a wire frame: 4-byte LE header_size + protobuf FrameHeader + payload.
@@ -1 +1 @@
1
- {"version":3,"file":"sesame-wire-protocol.d.ts","sourceRoot":"","sources":["../src/sesame-wire-protocol.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,eAAO,MAAM,SAAS,iCAA2B,CAAC;AAClD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;AACvD,eAAO,MAAM,WAAW,mCAA6B,CAAC;AACtD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC;AAC7D,eAAO,MAAM,cAAc,sCAAgC,CAAC;AAC5D,eAAO,MAAM,SAAS,mCAA6B,CAAC;AAEpD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1C,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;CAC5B;AAID,qBAAa,YAAY;IACvB;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,GAAG,UAAU;IAqB9F;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW;CAqB5C"}
1
+ {"version":3,"file":"sesame-wire-protocol.d.ts","sourceRoot":"","sources":["../src/sesame-wire-protocol.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAGrC,eAAO,MAAM,SAAS,iCAA2B,CAAC;AAClD,eAAO,MAAM,QAAQ,gCAA0B,CAAC;AAChD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC;AACvD,eAAO,MAAM,WAAW,mCAA6B,CAAC;AACtD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC;AAC7D,eAAO,MAAM,cAAc,sCAAgC,CAAC;AAC5D,eAAO,MAAM,SAAS,mCAA6B,CAAC;AAEpD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1C,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC;CAC5B;AAMD,+EAA+E;AAC/E,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAe,SAAS,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GACpE;IAAE,QAAQ,EAAE,kBAAkB,CAAC;IAAG,SAAS,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,cAAc,CAAA;CAAE,GAC7F;IAAE,QAAQ,EAAE,aAAa,CAAC;IAAQ,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAA;CAAE,GAC/F;IAAE,QAAQ,EAAE,mBAAmB,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,uBAAuB,CAAA;CAAE,GACzG;IAAE,QAAQ,EAAE,eAAe,CAAC;IAAM,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAA;CAAE,CAAC;AAExG;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,eAAe,GAAG,IAAI,CAkCzE;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,oBAAoB,GAC5C,UAAU,CAOZ;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,wBAAwB,GAClD,UAAU,CAOZ;AAID,qBAAa,YAAY;IACvB;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,GAAG,UAAU;IAqB9F;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW;CAqB5C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stinkycomputing/sesame-api-client",
3
- "version": "1.5.0-alpha.1",
3
+ "version": "1.5.0-alpha.2",
4
4
  "description": "Sesame API client library with protobuf definitions and command list helpers",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.mjs",