@formant/formant-cli 0.5.0 → 0.5.2
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/README.md +7 -0
- package/dist/commands/device/list.d.ts +1 -1
- package/dist/commands/device/list.js +32 -6
- package/dist/commands/device/list.js.map +1 -1
- package/oclif.manifest.json +1337 -1336
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -36,6 +36,7 @@ This CLI provides programmatic access to all Formant capabilities:
|
|
|
36
36
|
- List available telemetry streams with per-stream data presence (datapoint counts, last seen, freshness)
|
|
37
37
|
- Data-based last seen timestamps and datapoint counts on device listings
|
|
38
38
|
- Filter to devices that have ingested data (`--with-data`)
|
|
39
|
+
- Search by name across **all** devices (online and offline) with `--name`; repeat the flag for multiple names
|
|
39
40
|
|
|
40
41
|
### Telemetry Queries
|
|
41
42
|
- Query historical sensor data (battery, temperature, position, custom metrics)
|
|
@@ -177,6 +178,10 @@ fcli org get
|
|
|
177
178
|
# List devices with data
|
|
178
179
|
fcli device list --with-data --dev
|
|
179
180
|
|
|
181
|
+
# Look up a device by name (searches all devices, online + offline)
|
|
182
|
+
fcli device list --name "mech-0" --dev --toon
|
|
183
|
+
fcli device list --name "mech-0" --name "mech-1" --dev --toon
|
|
184
|
+
|
|
180
185
|
# Get device details
|
|
181
186
|
fcli device get <device-id> --dev
|
|
182
187
|
|
|
@@ -222,6 +227,8 @@ fcli device list --include-offline # Include offline devices
|
|
|
222
227
|
fcli device list --with-data # Only devices with ingested data
|
|
223
228
|
fcli device list --with-data --days 90 # Widen the search window (default: 30d)
|
|
224
229
|
fcli device list --tag location=warehouse # Filter by tag
|
|
230
|
+
fcli device list --name "mech-0" # Search all devices by name (online + offline)
|
|
231
|
+
fcli device list --name "mech-0" --name "mech-1" # Multiple names (parallel queries, merged)
|
|
225
232
|
|
|
226
233
|
# Device details
|
|
227
234
|
fcli device get <device-id> # Get full device details
|
|
@@ -6,7 +6,7 @@ export default class DevicesList extends BaseCommand<typeof DevicesList> {
|
|
|
6
6
|
'include-offline': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
7
7
|
days: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
8
|
limit: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
-
name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
name: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
10
|
'with-data': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
11
|
tag: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
12
|
};
|
|
@@ -16,6 +16,7 @@ seen timestamp and datapoint count from analytics.`;
|
|
|
16
16
|
'<%= config.bin %> device list --include-offline --limit 100',
|
|
17
17
|
'<%= config.bin %> device list --tag location=warehouse',
|
|
18
18
|
'<%= config.bin %> device list --name robot --dev --json',
|
|
19
|
+
'<%= config.bin %> device list --name mech-0 --name mech-1 --dev --toon',
|
|
19
20
|
];
|
|
20
21
|
static flags = {
|
|
21
22
|
'include-offline': Flags.boolean({
|
|
@@ -33,7 +34,8 @@ seen timestamp and datapoint count from analytics.`;
|
|
|
33
34
|
}),
|
|
34
35
|
name: Flags.string({
|
|
35
36
|
char: 'n',
|
|
36
|
-
description: 'Filter devices by name (search)',
|
|
37
|
+
description: 'Filter devices by name (search), can be specified multiple times',
|
|
38
|
+
multiple: true,
|
|
37
39
|
}),
|
|
38
40
|
'with-data': Flags.boolean({
|
|
39
41
|
char: 'w',
|
|
@@ -50,8 +52,6 @@ seen timestamp and datapoint count from analytics.`;
|
|
|
50
52
|
const baseBody = {
|
|
51
53
|
enabled: true,
|
|
52
54
|
};
|
|
53
|
-
if (this.flags.name)
|
|
54
|
-
baseBody.query = this.flags.name;
|
|
55
55
|
if (this.flags.tag && this.flags.tag.length > 0) {
|
|
56
56
|
const tags = {};
|
|
57
57
|
for (const t of this.flags.tag) {
|
|
@@ -67,9 +67,35 @@ seen timestamp and datapoint count from analytics.`;
|
|
|
67
67
|
baseBody.tags = tags;
|
|
68
68
|
}
|
|
69
69
|
const limit = this.flags.limit;
|
|
70
|
+
const names = this.flags.name ?? [];
|
|
71
|
+
const hasNameFilter = names.length > 0;
|
|
70
72
|
let filtered;
|
|
71
|
-
if (
|
|
72
|
-
//
|
|
73
|
+
if (hasNameFilter) {
|
|
74
|
+
// When filtering by name, always query all devices (online + offline) so
|
|
75
|
+
// that a device can be found regardless of its current online status.
|
|
76
|
+
// Make one parallel request per name, then merge and deduplicate by id.
|
|
77
|
+
const onlineIds = await this.getOnlineDeviceIds();
|
|
78
|
+
const results = await Promise.all(names.map((name) => this.api('admin', 'devices/query', { body: { ...baseBody, query: name, count: limit } })));
|
|
79
|
+
const seen = new Set();
|
|
80
|
+
filtered = [];
|
|
81
|
+
for (const result of results) {
|
|
82
|
+
for (const device of result.items ?? []) {
|
|
83
|
+
const id = device.id;
|
|
84
|
+
if (!seen.has(id)) {
|
|
85
|
+
seen.add(id);
|
|
86
|
+
filtered.push({
|
|
87
|
+
...device,
|
|
88
|
+
online: onlineIds ? onlineIds.has(id) : isOnlineByState(device),
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
// Respect --limit on the merged set
|
|
94
|
+
if (filtered.length > limit)
|
|
95
|
+
filtered = filtered.slice(0, limit);
|
|
96
|
+
}
|
|
97
|
+
else if (this.flags['include-offline'] || this.flags['with-data']) {
|
|
98
|
+
// --include-offline / --with-data: single fetch, enrich with online status
|
|
73
99
|
const result = await this.api('admin', 'devices/query', { body: { ...baseBody, count: limit } });
|
|
74
100
|
const onlineIds = await this.getOnlineDeviceIds();
|
|
75
101
|
filtered = (result.items ?? []).map((device) => ({
|
|
@@ -123,7 +149,7 @@ seen timestamp and datapoint count from analytics.`;
|
|
|
123
149
|
}
|
|
124
150
|
const output = { items: filtered };
|
|
125
151
|
if (!this.jsonEnabled()) {
|
|
126
|
-
const mode = this.flags['with-data'] ? 'with data' : this.flags['include-offline'] ? 'all' : 'online';
|
|
152
|
+
const mode = hasNameFilter ? 'by name' : this.flags['with-data'] ? 'with data' : this.flags['include-offline'] ? 'all' : 'online';
|
|
127
153
|
const days = this.flags.days;
|
|
128
154
|
const columns = [
|
|
129
155
|
{ key: 'name', label: 'NAME', width: 24 },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/device/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,aAAa,CAAA;AAEjC,OAAO,EAAC,WAAW,EAAC,MAAM,uBAAuB,CAAA;AACjD,OAAO,EAAc,WAAW,EAAC,MAAM,yBAAyB,CAAA;AAChE,OAAO,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,uBAAuB,CAAA;AAErE,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAA+B;IACtE,MAAM,CAAU,WAAW,GAAG;;;;mDAImB,CAAA;IAEjD,MAAM,CAAU,QAAQ,GAAG;QACzB,+BAA+B;QAC/B,iDAAiD;QACjD,2CAA2C;QAC3C,qDAAqD;QACrD,6DAA6D;QAC7D,wDAAwD;QACxD,yDAAyD;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/device/list.ts"],"names":[],"mappings":"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"}
|