@robdobsn/raftjs 1.10.7 → 1.11.6

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.
Files changed (89) hide show
  1. package/dist/react-native/RaftAttributeHandler.js +11 -9
  2. package/dist/react-native/RaftAttributeHandler.js.map +1 -1
  3. package/dist/react-native/RaftChannelSimulated.js +4 -3
  4. package/dist/react-native/RaftChannelSimulated.js.map +1 -1
  5. package/dist/react-native/RaftConnector.d.ts +10 -1
  6. package/dist/react-native/RaftConnector.js +23 -10
  7. package/dist/react-native/RaftConnector.js.map +1 -1
  8. package/dist/react-native/RaftDeviceManager.d.ts +14 -2
  9. package/dist/react-native/RaftDeviceManager.js +224 -77
  10. package/dist/react-native/RaftDeviceManager.js.map +1 -1
  11. package/dist/react-native/RaftDeviceMgrIF.d.ts +5 -1
  12. package/dist/react-native/RaftDeviceStates.d.ts +21 -3
  13. package/dist/react-native/RaftDeviceStates.js +31 -6
  14. package/dist/react-native/RaftDeviceStates.js.map +1 -1
  15. package/dist/react-native/RaftPublish.d.ts +2 -0
  16. package/dist/react-native/RaftPublish.js +81 -0
  17. package/dist/react-native/RaftPublish.js.map +1 -0
  18. package/dist/react-native/RaftStreamHandler.d.ts +11 -0
  19. package/dist/react-native/RaftStreamHandler.js +66 -0
  20. package/dist/react-native/RaftStreamHandler.js.map +1 -1
  21. package/dist/react-native/RaftStruct.d.ts +2 -2
  22. package/dist/react-native/RaftStruct.js +97 -26
  23. package/dist/react-native/RaftStruct.js.map +1 -1
  24. package/dist/react-native/RaftSystemUtils.d.ts +17 -1
  25. package/dist/react-native/RaftSystemUtils.js +51 -0
  26. package/dist/react-native/RaftSystemUtils.js.map +1 -1
  27. package/dist/react-native/RaftTypes.d.ts +21 -0
  28. package/dist/react-native/RaftTypes.js.map +1 -1
  29. package/dist/react-native/main.d.ts +1 -0
  30. package/dist/react-native/main.js +1 -0
  31. package/dist/react-native/main.js.map +1 -1
  32. package/dist/web/RaftAttributeHandler.js +11 -9
  33. package/dist/web/RaftAttributeHandler.js.map +1 -1
  34. package/dist/web/RaftChannelSimulated.js +4 -3
  35. package/dist/web/RaftChannelSimulated.js.map +1 -1
  36. package/dist/web/RaftConnector.d.ts +10 -1
  37. package/dist/web/RaftConnector.js +23 -10
  38. package/dist/web/RaftConnector.js.map +1 -1
  39. package/dist/web/RaftDeviceManager.d.ts +14 -2
  40. package/dist/web/RaftDeviceManager.js +224 -77
  41. package/dist/web/RaftDeviceManager.js.map +1 -1
  42. package/dist/web/RaftDeviceMgrIF.d.ts +5 -1
  43. package/dist/web/RaftDeviceStates.d.ts +21 -3
  44. package/dist/web/RaftDeviceStates.js +31 -6
  45. package/dist/web/RaftDeviceStates.js.map +1 -1
  46. package/dist/web/RaftPublish.d.ts +2 -0
  47. package/dist/web/RaftPublish.js +81 -0
  48. package/dist/web/RaftPublish.js.map +1 -0
  49. package/dist/web/RaftStreamHandler.d.ts +11 -0
  50. package/dist/web/RaftStreamHandler.js +66 -0
  51. package/dist/web/RaftStreamHandler.js.map +1 -1
  52. package/dist/web/RaftStruct.d.ts +2 -2
  53. package/dist/web/RaftStruct.js +97 -26
  54. package/dist/web/RaftStruct.js.map +1 -1
  55. package/dist/web/RaftSystemUtils.d.ts +17 -1
  56. package/dist/web/RaftSystemUtils.js +51 -0
  57. package/dist/web/RaftSystemUtils.js.map +1 -1
  58. package/dist/web/RaftTypes.d.ts +21 -0
  59. package/dist/web/RaftTypes.js.map +1 -1
  60. package/dist/web/main.d.ts +1 -0
  61. package/dist/web/main.js +1 -0
  62. package/dist/web/main.js.map +1 -1
  63. package/examples/dashboard/package.json +1 -1
  64. package/examples/dashboard/src/DeviceActionsForm.tsx +2 -2
  65. package/examples/dashboard/src/DeviceLineChart.tsx +16 -3
  66. package/examples/dashboard/src/DevicePanel.tsx +79 -3
  67. package/examples/dashboard/src/DeviceStatsPanel.tsx +76 -0
  68. package/examples/dashboard/src/DevicesPanel.tsx +11 -0
  69. package/examples/dashboard/src/SettingsScreen.tsx +9 -4
  70. package/examples/dashboard/src/SystemTypeCog/CogStateInfo.ts +10 -2
  71. package/examples/dashboard/src/SystemTypeCog/SystemTypeCog.ts +37 -3
  72. package/examples/dashboard/src/SystemTypeGeneric/StateInfoGeneric.ts +10 -2
  73. package/examples/dashboard/src/SystemTypeGeneric/SystemTypeGeneric.ts +38 -4
  74. package/examples/dashboard/src/SystemTypeMarty/RICStateInfo.ts +10 -2
  75. package/examples/dashboard/src/styles.css +162 -0
  76. package/package.json +52 -49
  77. package/src/RaftAttributeHandler.ts +25 -22
  78. package/src/RaftChannelSimulated.ts +4 -3
  79. package/src/RaftConnector.ts +34 -13
  80. package/src/RaftDeviceManager.ts +253 -83
  81. package/src/RaftDeviceMgrIF.ts +5 -1
  82. package/src/RaftDeviceStates.ts +42 -8
  83. package/src/RaftPublish.ts +92 -0
  84. package/src/RaftStreamHandler.ts +84 -1
  85. package/src/RaftStruct.test.ts +229 -0
  86. package/src/RaftStruct.ts +101 -37
  87. package/src/RaftSystemUtils.ts +59 -0
  88. package/src/RaftTypes.ts +27 -0
  89. package/src/main.ts +1 -0
