abb-rws-client 0.2.0 → 0.5.0

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.
@@ -5,7 +5,7 @@
5
5
  * Parsing uses regex + string methods only — no external XML libraries.
6
6
  * All functions throw RwsError('PARSE_ERROR') on malformed or missing data.
7
7
  */
8
- import type { ControllerState, OperationMode, ExecutionState, JointTarget, RobTarget, Signal, RapidTask } from './types.js';
8
+ import type { ControllerState, OperationMode, ExecutionState, ExecutionInfo, JointTarget, RobTarget, CartesianFull, Signal, RapidTask, IoNetwork, IoDevice, SystemInfo, ControllerIdentity, ElogMessage, FileEntry, CollisionDetectionState, RapidSymbolProperties, ControllerClock, UiInstruction, RapidSymbolInfo } from './types.js';
9
9
  /**
10
10
  * Parse a /rw/panel/ctrlstate XML response into a ControllerState.
11
11
  * XML: <li class="pnl-ctrlstate"><span class="ctrlstate">motoron</span></li>
@@ -18,12 +18,16 @@ export declare function parseControllerState(xml: string): ControllerState;
18
18
  export declare function parseOperationMode(xml: string): OperationMode;
19
19
  /**
20
20
  * Parse a /rw/rapid/execution XML response into an ExecutionState.
21
- * XML: <li class="rap-execution"><span class="excstate">running</span></li>
21
+ * XML: <li class="rap-execution"><span class="ctrlexecstate">stopped</span><span class="cycle">forever</span></li>
22
22
  *
23
23
  * Note: some firmware versions emit the <li> with class "rap-execution-state" — we
24
24
  * try both and also fall back to a flat span search.
25
25
  */
26
26
  export declare function parseExecutionState(xml: string): ExecutionState;
27
+ /**
28
+ * Parse a /rw/rapid/execution XML response into ExecutionInfo (state + cycle).
29
+ */
30
+ export declare function parseExecutionInfo(xml: string): ExecutionInfo;
27
31
  /**
28
32
  * Parse a /rw/mechunit/{unit}/joint-target XML response into a JointTarget.
29
33
  * XML: <li class="rap-jointtarget">
@@ -59,6 +63,81 @@ export declare function parseSignalList(xml: string): Signal[];
59
63
  * XML: multiple <li class="rap-task-li"> elements.
60
64
  */
61
65
  export declare function parseRapidTasks(xml: string): RapidTask[];
