@stinkycomputing/sesame-api-client 1.5.0-alpha.5 → 1.5.0-alpha.7
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/dist/index.browser.mjs +126 -127
- package/dist/index.browser.mjs.map +3 -3
- package/dist/index.cjs +126 -127
- package/dist/index.cjs.map +3 -3
- package/dist/index.mjs +126 -127
- package/dist/index.mjs.map +3 -3
- package/dist/rpc-client.d.ts.map +1 -1
- package/dist/sesame-api-client.d.ts.map +1 -1
- package/dist/sesame-connection.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -23861,6 +23861,126 @@ var log = {
|
|
|
23861
23861
|
error: (message, ...args) => logger.error(message, ...args)
|
|
23862
23862
|
};
|
|
23863
23863
|
|
|
23864
|
+
// src/sesame-wire-protocol.ts
|
|
23865
|
+
var FrameType = sesame.v1.wire.FrameType;
|
|
23866
|
+
var DataType = sesame.v1.wire.DataType;
|
|
23867
|
+
var FrameHeader = sesame.v1.wire.FrameHeader;
|
|
23868
|
+
var MediaCodecData = sesame.v1.wire.MediaCodecData;
|
|
23869
|
+
var CodecType = sesame.v1.common.CodecType;
|
|
23870
|
+
function parseDataFrame(frame) {
|
|
23871
|
+
if (!frame.valid || !frame.header || !frame.payload) return null;
|
|
23872
|
+
if (frame.header.type !== sesame.v1.wire.FrameType.FRAME_TYPE_DATA) return null;
|
|
23873
|
+
const d = frame.header.data;
|
|
23874
|
+
if (!d) return null;
|
|
23875
|
+
const trackName = d.trackName ?? "";
|
|
23876
|
+
const payload = frame.payload;
|
|
23877
|
+
try {
|
|
23878
|
+
switch (d.dataType) {
|
|
23879
|
+
case sesame.v1.wire.DataType.DATA_TYPE_JSON: {
|
|
23880
|
+
const text = new TextDecoder().decode(payload);
|
|
23881
|
+
return { dataType: "json", trackName, json: JSON.parse(text) };
|
|
23882
|
+
}
|
|
23883
|
+
case sesame.v1.wire.DataType.DATA_TYPE_TRANSPORT_STATUS:
|
|
23884
|
+
return {
|
|
23885
|
+
dataType: "transport-status",
|
|
23886
|
+
trackName,
|
|
23887
|
+
event: sesame.v1.status.TransportEvent.decode(payload)
|
|
23888
|
+
};
|
|
23889
|
+
case sesame.v1.wire.DataType.DATA_TYPE_AUDIO_STATE:
|
|
23890
|
+
return {
|
|
23891
|
+
dataType: "audio-state",
|
|
23892
|
+
trackName,
|
|
23893
|
+
status: sesame.v1.audio.AudioMixerStatus.decode(payload)
|
|
23894
|
+
};
|
|
23895
|
+
case sesame.v1.wire.DataType.DATA_TYPE_TRANSPORT_CONTROL:
|
|
23896
|
+
return {
|
|
23897
|
+
dataType: "transport-control",
|
|
23898
|
+
trackName,
|
|
23899
|
+
request: sesame.v1.sources.TransportControlRequest.decode(payload)
|
|
23900
|
+
};
|
|
23901
|
+
case sesame.v1.wire.DataType.DATA_TYPE_AUDIO_CONTROL:
|
|
23902
|
+
return {
|
|
23903
|
+
dataType: "audio-control",
|
|
23904
|
+
trackName,
|
|
23905
|
+
request: sesame.v1.audio.AudioControlRequest.decode(payload)
|
|
23906
|
+
};
|
|
23907
|
+
case sesame.v1.wire.DataType.DATA_TYPE_BINARY:
|
|
23908
|
+
return { dataType: "binary", trackName, data: payload };
|
|
23909
|
+
default:
|
|
23910
|
+
return null;
|
|
23911
|
+
}
|
|
23912
|
+
} catch {
|
|
23913
|
+
return null;
|
|
23914
|
+
}
|
|
23915
|
+
}
|
|
23916
|
+
function buildAudioControlFrame(trackName, request) {
|
|
23917
|
+
const payload = sesame.v1.audio.AudioControlRequest.encode(request).finish();
|
|
23918
|
+
return WireProtocol.serialize(
|
|
23919
|
+
{
|
|
23920
|
+
type: sesame.v1.wire.FrameType.FRAME_TYPE_DATA,
|
|
23921
|
+
data: { dataType: sesame.v1.wire.DataType.DATA_TYPE_AUDIO_CONTROL, trackName }
|
|
23922
|
+
},
|
|
23923
|
+
payload
|
|
23924
|
+
);
|
|
23925
|
+
}
|
|
23926
|
+
function buildTransportControlFrame(trackName, request) {
|
|
23927
|
+
const payload = sesame.v1.sources.TransportControlRequest.encode(request).finish();
|
|
23928
|
+
return WireProtocol.serialize(
|
|
23929
|
+
{
|
|
23930
|
+
type: sesame.v1.wire.FrameType.FRAME_TYPE_DATA,
|
|
23931
|
+
data: { dataType: sesame.v1.wire.DataType.DATA_TYPE_TRANSPORT_CONTROL, trackName }
|
|
23932
|
+
},
|
|
23933
|
+
payload
|
|
23934
|
+
);
|
|
23935
|
+
}
|
|
23936
|
+
function buildBinaryDataFrame(trackName, payload) {
|
|
23937
|
+
return WireProtocol.serialize(
|
|
23938
|
+
{
|
|
23939
|
+
type: sesame.v1.wire.FrameType.FRAME_TYPE_DATA,
|
|
23940
|
+
data: { dataType: sesame.v1.wire.DataType.DATA_TYPE_BINARY, trackName }
|
|
23941
|
+
},
|
|
23942
|
+
payload
|
|
23943
|
+
);
|
|
23944
|
+
}
|
|
23945
|
+
var PREFIX_SIZE = 4;
|
|
23946
|
+
var WireProtocol = class {
|
|
23947
|
+
/**
|
|
23948
|
+
* Serialize a wire frame: 4-byte LE header_size + protobuf FrameHeader + payload.
|
|
23949
|
+
*/
|
|
23950
|
+
static serialize(header, payload) {
|
|
23951
|
+
const headerBytes = sesame.v1.wire.FrameHeader.encode(header).finish();
|
|
23952
|
+
const headerSize = headerBytes.length;
|
|
23953
|
+
const payloadSize = payload ? payload.length : 0;
|
|
23954
|
+
const total = PREFIX_SIZE + headerSize + payloadSize;
|
|
23955
|
+
const buffer = new Uint8Array(total);
|
|
23956
|
+
const view = new DataView(buffer.buffer);
|
|
23957
|
+
view.setUint32(0, headerSize, true);
|
|
23958
|
+
buffer.set(headerBytes, PREFIX_SIZE);
|
|
23959
|
+
if (payload && payloadSize > 0) {
|
|
23960
|
+
buffer.set(payload, PREFIX_SIZE + headerSize);
|
|
23961
|
+
}
|
|
23962
|
+
return buffer;
|
|
23963
|
+
}
|
|
23964
|
+
/**
|
|
23965
|
+
* Parse an incoming wire frame.
|
|
23966
|
+
*/
|
|
23967
|
+
static parse(data) {
|
|
23968
|
+
const result = { valid: false, header: null, payload: null };
|
|
23969
|
+
if (!data || data.length < PREFIX_SIZE) return result;
|
|
23970
|
+
const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
|
|
23971
|
+
const headerSize = view.getUint32(0, true);
|
|
23972
|
+
if (data.length < PREFIX_SIZE + headerSize) return result;
|
|
23973
|
+
try {
|
|
23974
|
+
const headerBytes = data.subarray(PREFIX_SIZE, PREFIX_SIZE + headerSize);
|
|
23975
|
+
result.header = sesame.v1.wire.FrameHeader.decode(headerBytes);
|
|
23976
|
+
result.payload = data.subarray(PREFIX_SIZE + headerSize);
|
|
23977
|
+
result.valid = true;
|
|
23978
|
+
} catch {
|
|
23979
|
+
}
|
|
23980
|
+
return result;
|
|
23981
|
+
}
|
|
23982
|
+
};
|
|
23983
|
+
|
|
23864
23984
|
// src/rpc-client.ts
|
|
23865
23985
|
var RPCClient = class extends import_events.EventEmitter {
|
|
23866
23986
|
/**
|
|
@@ -23924,7 +24044,9 @@ var RPCClient = class extends import_events.EventEmitter {
|
|
|
23924
24044
|
throw new Error("No socket");
|
|
23925
24045
|
}
|
|
23926
24046
|
const data = sesame.v1.rpc.Message.encode(message).finish();
|
|
23927
|
-
|
|
24047
|
+
const header = { type: sesame.v1.wire.FrameType.FRAME_TYPE_RPC };
|
|
24048
|
+
const frame = WireProtocol.serialize(header, data);
|
|
24049
|
+
await this.connection.send(frame);
|
|
23928
24050
|
};
|
|
23929
24051
|
this.errorHandler = (error) => {
|
|
23930
24052
|
if (this.listenerCount("error") > 0) {
|
|
@@ -24033,128 +24155,6 @@ var RPCClient = class extends import_events.EventEmitter {
|
|
|
24033
24155
|
|
|
24034
24156
|
// src/sesame-connection.ts
|
|
24035
24157
|
var import_events2 = require("events");
|
|
24036
|
-
|
|
24037
|
-
// src/sesame-wire-protocol.ts
|
|
24038
|
-
var FrameType = sesame.v1.wire.FrameType;
|
|
24039
|
-
var DataType = sesame.v1.wire.DataType;
|
|
24040
|
-
var FrameHeader = sesame.v1.wire.FrameHeader;
|
|
24041
|
-
var MediaCodecData = sesame.v1.wire.MediaCodecData;
|
|
24042
|
-
var CodecType = sesame.v1.common.CodecType;
|
|
24043
|
-
function parseDataFrame(frame) {
|
|
24044
|
-
if (!frame.valid || !frame.header || !frame.payload) return null;
|
|
24045
|
-
if (frame.header.type !== sesame.v1.wire.FrameType.FRAME_TYPE_DATA) return null;
|
|
24046
|
-
const d = frame.header.data;
|
|
24047
|
-
if (!d) return null;
|
|
24048
|
-
const trackName = d.trackName ?? "";
|
|
24049
|
-
const payload = frame.payload;
|
|
24050
|
-
try {
|
|
24051
|
-
switch (d.dataType) {
|
|
24052
|
-
case sesame.v1.wire.DataType.DATA_TYPE_JSON: {
|
|
24053
|
-
const text = new TextDecoder().decode(payload);
|
|
24054
|
-
return { dataType: "json", trackName, json: JSON.parse(text) };
|
|
24055
|
-
}
|
|
24056
|
-
case sesame.v1.wire.DataType.DATA_TYPE_TRANSPORT_STATUS:
|
|
24057
|
-
return {
|
|
24058
|
-
dataType: "transport-status",
|
|
24059
|
-
trackName,
|
|
24060
|
-
event: sesame.v1.status.TransportEvent.decode(payload)
|
|
24061
|
-
};
|
|
24062
|
-
case sesame.v1.wire.DataType.DATA_TYPE_AUDIO_STATE:
|
|
24063
|
-
return {
|
|
24064
|
-
dataType: "audio-state",
|
|
24065
|
-
trackName,
|
|
24066
|
-
status: sesame.v1.audio.AudioMixerStatus.decode(payload)
|
|
24067
|
-
};
|
|
24068
|
-
case sesame.v1.wire.DataType.DATA_TYPE_TRANSPORT_CONTROL:
|
|
24069
|
-
return {
|
|
24070
|
-
dataType: "transport-control",
|
|
24071
|
-
trackName,
|
|
24072
|
-
request: sesame.v1.sources.TransportControlRequest.decode(payload)
|
|
24073
|
-
};
|
|
24074
|
-
case sesame.v1.wire.DataType.DATA_TYPE_AUDIO_CONTROL:
|
|
24075
|
-
return {
|
|
24076
|
-
dataType: "audio-control",
|
|
24077
|
-
trackName,
|
|
24078
|
-
request: sesame.v1.audio.AudioControlRequest.decode(payload)
|
|
24079
|
-
};
|
|
24080
|
-
case sesame.v1.wire.DataType.DATA_TYPE_BINARY:
|
|
24081
|
-
return { dataType: "binary", trackName, data: payload };
|
|
24082
|
-
default:
|
|
24083
|
-
return null;
|
|
24084
|
-
}
|
|
24085
|
-
} catch {
|
|
24086
|
-
return null;
|
|
24087
|
-
}
|
|
24088
|
-
}
|
|
24089
|
-
function buildAudioControlFrame(trackName, request) {
|
|
24090
|
-
const payload = sesame.v1.audio.AudioControlRequest.encode(request).finish();
|
|
24091
|
-
return WireProtocol.serialize(
|
|
24092
|
-
{
|
|
24093
|
-
type: sesame.v1.wire.FrameType.FRAME_TYPE_DATA,
|
|
24094
|
-
data: { dataType: sesame.v1.wire.DataType.DATA_TYPE_AUDIO_CONTROL, trackName }
|
|
24095
|
-
},
|
|
24096
|
-
payload
|
|
24097
|
-
);
|
|
24098
|
-
}
|
|
24099
|
-
function buildTransportControlFrame(trackName, request) {
|
|
24100
|
-
const payload = sesame.v1.sources.TransportControlRequest.encode(request).finish();
|
|
24101
|
-
return WireProtocol.serialize(
|
|
24102
|
-
{
|
|
24103
|
-
type: sesame.v1.wire.FrameType.FRAME_TYPE_DATA,
|
|
24104
|
-
data: { dataType: sesame.v1.wire.DataType.DATA_TYPE_TRANSPORT_CONTROL, trackName }
|
|
24105
|
-
},
|
|
24106
|
-
payload
|
|
24107
|
-
);
|
|
24108
|
-
}
|
|
24109
|
-
function buildBinaryDataFrame(trackName, payload) {
|
|
24110
|
-
return WireProtocol.serialize(
|
|
24111
|
-
{
|
|
24112
|
-
type: sesame.v1.wire.FrameType.FRAME_TYPE_DATA,
|
|
24113
|
-
data: { dataType: sesame.v1.wire.DataType.DATA_TYPE_BINARY, trackName }
|
|
24114
|
-
},
|
|
24115
|
-
payload
|
|
24116
|
-
);
|
|
24117
|
-
}
|
|
24118
|
-
var PREFIX_SIZE = 4;
|
|
24119
|
-
var WireProtocol = class {
|
|
24120
|
-
/**
|
|
24121
|
-
* Serialize a wire frame: 4-byte LE header_size + protobuf FrameHeader + payload.
|
|
24122
|
-
*/
|
|
24123
|
-
static serialize(header, payload) {
|
|
24124
|
-
const headerBytes = sesame.v1.wire.FrameHeader.encode(header).finish();
|
|
24125
|
-
const headerSize = headerBytes.length;
|
|
24126
|
-
const payloadSize = payload ? payload.length : 0;
|
|
24127
|
-
const total = PREFIX_SIZE + headerSize + payloadSize;
|
|
24128
|
-
const buffer = new Uint8Array(total);
|
|
24129
|
-
const view = new DataView(buffer.buffer);
|
|
24130
|
-
view.setUint32(0, headerSize, true);
|
|
24131
|
-
buffer.set(headerBytes, PREFIX_SIZE);
|
|
24132
|
-
if (payload && payloadSize > 0) {
|
|
24133
|
-
buffer.set(payload, PREFIX_SIZE + headerSize);
|
|
24134
|
-
}
|
|
24135
|
-
return buffer;
|
|
24136
|
-
}
|
|
24137
|
-
/**
|
|
24138
|
-
* Parse an incoming wire frame.
|
|
24139
|
-
*/
|
|
24140
|
-
static parse(data) {
|
|
24141
|
-
const result = { valid: false, header: null, payload: null };
|
|
24142
|
-
if (!data || data.length < PREFIX_SIZE) return result;
|
|
24143
|
-
const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
|
|
24144
|
-
const headerSize = view.getUint32(0, true);
|
|
24145
|
-
if (data.length < PREFIX_SIZE + headerSize) return result;
|
|
24146
|
-
try {
|
|
24147
|
-
const headerBytes = data.subarray(PREFIX_SIZE, PREFIX_SIZE + headerSize);
|
|
24148
|
-
result.header = sesame.v1.wire.FrameHeader.decode(headerBytes);
|
|
24149
|
-
result.payload = data.subarray(PREFIX_SIZE + headerSize);
|
|
24150
|
-
result.valid = true;
|
|
24151
|
-
} catch {
|
|
24152
|
-
}
|
|
24153
|
-
return result;
|
|
24154
|
-
}
|
|
24155
|
-
};
|
|
24156
|
-
|
|
24157
|
-
// src/sesame-connection.ts
|
|
24158
24158
|
var ConnectionState = /* @__PURE__ */ ((ConnectionState2) => {
|
|
24159
24159
|
ConnectionState2["Disconnected"] = "disconnected";
|
|
24160
24160
|
ConnectionState2["Connecting"] = "connecting";
|
|
@@ -24234,9 +24234,7 @@ var SesameConnection = class extends import_events2.EventEmitter {
|
|
|
24234
24234
|
}
|
|
24235
24235
|
async send(data) {
|
|
24236
24236
|
if (!this.isConnected()) throw new Error("Not connected");
|
|
24237
|
-
|
|
24238
|
-
const frame = WireProtocol.serialize(header, data);
|
|
24239
|
-
this.socket.send(frame);
|
|
24237
|
+
this.socket.send(data);
|
|
24240
24238
|
return Promise.resolve();
|
|
24241
24239
|
}
|
|
24242
24240
|
async connect() {
|
|
@@ -24508,7 +24506,8 @@ var SesameClient = class extends import_events3.EventEmitter {
|
|
|
24508
24506
|
[sesame.v1.common.EventTopic.EVENT_TOPIC_TRANSPORT]: sesame.v1.status.Event,
|
|
24509
24507
|
[sesame.v1.common.EventTopic.EVENT_TOPIC_CALLBACK]: sesame.v1.status.Event,
|
|
24510
24508
|
[sesame.v1.common.EventTopic.EVENT_TOPIC_JOB]: sesame.v1.status.Event,
|
|
24511
|
-
[sesame.v1.common.EventTopic.EVENT_TOPIC_RECORDER]: sesame.v1.status.Event
|
|
24509
|
+
[sesame.v1.common.EventTopic.EVENT_TOPIC_RECORDER]: sesame.v1.status.Event,
|
|
24510
|
+
[sesame.v1.common.EventTopic.EVENT_TOPIC_METADATA]: sesame.v1.status.Event
|
|
24512
24511
|
};
|
|
24513
24512
|
let options = {
|
|
24514
24513
|
eventTypes: events
|