@ya-modbus/cli 0.8.0 → 0.9.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 +12 -0
- package/README.md +85 -0
- package/dist/cjs/bin/ya-modbus.js +0 -0
- package/dist/cjs/src/commands/discover.d.ts +2 -0
- package/dist/cjs/src/commands/discover.d.ts.map +1 -1
- package/dist/cjs/src/commands/discover.js +19 -11
- package/dist/cjs/src/commands/discover.js.map +1 -1
- package/dist/cjs/src/discovery/parameter-generator-utils.d.ts +5 -2
- package/dist/cjs/src/discovery/parameter-generator-utils.d.ts.map +1 -1
- package/dist/cjs/src/discovery/parameter-generator-utils.js +46 -25
- package/dist/cjs/src/discovery/parameter-generator-utils.js.map +1 -1
- package/dist/cjs/src/discovery/parameter-generator.d.ts +4 -0
- package/dist/cjs/src/discovery/parameter-generator.d.ts.map +1 -1
- package/dist/cjs/src/discovery/parameter-generator.js +20 -8
- package/dist/cjs/src/discovery/parameter-generator.js.map +1 -1
- package/dist/cjs/src/index.d.ts.map +1 -1
- package/dist/cjs/src/index.js +2 -0
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/utils/merge-specs.d.ts +34 -0
- package/dist/cjs/src/utils/merge-specs.d.ts.map +1 -0
- package/dist/cjs/src/utils/merge-specs.js +53 -0
- package/dist/cjs/src/utils/merge-specs.js.map +1 -0
- package/dist/cjs/src/utils/parse-baud-rate.d.ts +14 -0
- package/dist/cjs/src/utils/parse-baud-rate.d.ts.map +1 -0
- package/dist/cjs/src/utils/parse-baud-rate.js +52 -0
- package/dist/cjs/src/utils/parse-baud-rate.js.map +1 -0
- package/dist/cjs/src/utils/parse-id-range.d.ts.map +1 -1
- package/dist/cjs/src/utils/parse-id-range.js +23 -48
- package/dist/cjs/src/utils/parse-id-range.js.map +1 -1
- package/dist/cjs/src/utils/parse-integer.d.ts +15 -0
- package/dist/cjs/src/utils/parse-integer.d.ts.map +1 -0
- package/dist/cjs/src/utils/parse-integer.js +27 -0
- package/dist/cjs/src/utils/parse-integer.js.map +1 -0
- package/dist/cjs/src/utils/parse-parity.d.ts +18 -0
- package/dist/cjs/src/utils/parse-parity.d.ts.map +1 -0
- package/dist/cjs/src/utils/parse-parity.js +46 -0
- package/dist/cjs/src/utils/parse-parity.js.map +1 -0
- package/dist/cjs/src/utils/parse-spec.d.ts +73 -0
- package/dist/cjs/src/utils/parse-spec.d.ts.map +1 -0
- package/dist/cjs/src/utils/parse-spec.js +47 -0
- package/dist/cjs/src/utils/parse-spec.js.map +1 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/bin/ya-modbus.js +0 -0
- package/dist/esm/src/commands/discover.d.ts +2 -0
- package/dist/esm/src/commands/discover.d.ts.map +1 -1
- package/dist/esm/src/commands/discover.js +19 -11
- package/dist/esm/src/commands/discover.js.map +1 -1
- package/dist/esm/src/discovery/parameter-generator-utils.d.ts +5 -2
- package/dist/esm/src/discovery/parameter-generator-utils.d.ts.map +1 -1
- package/dist/esm/src/discovery/parameter-generator-utils.js +46 -25
- package/dist/esm/src/discovery/parameter-generator-utils.js.map +1 -1
- package/dist/esm/src/discovery/parameter-generator.d.ts +4 -0
- package/dist/esm/src/discovery/parameter-generator.d.ts.map +1 -1
- package/dist/esm/src/discovery/parameter-generator.js +20 -8
- package/dist/esm/src/discovery/parameter-generator.js.map +1 -1
- package/dist/esm/src/index.d.ts.map +1 -1
- package/dist/esm/src/index.js +2 -0
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/utils/merge-specs.d.ts +34 -0
- package/dist/esm/src/utils/merge-specs.d.ts.map +1 -0
- package/dist/esm/src/utils/merge-specs.js +50 -0
- package/dist/esm/src/utils/merge-specs.js.map +1 -0
- package/dist/esm/src/utils/parse-baud-rate.d.ts +14 -0
- package/dist/esm/src/utils/parse-baud-rate.d.ts.map +1 -0
- package/dist/esm/src/utils/parse-baud-rate.js +49 -0
- package/dist/esm/src/utils/parse-baud-rate.js.map +1 -0
- package/dist/esm/src/utils/parse-id-range.d.ts.map +1 -1
- package/dist/esm/src/utils/parse-id-range.js +23 -48
- package/dist/esm/src/utils/parse-id-range.js.map +1 -1
- package/dist/esm/src/utils/parse-integer.d.ts +15 -0
- package/dist/esm/src/utils/parse-integer.d.ts.map +1 -0
- package/dist/esm/src/utils/parse-integer.js +24 -0
- package/dist/esm/src/utils/parse-integer.js.map +1 -0
- package/dist/esm/src/utils/parse-parity.d.ts +18 -0
- package/dist/esm/src/utils/parse-parity.d.ts.map +1 -0
- package/dist/esm/src/utils/parse-parity.js +42 -0
- package/dist/esm/src/utils/parse-parity.js.map +1 -0
- package/dist/esm/src/utils/parse-spec.d.ts +73 -0
- package/dist/esm/src/utils/parse-spec.d.ts.map +1 -0
- package/dist/esm/src/utils/parse-spec.js +44 -0
- package/dist/esm/src/utils/parse-spec.js.map +1 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +3 -3
|
File without changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../../src/commands/discover.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../../../src/commands/discover.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAS5E;;GAEG;AACH,MAAM,WAAW,eAAe;IAE9B,IAAI,EAAE,MAAM,CAAA;IAGZ,QAAQ,CAAC,EAAE,iBAAiB,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;IAGhB,MAAM,EAAE,OAAO,GAAG,MAAM,CAAA;CACzB;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA8L7E"}
|
|
@@ -2,7 +2,10 @@ import { loadDriver } from '@ya-modbus/driver-loader';
|
|
|
2
2
|
import { ProgressTracker } from '../discovery/progress.js';
|
|
3
3
|
import { scanForDevices } from '../discovery/scanner.js';
|
|
4
4
|
import { formatDiscoveryJSON, formatDiscoveryTable } from '../formatters/discovery-results.js';
|
|
5
|
+
import { mergeSpecs } from '../utils/merge-specs.js';
|
|
6
|
+
import { parseBaudRate } from '../utils/parse-baud-rate.js';
|
|
5
7
|
import { parseIdRange } from '../utils/parse-id-range.js';
|
|
8
|
+
import { parseParity, sortParitiesInStandardOrder } from '../utils/parse-parity.js';
|
|
6
9
|
/**
|
|
7
10
|
* Discover command implementation
|
|
8
11
|
*
|
|
@@ -19,17 +22,10 @@ export async function discoverCommand(options) {
|
|
|
19
22
|
const maxDevices = options.maxDevices ?? 1; // Default: stop after finding 1 device
|
|
20
23
|
const verbose = options.verbose ?? false;
|
|
21
24
|
const silent = options.silent ?? false;
|
|
22
|
-
// Parse and merge
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const allIds = new Set();
|
|
27
|
-
for (const spec of idSpecs) {
|
|
28
|
-
const ids = parseIdRange(spec);
|
|
29
|
-
ids.forEach((id) => allIds.add(id));
|
|
30
|
-
}
|
|
31
|
-
slaveIds = Array.from(allIds).sort((a, b) => a - b);
|
|
32
|
-
}
|
|
25
|
+
// Parse and merge specifications from multiple CLI flags
|
|
26
|
+
const slaveIds = mergeSpecs(options.id, parseIdRange, (items) => items.sort((a, b) => a - b));
|
|
27
|
+
const parities = mergeSpecs(options.parity, parseParity, sortParitiesInStandardOrder);
|
|
28
|
+
const baudRates = mergeSpecs(options.baudRate, parseBaudRate, (items) => items.sort((a, b) => a - b));
|
|
33
29
|
if (!silent) {
|
|
34
30
|
console.log(`Starting Modbus device discovery on ${options.port}...`);
|
|
35
31
|
console.log(`Strategy: ${strategy}`);
|
|
@@ -40,6 +36,12 @@ export async function discoverCommand(options) {
|
|
|
40
36
|
else {
|
|
41
37
|
console.log('Slave IDs: 1-247 (all)');
|
|
42
38
|
}
|
|
39
|
+
if (baudRates) {
|
|
40
|
+
console.log(`Baud rates: ${baudRates.join(', ')} (${baudRates.length} rates)`);
|
|
41
|
+
}
|
|
42
|
+
if (parities) {
|
|
43
|
+
console.log(`Parities: ${parities.join(', ')} (${parities.length} values)`);
|
|
44
|
+
}
|
|
43
45
|
if (maxDevices === 0) {
|
|
44
46
|
console.log('Mode: Find all devices');
|
|
45
47
|
}
|
|
@@ -96,6 +98,12 @@ export async function discoverCommand(options) {
|
|
|
96
98
|
if (slaveIds) {
|
|
97
99
|
generatorOptions.slaveIds = slaveIds;
|
|
98
100
|
}
|
|
101
|
+
if (baudRates) {
|
|
102
|
+
generatorOptions.baudRates = baudRates;
|
|
103
|
+
}
|
|
104
|
+
if (parities) {
|
|
105
|
+
generatorOptions.parities = parities;
|
|
106
|
+
}
|
|
99
107
|
const totalCombinations = countParameterCombinations(generatorOptions);
|
|
100
108
|
const progress = new ProgressTracker(totalCombinations);
|
|
101
109
|
if (!silent) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../../src/commands/discover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAGrD,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAA;AAC9F,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../../../src/commands/discover.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import type { BaudRate, DataBits, Parity, StopBits, SupportedSerialConfig } from '@ya-modbus/driver-types';
|
|
2
2
|
import type { DiscoveryStrategy, GeneratorOptions } from './parameter-generator.js';
|
|
3
3
|
/**
|
|
4
|
-
* Get parameter arrays based on strategy and
|
|
4
|
+
* Get parameter arrays based on strategy, configuration, and filters
|
|
5
5
|
*/
|
|
6
|
-
export declare function getParameterArrays(strategy: DiscoveryStrategy, supportedConfig?: SupportedSerialConfig
|
|
6
|
+
export declare function getParameterArrays(strategy: DiscoveryStrategy, supportedConfig?: SupportedSerialConfig, filters?: {
|
|
7
|
+
baudRates?: BaudRate[];
|
|
8
|
+
parities?: Parity[];
|
|
9
|
+
}): {
|
|
7
10
|
baudRates: readonly BaudRate[];
|
|
8
11
|
parities: readonly Parity[];
|
|
9
12
|
dataBits: readonly DataBits[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-generator-utils.d.ts","sourceRoot":"","sources":["../../../../src/discovery/parameter-generator-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,qBAAqB,EACtB,MAAM,yBAAyB,CAAA;AAahC,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEnF;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,iBAAiB,EAC3B,eAAe,CAAC,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"parameter-generator-utils.d.ts","sourceRoot":"","sources":["../../../../src/discovery/parameter-generator-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,qBAAqB,EACtB,MAAM,yBAAyB,CAAA;AAahC,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEnF;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,iBAAiB,EAC3B,eAAe,CAAC,EAAE,qBAAqB,EACvC,OAAO,CAAC,EAAE;IACR,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB,GACA;IACD,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAA;IAC9B,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3B,QAAQ,EAAE,SAAS,QAAQ,EAAE,CAAA;IAC7B,QAAQ,EAAE,SAAS,QAAQ,EAAE,CAAA;IAC7B,YAAY,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CACxC,CA6CA;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAkC5E"}
|
|
@@ -1,35 +1,50 @@
|
|
|
1
1
|
import { COMMON_BAUD_RATES, COMMON_DATA_BITS, COMMON_STOP_BITS, MAX_SLAVE_ID, MIN_SLAVE_ID, STANDARD_BAUD_RATES, STANDARD_DATA_BITS, STANDARD_PARITY, STANDARD_STOP_BITS, } from './constants.js';
|
|
2
2
|
/**
|
|
3
|
-
* Get parameter arrays based on strategy and
|
|
3
|
+
* Get parameter arrays based on strategy, configuration, and filters
|
|
4
4
|
*/
|
|
5
|
-
export function getParameterArrays(strategy, supportedConfig) {
|
|
5
|
+
export function getParameterArrays(strategy, supportedConfig, filters) {
|
|
6
|
+
let baudRates;
|
|
7
|
+
let parities;
|
|
8
|
+
let dataBits;
|
|
9
|
+
let stopBits;
|
|
10
|
+
let addressRange;
|
|
6
11
|
if (strategy === 'quick' && supportedConfig) {
|
|
7
12
|
// Quick mode with driver config: use supported values or fall back to common
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
addressRange: supportedConfig.validAddressRange ?? [MIN_SLAVE_ID, MAX_SLAVE_ID],
|
|
14
|
-
};
|
|
13
|
+
baudRates = supportedConfig.validBaudRates ?? COMMON_BAUD_RATES;
|
|
14
|
+
parities = supportedConfig.validParity ?? STANDARD_PARITY;
|
|
15
|
+
dataBits = supportedConfig.validDataBits ?? STANDARD_DATA_BITS;
|
|
16
|
+
stopBits = supportedConfig.validStopBits ?? STANDARD_STOP_BITS;
|
|
17
|
+
addressRange = supportedConfig.validAddressRange ?? [MIN_SLAVE_ID, MAX_SLAVE_ID];
|
|
15
18
|
}
|
|
16
|
-
if (strategy === 'thorough') {
|
|
19
|
+
else if (strategy === 'thorough') {
|
|
17
20
|
// Thorough mode: use supported config if provided, otherwise standard Modbus
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
baudRates = supportedConfig?.validBaudRates ?? STANDARD_BAUD_RATES;
|
|
22
|
+
parities = supportedConfig?.validParity ?? STANDARD_PARITY;
|
|
23
|
+
dataBits = supportedConfig?.validDataBits ?? STANDARD_DATA_BITS;
|
|
24
|
+
stopBits = supportedConfig?.validStopBits ?? STANDARD_STOP_BITS;
|
|
25
|
+
addressRange = supportedConfig?.validAddressRange ?? [MIN_SLAVE_ID, MAX_SLAVE_ID];
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
// Quick mode without driver config: use common parameters
|
|
29
|
+
baudRates = COMMON_BAUD_RATES;
|
|
30
|
+
parities = STANDARD_PARITY;
|
|
31
|
+
dataBits = COMMON_DATA_BITS;
|
|
32
|
+
stopBits = COMMON_STOP_BITS;
|
|
33
|
+
addressRange = [MIN_SLAVE_ID, MAX_SLAVE_ID];
|
|
34
|
+
}
|
|
35
|
+
// Apply filters if provided (overrides strategy and driver config)
|
|
36
|
+
if (filters?.baudRates !== undefined) {
|
|
37
|
+
baudRates = filters.baudRates;
|
|
38
|
+
}
|
|
39
|
+
if (filters?.parities !== undefined) {
|
|
40
|
+
parities = filters.parities;
|
|
25
41
|
}
|
|
26
|
-
// Quick mode without driver config: use common parameters
|
|
27
42
|
return {
|
|
28
|
-
baudRates
|
|
29
|
-
parities
|
|
30
|
-
dataBits
|
|
31
|
-
stopBits
|
|
32
|
-
addressRange
|
|
43
|
+
baudRates,
|
|
44
|
+
parities,
|
|
45
|
+
dataBits,
|
|
46
|
+
stopBits,
|
|
47
|
+
addressRange,
|
|
33
48
|
};
|
|
34
49
|
}
|
|
35
50
|
/**
|
|
@@ -48,8 +63,14 @@ export function getParameterArrays(strategy, supportedConfig) {
|
|
|
48
63
|
* ```
|
|
49
64
|
*/
|
|
50
65
|
export function countParameterCombinations(options) {
|
|
51
|
-
const { strategy, supportedConfig, slaveIds } = options;
|
|
52
|
-
const
|
|
66
|
+
const { strategy, supportedConfig, slaveIds, baudRates: baudRateFilter, parities: parityFilter, } = options;
|
|
67
|
+
const filters = baudRateFilter !== undefined || parityFilter !== undefined
|
|
68
|
+
? {
|
|
69
|
+
...(baudRateFilter !== undefined && { baudRates: baudRateFilter }),
|
|
70
|
+
...(parityFilter !== undefined && { parities: parityFilter }),
|
|
71
|
+
}
|
|
72
|
+
: undefined;
|
|
73
|
+
const { baudRates, parities, dataBits, stopBits, addressRange } = getParameterArrays(strategy, supportedConfig, filters);
|
|
53
74
|
// Calculate address count
|
|
54
75
|
let addressCount;
|
|
55
76
|
if (slaveIds !== undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-generator-utils.js","sourceRoot":"","sources":["../../../../src/discovery/parameter-generator-utils.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,GACnB,MAAM,gBAAgB,CAAA;AAGvB;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAA2B,EAC3B,eAAuC;
|
|
1
|
+
{"version":3,"file":"parameter-generator-utils.js","sourceRoot":"","sources":["../../../../src/discovery/parameter-generator-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,10 @@ export interface GeneratorOptions {
|
|
|
29
29
|
supportedConfig?: SupportedSerialConfig;
|
|
30
30
|
/** Optional list of specific slave IDs to test (overrides addressRange) */
|
|
31
31
|
slaveIds?: number[];
|
|
32
|
+
/** Optional list of specific baud rates to test (overrides strategy defaults) */
|
|
33
|
+
baudRates?: BaudRate[];
|
|
34
|
+
/** Optional list of specific parities to test (overrides strategy defaults) */
|
|
35
|
+
parities?: Parity[];
|
|
32
36
|
}
|
|
33
37
|
/**
|
|
34
38
|
* Group of parameter combinations that share the same serial configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-generator.d.ts","sourceRoot":"","sources":["../../../../src/discovery/parameter-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,MAAM,EACN,QAAQ,EACR,qBAAqB,EACtB,MAAM,yBAAyB,CAAA;AAKhC;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,QAAQ,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,UAAU,CAAA;AAEpD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,QAAQ,EAAE,iBAAiB,CAAA;IAE3B,gEAAgE;IAChE,aAAa,CAAC,EAAE,mBAAmB,CAAA;IAEnC,0DAA0D;IAC1D,eAAe,CAAC,EAAE,qBAAqB,CAAA;IAEvC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAmFD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iEAAiE;IACjE,YAAY,EAAE;QACZ,QAAQ,EAAE,QAAQ,CAAA;QAClB,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,QAAQ,CAAA;QAClB,QAAQ,EAAE,QAAQ,CAAA;KACnB,CAAA;IACD,qFAAqF;IACrF,YAAY,EAAE,oBAAoB,EAAE,CAAA;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAiB,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"parameter-generator.d.ts","sourceRoot":"","sources":["../../../../src/discovery/parameter-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,QAAQ,EACR,mBAAmB,EACnB,MAAM,EACN,QAAQ,EACR,qBAAqB,EACtB,MAAM,yBAAyB,CAAA;AAKhC;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,QAAQ,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;CACnB;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,UAAU,CAAA;AAEpD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gCAAgC;IAChC,QAAQ,EAAE,iBAAiB,CAAA;IAE3B,gEAAgE;IAChE,aAAa,CAAC,EAAE,mBAAmB,CAAA;IAEnC,0DAA0D;IAC1D,eAAe,CAAC,EAAE,qBAAqB,CAAA;IAEvC,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IAEnB,iFAAiF;IACjF,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IAEtB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CACpB;AAmFD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,iEAAiE;IACjE,YAAY,EAAE;QACZ,QAAQ,EAAE,QAAQ,CAAA;QAClB,MAAM,EAAE,MAAM,CAAA;QACd,QAAQ,EAAE,QAAQ,CAAA;QAClB,QAAQ,EAAE,QAAQ,CAAA;KACnB,CAAA;IACD,qFAAqF;IACrF,YAAY,EAAE,oBAAoB,EAAE,CAAA;CACrC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAiB,uBAAuB,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAAC,cAAc,CAAC,CAmE7F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAiB,6BAA6B,CAC5C,OAAO,EAAE,gBAAgB,GACxB,SAAS,CAAC,oBAAoB,CAAC,CA2DjC"}
|
|
@@ -93,10 +93,16 @@ function prioritizeDefaults(array, defaultValue) {
|
|
|
93
93
|
* ```
|
|
94
94
|
*/
|
|
95
95
|
export function* generateParameterGroups(options) {
|
|
96
|
-
const { strategy, defaultConfig, supportedConfig, slaveIds: slaveIdFilter } = options;
|
|
97
|
-
// Get parameter arrays
|
|
98
|
-
|
|
99
|
-
|
|
96
|
+
const { strategy, defaultConfig, supportedConfig, slaveIds: slaveIdFilter, baudRates: baudRateFilter, parities: parityFilter, } = options;
|
|
97
|
+
// Get parameter arrays (applying filters if provided)
|
|
98
|
+
const filters = baudRateFilter !== undefined || parityFilter !== undefined
|
|
99
|
+
? {
|
|
100
|
+
...(baudRateFilter !== undefined && { baudRates: baudRateFilter }),
|
|
101
|
+
...(parityFilter !== undefined && { parities: parityFilter }),
|
|
102
|
+
}
|
|
103
|
+
: undefined;
|
|
104
|
+
let { baudRates, parities, dataBits, stopBits } = getParameterArrays(strategy, supportedConfig, filters);
|
|
105
|
+
const { addressRange } = getParameterArrays(strategy, supportedConfig, filters);
|
|
100
106
|
// Prioritize default values to test them first
|
|
101
107
|
if (defaultConfig) {
|
|
102
108
|
baudRates = prioritizeDefaults(baudRates, defaultConfig.baudRate);
|
|
@@ -162,10 +168,16 @@ export function* generateParameterGroups(options) {
|
|
|
162
168
|
* ```
|
|
163
169
|
*/
|
|
164
170
|
export function* generateParameterCombinations(options) {
|
|
165
|
-
const { strategy, defaultConfig, supportedConfig, slaveIds: slaveIdFilter } = options;
|
|
166
|
-
// Get parameter arrays
|
|
167
|
-
|
|
168
|
-
|
|
171
|
+
const { strategy, defaultConfig, supportedConfig, slaveIds: slaveIdFilter, baudRates: baudRateFilter, parities: parityFilter, } = options;
|
|
172
|
+
// Get parameter arrays (applying filters if provided)
|
|
173
|
+
const filters = baudRateFilter !== undefined || parityFilter !== undefined
|
|
174
|
+
? {
|
|
175
|
+
...(baudRateFilter !== undefined && { baudRates: baudRateFilter }),
|
|
176
|
+
...(parityFilter !== undefined && { parities: parityFilter }),
|
|
177
|
+
}
|
|
178
|
+
: undefined;
|
|
179
|
+
let { baudRates, parities, dataBits, stopBits } = getParameterArrays(strategy, supportedConfig, filters);
|
|
180
|
+
const { addressRange } = getParameterArrays(strategy, supportedConfig, filters);
|
|
169
181
|
// Prioritize default values to test them first
|
|
170
182
|
if (defaultConfig) {
|
|
171
183
|
baudRates = prioritizeDefaults(baudRates, defaultConfig.baudRate);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parameter-generator.js","sourceRoot":"","sources":["../../../../src/discovery/parameter-generator.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"parameter-generator.js","sourceRoot":"","sources":["../../../../src/discovery/parameter-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAmEnC,QAAA,MAAM,OAAO,SAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAmEnC,QAAA,MAAM,OAAO,SAAgB,CAAA;AAiJ7B,OAAO,EAAE,OAAO,EAAE,CAAA"}
|
package/dist/esm/src/index.js
CHANGED
|
@@ -102,6 +102,8 @@ program
|
|
|
102
102
|
.option('--delay <ms>', 'Delay between attempts in milliseconds (default: 100)', parseInt)
|
|
103
103
|
.option('--max-devices <count>', 'Maximum number of devices to find (default: 1, use 0 for unlimited)', parseInt)
|
|
104
104
|
.option('--id <spec>', 'Limit search to specific slave IDs (e.g., "1,2,3-5"). Can be specified multiple times')
|
|
105
|
+
.option('--parity <spec>', 'Limit search to specific parities (e.g., "none,even"). Can be specified multiple times')
|
|
106
|
+
.option('--baud-rate <spec>', 'Limit search to specific baud rates (e.g., "9600,19200" or "9600-38400"). Can be specified multiple times')
|
|
105
107
|
.optionsGroup('Output Options:')
|
|
106
108
|
.option('--verbose', 'Show detailed progress with current parameters being tested')
|
|
107
109
|
.option('--silent', 'Suppress all output except final result (useful for scripts)')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Merges multiple specification strings (from repeated CLI flags) into a
|
|
3
|
+
* single deduplicated, sorted array.
|
|
4
|
+
*
|
|
5
|
+
* Handles:
|
|
6
|
+
* - Single string or array of strings
|
|
7
|
+
* - Deduplication across all specifications
|
|
8
|
+
* - Custom sorting
|
|
9
|
+
*
|
|
10
|
+
* @param specs - Single spec string, array of spec strings, or undefined
|
|
11
|
+
* @param parser - Function that parses a single spec string
|
|
12
|
+
* @param sorter - Optional function to sort the final array
|
|
13
|
+
* @returns Merged and sorted array, or undefined if specs is undefined
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* // Merge multiple --id specifications
|
|
17
|
+
* const ids = mergeSpecs(
|
|
18
|
+
* ['1,2', '3-5'],
|
|
19
|
+
* parseIdRange,
|
|
20
|
+
* (items) => items.sort((a, b) => a - b)
|
|
21
|
+
* )
|
|
22
|
+
* // Result: [1, 2, 3, 4, 5]
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* // Merge multiple --parity specifications
|
|
26
|
+
* const parities = mergeSpecs(
|
|
27
|
+
* ['none', 'even,odd'],
|
|
28
|
+
* parseParity,
|
|
29
|
+
* sortParitiesInStandardOrder
|
|
30
|
+
* )
|
|
31
|
+
* // Result: ['none', 'even', 'odd']
|
|
32
|
+
*/
|
|
33
|
+
export declare function mergeSpecs<T>(specs: string | string[] | undefined, parser: (spec: string) => T[], sorter?: (items: T[]) => T[]): T[] | undefined;
|
|
34
|
+
//# sourceMappingURL=merge-specs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-specs.d.ts","sourceRoot":"","sources":["../../../../src/utils/merge-specs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAC1B,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,EACpC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,EAAE,EAC7B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,GAC3B,CAAC,EAAE,GAAG,SAAS,CAoBjB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Merges multiple specification strings (from repeated CLI flags) into a
|
|
3
|
+
* single deduplicated, sorted array.
|
|
4
|
+
*
|
|
5
|
+
* Handles:
|
|
6
|
+
* - Single string or array of strings
|
|
7
|
+
* - Deduplication across all specifications
|
|
8
|
+
* - Custom sorting
|
|
9
|
+
*
|
|
10
|
+
* @param specs - Single spec string, array of spec strings, or undefined
|
|
11
|
+
* @param parser - Function that parses a single spec string
|
|
12
|
+
* @param sorter - Optional function to sort the final array
|
|
13
|
+
* @returns Merged and sorted array, or undefined if specs is undefined
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* // Merge multiple --id specifications
|
|
17
|
+
* const ids = mergeSpecs(
|
|
18
|
+
* ['1,2', '3-5'],
|
|
19
|
+
* parseIdRange,
|
|
20
|
+
* (items) => items.sort((a, b) => a - b)
|
|
21
|
+
* )
|
|
22
|
+
* // Result: [1, 2, 3, 4, 5]
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* // Merge multiple --parity specifications
|
|
26
|
+
* const parities = mergeSpecs(
|
|
27
|
+
* ['none', 'even,odd'],
|
|
28
|
+
* parseParity,
|
|
29
|
+
* sortParitiesInStandardOrder
|
|
30
|
+
* )
|
|
31
|
+
* // Result: ['none', 'even', 'odd']
|
|
32
|
+
*/
|
|
33
|
+
export function mergeSpecs(specs, parser, sorter) {
|
|
34
|
+
if (specs === undefined) {
|
|
35
|
+
return undefined;
|
|
36
|
+
}
|
|
37
|
+
// Normalize to array
|
|
38
|
+
const specArray = Array.isArray(specs) ? specs : [specs];
|
|
39
|
+
// Parse and merge into Set for deduplication
|
|
40
|
+
const allValues = new Set();
|
|
41
|
+
for (const spec of specArray) {
|
|
42
|
+
const values = parser(spec);
|
|
43
|
+
values.forEach((value) => allValues.add(value));
|
|
44
|
+
}
|
|
45
|
+
// Convert to array
|
|
46
|
+
const result = Array.from(allValues);
|
|
47
|
+
// Apply custom sorter if provided, otherwise return unsorted
|
|
48
|
+
return sorter ? sorter(result) : result;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=merge-specs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-specs.js","sourceRoot":"","sources":["../../../../src/utils/merge-specs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,UAAU,CACxB,KAAoC,EACpC,MAA6B,EAC7B,MAA4B;IAE5B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,qBAAqB;IACrB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;IAExD,6CAA6C;IAC7C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAK,CAAA;IAC9B,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;QAC3B,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IACjD,CAAC;IAED,mBAAmB;IACnB,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAEpC,6DAA6D;IAC7D,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;AACzC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { BaudRate } from '@ya-modbus/driver-types';
|
|
2
|
+
/**
|
|
3
|
+
* Parses a comma-separated list of baud rates and ranges into a sorted array of unique baud rates.
|
|
4
|
+
*
|
|
5
|
+
* @param spec - Baud rate specification string (e.g., "9600,19200" or "9600-38400")
|
|
6
|
+
* @returns Sorted array of unique baud rates from STANDARD_BAUD_RATES
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* parseBaudRate("9600,19200") // [9600, 19200]
|
|
10
|
+
* parseBaudRate("9600-19200") // [9600, 14400, 19200]
|
|
11
|
+
* parseBaudRate("19200,9600") // [9600, 19200]
|
|
12
|
+
*/
|
|
13
|
+
export declare function parseBaudRate(spec: string): BaudRate[];
|
|
14
|
+
//# sourceMappingURL=parse-baud-rate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-baud-rate.d.ts","sourceRoot":"","sources":["../../../../src/utils/parse-baud-rate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAOvD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CA2BtD"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { STANDARD_BAUD_RATES } from '../discovery/constants.js';
|
|
2
|
+
import { parseInteger } from './parse-integer.js';
|
|
3
|
+
import { parseSpec } from './parse-spec.js';
|
|
4
|
+
/**
|
|
5
|
+
* Parses a comma-separated list of baud rates and ranges into a sorted array of unique baud rates.
|
|
6
|
+
*
|
|
7
|
+
* @param spec - Baud rate specification string (e.g., "9600,19200" or "9600-38400")
|
|
8
|
+
* @returns Sorted array of unique baud rates from STANDARD_BAUD_RATES
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* parseBaudRate("9600,19200") // [9600, 19200]
|
|
12
|
+
* parseBaudRate("9600-19200") // [9600, 14400, 19200]
|
|
13
|
+
* parseBaudRate("19200,9600") // [9600, 19200]
|
|
14
|
+
*/
|
|
15
|
+
export function parseBaudRate(spec) {
|
|
16
|
+
return parseSpec({
|
|
17
|
+
spec,
|
|
18
|
+
label: 'baud rate',
|
|
19
|
+
formatExamples: ['"9600,19200"', '"9600-19200"'],
|
|
20
|
+
skipEmptyParts: true,
|
|
21
|
+
parseSingle: (value, context) => {
|
|
22
|
+
const rate = parseInteger(value, context, 'baud rate');
|
|
23
|
+
validateBaudRate(rate, context);
|
|
24
|
+
return rate;
|
|
25
|
+
},
|
|
26
|
+
parseRange: (start, end, context) => {
|
|
27
|
+
const startRate = parseInteger(start, context, 'baud rate');
|
|
28
|
+
const endRate = parseInteger(end, context, 'baud rate');
|
|
29
|
+
if (startRate > endRate) {
|
|
30
|
+
throw new Error(`Invalid range: "${context}". Start must be less than or equal to end`);
|
|
31
|
+
}
|
|
32
|
+
validateBaudRate(startRate, context);
|
|
33
|
+
validateBaudRate(endRate, context);
|
|
34
|
+
// Extract baud rates between start and end from STANDARD_BAUD_RATES
|
|
35
|
+
return STANDARD_BAUD_RATES.filter((rate) => rate >= startRate && rate <= endRate);
|
|
36
|
+
},
|
|
37
|
+
sortItems: (items) => items.sort((a, b) => a - b),
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Validates that a number is a supported baud rate.
|
|
42
|
+
*/
|
|
43
|
+
function validateBaudRate(rate, context) {
|
|
44
|
+
if (!STANDARD_BAUD_RATES.includes(rate)) {
|
|
45
|
+
throw new Error(`Unsupported baud rate: ${rate} in "${context}". ` +
|
|
46
|
+
`Supported rates are: ${STANDARD_BAUD_RATES.join(', ')}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=parse-baud-rate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse-baud-rate.js","sourceRoot":"","sources":["../../../../src/utils/parse-baud-rate.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAE/D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C;;;;;;;;;;GAUG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,SAAS,CAAC;QACf,IAAI;QACJ,KAAK,EAAE,WAAW;QAClB,cAAc,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;QAChD,cAAc,EAAE,IAAI;QACpB,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAC9B,MAAM,IAAI,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;YACtD,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;YAC/B,OAAO,IAAI,CAAA;QACb,CAAC;QACD,UAAU,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAClC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;YAC3D,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,CAAC,CAAA;YAEvD,IAAI,SAAS,GAAG,OAAO,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CAAC,mBAAmB,OAAO,4CAA4C,CAAC,CAAA;YACzF,CAAC;YAED,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YACpC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAElC,oEAAoE;YACpE,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,SAAS,IAAI,IAAI,IAAI,OAAO,CAAC,CAAA;QACnF,CAAC;QACD,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;KAClD,CAAC,CAAA;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,IAAY,EAAE,OAAe;IACrD,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,0BAA0B,IAAI,QAAQ,OAAO,KAAK;YAChD,wBAAwB,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3D,CAAA;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-id-range.d.ts","sourceRoot":"","sources":["../../../../src/utils/parse-id-range.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parse-id-range.d.ts","sourceRoot":"","sources":["../../../../src/utils/parse-id-range.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CA0BnD"}
|