66
+ /**
67
+ * Parse a /rw/panel/speedratio response into a number (0–100).
68
+ * XML: <li class="pnl-speedratio"><span class="speedratio">100</span></li>
69
+ */
70
+ export declare function parseSpeedRatio(xml: string): number;
71
+ /**
72
+ * Parse a /rw/rapid/symbol/data/... response — returns the raw value string.
73
+ * XML: <li class="rap-data"><span class="value">42</span></li>
74
+ * The caller interprets the string (number, bool, array, record, etc.).
75
+ */
76
+ export declare function parseRapidSymbolValue(xml: string): string;
77
+ /**
78
+ * Parse a /rw/motionsystem/mechunits/{unit}/cartesian response into a CartesianFull.
79
+ * XML: <li class="ms-mechunit-cartesian">
80
+ * <span class="x">...</span>...<span class="j1">0</span>...
81
+ * </li>
82
+ */
83
+ export declare function parseCartesianFull(xml: string): CartesianFull;
84
+ /**
85
+ * Parse a /rw/iosystem/networks response into an array of IoNetwork.
86
+ * XML: <li class="ios-network-li"><span class="name">...</span>...</li>
87
+ */
88
+ export declare function parseNetworks(xml: string): IoNetwork[];
89
+ /**
90
+ * Parse a /rw/iosystem/devices?network=... response into an array of IoDevice.
91
+ * XML: <li class="ios-device-li" title="Local/DRV_1"><span class="name">...</span>...</li>
92
+ */
93
+ export declare function parseDevices(xml: string): IoDevice[];
94
+ /**
95
+ * Parse a /rw/system response into SystemInfo.
96
+ * XML: <li class="sys-system-li">...</li> + <li class="sys-option-li">...</li>
97
+ */
98
+ export declare function parseSystemInfo(xml: string): SystemInfo;
99
+ /**
100
+ * Parse a /ctrl/identity response into ControllerIdentity.
101
+ * XML: <li class="ctrl-identity-info"><span class="ctrl-name">...</span>...</li>
102
+ */
103
+ export declare function parseControllerIdentity(xml: string): ControllerIdentity;
104
+ /**
105
+ * Parse a /rw/elog/{domain} response into an array of ElogMessage.
106
+ * XML: <li class="elog-message-li" title="/rw/elog/0/14073">...</li>
107
+ */
108
+ export declare function parseElogMessages(xml: string): ElogMessage[];
109
+ /**
110
+ * Parse a /fileservice/{path} directory listing response into FileEntry[].
111
+ * XML: <li class="fs-file" title="filename.mod">...</li>
112
+ * <li class="fs-dir" title="DirName">...</li>
113
+ */
114
+ export declare function parseDirectory(xml: string): FileEntry[];
115
+ /**
116
+ * Parse a /rw/panel/coldetstate response into a CollisionDetectionState.
117
+ * XML: <li class="pnl-coldetstate"><span class="coldetstate">INIT</span></li>
118
+ */
119
+ export declare function parseCollisionDetectionState(xml: string): CollisionDetectionState;
120
+ /**
121
+ * Parse a /rw/rapid/symbol/properties/... response into RapidSymbolProperties.
122
+ * XML: <li class="rap-sympropvar" title="RAPID/T_ROB1/user/reg1">...</li>
123
+ */
124
+ export declare function parseRapidSymbolProperties(xml: string): RapidSymbolProperties;
125
+ /**
126
+ * Parse a GET /ctrl/clock response into ControllerClock.
127
+ * XML: <li class="ctrl-clock-info"><span class="datetime">2015-06-18 T 12:56:07</span></li>
128
+ */
129
+ export declare function parseControllerClock(xml: string): ControllerClock;
130
+ /**
131
+ * Parse a GET /rw/rapid/uiinstr/active response into a UiInstruction.
132
+ * XML: <li class="rap-uiactive-li"><span class="instr">TPReadNum</span>...</li>
133
+ * Returns null if no UI instruction is currently active.
134
+ */
135
+ export declare function parseActiveUiInstruction(xml: string): UiInstruction | null;
136
+ /**
137
+ * Parse a RAPID symbol search response into RapidSymbolInfo[].
138
+ * XML: multiple <li class="rap-sympropvar-li"> elements.
139
+ */
140
+ export declare function parseRapidSymbolSearch(xml: string): RapidSymbolInfo[];
62
141
  /**
63
142
  * Extract the subscription ID from a Location header value returned by POST /subscription.
64
143
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseParser.d.ts","sourceRoot":"","sources":["../src/ResponseParser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,cAAc,EACd,WAAW,EACX,SAAS,EACT,MAAM,EACN,SAAS,EACV,MAAM,YAAY,CAAC;AA2FpB;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAMjE;AAID;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAQ7D;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAsB/D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAwBzD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CA2BrD;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA+B/C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAKrD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CA0CxD;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAajE"}
1
+ {"version":3,"file":"ResponseParser.d.ts","sourceRoot":"","sources":["../src/ResponseParser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,cAAc,EACd,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,MAAM,EACN,SAAS,EACT,SAAS,EACT,QAAQ,EACR,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,SAAS,EACT,uBAAuB,EACvB,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,eAAe,EAChB,MAAM,YAAY,CAAC;AA2FpB;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAMjE;AAID;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAQ7D;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAE/D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CA4B7D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAwBzD;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CA2BrD;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA+B/C;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAKrD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CA0CxD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMzD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAmB7D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CAStD;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAkBpD;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAsBvD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB,CAiBvE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,EAAE,CAuB5D;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CA0BvD;AAMD;;;GAGG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAQjF;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAgC7E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAMjE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAqB1E;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,EAAE,CAqBrE;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAajE"}
@@ -102,12 +102,18 @@ export function parseOperationMode(xml) {
102
102
  }
103
103
  /**
104
104
  * Parse a /rw/rapid/execution XML response into an ExecutionState.
105
- * XML: <li class="rap-execution"><span class="excstate">running</span></li>
105
+ * XML: <li class="rap-execution"><span class="ctrlexecstate">stopped</span><span class="cycle">forever</span></li>
106
106
  *
107
107
  * Note: some firmware versions emit the <li> with class "rap-execution-state" — we
108
108
  * try both and also fall back to a flat span search.
109
109
  */