@@ -1,8 +1,10 @@
1
1
  import { DeviceTypeAction } from "./RaftDeviceInfo";
2
- import { DeviceAttributeState, DevicesState, DeviceState } from "./RaftDeviceStates";
2
+ import { DeviceAttributeState, DevicesState, DeviceState, DeviceStats } from "./RaftDeviceStates";
3
3
  export default interface RaftDeviceMgrIF {
4
4
  getDevicesState(): DevicesState;
5
5
  getDeviceState(deviceKey: string): DeviceState;
6
+ getDeviceStats(deviceKey: string): DeviceStats;
7
+ resetDeviceStats(deviceKey: string): void;
6
8
  setMaxDataPointsToStore(maxDataPointsToStore: number): void;
7
9
  addNewDeviceCallback(callback: (deviceKey: string, state: DeviceState) => void): void;
8
10
  removeNewDeviceCallback(callback: (deviceKey: string, state: DeviceState) => void): void;
@@ -10,6 +12,8 @@ export default interface RaftDeviceMgrIF {
10
12
  removeNewAttributeCallback(callback: (deviceKey: string, attrState: DeviceAttributeState) => void): void;
11
13
  addAttributeDataCallback(callback: (deviceKey: string, attrState: DeviceAttributeState) => void): void;
12
14
  removeAttributeDataCallback(callback: (deviceKey: string, attrState: DeviceAttributeState) => void): void;
15
+ addDeviceRemovedCallback(callback: (deviceKey: string, state: DeviceState) => void): void;
16
+ removeDeviceRemovedCallback(callback: (deviceKey: string, state: DeviceState) => void): void;
13
17
  sendAction(deviceKey: string, action: DeviceTypeAction, data: number[]): void;
14
18
  sendCompoundAction(deviceKey: string, action: DeviceTypeAction, data: number[][]): void;
15
19
  }
@@ -5,7 +5,7 @@ export interface DeviceAttributeState {
5
5
  newAttribute: boolean;
6
6
  newData: boolean;
7
7
  numNewValues: number;
8
- values: number[];
8
+ values: (number | string)[];
9
9
  units: string;
10
10
  range: number[];
11
11
  format: string;
@@ -20,13 +20,26 @@ export interface DeviceTimeline {
20
20
  lastReportTimestampUs: number;
21
21
  reportTimestampOffsetUs: number;
22
22
  }
23
+ export interface DeviceStats {
24
+ totalSamples: number;
25
+ windowMs: number;
26
+ windowSamples: number;
27
+ sampleRateHz: number;
28
+ lastSampleTimeMs: number | null;
29
+ lastUpdateTimeMs: number | null;
30
+ }
31
+ export declare enum DeviceOnlineState {
32
+ Offline = 0,
33
+ Online = 1,
34
+ PendingDeletion = 2
35
+ }
23
36
  export interface DeviceState {
24
37
  deviceTypeInfo: DeviceTypeInfo | undefined;
25
38
  deviceTimeline: DeviceTimeline;
26
39
  deviceAttributes: DeviceAttributesState;
27
40
  deviceIsNew: boolean;
28
41
  stateChanged: boolean;
29
- isOnline: boolean;
42
+ onlineState: DeviceOnlineState;
30
43
  deviceAddress: string;
31
44
  deviceType: string;
32
45
  busName: string;
@@ -34,4 +47,9 @@ export interface DeviceState {
34
47
  export declare class DevicesState {
35
48
  [deviceKey: string]: DeviceState;
36
49
  }
37
- export declare function getDeviceKey(busName: string, devAddr: string): string;
50
+ export declare function formatDeviceAddrHex(addr: number): string;
51
+ export declare function getDeviceKey(busNumberAsString: string, devAddrHexStr: string): string;
52
+ export declare function parseDeviceKey(deviceKey: string): {
53
+ bus: string;
54
+ addr: string;
55
+ };
@@ -8,17 +8,23 @@
8
8
  //
9
9
  /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.DevicesState = void 0;
11
+ exports.DevicesState = exports.DeviceOnlineState = void 0;
12
12
  exports.deviceAttrGetLatestFormatted = deviceAttrGetLatestFormatted;
13
+ exports.formatDeviceAddrHex = formatDeviceAddrHex;
13
14
  exports.getDeviceKey = getDeviceKey;
15
+ exports.parseDeviceKey = parseDeviceKey;
14
16
  function deviceAttrGetLatestFormatted(attrState) {
15
17
  if (attrState.values.length === 0) {
16
18
  return 'N/A';
17
19
  }
20
+ const value = attrState.values[attrState.values.length - 1];
21
+ // String values are returned directly
22
+ if (typeof value === 'string') {
23
+ return value;
24
+ }
18
25
  if (attrState.format.length === 0) {
19
- return attrState.values[attrState.values.length - 1].toString();
26
+ return value.toString();
20
27
  }
21
- const value = attrState.values[attrState.values.length - 1];
22
28
  let format = attrState.format;
23
29
  if (format.startsWith("%")) {
24
30
  format = format.slice(1);
@@ -50,11 +56,30 @@ function deviceAttrGetLatestFormatted(attrState) {
50
56
  }
51
57
  return value.toString();
52
58
  }
59
+ var DeviceOnlineState;
60
+ (function (DeviceOnlineState) {
61
+ DeviceOnlineState[DeviceOnlineState["Offline"] = 0] = "Offline";
62
+ DeviceOnlineState[DeviceOnlineState["Online"] = 1] = "Online";
63
+ DeviceOnlineState[DeviceOnlineState["PendingDeletion"] = 2] = "PendingDeletion";
64
+ })(DeviceOnlineState || (exports.DeviceOnlineState = DeviceOnlineState = {}));
53
65
  class DevicesState {
54
66
  }
55
67
  exports.DevicesState = DevicesState;
56
- // Add the getDeviceKey method to generate a composite key
57
- function getDeviceKey(busName, devAddr) {
58
- return `${busName}_${devAddr}`;
68
+ // Format a numeric device address as canonical hex string:
69
+ // lowercase, no "0x" prefix, no leading zeros
70
+ function formatDeviceAddrHex(addr) {
71
+ return addr.toString(16);
72
+ }
73
+ // Generate a composite device key from bus number and hex address
74
+ function getDeviceKey(busNumberAsString, devAddrHexStr) {
75
+ return `${busNumberAsString}_${devAddrHexStr}`;
76
+ }
77
+ // Parse a device key into its bus and address components
78
+ function parseDeviceKey(deviceKey) {
79
+ const sep = deviceKey.indexOf('_');
80
+ if (sep < 0) {
81
+ return { bus: deviceKey, addr: '' };
82
+ }
83
+ return { bus: deviceKey.substring(0, sep), addr: deviceKey.substring(sep + 1) };
59
84
  }
60
85
  //# sourceMappingURL=RaftDeviceStates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RaftDeviceStates.js","sourceRoot":"","sources":["../../src/RaftDeviceStates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RaftDeviceStates.js","sourceRoot":"","sources":["../../src/RaftDeviceStates.ts"],"names":[],"mappings":";AAAA,iHAAiH;AACjH,EAAE;AACF,mBAAmB;AACnB,iCAAiC;AACjC,EAAE;AACF,sBAAsB;AACtB,EAAE;AACF,iHAAiH;;;AAIjH,oEAwCC;AA0DD,kDAEC;AAGD,oCAEC;AAGD,wCAMC;AAlHD,SAAgB,4BAA4B,CAAC,SAA+B;IAExE,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5D,sCAAsC;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC5B,CAAC;IACD,IAAI,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAC9B,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,mCAAmC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1C,OAAO,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;IACpF,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,yBAAyB;QACzB,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACpG,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,6BAA6B;QAC7B,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACpG,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,oBAAoB;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAClD,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC5B,CAAC;AAkCD,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,+DAAW,CAAA;IACX,6DAAU,CAAA;IACV,+EAAmB,CAAA;AACvB,CAAC,EAJW,iBAAiB,iCAAjB,iBAAiB,QAI5B;AAcD,MAAa,YAAY;CAExB;AAFD,oCAEC;AAED,2DAA2D;AAC3D,8CAA8C;AAC9C,SAAgB,mBAAmB,CAAC,IAAY;IAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,kEAAkE;AAClE,SAAgB,YAAY,CAAC,iBAAyB,EAAE,aAAqB;IACzE,OAAO,GAAG,iBAAiB,IAAI,aAAa,EAAE,CAAC;AACnD,CAAC;AAED,yDAAyD;AACzD,SAAgB,cAAc,CAAC,SAAiB;IAC5C,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;QACV,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;AACpF,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { RaftPublishFrameMeta } from "./RaftTypes";
2
+ export declare function inspectPublishFrame(payload: Uint8Array, topicLookup?: (topicIndex: number) => string | undefined): RaftPublishFrameMeta;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
3
+ //
4
+ // RaftSystem
5
+ // Part of RaftJS
6
+ //
7
+ // Rob Dobson 2025
8
+ // (C) 2020-2025 All rights reserved
9
+ //
10
+ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.inspectPublishFrame = inspectPublishFrame;
13
+ const RAFT_PUBLISH_PREFIX_LEN = 2;
14
+ const DEVBIN_MAGIC_MIN = 0xDB;
15
+ const DEVBIN_MAGIC_MAX = 0xDF;
16
+ const DEVBIN_VERSION_BASE = 0xDA;
17
+ function inspectPublishFrame(payload, topicLookup) {
18
+ if (payload.length < RAFT_PUBLISH_PREFIX_LEN) {
19
+ return { frameType: "unknown" };
20
+ }
21
+ const payloadStartPos = RAFT_PUBLISH_PREFIX_LEN;
22
+ if (payload.length <= payloadStartPos) {
23
+ return { frameType: "unknown" };
24
+ }
25
+ // Try JSON first
26
+ if (payload[payloadStartPos] === 0x7B) {
27
+ try {
28
+ const jsonString = new TextDecoder("utf-8").decode(payload.slice(payloadStartPos));
29
+ const jsonObj = JSON.parse(jsonString);
30
+ let topicIndex = undefined;
31
+ let topicName = undefined;
32
+ if (typeof jsonObj._t === "number") {
33
+ topicIndex = jsonObj._t;
34
+ topicName = topicLookup ? topicLookup(topicIndex) : undefined;
35
+ }
36
+ else if (typeof jsonObj._t === "string") {
37
+ topicName = jsonObj._t;
38
+ }
39
+ const version = typeof jsonObj._v === "number" ? jsonObj._v : undefined;
40
+ return {
41
+ frameType: "json",
42
+ topicIndex,
43
+ topicName,
44
+ version,
45
+ jsonString,
46
+ };
47
+ }
48
+ catch (_a) {
49
+ return { frameType: "unknown" };
50
+ }
51
+ }
52
+ // Binary (devbin legacy or enveloped)
53
+ const firstBinaryByte = payload[payloadStartPos];
54
+ if ((firstBinaryByte & 0xF0) === 0xD0) {
55
+ if (firstBinaryByte < DEVBIN_MAGIC_MIN || firstBinaryByte > DEVBIN_MAGIC_MAX) {
56
+ return {
57
+ frameType: "binary",
58
+ binaryHasEnvelope: true,
59
+ };
60
+ }
61
+ const topicIndex = payload.length > payloadStartPos + 1 ? payload[payloadStartPos + 1] : undefined;
62
+ const topicName = (topicIndex !== undefined && topicIndex !== 0xFF && topicLookup)
63
+ ? topicLookup(topicIndex)
64
+ : undefined;
65
+ return {
66
+ frameType: "binary",
67
+ topicIndex,
68
+ topicName,
69
+ version: firstBinaryByte - DEVBIN_VERSION_BASE,
70
+ binaryHasEnvelope: true,
71
+ binaryPayloadOffset: payloadStartPos + 2,
72
+ };
73
+ }
74
+ // Legacy binary format (no envelope)
75
+ return {
76
+ frameType: "binary",
77
+ binaryHasEnvelope: false,
78
+ binaryPayloadOffset: payloadStartPos,
79
+ };
80
+ }
81
+ //# sourceMappingURL=RaftPublish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RaftPublish.js","sourceRoot":"","sources":["../../src/RaftPublish.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import RaftMsgHandler from './RaftMsgHandler';
2
2
  import RaftCommsStats from './RaftCommsStats';
3
+ import { RaftStreamDataProgressCBType } from './RaftTypes';
3
4
  import RaftConnector from './RaftConnector';
4
5
  export default class RaftStreamHandler {
5
6
  private _streamID;
@@ -24,6 +25,16 @@ export default class RaftStreamHandler {
24
25
  constructor(msgHandler: RaftMsgHandler, commsStats: RaftCommsStats, raftConnector: RaftConnector);
25
26
  setNumBlocksWithoutPause(numBlocks: number): void;
26
27
  setLegacySoktoMode(legacyMode: boolean): void;
28
+ /**
29
+ * streamData - stream arbitrary data to a named firmware endpoint using the RT_STREAM protocol.
30
+ * Returns a promise that resolves when the stream is complete or rejects on failure.
31
+ * @param streamContents data to stream
32
+ * @param fileName logical filename sent in ufStart (used by firmware to detect format, e.g. "pattern.thr")
33
+ * @param targetEndpoint REST API endpoint name registered on the firmware (e.g. "streampattern")
34
+ * @param progressCallback optional callback reporting (bytesSent, totalBytes, progressFraction)
35
+ * @returns Promise<boolean> true if stream completed successfully
36
+ */
37
+ streamData(streamContents: Uint8Array, fileName: string, targetEndpoint: string, progressCallback?: RaftStreamDataProgressCBType): Promise<boolean>;
27
38
  streamAudio(streamContents: Uint8Array, clearExisting: boolean, audioDuration: number): void;
28
39
  streamCancel(): Promise<void>;
29
40
  isStreamStarting(): boolean;
@@ -55,6 +55,72 @@ class RaftStreamHandler {
55
55
  RaftLog_1.default.debug(`Setting legacy sokto mode to ${legacyMode}`);
56
56
  this._legacySoktoMode = legacyMode;
57
57
  }
58
+ /**
59
+ * streamData - stream arbitrary data to a named firmware endpoint using the RT_STREAM protocol.
60
+ * Returns a promise that resolves when the stream is complete or rejects on failure.
61
+ * @param streamContents data to stream
62
+ * @param fileName logical filename sent in ufStart (used by firmware to detect format, e.g. "pattern.thr")
63
+ * @param targetEndpoint REST API endpoint name registered on the firmware (e.g. "streampattern")
64
+ * @param progressCallback optional callback reporting (bytesSent, totalBytes, progressFraction)
65
+ * @returns Promise<boolean> true if stream completed successfully
66
+ */
67
+ async streamData(streamContents, fileName, targetEndpoint, progressCallback) {
68
+ // Reject if another stream is starting
69
+ if (this._streamIsStarting || this._lastStreamStartTime > (Date.now() - 500)) {
70
+ RaftLog_1.default.warn(`streamData: unable to start, too soon since last request`);
71
+ return false;
72
+ }
73
+ this._streamIsStarting = true;
74
+ this._lastStreamStartTime = Date.now();
75
+ this._soktoReceived = false;
76
+ this._soktoPos = 0;
77
+ this._streamPos = 0;
78
+ this._streamBuffer = RaftUtils_1.default.toArrayBufferView(streamContents);
79
+ // Send ufStart
80
+ const startOk = await this._sendStreamStartMsg(fileName, targetEndpoint, RaftTypes_1.RaftStreamType.REAL_TIME_STREAM, streamContents);
81
+ this._streamIsStarting = false;
82
+ if (!startOk) {
83
+ RaftLog_1.default.warn(`streamData: ufStart failed`);
84
+ return false;
85
+ }
86
+ // Send blocks
87
+ if (this._streamID === null) {
88
+ return false;
89
+ }
90
+ let pos = 0;
91
+ while (pos < this._streamBuffer.length) {
92
+ // Respect SOKTO feedback — if firmware reported a position mismatch, rewind
93
+ if (this._soktoReceived) {
94
+ RaftLog_1.default.verbose(`streamData: sokto received, pos was ${pos}, soktoPos ${this._soktoPos}`);
95
+ this._soktoReceived = false;
96
+ // Slow down on backpressure
97
+ await new Promise(r => setTimeout(r, 50));
98
+ }
99
+ const blockSize = Math.min(this._streamBuffer.length - pos, this._maxBlockSize);
100
+ const block = this._streamBuffer.slice(pos, pos + blockSize);
101
+ if (block.length > 0) {
102
+ const sentOk = await this._msgHandler.sendStreamBlock(block, pos, this._streamID);
103
+ this._commsStats.recordStreamBytes(block.length);
104
+ if (!sentOk) {
105
+ RaftLog_1.default.warn(`streamData: sendStreamBlock failed at pos ${pos}`);
106
+ return false;
107
+ }
108
+ pos += blockSize;
109
+ this._streamPos = pos;
110
+ // Progress callback
111
+ if (progressCallback) {
112
+ const progress = this._streamBuffer.length > 0 ? pos / this._streamBuffer.length : 1;
113
+ progressCallback(pos, this._streamBuffer.length, progress);
114
+ }
115
+ }
116
+ // Yield to avoid hogging the event loop
117
+ await new Promise(r => setTimeout(r, 1));
118
+ }
119
+ // Send ufEnd
120
+ const endOk = await this._sendStreamEndMsg(this._streamID);
121
+ RaftLog_1.default.debug(`streamData: complete, endOk=${endOk}`);
122
+ return endOk;
123
+ }
58
124
  // Start streaming audio
59
125
  streamAudio(streamContents, clearExisting, audioDuration) {
60
126
  if (!clearExisting)
@@ -1 +1 @@
1
- {"version":3,"file":"RaftStreamHandler.js","sourceRoot":"","sources":["../../src/RaftStreamHandler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RaftStreamHandler.js","sourceRoot":"","sources":["../../src/RaftStreamHandler.ts"],"names":[],"mappings":";AAAA,iHAAiH;AACjH,EAAE;AACF,mBAAmB;AACnB,iBAAiB;AACjB,EAAE;AACF,wCAAwC;AACxC,oCAAoC;AACpC,EAAE;AACF,iHAAiH;;;AAEjH,gEAA+B;AAG/B,2CAA4G;AAE5G,qDAAiD;AACjD,yDAAoD;AACpD,oEAAoC;AAEpC,MAAqB,iBAAiB;IA4CpC,YAAY,UAA0B,EAAE,UAA0B,EAAE,aAA4B;QA1ChG,iCAAiC;QACjC;;;;;UAKE;QAEF,eAAe;QACP,cAAS,GAAkB,IAAI,CAAC;QACxC,2BAAsB,GAAG,GAAG,CAAC;QACrB,kBAAa,GAAW,IAAI,CAAC,sBAAsB,CAAC;QAW5D,eAAe;QACP,mBAAc,GAAG,KAAK,CAAC;QACvB,cAAS,GAAG,CAAC,CAAC;QAEd,sBAAiB,GAAG,KAAK,CAAC;QAC1B,yBAAoB,GAAG,CAAC,CAAC;QAEzB,iBAAY,GAAG,KAAK,CAAC;QACrB,cAAS,GAAG,KAAK,CAAC;QAClB,kBAAa,GAA4B,IAAI,UAAU,EAAE,CAAC;QAC1D,mBAAc,GAAG,CAAC,CAAC;QACnB,mBAAc,GAAG,CAAC,CAAC;QACnB,eAAU,GAAG,CAAC,CAAC;QACf,2BAAsB,GAAG,EAAE,CAAC;QAC5B,qBAAgB,GAAG,KAAK,CAAC;QAGjC,yBAAyB;QACjB,qBAAgB,GAA0B,IAAI,CAAC;QAGrD,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,wBAAwB,CAAC,SAAiB;QACxC,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;IAC1C,CAAC;IAED,kBAAkB,CAAC,UAAmB;QACpC,iBAAO,CAAC,KAAK,CAAC,gCAAgC,UAAU,EAAE,CAAC,CAAC;QAC5D,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC;IACrC,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,UAAU,CACd,cAA0B,EAC1B,QAAgB,EAChB,cAAsB,EACtB,gBAA+C;QAE/C,uCAAuC;QACvC,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,oBAAoB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;YAC7E,iBAAO,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;YACzE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,mBAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QAEjE,eAAe;QACf,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAC5C,QAAQ,EAAE,cAAc,EAAE,0BAAc,CAAC,gBAAgB,EAAE,cAAc,CAC1E,CAAC;QACF,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAE/B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,iBAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC3C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,cAAc;QACd,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,OAAO,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YACvC,4EAA4E;YAC5E,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,iBAAO,CAAC,OAAO,CAAC,uCAAuC,GAAG,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBAC1F,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,4BAA4B;gBAC5B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC5C,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAChF,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,CAAC,CAAC;YAC7D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAClF,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,iBAAO,CAAC,IAAI,CAAC,6CAA6C,GAAG,EAAE,CAAC,CAAC;oBACjE,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,GAAG,IAAI,SAAS,CAAC;gBACjB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;gBAEtB,oBAAoB;gBACpB,IAAI,gBAAgB,EAAE,CAAC;oBACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBACrF,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBAC7D,CAAC;YACH,CAAC;YAED,wCAAwC;YACxC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;QAED,aAAa;QACb,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3D,iBAAO,CAAC,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;QACtD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wBAAwB;IACxB,WAAW,CAAC,cAA0B,EAAE,aAAsB,EAAE,aAAqB;QACnF,IAAI,CAAC,aAAa;YAChB,iBAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAErE,mDAAmD;QACnD,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,oBAAoB,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;YAC7E,iBAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,mBAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,cAAc,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,aAAa,CAAC,GAAG,IAAI,CAAC;QAErE,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAE/B,IAAI,CAAC,mBAAmB,CAAC,WAAW,EAAE,aAAa,EAAE,0BAAc,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC,IAAI,CACxG,CAAC,MAAe,EAAE,EAAE;YAClB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;YAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,iBAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;gBACpE,OAAO;YACT,CAAC;YACD,qCAAqC;YACrC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;gBACvB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;QAEH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,aAAa,GAAG,IAAI,UAAU,EAAE,CAAC;QACtC,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACjC,CAAC;IAEM,gBAAgB;QACrB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAGD,uBAAuB;QACrB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,2BAA2B;QACzB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtC,+DAA+D;gBAC/D,+CAA+C;gBAE/C,6CAA6C;gBAC7C,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,8BAAa,CAAC,oBAAoB,CAAC,CAAC;gBAEpE,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,yBAAyB;IACjB,KAAK,CAAC,mBAAmB,CAC/B,UAAkB,EAClB,cAAsB,EACtB,cAA8B,EAC9B,cAA0B;QAE1B,+BAA+B;QAC/B,MAAM,UAAU,GAAG,UAAU,CAAC;QAC9B,MAAM,MAAM,GAAG,uDAAuD,UAAU,iBAAiB,UAAU,iBAAiB,cAAc,eAAe,cAAc,CAAC,MAAM,GAAG,CAAC;QAElL,QAAQ;QACR,iBAAO,CAAC,KAAK,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC;QAE9C,OAAO;QACP,IAAI,eAAe,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC;YACH,eAAe,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAClD,MAAM,EACN,kCAAe,CAAC,+BAA+B,CAChD,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,iBAAO,CAAC,IAAI,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;YAChD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,iBAAiB;QACjB,IAAI,eAAe,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC,QAAQ,CAAC;YAC1C,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,YAAY,IAAI,IAAI,CAAC,sBAAsB,CAAC;YACjF,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACnC,iBAAO,CAAC,OAAO,CACb,+BAA+B,IAAI,CAAC,SAAS,iBAAiB,IAAI,CAAC,aAAa,eAAe,cAAc,EAAE,CAChH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,iBAAO,CAAC,IAAI,CAAC,6BAA6B,eAAe,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;YACpG,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,YAAY,CAAC,YAAoB;QACnC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,sBAAsB,GAAG,YAAY,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,QAAuB;QAEvB,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,4BAA4B;QAC5B,MAAM,MAAM,GAAG,kDAAkD,QAAQ,GAAG,CAAC;QAE7E,QAAQ;QACR,iBAAO,CAAC,KAAK,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;QAE5C,OAAO;QACP,IAAI,aAAa,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC;YACH,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAChD,MAAM,EACN,kCAAe,CAAC,+BAA+B,CAChD,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,iBAAO,CAAC,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;YAC9C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,aAAa,CAAC,IAAI,KAAK,IAAI,CAAC;IACrC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA4BE;IAEM,KAAK,CAAC,iBAAiB;QAC7B,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEnC,0BAA0B;QAC1B,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC5B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,qBAAqB;QACrB,OAAO,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;gBACvD,SAAS;YACX,CAAC;YAED,sBAAsB;YACtB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,IAAI,IAAI,CAAC,gBAAgB;oBACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;gBACnC,gFAAgF;gBAChF,qFAAqF;gBACrF,iBAAO,CAAC,OAAO,CAAC,sBAAsB,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,wBAAwB,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC7G,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAE5B,4GAA4G;gBAC5G,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,8BAAa,CAAC,oBAAoB,CAAC,CAAC;YACtE,CAAC;YAED,oBAAoB;YACpB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YAC5F,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;YACrF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC9F,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAEjD,iBAAO,CAAC,OAAO,CACb,sBAAsB,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,UAAU,IAAI,CAAC,UAAU,IAAI,SAAS,IAAI,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CACzJ,CAAC;gBACF,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,KAAK,CAAC;gBACf,CAAC;gBACD,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC;gBAC7B,QAAQ,IAAI,CAAC,CAAC;gBAEd,IAAI,IAAI,CAAC,cAAc,IAAI,QAAQ,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;oBAClE,MAAM,SAAS,GAAG,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAClE,iBAAO,CAAC,OAAO,CAAC,eAAe,SAAS,uCAAuC,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC,CAAA;oBACzG,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;YAED,sCAAsC;YACtC,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,UAAU,CAAC,QAAgB;QACzB,uCAAuC;QACvC,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,iBAAO,CAAC,KAAK,CAAC,kCAAkC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACpE,CAAC;CACF;AAxYD,oCAwYC"}
@@ -1,3 +1,3 @@
1
- export declare function structUnpack(format: string, data: Uint8Array): number[];
1
+ export declare function structUnpack(format: string, data: Uint8Array): (number | string)[];
2
2
  export declare function structSizeOf(format: string): number;
3
- export declare function structPack(format: string, values: number[]): Uint8Array;
3
+ export declare function structPack(format: string, values: (number | string | Uint8Array)[]): Uint8Array;
@@ -28,21 +28,41 @@ function parseFormatInstructions(format) {
28
28
  idx++;
29
29
  continue;
30
30
  }
31
- // Attribute code
32
- const code = char;
33
- idx++;
34
- // Check for repeat count using [N] syntax
31
+ // Check for prefix digit count (e.g. 3H, 16s)
35
32
  let repeat = 1;
33
+ if (/\d/.test(char)) {
34
+ let numStr = char;
35
+ idx++;
36
+ while (idx < format.length && /\d/.test(format[idx])) {
37
+ numStr += format[idx];
38
+ idx++;
39
+ }
40
+ repeat = parseInt(numStr, 10);
41
+ if (!Number.isFinite(repeat) || repeat <= 0) {
42
+ throw new Error(`Invalid prefix count "${numStr}" in format string "${format}"`);
43
+ }
44
+ if (idx >= format.length || /[\s<>\d]/.test(format[idx])) {
45
+ throw new Error(`Expected format code after prefix count "${numStr}" in format string "${format}"`);
46
+ }
47
+ }
48
+ // Attribute code
49
+ const code = /\d/.test(char) ? format[idx] : char;
50
+ if (/\d/.test(char))
51
+ idx++;
52
+ else
53
+ idx++;
54
+ // Check for [N] suffix count (e.g. B[3]) — multiplied with any prefix count
36
55
  if (idx < format.length && format[idx] === "[") {
37
56
  const endIdx = format.indexOf("]", idx + 1);
38
57
  if (endIdx === -1) {
39
58
  throw new Error(`Invalid format string: missing closing ] in "${format}"`);
40
59
  }
41
60
  const repeatStr = format.slice(idx + 1, endIdx);
42
- repeat = parseInt(repeatStr, 10);
43
- if (!Number.isFinite(repeat) || repeat <= 0) {
61
+ const bracketRepeat = parseInt(repeatStr, 10);
62
+ if (!Number.isFinite(bracketRepeat) || bracketRepeat <= 0) {
44
63
  throw new Error(`Invalid repeat count "${repeatStr}" in format string "${format}"`);
45
64
  }
65
+ repeat *= bracketRepeat;
46
66
  idx = endIdx + 1;
47
67
  }
48
68
  instructions.push({ kind: "spec", code, repeat });
@@ -94,14 +114,14 @@ function structUnpack(format, data) {
94
114
  results.push(view.getUint32(offset, littleEndian));
95
115
  offset += 4;
96
116
  break;
97
- // case "q": // Signed 64-bit integer
98
- // results.push(Number(view.getBigInt64(offset, littleEndian)));
99
- // offset += 8;
100
- // break;
101
- // case "Q": // Unsigned 64-bit integer
102
- // results.push(Number(view.getBigUint64(offset, littleEndian)));
103
- // offset += 8;
104
- // break;
117
+ case "q": // Signed 64-bit integer
118
+ results.push(Number(view.getBigInt64(offset, littleEndian)));
119
+ offset += 8;
120
+ break;
121
+ case "Q": // Unsigned 64-bit integer
122
+ results.push(Number(view.getBigUint64(offset, littleEndian)));
123
+ offset += 8;
124
+ break;
105
125
  case "f": // 32-bit float
106
126
  results.push(view.getFloat32(offset, littleEndian));
107
127
  offset += 4;
@@ -110,9 +130,22 @@ function structUnpack(format, data) {
110
130
  results.push(view.getFloat64(offset, littleEndian));
111
131
  offset += 8;
112
132
  break;
133
+ case "s": { // Byte string (repeat = byte length, produces one string value)
134
+ const bytes = data.slice(offset, offset + repeat);
135
+ // Trim trailing null bytes for C-string compatibility
136
+ let end = bytes.length;
137
+ while (end > 0 && bytes[end - 1] === 0)
138
+ end--;
139
+ results.push(new TextDecoder().decode(bytes.subarray(0, end)));
140
+ offset += repeat;
141
+ break;
142
+ }
113
143
  default:
114
144
  throw new Error(`Unknown format character: ${code}`);
115
145
  }
146
+ // For 's', the repeat is consumed as byte-length in one go
147
+ if (code === "s")
148
+ break;
116
149
  }
117
150
  }
118
151
  return results;
@@ -144,16 +177,19 @@ function structSizeOf(format) {
144
177
  case "L": // Unsigned 32-bit integer
145
178
  unitSize = 4;
146
179
  break;
147
- // case "q": // Signed 64-bit integer
148
- // case "Q": // Unsigned 64-bit integer
149
- // unitSize = 8;
150
- // break;
180
+ case "q": // Signed 64-bit integer
181
+ case "Q": // Unsigned 64-bit integer
182
+ unitSize = 8;
183
+ break;
151
184
  case "f": // 32-bit float
152
185
  unitSize = 4;
153
186
  break;
154
187
  case "d": // 64-bit float
155
188
  unitSize = 8;
156
189
  break;
190
+ case "s": // Byte string (repeat = byte length)
191
+ size += repeat;
192
+ continue;
157
193
  default:
158
194
  throw new Error(`Unknown format character: ${code}`);
159
195
  }
@@ -226,14 +262,20 @@ function structPack(format, values) {
226
262
  view.setUint32(offset, values[valueIdx++], littleEndian);
227
263
  offset += 4;
228
264
  break;
229
- // case "q": // Signed 64-bit integer
230
- // view.setBigInt64(offset, BigInt(values[valueIdx++]), littleEndian);
231
- // offset += 8;
232
- // break;
233
- // case "Q": // Unsigned 64-bit integer
234
- // view.setBigUint64(offset, BigInt(values[valueIdx++]), littleEndian);
235
- // offset += 8;
236
- // break;
265
+ case "q": // Signed 64-bit integer
266
+ if (valueIdx >= values.length) {
267
+ throw new Error("Insufficient values provided for structPack");
268
+ }
269
+ view.setBigInt64(offset, BigInt(values[valueIdx++]), littleEndian);
270
+ offset += 8;
271
+ break;
272
+ case "Q": // Unsigned 64-bit integer
273
+ if (valueIdx >= values.length) {
274
+ throw new Error("Insufficient values provided for structPack");
275
+ }
276
+ view.setBigUint64(offset, BigInt(values[valueIdx++]), littleEndian);
277
+ offset += 8;
278
+ break;
237
279
  case "f": // 32-bit float
238
280
  if (valueIdx >= values.length) {
239
281
  throw new Error("Insufficient values provided for structPack");
@@ -248,9 +290,38 @@ function structPack(format, values) {
248
290
  view.setFloat64(offset, values[valueIdx++], littleEndian);
249
291
  offset += 8;
250
292
  break;
293
+ case "s": { // Byte string (repeat = byte length, consumes one value)
294
+ if (valueIdx >= values.length) {
295
+ throw new Error("Insufficient values provided for structPack");
296
+ }
297
+ const val = values[valueIdx++];
298
+ let bytes;
299
+ if (val instanceof Uint8Array) {
300
+ bytes = val;
301
+ }
302
+ else if (typeof val === "string") {
303
+ bytes = new TextEncoder().encode(val);
304
+ }
305
+ else {
306
+ throw new Error(`Expected string or Uint8Array for 's' format, got number`);
307
+ }
308
+ // Copy bytes, zero-pad if shorter than repeat
309
+ const copyLen = Math.min(bytes.length, repeat);
310
+ for (let j = 0; j < copyLen; j++) {
311
+ view.setUint8(offset + j, bytes[j]);
312
+ }
313
+ for (let j = copyLen; j < repeat; j++) {
314
+ view.setUint8(offset + j, 0);
315
+ }
316
+ offset += repeat;
317
+ break;
318
+ }
251
319
  default:
252
320
  throw new Error(`Unknown format character: ${code}`);
253
321
  }
322
+ // For 's', the repeat is consumed as byte-length in one go
323
+ if (code === "s")
324
+ break;
254
325
  }
255
326
  }
256
327
  return new Uint8Array(buffer);
@@ -1 +1 @@
1
- {"version":3,"file":"RaftStruct.js","sourceRoot":"","sources":["../../src/RaftStruct.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RaftStruct.js","sourceRoot":"","sources":["../../src/RaftStruct.ts"],"names":[],"mappings":"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"}