flownav 0.1.1 → 0.1.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 +3 -3
- package/dist/checks.js +1 -1
- package/dist/queries.js +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -112,8 +112,8 @@ outputs:
|
|
|
112
112
|
$ flownav affected "Normalize" --rename
|
|
113
113
|
wf-orders:Normalize — impact of rename
|
|
114
114
|
2 node(s) reference "Normalize" by name and will break unless their expressions are rewritten:
|
|
115
|
-
|
|
116
|
-
|
|
115
|
+
× wf-orders:Notify Sales uses {email} in text
|
|
116
|
+
× wf-orders:Orphan Code uses {email} in jsCode
|
|
117
117
|
```
|
|
118
118
|
|
|
119
119
|
**A path, even across workflows**
|
|
@@ -158,7 +158,7 @@ $ flownav check
|
|
|
158
158
|
ERROR dead-refs [wf-orders] Orphan Code reads "Deleted Step", which does not exist
|
|
159
159
|
WARN fragile-reads [wf-orders] Orphan Code reads $('Normalize') but Normalize is not upstream via main; it may not have run
|
|
160
160
|
WARN unreachable [wf-orders] Orphan Code is not reachable from any trigger
|
|
161
|
-
INFO cycles [wf-orders] loop (Loop Over Items): Ping Self
|
|
161
|
+
INFO cycles [wf-orders] loop (Loop Over Items): Ping Self <-> Loop Orders
|
|
162
162
|
INFO dead-ends [wf-orders] Loop Orders output [0 done] is not connected
|
|
163
163
|
INFO no-error-handler [wf-enrich] Enrich customer has no error workflow and no node-level error handling
|
|
164
164
|
```
|
package/dist/checks.js
CHANGED
|
@@ -126,7 +126,7 @@ export function runChecks(g, only) {
|
|
|
126
126
|
: undefined;
|
|
127
127
|
f.push({
|
|
128
128
|
check: 'cycles', severity: kind ? 'info' : 'warn', wf: w.id,
|
|
129
|
-
message: `${kind ?? 'cycle without Loop Over Items or Wait'}: ${comp.map((id) => g.nodeById.get(id).name).join('
|
|
129
|
+
message: `${kind ?? 'cycle without Loop Over Items or Wait'}: ${comp.map((id) => g.nodeById.get(id).name).join(' <-> ')}`,
|
|
130
130
|
});
|
|
131
131
|
}
|
|
132
132
|
}
|
package/dist/queries.js
CHANGED
|
@@ -179,7 +179,7 @@ export function affected(g, q, mode = 'rename') {
|
|
|
179
179
|
? `${readers.length} node(s) reference "${n.name}" by name and will ${mode === 'rename' ? 'break unless their expressions are rewritten' : 'read a missing node'}:`
|
|
180
180
|
: `No expression references "${n.name}" by name.${mode === 'rename' ? " Safe to rename (connections are keyed by name; update them with the rename)." : ''}`);
|
|
181
181
|
for (const e of readers)
|
|
182
|
-
lines.push(`
|
|
182
|
+
lines.push(` × ${fmtReader(e)}`);
|
|
183
183
|
data.breaks = readers;
|
|
184
184
|
}
|
|
185
185
|
if (mode === 'delete') {
|
|
@@ -192,7 +192,7 @@ export function affected(g, q, mode = 'rename') {
|
|
|
192
192
|
if (orphaned.length) {
|
|
193
193
|
lines.push('lose their only input (become unreachable):');
|
|
194
194
|
for (const d of orphaned)
|
|
195
|
-
lines.push(`
|
|
195
|
+
lines.push(` × ${g.label(d)}`);
|
|
196
196
|
}
|
|
197
197
|
const heads = g.outE(n.id, ['capability']);
|
|
198
198
|
if (heads.length) {
|
|
@@ -204,7 +204,7 @@ export function affected(g, q, mode = 'rename') {
|
|
|
204
204
|
if (callers.length) {
|
|
205
205
|
lines.push('callers that will fail:');
|
|
206
206
|
for (const e of callers)
|
|
207
|
-
lines.push(`
|
|
207
|
+
lines.push(` × ${g.label(e.from)} (${edgeTag(e)})`);
|
|
208
208
|
}
|
|
209
209
|
data.orphaned = orphaned;
|
|
210
210
|
data.callers = callers;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flownav",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Typed node graph for n8n workflows: explain, path, affected (rename/delete safety), checks, and an MCP server so agents navigate workflows with far fewer tokens.",
|
|
5
5
|
"author": "Omer Turkenits",
|
|
6
6
|
"license": "MIT",
|