110
110
  export function parseExecutionState(xml) {
111
+ return parseExecutionInfo(xml).state;
112
+ }
113
+ /**
114
+ * Parse a /rw/rapid/execution XML response into ExecutionInfo (state + cycle).
115
+ */
116
+ export function parseExecutionInfo(xml) {
111
117
  let raw = extractSpanValue(xml, 'rap-execution', 'ctrlexecstate') ??
112
118
  extractSpanValue(xml, 'rap-execution', 'excstate') ??
113
119
  extractSpanValue(xml, 'rap-execution-state', 'ctrlexecstate') ??
@@ -118,13 +124,16 @@ export function parseExecutionState(xml) {
118
124
  throw new RwsError('PARSE_ERROR: missing ctrlexecstate/excstate in execution response', 'PARSE_ERROR');
119
125
  }
120
126
  raw = raw.toLowerCase();
121
- // 'stop' is the value the IRC5 returns; normalise to 'stopped'
122
127
  if (raw === 'stop')
123
128
  raw = 'stopped';
124
129
  if (raw !== 'running' && raw !== 'stopped') {
125
130
  throw new RwsError(`PARSE_ERROR: unknown execution state "${raw}"`, 'PARSE_ERROR');
126
131
  }
127
- return raw;
132
+ const cycle = extractSpanValue(xml, 'rap-execution', 'cycle') ??
133
+ extractSpanValue(xml, 'rap-execution-state', 'cycle') ??
134
+ extractSpanValueFlat(xml, 'cycle') ??
135
+ 'asis';
136
+ return { state: raw, cycle };
128
137
  }
