UNPKG

@aptpod/iscp-ts

Version:

iSCP 2.0 client library for TypeScript

320 lines 11.6 kB
import { ISCPMalformedMessageError } from '../../exceptions'; import { DownstreamChunkAck, DownstreamChunkAckExtensionFields, DownstreamChunkResult, DownstreamChunkResultExtensionFields, UpstreamInfo, DataId, RESULT_CODE, } from '../../message'; import { ResultCode as ResultCodePb } from '../codegen/result_code'; const WIRE_DOWNSTREAM_CHUNK_ACK = new DownstreamChunkAck({ streamIdAlias: 1234, ackId: 4567, results: [ new DownstreamChunkResult({ streamIdOfUpstream: '01020304-0506-4708-890a-111213141516', sequenceNumberInUpstream: 9990, resultCode: RESULT_CODE.SUCCEEDED, resultString: 'result-9990', extensionFields: undefined, }), new DownstreamChunkResult({ streamIdOfUpstream: '11223344-0506-4708-890a-111213141516', sequenceNumberInUpstream: 9991, resultCode: RESULT_CODE.SUCCEEDED, resultString: 'result-9991', extensionFields: undefined, }), ], upstreamAliases: { 100: new UpstreamInfo({ sessionId: 'sessionId-100', streamId: '55667788-0506-4708-890a-111213141516', sourceNodeId: 'sourceNodeId-100', }), 200: new UpstreamInfo({ sessionId: 'sessionId-200', streamId: 'aabbccdd-0506-4708-890a-111213141516', sourceNodeId: 'sourceNodeId-200', }), }, dataIdAliases: { 1000: new DataId({ name: 'data-1000', type: 'type-1000', }), 2000: new DataId({ name: 'data-2000', type: 'type-2000', }), }, extensionFields: undefined, }); const PROTO_DOWNSTREAM_CHUNK_ACK = { streamIdAlias: 1234, ackId: 4567, results: [ { streamIdOfUpstream: new Uint8Array([ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x47, 0x08, 0x89, 0x0a, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, ]), sequenceNumberInUpstream: 9990, resultCode: ResultCodePb.SUCCEEDED, resultString: 'result-9990', extensionFields: undefined, }, { streamIdOfUpstream: new Uint8Array([ 0x11, 0x22, 0x33, 0x44, 0x05, 0x06, 0x47, 0x08, 0x89, 0x0a, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, ]), sequenceNumberInUpstream: 9991, resultCode: ResultCodePb.SUCCEEDED, resultString: 'result-9991', extensionFields: undefined, }, ], upstreamAliases: { 100: { sessionId: 'sessionId-100', streamId: new Uint8Array([ 0x55, 0x66, 0x77, 0x88, 0x05, 0x06, 0x47, 0x08, 0x89, 0x0a, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, ]), sourceNodeId: 'sourceNodeId-100', }, 200: { sessionId: 'sessionId-200', streamId: new Uint8Array([ 0xaa, 0xbb, 0xcc, 0xdd, 0x05, 0x06, 0x47, 0x08, 0x89, 0x0a, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, ]), sourceNodeId: 'sourceNodeId-200', }, }, dataIdAliases: { 1000: { name: 'data-1000', type: 'type-1000', }, 2000: { name: 'data-2000', type: 'type-2000', }, }, extensionFields: undefined, }; export const withoutExtensionFields = { toWire: () => { return new DownstreamChunkAck({ ...WIRE_DOWNSTREAM_CHUNK_ACK, }); }, toProto: () => { return { message: { oneofKind: 'downstreamChunkAck', downstreamChunkAck: { ...PROTO_DOWNSTREAM_CHUNK_ACK, }, }, }; }, }; export const withExtensionFields = { toWire: () => { return new DownstreamChunkAck({ ...WIRE_DOWNSTREAM_CHUNK_ACK, results: [ new DownstreamChunkResult({ streamIdOfUpstream: '01020304-0506-4708-890a-111213141516', sequenceNumberInUpstream: 9990, resultCode: RESULT_CODE.SUCCEEDED, resultString: 'result-9990', extensionFields: new DownstreamChunkResultExtensionFields(), }), new DownstreamChunkResult({ streamIdOfUpstream: '11223344-0506-4708-890a-111213141516', sequenceNumberInUpstream: 9991, resultCode: RESULT_CODE.SUCCEEDED, resultString: 'result-9991', extensionFields: new DownstreamChunkResultExtensionFields(), }), ], extensionFields: new DownstreamChunkAckExtensionFields(), }); }, toProto: () => { return { message: { oneofKind: 'downstreamChunkAck', downstreamChunkAck: { ...PROTO_DOWNSTREAM_CHUNK_ACK, results: [ { streamIdOfUpstream: new Uint8Array([ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x47, 0x08, 0x89, 0x0a, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, ]), sequenceNumberInUpstream: 9990, resultCode: ResultCodePb.SUCCEEDED, resultString: 'result-9990', extensionFields: {}, }, { streamIdOfUpstream: new Uint8Array([ 0x11, 0x22, 0x33, 0x44, 0x05, 0x06, 0x47, 0x08, 0x89, 0x0a, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, ]), sequenceNumberInUpstream: 9991, resultCode: ResultCodePb.SUCCEEDED, resultString: 'result-9991', extensionFields: {}, }, ], extensionFields: {}, }, }, }; }, }; export const invalidWire = { resultsStreamIdOfUpstream: { toWire: () => { return new DownstreamChunkAck({ ...WIRE_DOWNSTREAM_CHUNK_ACK, results: [ new DownstreamChunkResult({ streamIdOfUpstream: '00010203', sequenceNumberInUpstream: 9990, resultCode: RESULT_CODE.SUCCEEDED, resultString: 'result-9990', extensionFields: undefined, }), ], }); }, toErrorClass: () => { return TypeError; }, toError: () => { return new (invalidWire.resultsStreamIdOfUpstream.toErrorClass())('Invalid UUID'); }, }, resultsResultCode: { toWire: () => { return new DownstreamChunkAck({ ...WIRE_DOWNSTREAM_CHUNK_ACK, results: [ new DownstreamChunkResult({ streamIdOfUpstream: '11223344-0506-4708-890a-111213141516', sequenceNumberInUpstream: 9990, // @ts-ignore resultCode: 9999, resultString: 'result-9990', extensionFields: undefined, }), ], }); }, toErrorClass: () => { return ISCPMalformedMessageError; }, toError: () => { return new (invalidWire.resultsResultCode.toErrorClass())('Unrecognized resultCode.'); }, }, upstreamAliasesStreamId: { toWire: () => { return new DownstreamChunkAck({ ...WIRE_DOWNSTREAM_CHUNK_ACK, upstreamAliases: [ new UpstreamInfo({ sessionId: 'sessionId-100', streamId: '00010203', sourceNodeId: 'sourceNodeId-100', }), ], }); }, toErrorClass: () => { return TypeError; }, toError: () => { return new (invalidWire.resultsStreamIdOfUpstream.toErrorClass())('Invalid UUID'); }, }, }; export const invalidProto = { resultsStreamIdOfUpstream: { toProto: () => { return { message: { oneofKind: 'downstreamChunkAck', downstreamChunkAck: { ...PROTO_DOWNSTREAM_CHUNK_ACK, results: [ { streamIdOfUpstream: new Uint8Array([0x00, 0x01, 0x02, 0x03]), sequenceNumberInUpstream: 9990, resultCode: ResultCodePb.SUCCEEDED, resultString: 'result-9990', extensionFields: undefined, }, ], }, }, }; }, toErrorClass: () => { return TypeError; }, toError: () => { return new (invalidProto.resultsStreamIdOfUpstream.toErrorClass())('Stringified UUID is invalid'); }, }, resultsResultCode: { toProto: () => { return { message: { oneofKind: 'downstreamChunkAck', downstreamChunkAck: { ...PROTO_DOWNSTREAM_CHUNK_ACK, results: [ { streamIdOfUpstream: new Uint8Array([ 0xaa, 0xbb, 0xcc, 0xdd, 0x05, 0x06, 0x47, 0x08, 0x89, 0x0a, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, ]), sequenceNumberInUpstream: 9990, resultCode: 9999, resultString: 'result-9990', extensionFields: undefined, }, ], }, }, }; }, toErrorClass: () => { return ISCPMalformedMessageError; }, toError: () => { return new (invalidProto.resultsResultCode.toErrorClass())('Unrecognized resultCode.'); }, }, upstreamAliasesStreamId: { toProto: () => { return { message: { oneofKind: 'downstreamChunkAck', downstreamChunkAck: { ...PROTO_DOWNSTREAM_CHUNK_ACK, upstreamAliases: [ { sessionId: 'sessionId-100', streamId: new Uint8Array([0x00, 0x01, 0x02, 0x03]), sourceNodeId: 'sourceNodeId-100', }, ], }, }, }; }, toErrorClass: () => { return TypeError; }, toError: () => { return new (invalidProto.upstreamAliasesStreamId.toErrorClass())('Stringified UUID is invalid'); }, }, }; //# sourceMappingURL=downstream-chunk-ack.js.map