abb-rws-client 0.2.0 → 0.7.1
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/CHANGELOG.md +171 -0
- package/README.md +364 -143
- package/dist/HttpSession.d.ts.map +1 -1
- package/dist/HttpSession.js +18 -1
- package/dist/HttpSession.js.map +1 -1
- package/dist/IRWSAdapter.d.ts +421 -0
- package/dist/IRWSAdapter.d.ts.map +1 -0
- package/dist/IRWSAdapter.js +2 -0
- package/dist/IRWSAdapter.js.map +1 -0
- package/dist/Logger.d.ts +35 -0
- package/dist/Logger.d.ts.map +1 -0
- package/dist/Logger.js +24 -0
- package/dist/Logger.js.map +1 -0
- package/dist/MultiRobotManager.d.ts +56 -0
- package/dist/MultiRobotManager.d.ts.map +1 -0
- package/dist/MultiRobotManager.js +129 -0
- package/dist/MultiRobotManager.js.map +1 -0
- package/dist/RWS1Adapter.d.ts +297 -0
- package/dist/RWS1Adapter.d.ts.map +1 -0
- package/dist/RWS1Adapter.js +870 -0
- package/dist/RWS1Adapter.js.map +1 -0
- package/dist/RWS2Adapter.d.ts +20 -0
- package/dist/RWS2Adapter.d.ts.map +1 -0
- package/dist/RWS2Adapter.js +19 -0
- package/dist/RWS2Adapter.js.map +1 -0
- package/dist/ResourceMapper.d.ts +226 -2
- package/dist/ResourceMapper.d.ts.map +1 -1
- package/dist/ResourceMapper.js +286 -3
- package/dist/ResourceMapper.js.map +1 -1
- package/dist/ResponseParser.d.ts +81 -2
- package/dist/ResponseParser.d.ts.map +1 -1
- package/dist/ResponseParser.js +309 -3
- package/dist/ResponseParser.js.map +1 -1
- package/dist/RobotManager.d.ts +536 -0
- package/dist/RobotManager.d.ts.map +1 -0
- package/dist/RobotManager.js +1523 -0
- package/dist/RobotManager.js.map +1 -0
- package/dist/RwsClient.d.ts +280 -4
- package/dist/RwsClient.d.ts.map +1 -1
- package/dist/RwsClient.js +698 -10
- package/dist/RwsClient.js.map +1 -1
- package/dist/RwsClient2.d.ts +438 -0
- package/dist/RwsClient2.d.ts.map +1 -0
- package/dist/RwsClient2.js +1672 -0
- package/dist/RwsClient2.js.map +1 -0
- package/dist/WsSubscriber.d.ts.map +1 -1
- package/dist/WsSubscriber.js +18 -11
- package/dist/WsSubscriber.js.map +1 -1
- package/dist/XhtmlParser.d.ts +24 -0
- package/dist/XhtmlParser.d.ts.map +1 -0
- package/dist/XhtmlParser.js +56 -0
- package/dist/XhtmlParser.js.map +1 -0
- package/dist/detect.d.ts +54 -0
- package/dist/detect.d.ts.map +1 -0
- package/dist/detect.js +187 -0
- package/dist/detect.js.map +1 -0
- package/dist/index.d.ts +30 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -2
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +190 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/examples/01-quickstart-auto.mjs +20 -0
- package/examples/02-rws1-explicit.mjs +30 -0
- package/examples/03-rws2-explicit.mjs +26 -0
- package/examples/04-multi-robot.mjs +35 -0
- package/examples/05-remote-control-rmmp.mjs +52 -0
- package/examples/06-pull-module-source.mjs +38 -0
- package/package.json +31 -5
package/dist/ResponseParser.js
CHANGED
|
@@ -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="
|
|
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
|
-
|
|
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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"}
|