n8nac 1.0.0 → 1.1.0-next.20
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 +10 -0
- package/dist/commands/list.d.ts +15 -5
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +61 -26
- package/dist/commands/list.js.map +1 -1
- package/dist/index.js +40 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/option-parsers.d.ts +2 -0
- package/dist/utils/option-parsers.d.ts.map +1 -0
- package/dist/utils/option-parsers.js +12 -0
- package/dist/utils/option-parsers.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -75,10 +75,20 @@ Display workflow status in a git-like model. By default shows combined local and
|
|
|
75
75
|
n8nac list # Combined view (default)
|
|
76
76
|
n8nac list --local # Show only local workflows
|
|
77
77
|
n8nac list --remote # Show only remote workflows (alias: --distant)
|
|
78
|
+
n8nac list --search billing # Filter by partial name, ID, or filename
|
|
79
|
+
n8nac list --sort name # Strict alphabetical sorting
|
|
80
|
+
n8nac find billing --limit 5 # Search-oriented shortcut
|
|
78
81
|
```
|
|
79
82
|
|
|
80
83
|
Output columns: `Status` · `ID` · `Name` · `Local Path`
|
|
81
84
|
|
|
85
|
+
Search and filter options:
|
|
86
|
+
|
|
87
|
+
- `--search <query>`: case-insensitive partial match against workflow name, ID, or local filename
|
|
88
|
+
- `--sort <status|name>`: keep the default sync-oriented status ordering, or switch to alphabetical name sorting
|
|
89
|
+
- `--limit <n>`: cap the number of results returned
|
|
90
|
+
- `--raw`: output the filtered result set as JSON for scripts and pipes
|
|
91
|
+
|
|
82
92
|
Status values:
|
|
83
93
|
|
|
84
94
|
| Status | Meaning | Action |
|
package/dist/commands/list.d.ts
CHANGED
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
import { BaseCommand } from './base.js';
|
|
2
|
+
import { IWorkflowStatus } from '../core/index.js';
|
|
3
|
+
export type WorkflowListSortMode = 'status' | 'name';
|
|
4
|
+
export interface ListCommandOptions {
|
|
5
|
+
local?: boolean;
|
|
6
|
+
remote?: boolean;
|
|
7
|
+
raw?: boolean;
|
|
8
|
+
search?: string;
|
|
9
|
+
sort?: WorkflowListSortMode;
|
|
10
|
+
limit?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function matchesWorkflowSearch(workflow: IWorkflowStatus, query?: string): boolean;
|
|
13
|
+
export declare function sortWorkflows(workflows: IWorkflowStatus[], sortMode?: WorkflowListSortMode): IWorkflowStatus[];
|
|
14
|
+
export declare function applyListCommandOptions(workflows: IWorkflowStatus[], options?: ListCommandOptions): IWorkflowStatus[];
|
|
15
|
+
export declare function countMatchingWorkflows(workflows: IWorkflowStatus[], options?: ListCommandOptions): number;
|
|
2
16
|
export declare class ListCommand extends BaseCommand {
|
|
3
|
-
run(options?:
|
|
4
|
-
local?: boolean;
|
|
5
|
-
remote?: boolean;
|
|
6
|
-
raw?: boolean;
|
|
7
|
-
}): Promise<void>;
|
|
17
|
+
run(options?: ListCommandOptions): Promise<void>;
|
|
8
18
|
private getStatusDisplay;
|
|
9
19
|
private getSummary;
|
|
10
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAmC,eAAe,EAAgC,MAAM,kBAAkB,CAAC;AAKlH,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,kBAAkB;IAC/B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,oBAAoB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CASxF;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,eAAe,EAAE,EAAE,QAAQ,GAAE,oBAA+B,GAAG,eAAe,EAAE,CAiBxH;AAsBD,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,eAAe,EAAE,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,eAAe,EAAE,CAQrH;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,eAAe,EAAE,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAEzG;AAED,qBAAa,WAAY,SAAQ,WAAW;IAClC,GAAG,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoFtD,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,UAAU;CAQrB"}
|
package/dist/commands/list.js
CHANGED
|
@@ -3,6 +3,56 @@ import { SyncManager, WorkflowSyncStatus, formatWorkflowNameWithBadges } from '.
|
|
|
3
3
|
import chalk from 'chalk';
|
|
4
4
|
import ora from 'ora';
|
|
5
5
|
import Table from 'cli-table3';
|
|
6
|
+
export function matchesWorkflowSearch(workflow, query) {
|
|
7
|
+
const normalizedQuery = query?.trim().toLowerCase();
|
|
8
|
+
if (!normalizedQuery) {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
return [workflow.name, workflow.id, workflow.filename]
|
|
12
|
+
.filter((value) => Boolean(value))
|
|
13
|
+
.some(value => value.toLowerCase().includes(normalizedQuery));
|
|
14
|
+
}
|
|
15
|
+
export function sortWorkflows(workflows, sortMode = 'status') {
|
|
16
|
+
const statusPriority = {
|
|
17
|
+
[WorkflowSyncStatus.CONFLICT]: 1,
|
|
18
|
+
[WorkflowSyncStatus.EXIST_ONLY_LOCALLY]: 2,
|
|
19
|
+
[WorkflowSyncStatus.EXIST_ONLY_REMOTELY]: 3,
|
|
20
|
+
[WorkflowSyncStatus.TRACKED]: 4,
|
|
21
|
+
};
|
|
22
|
+
return [...workflows].sort((a, b) => {
|
|
23
|
+
if (sortMode === 'name') {
|
|
24
|
+
return a.name.localeCompare(b.name, undefined, { sensitivity: 'base' });
|
|
25
|
+
}
|
|
26
|
+
const priorityDiff = statusPriority[a.status] - statusPriority[b.status];
|
|
27
|
+
if (priorityDiff !== 0)
|
|
28
|
+
return priorityDiff;
|
|
29
|
+
return a.name.localeCompare(b.name, undefined, { sensitivity: 'base' });
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
function filterWorkflowsByScopeAndSearch(workflows, options) {
|
|
33
|
+
let filtered = workflows;
|
|
34
|
+
if (options?.local) {
|
|
35
|
+
filtered = filtered.filter(w => w.status === WorkflowSyncStatus.EXIST_ONLY_LOCALLY ||
|
|
36
|
+
w.status === WorkflowSyncStatus.TRACKED ||
|
|
37
|
+
w.status === WorkflowSyncStatus.CONFLICT);
|
|
38
|
+
}
|
|
39
|
+
else if (options?.remote) {
|
|
40
|
+
filtered = filtered.filter(w => w.status === WorkflowSyncStatus.EXIST_ONLY_REMOTELY ||
|
|
41
|
+
w.status === WorkflowSyncStatus.TRACKED ||
|
|
42
|
+
w.status === WorkflowSyncStatus.CONFLICT);
|
|
43
|
+
}
|
|
44
|
+
return filtered.filter(workflow => matchesWorkflowSearch(workflow, options?.search));
|
|
45
|
+
}
|
|
46
|
+
export function applyListCommandOptions(workflows, options) {
|
|
47
|
+
let filtered = sortWorkflows(filterWorkflowsByScopeAndSearch(workflows, options), options?.sort ?? 'status');
|
|
48
|
+
if (options?.limit) {
|
|
49
|
+
filtered = filtered.slice(0, options.limit);
|
|
50
|
+
}
|
|
51
|
+
return filtered;
|
|
52
|
+
}
|
|
53
|
+
export function countMatchingWorkflows(workflows, options) {
|
|
54
|
+
return filterWorkflowsByScopeAndSearch(workflows, options).length;
|
|
55
|
+
}
|
|
6
56
|
export class ListCommand extends BaseCommand {
|
|
7
57
|
async run(options) {
|
|
8
58
|
const spinner = ora('Listing workflows...').start();
|
|
@@ -11,18 +61,13 @@ export class ListCommand extends BaseCommand {
|
|
|
11
61
|
const syncManager = new SyncManager(this.client, syncConfig);
|
|
12
62
|
// Get lightweight workflow list: no hash computation, no TypeScript compilation.
|
|
13
63
|
// Fetches fresh remote metadata on each call for an up-to-date view.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
else if (options?.remote) {
|
|
22
|
-
workflows = workflows.filter(w => w.status === WorkflowSyncStatus.EXIST_ONLY_REMOTELY ||
|
|
23
|
-
w.status === WorkflowSyncStatus.TRACKED ||
|
|
24
|
-
w.status === WorkflowSyncStatus.CONFLICT);
|
|
25
|
-
}
|
|
64
|
+
const allWorkflows = await syncManager.listWorkflows({ fetchRemote: true });
|
|
65
|
+
const workflows = applyListCommandOptions(allWorkflows, options);
|
|
66
|
+
// When no limit is applied, `workflows` already reflects the full filtered/sorted result set,
|
|
67
|
+
// so its length is the number of matches without doing an extra pass.
|
|
68
|
+
const matchingCount = options?.limit
|
|
69
|
+
? countMatchingWorkflows(allWorkflows, options)
|
|
70
|
+
: workflows.length;
|
|
26
71
|
spinner.stop();
|
|
27
72
|
const localConfig = this.configService.getLocalConfig();
|
|
28
73
|
if (localConfig.projectName) {
|
|
@@ -45,21 +90,8 @@ export class ListCommand extends BaseCommand {
|
|
|
45
90
|
// No fixed colWidths - let it auto-size based on content to avoid truncation
|
|
46
91
|
wordWrap: true
|
|
47
92
|
});
|
|
48
|
-
// Sort workflows by status priority, then by name
|
|
49
|
-
const statusPriority = {
|
|
50
|
-
[WorkflowSyncStatus.CONFLICT]: 1,
|
|
51
|
-
[WorkflowSyncStatus.EXIST_ONLY_LOCALLY]: 2,
|
|
52
|
-
[WorkflowSyncStatus.EXIST_ONLY_REMOTELY]: 3,
|
|
53
|
-
[WorkflowSyncStatus.TRACKED]: 4,
|
|
54
|
-
};
|
|
55
|
-
const sorted = workflows.sort((a, b) => {
|
|
56
|
-
const priorityDiff = statusPriority[a.status] - statusPriority[b.status];
|
|
57
|
-
if (priorityDiff !== 0)
|
|
58
|
-
return priorityDiff;
|
|
59
|
-
return a.name.localeCompare(b.name);
|
|
60
|
-
});
|
|
61
93
|
// Add rows with color coding
|
|
62
|
-
for (const workflow of
|
|
94
|
+
for (const workflow of workflows) {
|
|
63
95
|
const { icon, color } = this.getStatusDisplay(workflow.status);
|
|
64
96
|
const statusText = `${icon} ${workflow.status}`;
|
|
65
97
|
// Format name with badges
|
|
@@ -85,6 +117,9 @@ export class ListCommand extends BaseCommand {
|
|
|
85
117
|
console.log(chalk.yellow(` + Local Only: ${summary.onlyLocal}`));
|
|
86
118
|
console.log(chalk.yellow(` - Remote Only: ${summary.onlyRemote}`));
|
|
87
119
|
console.log(chalk.bold(` Total: ${workflows.length}\n`));
|
|
120
|
+
if (options?.limit && matchingCount > workflows.length) {
|
|
121
|
+
console.log(chalk.gray(`Showing first ${workflows.length} of ${matchingCount} matching workflows.\n`));
|
|
122
|
+
}
|
|
88
123
|
}
|
|
89
124
|
catch (error) {
|
|
90
125
|
spinner.fail(chalk.red(`Failed to list workflows: ${error.message}`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAmB,4BAA4B,EAAE,MAAM,kBAAkB,CAAC;AAClH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -12,6 +12,7 @@ import { readFileSync } from 'fs';
|
|
|
12
12
|
import { join, dirname } from 'path';
|
|
13
13
|
import { fileURLToPath } from 'url';
|
|
14
14
|
import { createRequire } from 'module';
|
|
15
|
+
import { parsePositiveIntegerOption } from './utils/option-parsers.js';
|
|
15
16
|
/**
|
|
16
17
|
* Get version from package.json
|
|
17
18
|
*/
|
|
@@ -93,11 +94,49 @@ program.command('list')
|
|
|
93
94
|
.option('--local', 'Show only local workflows')
|
|
94
95
|
.option('--remote', 'Show only remote workflows')
|
|
95
96
|
.option('--distant', 'Alias for --remote')
|
|
97
|
+
.option('--search <query>', 'Filter by workflow name, ID, or local filename (case-insensitive partial match)')
|
|
98
|
+
.option('--sort <mode>', 'Sort by "status" (default) or "name"', 'status')
|
|
99
|
+
.option('--limit <number>', 'Limit the number of returned workflows', (value) => parsePositiveIntegerOption(value, '--limit'))
|
|
96
100
|
.option('--raw', 'Output full JSON instead of a table')
|
|
97
101
|
.action(async (options) => {
|
|
98
102
|
// Combine remote and distant flags
|
|
99
103
|
const remote = options.remote || options.distant;
|
|
100
|
-
|
|
104
|
+
if (options.sort !== 'status' && options.sort !== 'name') {
|
|
105
|
+
console.error(chalk.red('❌ Invalid sort mode. Use "status" or "name".'));
|
|
106
|
+
process.exit(1);
|
|
107
|
+
}
|
|
108
|
+
await new ListCommand().run({
|
|
109
|
+
local: options.local,
|
|
110
|
+
remote,
|
|
111
|
+
raw: options.raw,
|
|
112
|
+
search: options.search,
|
|
113
|
+
sort: options.sort,
|
|
114
|
+
limit: options.limit
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
program.command('find')
|
|
118
|
+
.description('Find workflows quickly by partial name, workflow ID, or local filename')
|
|
119
|
+
.argument('<query>', 'Search query')
|
|
120
|
+
.option('--local', 'Show only local workflows')
|
|
121
|
+
.option('--remote', 'Show only remote workflows')
|
|
122
|
+
.option('--distant', 'Alias for --remote')
|
|
123
|
+
.option('--sort <mode>', 'Sort by "status" or "name"', 'name')
|
|
124
|
+
.option('--limit <number>', 'Limit the number of returned workflows', (value) => parsePositiveIntegerOption(value, '--limit'))
|
|
125
|
+
.option('--raw', 'Output full JSON instead of a table')
|
|
126
|
+
.action(async (query, options) => {
|
|
127
|
+
const remote = options.remote || options.distant;
|
|
128
|
+
if (options.sort !== 'status' && options.sort !== 'name') {
|
|
129
|
+
console.error(chalk.red('❌ Invalid sort mode. Use "status" or "name".'));
|
|
130
|
+
process.exit(1);
|
|
131
|
+
}
|
|
132
|
+
await new ListCommand().run({
|
|
133
|
+
local: options.local,
|
|
134
|
+
remote,
|
|
135
|
+
raw: options.raw,
|
|
136
|
+
search: query,
|
|
137
|
+
sort: options.sort,
|
|
138
|
+
limit: options.limit
|
|
139
|
+
});
|
|
101
140
|
});
|
|
102
141
|
// pull - Download a single workflow by ID
|
|
103
142
|
program.command('pull')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,YAAY,EAAc,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAiB,MAAM,KAAK,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"option-parsers.d.ts","sourceRoot":"","sources":["../../src/utils/option-parsers.ts"],"names":[],"mappings":"AAAA,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAapF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function parsePositiveIntegerOption(value, optionName) {
|
|
2
|
+
const normalizedValue = value.trim();
|
|
3
|
+
if (!/^\d+$/.test(normalizedValue)) {
|
|
4
|
+
throw new Error(`${optionName} must be a positive integer.`);
|
|
5
|
+
}
|
|
6
|
+
const parsed = Number(normalizedValue);
|
|
7
|
+
if (!Number.isSafeInteger(parsed) || parsed <= 0) {
|
|
8
|
+
throw new Error(`${optionName} must be a positive integer.`);
|
|
9
|
+
}
|
|
10
|
+
return parsed;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=option-parsers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"option-parsers.js","sourceRoot":"","sources":["../../src/utils/option-parsers.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,0BAA0B,CAAC,KAAa,EAAE,UAAkB;IACxE,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAErC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,8BAA8B,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,8BAA8B,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}
|