@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.
- package/README.md +422 -137
- package/dist/index.browser.mjs +69 -0
- package/dist/index.browser.mjs.map +2 -2
- package/dist/index.cjs +73 -0
- package/dist/index.cjs.map +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +69 -0
- package/dist/index.mjs.map +2 -2
- package/dist/sesame-wire-protocol.d.ts +70 -0
- package/dist/sesame-wire-protocol.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -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