n8nac 0.9.9-next.df19681 → 0.9.9-next.e754dc0
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 +12 -6
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +3 -9
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/sync.d.ts +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +22 -11
- package/dist/commands/sync.js.map +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/services/cli-api.d.ts +2 -1
- package/dist/core/services/cli-api.d.ts.map +1 -1
- package/dist/core/services/cli-api.js +2 -1
- package/dist/core/services/cli-api.js.map +1 -1
- package/dist/core/services/resolution-manager.d.ts +2 -2
- package/dist/core/services/resolution-manager.d.ts.map +1 -1
- package/dist/core/services/resolution-manager.js +16 -2
- package/dist/core/services/resolution-manager.js.map +1 -1
- package/dist/core/services/state-manager.d.ts +4 -3
- package/dist/core/services/state-manager.d.ts.map +1 -1
- package/dist/core/services/state-manager.js +2 -2
- package/dist/core/services/state-manager.js.map +1 -1
- package/dist/core/services/sync-engine.d.ts +2 -2
- package/dist/core/services/sync-engine.d.ts.map +1 -1
- package/dist/core/services/sync-engine.js +60 -116
- package/dist/core/services/sync-engine.js.map +1 -1
- package/dist/core/services/sync-manager.d.ts +0 -3
- package/dist/core/services/sync-manager.d.ts.map +1 -1
- package/dist/core/services/sync-manager.js +7 -19
- package/dist/core/services/sync-manager.js.map +1 -1
- package/dist/core/services/{watcher.d.ts → workflow-state-tracker.d.ts} +6 -47
- package/dist/core/services/workflow-state-tracker.d.ts.map +1 -0
- package/dist/core/services/{watcher.js → workflow-state-tracker.js} +90 -468
- package/dist/core/services/workflow-state-tracker.js.map +1 -0
- package/dist/core/types.d.ts +0 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +0 -1
- package/dist/core/types.js.map +1 -1
- package/dist/index.js +9 -4
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/dist/core/services/watcher.d.ts.map +0 -1
- package/dist/core/services/watcher.js.map +0 -1
package/README.md
CHANGED
|
@@ -47,11 +47,10 @@ Status values:
|
|
|
47
47
|
|
|
48
48
|
| Status | Meaning | Action |
|
|
49
49
|
|---|---|---|
|
|
50
|
-
| `TRACKED` | Workflow exists on both sides,
|
|
51
|
-
| `
|
|
52
|
-
| `
|
|
53
|
-
| `
|
|
54
|
-
| `EXIST_ONLY_REMOTELY` | Remote workflow not yet local (or local was deleted) | `pull <workflowId>` to download |
|
|
50
|
+
| `TRACKED` | Workflow exists on both sides, in sync | Nothing to do |
|
|
51
|
+
| `CONFLICT` | Both sides changed — detected at push/pull time | `n8nac resolve <id> --mode keep-current` (keep local) or `keep-incoming` (keep remote) |
|
|
52
|
+
| `EXIST_ONLY_LOCALLY` | New local file not yet in n8n (or remote was deleted) | `n8nac push <id>` or `n8nac push --filename <file>` if brand-new |
|
|
53
|
+
| `EXIST_ONLY_REMOTELY` | Remote workflow not yet local (or local was deleted) | `n8nac pull <workflowId>` to download |
|
|
55
54
|
|
|
56
55
|
> **Git-like sync**: Status is a point-in-time observation. Use `fetch` to update remote state cache.
|
|
57
56
|
> **For agents**: always run `n8nac list` first to get workflow IDs and their current status before pulling or pushing.
|
|
@@ -83,13 +82,20 @@ n8nac pull <workflowId>
|
|
|
83
82
|
|
|
84
83
|
---
|
|
85
84
|
|
|
86
|
-
### `push
|
|
85
|
+
### `push`
|
|
87
86
|
Upload a single local workflow file to n8n.
|
|
88
87
|
|
|
89
88
|
```bash
|
|
89
|
+
# Existing workflow (has an ID in n8nac list)
|
|
90
90
|
n8nac push <workflowId>
|
|
91
|
+
|
|
92
|
+
# Brand-new local file never pushed before (no remote ID yet)
|
|
93
|
+
n8nac push --filename my-workflow.workflow.ts
|
|
91
94
|
```
|
|
92
95
|
|
|
96
|
+
> **Which form to use?** If `n8nac list` shows a workflow with an ID, always use `push <id>`.
|
|
97
|
+
> Only use `--filename` for files that have never been pushed and have no entry in `.n8n-state.json`.
|
|
98
|
+
|
|
93
99
|
---
|
|
94
100
|
|
|
95
101
|
### `resolve <id> --mode <mode>`
|
|
@@ -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;AAMxC,qBAAa,WAAY,SAAQ,WAAW;IAClC,GAAG,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAMxC,qBAAa,WAAY,SAAQ,WAAW;IAClC,GAAG,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwGxF,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,UAAU;CAQrB"}
|
package/dist/commands/list.js
CHANGED
|
@@ -15,7 +15,6 @@ export class ListCommand extends BaseCommand {
|
|
|
15
15
|
// Apply filters based on options
|
|
16
16
|
if (options?.local) {
|
|
17
17
|
workflows = workflows.filter(w => w.status === WorkflowSyncStatus.EXIST_ONLY_LOCALLY ||
|
|
18
|
-
w.status === WorkflowSyncStatus.MODIFIED_LOCALLY ||
|
|
19
18
|
w.status === WorkflowSyncStatus.TRACKED ||
|
|
20
19
|
w.status === WorkflowSyncStatus.CONFLICT);
|
|
21
20
|
}
|
|
@@ -49,10 +48,9 @@ export class ListCommand extends BaseCommand {
|
|
|
49
48
|
// Sort workflows by status priority, then by name
|
|
50
49
|
const statusPriority = {
|
|
51
50
|
[WorkflowSyncStatus.CONFLICT]: 1,
|
|
52
|
-
[WorkflowSyncStatus.
|
|
53
|
-
[WorkflowSyncStatus.
|
|
54
|
-
[WorkflowSyncStatus.
|
|
55
|
-
[WorkflowSyncStatus.TRACKED]: 5
|
|
51
|
+
[WorkflowSyncStatus.EXIST_ONLY_LOCALLY]: 2,
|
|
52
|
+
[WorkflowSyncStatus.EXIST_ONLY_REMOTELY]: 3,
|
|
53
|
+
[WorkflowSyncStatus.TRACKED]: 4,
|
|
56
54
|
};
|
|
57
55
|
const sorted = workflows.sort((a, b) => {
|
|
58
56
|
const priorityDiff = statusPriority[a.status] - statusPriority[b.status];
|
|
@@ -83,7 +81,6 @@ export class ListCommand extends BaseCommand {
|
|
|
83
81
|
const summary = this.getSummary(workflows);
|
|
84
82
|
console.log(chalk.bold('Summary:'));
|
|
85
83
|
console.log(chalk.green(` ✔ Tracked: ${summary.tracked}`));
|
|
86
|
-
console.log(chalk.blue(` ✏️ Modified Locally: ${summary.modifiedLocally}`));
|
|
87
84
|
console.log(chalk.red(` 💥 Conflicts: ${summary.conflicts}`));
|
|
88
85
|
console.log(chalk.yellow(` + Local Only: ${summary.onlyLocal}`));
|
|
89
86
|
console.log(chalk.yellow(` - Remote Only: ${summary.onlyRemote}`));
|
|
@@ -98,8 +95,6 @@ export class ListCommand extends BaseCommand {
|
|
|
98
95
|
switch (status) {
|
|
99
96
|
case WorkflowSyncStatus.TRACKED:
|
|
100
97
|
return { icon: '✔', color: chalk.green };
|
|
101
|
-
case WorkflowSyncStatus.MODIFIED_LOCALLY:
|
|
102
|
-
return { icon: '✏️', color: chalk.blue };
|
|
103
98
|
case WorkflowSyncStatus.CONFLICT:
|
|
104
99
|
return { icon: '💥', color: chalk.red };
|
|
105
100
|
case WorkflowSyncStatus.EXIST_ONLY_LOCALLY:
|
|
@@ -113,7 +108,6 @@ export class ListCommand extends BaseCommand {
|
|
|
113
108
|
getSummary(workflows) {
|
|
114
109
|
return {
|
|
115
110
|
tracked: workflows.filter(w => w.status === WorkflowSyncStatus.TRACKED).length,
|
|
116
|
-
modifiedLocally: workflows.filter(w => w.status === WorkflowSyncStatus.MODIFIED_LOCALLY).length,
|
|
117
111
|
conflicts: workflows.filter(w => w.status === WorkflowSyncStatus.CONFLICT).length,
|
|
118
112
|
onlyLocal: workflows.filter(w => w.status === WorkflowSyncStatus.EXIST_ONLY_LOCALLY).length,
|
|
119
113
|
onlyRemote: workflows.filter(w => w.status === WorkflowSyncStatus.EXIST_ONLY_REMOTELY).length
|
|
@@ -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;AAE/B,MAAM,OAAO,WAAY,SAAQ,WAAW;IACxC,KAAK,CAAC,GAAG,CAAC,OAA8D;QACpE,MAAM,OAAO,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC;QAEpD,IAAI,CAAC;YACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC9C,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAE7D,iFAAiF;YACjF,qEAAqE;YACrE,IAAI,SAAS,GAAG,MAAM,WAAW,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;YAEvE,iCAAiC;YACjC,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;gBACjB,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC7B,CAAC,CAAC,MAAM,KAAK,kBAAkB,CAAC,kBAAkB;oBAClD,CAAC,CAAC,MAAM,KAAK,kBAAkB,CAAC,
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/sync.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BaseCommand } from './base.js';
|
|
2
2
|
export declare class SyncCommand extends BaseCommand {
|
|
3
3
|
pullOne(workflowId: string): Promise<void>;
|
|
4
|
-
pushOne(workflowId
|
|
4
|
+
pushOne(workflowId?: string, filename?: string): Promise<void>;
|
|
5
5
|
fetchOne(workflowId: string): Promise<void>;
|
|
6
6
|
resolveOne(workflowId: string, resolution: 'keep-current' | 'keep-incoming'): Promise<void>;
|
|
7
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAMxC,qBAAa,WAAY,SAAQ,WAAW;IAElC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAMxC,qBAAa,WAAY,SAAQ,WAAW;IAElC,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC1C,OAAO,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuD9D,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB3C,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,cAAc,GAAG,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CA6BpG"}
|
package/dist/commands/sync.js
CHANGED
|
@@ -17,18 +17,15 @@ export class SyncCommand extends BaseCommand {
|
|
|
17
17
|
const filename = syncManager.getFilenameForId(workflowId);
|
|
18
18
|
if (filename) {
|
|
19
19
|
const status = await syncManager.getSingleWorkflowDetailedStatus(workflowId, filename);
|
|
20
|
-
|
|
20
|
+
const hasConflict = status.status === WorkflowSyncStatus.CONFLICT;
|
|
21
|
+
const hasLocalChanges = !!(status.localHash && status.lastSyncedHash && status.localHash !== status.lastSyncedHash);
|
|
22
|
+
if (hasConflict || hasLocalChanges) {
|
|
21
23
|
console.log(chalk.red(`💥 Conflict detected for workflow ${workflowId}.`));
|
|
22
24
|
console.log(chalk.yellow(`To resolve the conflict you can either:`));
|
|
23
25
|
console.log(` n8nac resolve ${workflowId} --mode keep-current`);
|
|
24
26
|
console.log(` n8nac resolve ${workflowId} --mode keep-incoming`);
|
|
25
27
|
return;
|
|
26
28
|
}
|
|
27
|
-
else if (status.status === WorkflowSyncStatus.MODIFIED_LOCALLY) {
|
|
28
|
-
console.log(chalk.yellow(`⚠️ Workflow ${workflowId} has local changes. Pulling would overwrite them.`));
|
|
29
|
-
console.log(chalk.yellow(`If you want to overwrite local changes, use n8nac resolve ${workflowId} --mode keep-incoming`));
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
29
|
}
|
|
33
30
|
const spinner = ora(`Pulling workflow ${workflowId}...`).start();
|
|
34
31
|
try {
|
|
@@ -40,17 +37,31 @@ export class SyncCommand extends BaseCommand {
|
|
|
40
37
|
process.exit(1);
|
|
41
38
|
}
|
|
42
39
|
}
|
|
43
|
-
async pushOne(workflowId) {
|
|
40
|
+
async pushOne(workflowId, filename) {
|
|
44
41
|
const syncConfig = await this.getSyncConfig();
|
|
45
42
|
const syncManager = new SyncManager(this.client, syncConfig);
|
|
46
43
|
// Populate local hash cache FIRST — required for accurate status in CLI mode
|
|
47
44
|
await syncManager.refreshLocalState();
|
|
45
|
+
if (!workflowId) {
|
|
46
|
+
// Brand-new file: no ID yet, push directly by filename
|
|
47
|
+
const label = filename ?? '(unknown)';
|
|
48
|
+
const spinner = ora(`Pushing new workflow "${label}"...`).start();
|
|
49
|
+
try {
|
|
50
|
+
await syncManager.push(undefined, filename);
|
|
51
|
+
spinner.succeed(chalk.green(`✔ Pushed "${label}" to n8n.`));
|
|
52
|
+
}
|
|
53
|
+
catch (e) {
|
|
54
|
+
spinner.fail(`Push failed: ${e.message}`);
|
|
55
|
+
process.exit(1);
|
|
56
|
+
}
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
48
59
|
// Warm up the remote cache for this specific workflow
|
|
49
60
|
await syncManager.fetch(workflowId);
|
|
50
|
-
//
|
|
51
|
-
const
|
|
52
|
-
if (
|
|
53
|
-
const status = await syncManager.getSingleWorkflowDetailedStatus(workflowId,
|
|
61
|
+
// Conflict check before pushing
|
|
62
|
+
const resolvedFilename = syncManager.getFilenameForId(workflowId);
|
|
63
|
+
if (resolvedFilename) {
|
|
64
|
+
const status = await syncManager.getSingleWorkflowDetailedStatus(workflowId, resolvedFilename);
|
|
54
65
|
if (status.status === WorkflowSyncStatus.CONFLICT) {
|
|
55
66
|
console.log(chalk.red(`💥 Conflict detected for workflow ${workflowId}.`));
|
|
56
67
|
console.log(chalk.yellow(`To resolve the conflict you can either:`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AAGtB,MAAM,OAAO,WAAY,SAAQ,WAAW;IAExC,KAAK,CAAC,OAAO,CAAC,UAAkB;QAC5B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC9C,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAE7D,6EAA6E;QAC7E,MAAM,WAAW,CAAC,iBAAiB,EAAE,CAAC;QAEtC,uEAAuE;QACvE,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,UAAU,uBAAuB,CAAC,CAAC,CAAC;YAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC1D,IAAI,QAAQ,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,+BAA+B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAEvF,
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export * from './services/workflow-sanitizer.js';
|
|
|
4
4
|
export * from './services/sync-manager.js';
|
|
5
5
|
export * from './services/cli-api.js';
|
|
6
6
|
export * from './services/sync-engine.js';
|
|
7
|
-
export * from './services/
|
|
7
|
+
export * from './services/workflow-state-tracker.js';
|
|
8
8
|
export * from './services/resolution-manager.js';
|
|
9
9
|
export * from './services/state-manager.js';
|
|
10
10
|
export * from './services/directory-utils.js';
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,oBAAoB,CAAC"}
|
package/dist/core/index.js
CHANGED
|
@@ -4,7 +4,7 @@ export * from './services/workflow-sanitizer.js';
|
|
|
4
4
|
export * from './services/sync-manager.js';
|
|
5
5
|
export * from './services/cli-api.js';
|
|
6
6
|
export * from './services/sync-engine.js';
|
|
7
|
-
export * from './services/
|
|
7
|
+
export * from './services/workflow-state-tracker.js';
|
|
8
8
|
export * from './services/resolution-manager.js';
|
|
9
9
|
export * from './services/state-manager.js';
|
|
10
10
|
export * from './services/directory-utils.js';
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,oBAAoB,CAAC"}
|
|
@@ -24,7 +24,8 @@ export declare class CliApi {
|
|
|
24
24
|
* Mirrors `n8nac list`
|
|
25
25
|
*
|
|
26
26
|
* Returns a lightweight list of all workflows with basic status:
|
|
27
|
-
* EXIST_ONLY_LOCALLY | EXIST_ONLY_REMOTELY | TRACKED |
|
|
27
|
+
* EXIST_ONLY_LOCALLY | EXIST_ONLY_REMOTELY | TRACKED | CONFLICT
|
|
28
|
+
* (CONFLICT is only returned by getSingleWorkflowDetailedStatus, not by list)
|
|
28
29
|
*
|
|
29
30
|
* Pass `{ fetchRemote: true }` to force a fresh remote metadata fetch
|
|
30
31
|
* (equivalent to running `n8nac list` which always fetches remote).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-api.d.ts","sourceRoot":"","sources":["../../../src/core/services/cli-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAElE,qBAAa,MAAM;IACf,OAAO,CAAC,WAAW,CAAc;gBAErB,WAAW,EAAE,WAAW;IAMpC
|
|
1
|
+
{"version":3,"file":"cli-api.d.ts","sourceRoot":"","sources":["../../../src/core/services/cli-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAElE,qBAAa,MAAM;IACf,OAAO,CAAC,WAAW,CAAc;gBAErB,WAAW,EAAE,WAAW;IAMpC;;;;;;;;;;;OAWG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAM3E;;;;;;;;OAQG;IACG,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAMjD;;;;;;;;OAQG;IACG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7C;;;;;;;;;;;OAWG;IACG,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAMhE;;;;OAIG;IACG,eAAe,CACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,cAAc,GAAG,eAAe,GAC7C,OAAO,CAAC,IAAI,CAAC;IAKhB;;;OAGG;IACG,+BAA+B,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;;;;;;CAG7E"}
|
|
@@ -25,7 +25,8 @@ export class CliApi {
|
|
|
25
25
|
* Mirrors `n8nac list`
|
|
26
26
|
*
|
|
27
27
|
* Returns a lightweight list of all workflows with basic status:
|
|
28
|
-
* EXIST_ONLY_LOCALLY | EXIST_ONLY_REMOTELY | TRACKED |
|
|
28
|
+
* EXIST_ONLY_LOCALLY | EXIST_ONLY_REMOTELY | TRACKED | CONFLICT
|
|
29
|
+
* (CONFLICT is only returned by getSingleWorkflowDetailedStatus, not by list)
|
|
29
30
|
*
|
|
30
31
|
* Pass `{ fetchRemote: true }` to force a fresh remote metadata fetch
|
|
31
32
|
* (equivalent to running `n8nac list` which always fetches remote).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-api.js","sourceRoot":"","sources":["../../../src/core/services/cli-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,MAAM,OAAO,MAAM;IACP,WAAW,CAAc;IAEjC,YAAY,WAAwB;QAChC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAED,4EAA4E;IAE5E
|
|
1
|
+
{"version":3,"file":"cli-api.js","sourceRoot":"","sources":["../../../src/core/services/cli-api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,MAAM,OAAO,MAAM;IACP,WAAW,CAAc;IAEjC,YAAY,WAAwB;QAChC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;IAED,4EAA4E;IAE5E;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,IAAI,CAAC,OAAmC;QAC1C,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,6EAA6E;IAE7E;;;;;;;;OAQG;IACH,KAAK,CAAC,KAAK,CAAC,UAAkB;QAC1B,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC;IAED,6EAA6E;IAE7E;;;;;;;;OAQG;IACH,KAAK,CAAC,IAAI,CAAC,UAAkB;QACzB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED,6EAA6E;IAE7E;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,IAAI,CAAC,UAAkB,EAAE,QAAiB;QAC5C,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,IAAI,SAAS,EAAE,QAAQ,CAAC,CAAC;IACpE,CAAC;IAED,4EAA4E;IAE5E;;;;OAIG;IACH,KAAK,CAAC,eAAe,CACjB,UAAkB,EAClB,QAAgB,EAChB,UAA4C;QAE5C,MAAM,IAAI,GAAG,UAAU,KAAK,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChE,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACxE,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,+BAA+B,CAAC,UAAkB,EAAE,QAAgB;QACtE,OAAO,IAAI,CAAC,WAAW,CAAC,+BAA+B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC;CACJ"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SyncEngine } from './sync-engine.js';
|
|
2
|
-
import {
|
|
2
|
+
import { WorkflowStateTracker } from './workflow-state-tracker.js';
|
|
3
3
|
import { WorkflowSyncStatus } from '../types.js';
|
|
4
4
|
import { N8nApiClient } from './n8n-api-client.js';
|
|
5
5
|
/**
|
|
@@ -16,7 +16,7 @@ export declare class ResolutionManager {
|
|
|
16
16
|
private watcher;
|
|
17
17
|
private client;
|
|
18
18
|
private directory;
|
|
19
|
-
constructor(syncEngine: SyncEngine, watcher:
|
|
19
|
+
constructor(syncEngine: SyncEngine, watcher: WorkflowStateTracker, client: N8nApiClient);
|
|
20
20
|
/**
|
|
21
21
|
* 6.1 Conflict Resolution - KEEP LOCAL
|
|
22
22
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolution-manager.d.ts","sourceRoot":"","sources":["../../../src/core/services/resolution-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"resolution-manager.d.ts","sourceRoot":"","sources":["../../../src/core/services/resolution-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAInE,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD;;;;;;;;GAQG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,SAAS,CAAS;gBAEd,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,YAAY;IAQvF;;;;;OAKG;IACU,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM7E;;;;;OAKG;IACU,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK5E;;;;;OAKG;IACU,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QACjE,YAAY,EAAE,GAAG,CAAC;QAClB,aAAa,EAAE,GAAG,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACtB,CAAC;IA4BF;;;;;OAKG;IACU,eAAe,CACxB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,OAAO,GAAG,QAAQ,GACjC,OAAO,CAAC,IAAI,CAAC;IAShB;;;;;OAKG;IACU,eAAe,CACxB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,OAAO,GAAG,QAAQ,GACjC,OAAO,CAAC,MAAM,CAAC;IAYlB;;OAEG;IACU,+BAA+B,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QACxF,MAAM,EAAE,kBAAkB,CAAC;QAC3B,WAAW,EAAE,OAAO,CAAC;QACrB,YAAY,EAAE,OAAO,CAAC;QACtB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IAgCF,OAAO,CAAC,YAAY;CAOvB"}
|
|
@@ -2,6 +2,7 @@ import fs from 'fs';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { WorkflowSanitizer } from './workflow-sanitizer.js';
|
|
4
4
|
import { HashUtils } from './hash-utils.js';
|
|
5
|
+
import { WorkflowTransformerAdapter } from './workflow-transformer-adapter.js';
|
|
5
6
|
/**
|
|
6
7
|
* Resolution & Validation Manager
|
|
7
8
|
*
|
|
@@ -108,10 +109,23 @@ export class ResolutionManager {
|
|
|
108
109
|
* Get current status for a workflow
|
|
109
110
|
*/
|
|
110
111
|
async getSingleWorkflowDetailedStatus(workflowId, filename) {
|
|
112
|
+
// Recompute local hash from disk — do NOT use the in-memory cache which may be
|
|
113
|
+
// stale in VSCode mode (change events are suppressed by the file system watcher).
|
|
114
|
+
const filePath = path.join(this.directory, filename);
|
|
115
|
+
let localHash;
|
|
116
|
+
if (fs.existsSync(filePath)) {
|
|
117
|
+
try {
|
|
118
|
+
const tsContent = fs.readFileSync(filePath, 'utf-8');
|
|
119
|
+
localHash = await WorkflowTransformerAdapter.hashWorkflow(tsContent);
|
|
120
|
+
// Keep cache in sync so calculateStatus() sees the fresh value
|
|
121
|
+
this.watcher.localHashes?.set(filename, localHash);
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
// unparseable file — treat as no local hash
|
|
125
|
+
}
|
|
126
|
+
}
|
|
111
127
|
const status = this.watcher.calculateStatus(filename, workflowId);
|
|
112
128
|
const lastSyncedHash = this.watcher.getLastSyncedHash(workflowId);
|
|
113
|
-
// Get local hash from watcher cache (already computed during scan/watch)
|
|
114
|
-
const localHash = this.watcher.localHashes?.get(filename);
|
|
115
129
|
// Get remote hash from watcher cache
|
|
116
130
|
const remoteHash = this.watcher.remoteHashes?.get(workflowId);
|
|
117
131
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolution-manager.js","sourceRoot":"","sources":["../../../src/core/services/resolution-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"resolution-manager.js","sourceRoot":"","sources":["../../../src/core/services/resolution-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export interface IWorkflowState {
|
|
2
2
|
lastSyncedHash: string;
|
|
3
3
|
lastSyncedAt: string;
|
|
4
|
-
|
|
4
|
+
/** @deprecated Kept for backward-compat when reading existing state files; no longer written. */
|
|
5
|
+
filename?: string;
|
|
5
6
|
}
|
|
6
7
|
export interface IInstanceState {
|
|
7
8
|
workflows: Record<string, IWorkflowState>;
|
|
@@ -13,7 +14,7 @@ export interface IInstanceState {
|
|
|
13
14
|
* 1. Read state from .n8n-state.json
|
|
14
15
|
* 2. Provide read-only access to workflow states
|
|
15
16
|
*
|
|
16
|
-
* Note: Write operations are handled exclusively by
|
|
17
|
+
* Note: Write operations are handled exclusively by WorkflowStateTracker component
|
|
17
18
|
* to maintain single source of truth for state mutations.
|
|
18
19
|
*/
|
|
19
20
|
export declare class StateManager {
|
|
@@ -36,7 +37,7 @@ export declare class StateManager {
|
|
|
36
37
|
*/
|
|
37
38
|
isSynced(id: string, currentHash: string): boolean;
|
|
38
39
|
/**
|
|
39
|
-
* Get the entire state object (for
|
|
40
|
+
* Get the entire state object (for WorkflowStateTracker's internal use)
|
|
40
41
|
* @internal
|
|
41
42
|
*/
|
|
42
43
|
getFullState(): IInstanceState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-manager.d.ts","sourceRoot":"","sources":["../../../src/core/services/state-manager.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"state-manager.d.ts","sourceRoot":"","sources":["../../../src/core/services/state-manager.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,iGAAiG;IACjG,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CAC7C;AAED;;;;;;;;;GASG;AACH,qBAAa,YAAY;IACrB,OAAO,CAAC,aAAa,CAAS;gBAElB,SAAS,EAAE,MAAM;IAI7B;;OAEG;IACH,OAAO,CAAC,IAAI;IAgBZ;;OAEG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAKxD;;OAEG;IACH,qBAAqB,IAAI,MAAM,EAAE;IAKjC;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAMlD;;;OAGG;IACH,YAAY,IAAI,cAAc;CAGjC"}
|
|
@@ -7,7 +7,7 @@ import path from 'path';
|
|
|
7
7
|
* 1. Read state from .n8n-state.json
|
|
8
8
|
* 2. Provide read-only access to workflow states
|
|
9
9
|
*
|
|
10
|
-
* Note: Write operations are handled exclusively by
|
|
10
|
+
* Note: Write operations are handled exclusively by WorkflowStateTracker component
|
|
11
11
|
* to maintain single source of truth for state mutations.
|
|
12
12
|
*/
|
|
13
13
|
export class StateManager {
|
|
@@ -58,7 +58,7 @@ export class StateManager {
|
|
|
58
58
|
return state.lastSyncedHash === currentHash;
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
61
|
-
* Get the entire state object (for
|
|
61
|
+
* Get the entire state object (for WorkflowStateTracker's internal use)
|
|
62
62
|
* @internal
|
|
63
63
|
*/
|
|
64
64
|
getFullState() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-manager.js","sourceRoot":"","sources":["../../../src/core/services/state-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"state-manager.js","sourceRoot":"","sources":["../../../src/core/services/state-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAcxB;;;;;;;;;GASG;AACH,MAAM,OAAO,YAAY;IACb,aAAa,CAAS;IAE9B,YAAY,SAAiB;QACzB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACK,IAAI;QACR,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;gBACtE,iCAAiC;gBACjC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;oBAClB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;gBACxB,CAAC;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;YACjE,CAAC;QACL,CAAC;QACD,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,EAAU;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,qBAAqB;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC1B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,EAAU,EAAE,WAAmB;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,OAAO,KAAK,CAAC,cAAc,KAAK,WAAW,CAAC;IAChD,CAAC;IAED;;;OAGG;IACH,YAAY;QACR,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;CACJ"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { N8nApiClient } from './n8n-api-client.js';
|
|
2
|
-
import {
|
|
2
|
+
import { WorkflowStateTracker } from './workflow-state-tracker.js';
|
|
3
3
|
import { WorkflowSyncStatus } from '../types.js';
|
|
4
4
|
/**
|
|
5
5
|
* Sync Engine - State Mutation Component
|
|
@@ -15,7 +15,7 @@ export declare class SyncEngine {
|
|
|
15
15
|
private client;
|
|
16
16
|
private watcher;
|
|
17
17
|
private directory;
|
|
18
|
-
constructor(client: N8nApiClient, watcher:
|
|
18
|
+
constructor(client: N8nApiClient, watcher: WorkflowStateTracker, directory: string);
|
|
19
19
|
/**
|
|
20
20
|
* PULL Strategy: Remote -> Local
|
|
21
21
|
* Based on spec 5.2 PULL Strategy table
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-engine.d.ts","sourceRoot":"","sources":["../../../src/core/services/sync-engine.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sync-engine.d.ts","sourceRoot":"","sources":["../../../src/core/services/sync-engine.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAa,MAAM,aAAa,CAAC;AAE5D;;;;;;;;;GASG;AACH,qBAAa,UAAU;IACnB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,SAAS,CAAS;gBAGtB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,oBAAoB,EAC7B,SAAS,EAAE,MAAM;IAOrB;;;OAGG;IACU,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBlG;;;OAGG;IACU,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IA8BtG;;OAEG;IACU,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3E;;;OAGG;IACU,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4B7E;;;OAGG;IACU,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAKhE,WAAW;YAyBX,aAAa;YA0Db,aAAa;IAwC3B,OAAO,CAAC,kBAAkB;CAO7B"}
|