129
138
  /**
130
139
  * Parse a /rw/mechunit/{unit}/joint-target XML response into a JointTarget.
@@ -273,6 +282,303 @@ export function parseRapidTasks(xml) {
273
282
  };
274
283
  });
275
284
  }
285
+ /**
286
+ * Parse a /rw/panel/speedratio response into a number (0–100).
287
+ * XML: <li class="pnl-speedratio"><span class="speedratio">100</span></li>
288
+ */
289
+ export function parseSpeedRatio(xml) {
290
+ const raw = requireSpan(xml, 'pnl-speedratio', 'speedratio', 'parseSpeedRatio');
291
+ return requireFloat(raw, 'speedratio');
292
+ }
293
+ /**
294
+ * Parse a /rw/rapid/symbol/data/... response — returns the raw value string.
295
+ * XML: <li class="rap-data"><span class="value">42</span></li>
296
+ * The caller interprets the string (number, bool, array, record, etc.).
297
+ */
298
+ export function parseRapidSymbolValue(xml) {
299
+ const val = extractSpanValue(xml, 'rap-data', 'value');
300
+ if (val === undefined) {
301
+ throw new RwsError('PARSE_ERROR: missing <span class="value"> in rap-data', 'PARSE_ERROR');
302
+ }
303
+ return val;
304
+ }
305
+ /**
306
+ * Parse a /rw/motionsystem/mechunits/{unit}/cartesian response into a CartesianFull.
307
+ * XML: <li class="ms-mechunit-cartesian">
308
+ * <span class="x">...</span>...<span class="j1">0</span>...
309
+ * </li>
310
+ */
311
+ export function parseCartesianFull(xml) {
312
+ const liPattern = /<li[^>]*class="[^"]*\bms-mechunit-cartesian\b[^"]*"[^>]*>(.*?)<\/li>/is;
313
+ const liMatch = xml.match(liPattern);
314
+ if (!liMatch) {
315
+ throw new RwsError('PARSE_ERROR: missing <li class="ms-mechunit-cartesian">', 'PARSE_ERROR');
316
+ }
317
+ const block = liMatch[1];
318
+ function getField(cls) {
319
+ const m = block.match(new RegExp(`<span[^>]*class="[^"]*\\b${cls}\\b[^"]*"[^>]*>(.*?)</span>`, 'is'));
320
+ if (!m)
321
+ throw new RwsError(`PARSE_ERROR: missing <span class="${cls}"> in cartesian`, 'PARSE_ERROR');
322
+ return requireFloat(m[1].trim(), cls);
323
+ }
324
+ return {
325
+ x: getField('x'), y: getField('y'), z: getField('z'),
326
+ q1: getField('q1'), q2: getField('q2'), q3: getField('q3'), q4: getField('q4'),
327
+ j1: getField('j1'), j4: getField('j4'), j6: getField('j6'), jx: getField('jx'),
328
+ };
329
+ }
330
+ /**
331
+ * Parse a /rw/iosystem/networks response into an array of IoNetwork.
332
+ * XML: <li class="ios-network-li"><span class="name">...</span>...</li>
333
+ */
334
+ export function parseNetworks(xml) {
335
+ const blocks = [...xml.matchAll(/<li[^>]*class="[^"]*\bios-network-li\b[^"]*"[^>]*>.*?<\/li>/gis)];
336
+ return blocks.map(([block]) => {
337
+ function get(cls) {
338
+ const m = block.match(new RegExp(`<span[^>]*class="[^"]*\\b${cls}\\b[^"]*"[^>]*>(.*?)</span>`, 'is'));
339
+ return m ? decodeEntities(m[1].trim()) : '';
340
+ }
341
+ return { name: get('name'), pstate: get('pstate'), lstate: get('lstate') };
342
+ });
343
+ }
344
+ /**
345
+ * Parse a /rw/iosystem/devices?network=... response into an array of IoDevice.
346
+ * XML: <li class="ios-device-li" title="Local/DRV_1"><span class="name">...</span>...</li>
347
+ */
348
+ export function parseDevices(xml) {
349
+ const blocks = [...xml.matchAll(/<li[^>]*class="[^"]*\bios-device-li\b[^"]*"[^>]*title="([^"]*)"[^>]*>.*?<\/li>/gis)];
350
+ return blocks.map(([block, titleAttr]) => {
351
+ function get(cls) {
352
+ const m = block.match(new RegExp(`<span[^>]*class="[^"]*\\b${cls}\\b[^"]*"[^>]*>(.*?)</span>`, 'is'));
353
+ return m ? decodeEntities(m[1].trim()) : '';
354
+ }
355
+ // title is "Network/DeviceName"
356
+ const parts = titleAttr.split('/');
357
+ const network = parts.length >= 2 ? parts[0] : '';
358
+ return {
359
+ name: get('name'),
360
+ network,
361
+ lstate: get('lstate'),
362
+ pstate: get('pstate'),
363
+ address: get('address'),
364
+ };
365
+ });
366
+ }
367
+ /**
368
+ * Parse a /rw/system response into SystemInfo.
369
+ * XML: <li class="sys-system-li">...</li> + <li class="sys-option-li">...</li>
370
+ */
371
+ export function parseSystemInfo(xml) {
372
+ const sysPattern = /<li[^>]*class="[^"]*\bsys-system-li\b[^"]*"[^>]*>(.*?)<\/li>/is;
373
+ const sysMatch = xml.match(sysPattern);
374
+ if (!sysMatch)
375
+ throw new RwsError('PARSE_ERROR: missing sys-system-li', 'PARSE_ERROR');
376
+ const block = sysMatch[1];
377
+ function get(cls) {
378
+ const m = block.match(new RegExp(`<span[^>]*class="[^"]*\\b${cls}\\b[^"]*"[^>]*>(.*?)</span>`, 'is'));
379
+ return m ? decodeEntities(m[1].trim()) : '';
380
+ }
381
+ const options = [...xml.matchAll(/<li[^>]*class="[^"]*\bsys-option-li\b[^"]*"[^>]*>.*?<span[^>]*class="[^"]*\boption\b[^"]*"[^>]*>(.*?)<\/span>.*?<\/li>/gis)]
382
+ .map(([, opt]) => decodeEntities(opt.trim()))
383
+ .filter(Boolean);
384
+ return {
385
+ name: get('name'),
386
+ rwVersion: get('rwversion') || `${get('major')}.${get('minor')}.${get('build')}`,
387
+ sysid: get('sysid'),
388
+ startTime: get('starttm'),
389
+ options,
390
+ };
391
+ }
392
+ /**
393
+ * Parse a /ctrl/identity response into ControllerIdentity.
394
+ * XML: <li class="ctrl-identity-info"><span class="ctrl-name">...</span>...</li>
395
+ */
396
+ export function parseControllerIdentity(xml) {
397
+ const liPattern = /<li[^>]*class="[^"]*\bctrl-identity-info\b[^"]*"[^>]*>(.*?)<\/li>/is;
398
+ const liMatch = xml.match(liPattern);
399
+ if (!liMatch)
400
+ throw new RwsError('PARSE_ERROR: missing ctrl-identity-info', 'PARSE_ERROR');
401
+ const block = liMatch[1];
402
+ function get(cls) {
403
+ const m = block.match(new RegExp(`<span[^>]*class="[^"]*\\b${cls}\\b[^"]*"[^>]*>(.*?)</span>`, 'is'));
404
+ return m ? decodeEntities(m[1].trim()) : '';
405
+ }
406
+ return {
407
+ name: get('ctrl-name'),
408
+ id: get('ctrl-id'),
409
+ type: get('ctrl-type'),
410
+ mac: get('ctrl-mac'),
411
+ };
412
+ }
413
+ /**
414
+ * Parse a /rw/elog/{domain} response into an array of ElogMessage.
415
+ * XML: <li class="elog-message-li" title="/rw/elog/0/14073">...</li>
416
+ */
417
+ export function parseElogMessages(xml) {
418
+ const blocks = [...xml.matchAll(/<li[^>]*class="[^"]*\belog-message-li\b[^"]*"[^>]*title="([^"]*)"[^>]*>.*?<\/li>/gis)];
419
+ return blocks.map(([block, titleAttr]) => {
420
+ function get(cls) {
421
+ const m = block.match(new RegExp(`<span[^>]*class="[^"]*\\b${cls}\\b[^"]*"[^>]*>(.*?)</span>`, 'is'));
422
+ return m ? decodeEntities(m[1].trim()) : '';
423
+ }
424
+ // Extract seqnum from title: "/rw/elog/0/14073" → 14073
425
+ const seqMatch = titleAttr.match(/\/(\d+)$/);
426
+ const seqnum = seqMatch ? parseInt(seqMatch[1], 10) : 0;
427
+ return {
428
+ seqnum,
429
+ code: parseInt(get('code'), 10) || 0,
430
+ msgtype: parseInt(get('msgtype'), 10) || 1,
431
+ timestamp: get('tstamp'),
432
+ srcName: get('src-name'),
433
+ title: get('title'),
434
+ desc: get('desc'),
435
+ causes: get('causes'),
436
+ consequences: get('conseqs'),
437
+ actions: get('actions'),
438
+ };
439
+ });
440
+ }
441
+ /**
442
+ * Parse a /fileservice/{path} directory listing response into FileEntry[].
443
+ * XML: <li class="fs-file" title="filename.mod">...</li>
444
+ * <li class="fs-dir" title="DirName">...</li>
445
+ */
446
+ export function parseDirectory(xml) {
447
+ const fileBlocks = [...xml.matchAll(/<li[^>]*class="[^"]*\bfs-file\b[^"]*"[^>]*title="([^"]*)"[^>]*>.*?<\/li>/gis)];
448
+ const dirBlocks = [...xml.matchAll(/<li[^>]*class="[^"]*\bfs-dir\b[^"]*"[^>]*title="([^"]*)"[^>]*>.*?<\/li>/gis)];
449
+ function get(block, cls) {
450
+ const m = block.match(new RegExp(`<span[^>]*class="[^"]*\\b${cls}\\b[^"]*"[^>]*>(.*?)</span>`, 'is'));
451
+ return m ? decodeEntities(m[1].trim()) : '';
452
+ }
453
+ const files = fileBlocks.map(([block, name]) => ({
454
+ name,
455
+ type: 'file',
456
+ size: get(block, 'fs-size') ? parseInt(get(block, 'fs-size'), 10) : undefined,
457
+ created: get(block, 'fs-cdate') || undefined,
458
+ modified: get(block, 'fs-mdate') || undefined,
459
+ readonly: get(block, 'fs-readonly') === 'true',
460
+ }));
461
+ const dirs = dirBlocks.map(([block, name]) => ({
462
+ name,
463
+ type: 'dir',
464
+ created: get(block, 'fs-cdate') || undefined,
465
+ modified: get(block, 'fs-mdate') || undefined,
466
+ }));
467
+ return [...dirs, ...files];
468
+ }
469
+ const VALID_COLLISION_STATES = new Set([
470
+ 'INIT', 'TRIGGERED', 'CONFIRMED', 'TRIGGERED_ACK',
471
+ ]);
472
+ /**
473
+ * Parse a /rw/panel/coldetstate response into a CollisionDetectionState.
474
+ * XML: <li class="pnl-coldetstate"><span class="coldetstate">INIT</span></li>
475
+ */
476
+ export function parseCollisionDetectionState(xml) {
477
+ const raw = requireSpan(xml, 'pnl-coldetstate', 'coldetstate', 'parseCollisionDetectionState');
478
+ const upper = raw.toUpperCase();
479
+ if (!VALID_COLLISION_STATES.has(upper)) {
480
+ // Return INIT as safe fallback for unknown values (firmware may add new states)
481
+ return 'INIT';
482
+ }
483
+ return upper;
484
+ }
485
+ /**
486
+ * Parse a /rw/rapid/symbol/properties/... response into RapidSymbolProperties.
487
+ * XML: <li class="rap-sympropvar" title="RAPID/T_ROB1/user/reg1">...</li>
488
+ */
489
+ export function parseRapidSymbolProperties(xml) {
490
+ const liPattern = /<li[^>]*class="[^"]*\brap-sympropvar\b[^"]*"[^>]*>(.*?)<\/li>/is;
491
+ const liMatch = xml.match(liPattern);
492
+ if (!liMatch) {
493
+ throw new RwsError('PARSE_ERROR: missing <li class="rap-sympropvar">', 'PARSE_ERROR');
494
+ }
495
+ const block = liMatch[1];
496
+ function get(cls) {
497
+ const m = block.match(new RegExp(`<span[^>]*class="[^"]*\\b${cls}\\b[^"]*"[^>]*>(.*?)</span>`, 'is'));
498
+ return m ? decodeEntities(m[1].trim()) : '';
499
+ }
500
+ // Extract symburl from the <li title="..."> attribute
501
+ const titleMatch = xml.match(/<li[^>]*class="[^"]*\brap-sympropvar\b[^"]*"[^>]*title="([^"]*)"[^>]*>/i);
502
+ const symburl = titleMatch ? titleMatch[1] : get('symburl');
503
+ return {
504
+ symburl,
505
+ symtyp: get('symtyp'),
506
+ named: get('named').toLowerCase() === 'true',
507
+ dattyp: get('dattyp'),
508
+ ndim: parseInt(get('ndim') || '0', 10),
509
+ dim: get('dim'),
510
+ heap: get('heap').toLowerCase() === 'true',
511
+ linked: get('linked').toLowerCase() === 'true',
512
+ local: get('local').toLowerCase() === 'true',
513
+ ro: get('ro').toLowerCase() === 'true',
514
+ taskvar: get('taskvar').toLowerCase() === 'true',
515
+ storage: get('storage'),
516
+ typurl: get('typurl'),
517
+ };
518
+ }
519
+ /**
520
+ * Parse a GET /ctrl/clock response into ControllerClock.
521
+ * XML: <li class="ctrl-clock-info"><span class="datetime">2015-06-18 T 12:56:07</span></li>
522
+ */
523
+ export function parseControllerClock(xml) {
524
+ const val = extractSpanValue(xml, 'ctrl-clock-info', 'datetime') ?? extractSpanValueFlat(xml, 'datetime');
525
+ if (!val) {
526
+ throw new RwsError('PARSE_ERROR: missing datetime in ctrl-clock-info', 'PARSE_ERROR');
527
+ }
528
+ return { datetime: val };
529
+ }
530
+ /**
531
+ * Parse a GET /rw/rapid/uiinstr/active response into a UiInstruction.
532
+ * XML: <li class="rap-uiactive-li"><span class="instr">TPReadNum</span>...</li>
533
+ * Returns null if no UI instruction is currently active.
534
+ */
535
+ export function parseActiveUiInstruction(xml) {
536
+ const liPattern = /<li[^>]*class="[^"]*\brap-uiactive-li\b[^"]*"[^>]*>(.*?)<\/li>/is;
537
+ const liMatch = xml.match(liPattern);
538
+ if (!liMatch)
539
+ return null;
540
+ const block = liMatch[1];
541
+ function get(cls) {
542
+ const m = block.match(new RegExp(`<span[^>]*class="[^"]*\\b${cls}\\b[^"]*"[^>]*>(.*?)</span>`, 'is'));
543
+ return m ? decodeEntities(m[1].trim()) : '';
544
+ }
545
+ const instr = get('instr');
546
+ if (!instr)
547
+ return null; // no active instruction
548
+ return {
549
+ instr,
550
+ event: get('event'),
551
+ stack: get('stack'),
552
+ execlv: get('execlv'),
553
+ msg: get('msg'),
554
+ };
555
+ }
556
+ /**
557
+ * Parse a RAPID symbol search response into RapidSymbolInfo[].
558
+ * XML: multiple <li class="rap-sympropvar-li"> elements.
559
+ */
560
+ export function parseRapidSymbolSearch(xml) {
561
+ const blocks = [...xml.matchAll(/<li[^>]*class="[^"]*\brap-sympropvar-li\b[^"]*"[^>]*>.*?<\/li>/gis)];
562
+ return blocks.map(([block]) => {
563
+ function get(cls) {
564
+ const m = block.match(new RegExp(`<span[^>]*class="[^"]*\\b${cls}\\b[^"]*"[^>]*>(.*?)</span>`, 'is'));
565
+ return m ? decodeEntities(m[1].trim()) : '';
566
+ }
567
+ // Extract symburl from title attr or span
568
+ const titleMatch = block.match(/<li[^>]*title="([^"]*)"[^>]*>/i);
569
+ const symburl = titleMatch ? titleMatch[1] : get('symburl');
570
+ return {
571
+ symburl,
572
+ name: get('name'),
573
+ symtyp: get('symtyp'),
574
+ dattyp: get('dattyp'),
575
+ ndim: parseInt(get('ndim') || '0', 10),
576
+ local: get('local').toLowerCase() === 'true',
577
+ ro: get('rdonly').toLowerCase() === 'true' || get('ro').toLowerCase() === 'true',
578
+ taskvar: get('taskvar').toLowerCase() === 'true',
579
+ };
580
+ });
581
+ }
276
582
  /**
277
583
  * Extract the subscription ID from a Location header value returned by POST /subscription.
278
584
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ResponseParser.js","sourceRoot":"","sources":["../src/ResponseParser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResponseParser.js","sourceRoot":"","sources":["../src/ResponseParser.ts"],"names":[],"mappings":"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"}