@n8n-as-code/sync 0.5.0 → 0.6.0

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 CHANGED
@@ -1,4 +1,4 @@
1
- # @n8n-as-code/sync
1
+ # <img src="https://raw.githubusercontent.com/EtienneLescot/n8n-as-code/main/res/logo.png" alt="n8n-as-code logo" width="32" height="32"> @n8n-as-code/sync
2
2
 
3
3
  The logical sync of the **n8n-as-code** ecosystem.
4
4
 
@@ -10,7 +10,7 @@ This package contains the shared logic used by the CLI, the Skills CLI, and the
10
10
  - **Sanitization**: Cleaning up n8n JSONs for better Git versioning (removing IDs, timestamps, etc.).
11
11
  - **State Management**: Tracking local vs. remote state to detect conflicts.
12
12
 
13
- ## 🚀 Usage
13
+ ## Usage
14
14
 
15
15
  This is internal tooling primarily intended to be consumed by other `@n8n-as-code` packages.
16
16
 
@@ -1,6 +1,7 @@
1
1
  export interface IWorkflowState {
2
2
  lastSyncedHash: string;
3
3
  lastSyncedAt: string;
4
+ filename: string;
4
5
  }
5
6
  export interface IInstanceState {
6
7
  workflows: Record<string, IWorkflowState>;
@@ -1 +1 @@
1
- {"version":3,"file":"state-manager.d.ts","sourceRoot":"","sources":["../../src/services/state-manager.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACxB;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"}
1
+ {"version":3,"file":"state-manager.d.ts","sourceRoot":"","sources":["../../src/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;CACpB;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"}
@@ -1 +1 @@
1
- {"version":3,"file":"state-manager.js","sourceRoot":"","sources":["../../src/services/state-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAYxB;;;;;;;;;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
+ {"version":3,"file":"state-manager.js","sourceRoot":"","sources":["../../src/services/state-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAaxB;;;;;;;;;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"}
@@ -14,7 +14,7 @@ import { WorkflowSyncStatus, IWorkflowStatus } from '../types.js';
14
14
  * Never performs synchronization actions - only observes reality.
15
15
  */
16
16
  export declare class Watcher extends EventEmitter {
17
- private watcher;
17
+ private watcherSubscription;
18
18
  private pollInterval;
19
19
  private client;
20
20
  private directory;
@@ -32,6 +32,8 @@ export declare class Watcher extends EventEmitter {
32
32
  private isPaused;
33
33
  private syncInProgress;
34
34
  private pausedFilenames;
35
+ private pendingOperations;
36
+ private potentialRenames;
35
37
  private remoteTimestamps;
36
38
  constructor(client: N8nApiClient, options: {
37
39
  directory: string;
@@ -67,7 +69,16 @@ export declare class Watcher extends EventEmitter {
67
69
  markSyncComplete(workflowId: string): void;
68
70
  private onLocalChange;
69
71
  private onLocalDelete;
72
+ private scheduleDeletionCheck;
73
+ private onLocalRename;
74
+ private confirmDeletion;
75
+ private handleRename;
70
76
  refreshLocalState(): Promise<void>;
77
+ /**
78
+ * Resolve duplicate IDs in local files (following architectural plan)
79
+ * Principle: Keep ID only in the oldest file, remove from others
80
+ */
81
+ private resolveDuplicateIds;
71
82
  /**
72
83
  * Lightweight polling strategy:
73
84
  * 1. Fetch only IDs and updatedAt timestamps
@@ -92,8 +103,14 @@ export declare class Watcher extends EventEmitter {
92
103
  removeWorkflowState(id: string): Promise<void>;
93
104
  /**
94
105
  * Load state from .n8n-state.json
106
+ * Does NOT restore mappings - use restoreMappingsFromState() for that
95
107
  */
96
108
  private loadState;
109
+ /**
110
+ * Restore ID→filename mappings from persisted state
111
+ * Should only be called once at startup and after state changes
112
+ */
113
+ private restoreMappingsFromState;
97
114
  /**
98
115
  * Save state to .n8n-state.json
99
116
  */
@@ -112,6 +129,7 @@ export declare class Watcher extends EventEmitter {
112
129
  */
113
130
  private findFilenameByWorkflowId;
114
131
  private readJsonFile;
132
+ private writeWorkflowFile;
115
133
  getFileToIdMap(): Map<string, string>;
116
134
  getStatusMatrix(): IWorkflowStatus[];
117
135
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/services/watcher.ts"],"names":[],"mappings":"AAEA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAa,MAAM,aAAa,CAAC;AAG7E;;;;;;;;;;;GAWG;AACH,qBAAa,OAAQ,SAAQ,YAAY;IACrC,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,cAAc,CAAkB;IAGxC,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,iBAAiB,CAA8C;IAGvE,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,eAAe,CAAqB;IAG5C,OAAO,CAAC,gBAAgB,CAAkC;gBAGtD,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,OAAO,CAAC;QACtB,WAAW,EAAE,MAAM,EAAE,CAAC;KACzB;IAWQ,KAAK;IAwDX,IAAI;IAWX;;OAEG;IACI,gBAAgB,CAAC,UAAU,EAAE,MAAM;IAI1C;;OAEG;IACI,iBAAiB,CAAC,UAAU,EAAE,MAAM;IAO3C;;OAEG;IACI,0BAA0B,CAAC,QAAQ,EAAE,MAAM;IAIlD;;OAEG;IACI,2BAA2B,CAAC,QAAQ,EAAE,MAAM;IAInD;;OAEG;IACI,kBAAkB,CAAC,UAAU,EAAE,MAAM;IAI5C;;OAEG;IACI,gBAAgB,CAAC,UAAU,EAAE,MAAM;YAI5B,aAAa;YAgCb,aAAa;IAyDd,iBAAiB;IAuC9B;;;;;OAKG;IACU,kBAAkB;IAgG/B;;;OAGG;IACU,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmD5D;;;OAGG;YACW,mBAAmB;IASjC;;;OAGG;IACU,mBAAmB,CAAC,EAAE,EAAE,MAAM;IAe3C;;OAEG;IACH,OAAO,CAAC,SAAS;IAejB;;OAEG;IACH,OAAO,CAAC,SAAS;IAIjB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,eAAe;IAiBhB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,kBAAkB;IAuCjF,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,QAAQ;IAIhB;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAiBhC,OAAO,CAAC,YAAY;IAQb,cAAc;IAId,eAAe,IAAI,eAAe,EAAE;IAmD3C;;OAEG;IACI,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKhE;;;OAGG;IACI,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI5D;;OAEG;IACI,qBAAqB,IAAI,MAAM,EAAE;IAKxC;;OAEG;IACU,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA+B7E"}
1
+ {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/services/watcher.ts"],"names":[],"mappings":"AAEA,OAAO,YAAY,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAa,MAAM,aAAa,CAAC;AAG7E;;;;;;;;;;;GAWG;AACH,qBAAa,OAAQ,SAAQ,YAAY;IACrC,OAAO,CAAC,mBAAmB,CAA0C;IACrE,OAAO,CAAC,YAAY,CAA+B;IACnD,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,cAAc,CAAkB;IAGxC,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,iBAAiB,CAA8C;IAGvE,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,eAAe,CAAqB;IAG5C,OAAO,CAAC,iBAAiB,CAAyH;IAIlJ,OAAO,CAAC,gBAAgB,CAAsE;IAG9F,OAAO,CAAC,gBAAgB,CAAkC;gBAGtD,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,OAAO,CAAC;QACtB,WAAW,EAAE,MAAM,EAAE,CAAC;KACzB;IAWQ,KAAK;IA6EX,IAAI;IAiBX;;OAEG;IACI,gBAAgB,CAAC,UAAU,EAAE,MAAM;IAI1C;;OAEG;IACI,iBAAiB,CAAC,UAAU,EAAE,MAAM;IAO3C;;OAEG;IACI,0BAA0B,CAAC,QAAQ,EAAE,MAAM;IAIlD;;OAEG;IACI,2BAA2B,CAAC,QAAQ,EAAE,MAAM;IAInD;;OAEG;IACI,kBAAkB,CAAC,UAAU,EAAE,MAAM;IAI5C;;OAEG;IACI,gBAAgB,CAAC,UAAU,EAAE,MAAM;YAI5B,aAAa;YAsHb,aAAa;IAoC3B,OAAO,CAAC,qBAAqB;YAgBf,aAAa;YAmDb,eAAe;IAyD7B,OAAO,CAAC,YAAY;IAwBP,iBAAiB;IAiE9B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAgD3B;;;;;OAKG;IACU,kBAAkB;IA2I/B;;;OAGG;IACU,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmD5D;;;OAGG;YACW,mBAAmB;IAWjC;;;OAGG;IACU,mBAAmB,CAAC,EAAE,EAAE,MAAM;IAe3C;;;OAGG;IACH,OAAO,CAAC,SAAS;IAejB;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAchC;;OAEG;IACH,OAAO,CAAC,SAAS;IAIjB;;OAEG;IACH,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,eAAe;IAiBhB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,kBAAkB;IAuCjF,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,QAAQ;IAIhB;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAiBhC,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,iBAAiB;IAKlB,cAAc;IAId,eAAe,IAAI,eAAe,EAAE;IAyD3C;;OAEG;IACI,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKhE;;;OAGG;IACI,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI5D;;OAEG;IACI,qBAAqB,IAAI,MAAM,EAAE;IAKxC;;OAEG;IACU,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA+B7E"}
@@ -1,7 +1,7 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
3
  import EventEmitter from 'events';
4
- import * as chokidar from 'chokidar';
4
+ import * as watcher from '@parcel/watcher';
5
5
  import { WorkflowSanitizer } from './workflow-sanitizer.js';
6
6
  import { HashUtils } from './hash-utils.js';
7
7
  import { WorkflowSyncStatus } from '../types.js';
@@ -18,7 +18,7 @@ import { WorkflowSyncStatus } from '../types.js';
18
18
  * Never performs synchronization actions - only observes reality.
19
19
  */
20
20
  export class Watcher extends EventEmitter {
21
- watcher = null;
21
+ watcherSubscription = null;
22
22
  pollInterval = null;
23
23
  client;
24
24
  directory;
@@ -38,6 +38,11 @@ export class Watcher extends EventEmitter {
38
38
  isPaused = new Set(); // IDs for which observation is paused
39
39
  syncInProgress = new Set(); // IDs currently being synced
40
40
  pausedFilenames = new Set(); // Filenames for which observation is paused (for workflows without ID yet)
41
+ // Pending operations for rename detection
42
+ pendingOperations = new Map();
43
+ // Potential renames: when we see an add event for a workflow ID that already exists,
44
+ // we track it here to match with subsequent unlink events
45
+ potentialRenames = new Map();
41
46
  // Lightweight polling cache
42
47
  remoteTimestamps = new Map(); // workflowId -> updatedAt
43
48
  constructor(client, options) {
@@ -50,7 +55,7 @@ export class Watcher extends EventEmitter {
50
55
  this.stateFilePath = path.join(this.directory, '.n8n-state.json');
51
56
  }
52
57
  async start() {
53
- if (this.watcher || this.pollInterval)
58
+ if (this.watcherSubscription || this.pollInterval)
54
59
  return;
55
60
  this.isInitializing = true;
56
61
  // Initial scan - throw error if connection fails on startup
@@ -76,22 +81,39 @@ export class Watcher extends EventEmitter {
76
81
  throw error;
77
82
  }
78
83
  await this.refreshLocalState();
84
+ // Restore persisted ID → filename mappings from state
85
+ // This ensures stable filename assignment even when remote workflows have duplicate names
86
+ this.restoreMappingsFromState();
79
87
  this.isInitializing = false;
80
- // Local Watch with debounce
81
- this.watcher = chokidar.watch(this.directory, {
82
- ignored: [
83
- /(^|[\/\\])\../, // Hidden files
84
- '**/_archive/**', // Archive folder (strictly ignored)
85
- '**/.n8n-state.json' // State file
86
- ],
87
- persistent: true,
88
- ignoreInitial: true,
89
- awaitWriteFinish: { stabilityThreshold: 500, pollInterval: 100 } // 500ms debounce
88
+ // Local Watch with @parcel/watcher
89
+ this.watcherSubscription = await watcher.subscribe(this.directory, (err, events) => {
90
+ if (err) {
91
+ this.emit('error', err);
92
+ return;
93
+ }
94
+ for (const event of events) {
95
+ const filename = path.basename(event.path);
96
+ // Ignore hidden files, archive, and state file
97
+ if (filename.startsWith('.') || event.path.includes('_archive') || event.path.includes('.archive')) {
98
+ continue;
99
+ }
100
+ switch (event.type) {
101
+ case 'create':
102
+ case 'update':
103
+ this.onLocalChange(event.path);
104
+ break;
105
+ case 'delete':
106
+ this.onLocalDelete(event.path);
107
+ break;
108
+ }
109
+ }
110
+ }, {
111
+ ignore: [
112
+ '**/_archive/**',
113
+ '**/.n8n-state.json',
114
+ '**/.git/**'
115
+ ]
90
116
  });
91
- this.watcher
92
- .on('add', (p) => this.onLocalChange(p))
93
- .on('change', (p) => this.onLocalChange(p))
94
- .on('unlink', (p) => this.onLocalDelete(p));
95
117
  // Remote Poll
96
118
  if (this.pollIntervalMs > 0) {
97
119
  this.pollInterval = setInterval(() => this.refreshRemoteState(), this.pollIntervalMs);
@@ -99,14 +121,19 @@ export class Watcher extends EventEmitter {
99
121
  this.emit('ready');
100
122
  }
101
123
  stop() {
102
- if (this.watcher) {
103
- this.watcher.close();
104
- this.watcher = null;
124
+ if (this.watcherSubscription) {
125
+ this.watcherSubscription.unsubscribe();
126
+ this.watcherSubscription = null;
105
127
  }
106
128
  if (this.pollInterval) {
107
129
  clearInterval(this.pollInterval);
108
130
  this.pollInterval = null;
109
131
  }
132
+ // Clean up pending operations
133
+ for (const op of this.pendingOperations.values()) {
134
+ clearTimeout(op.timeout);
135
+ }
136
+ this.pendingOperations.clear();
110
137
  }
111
138
  /**
112
139
  * Pause observation for a workflow during sync operations
@@ -152,16 +179,91 @@ export class Watcher extends EventEmitter {
152
179
  if (!filename.endsWith('.json'))
153
180
  return;
154
181
  const content = this.readJsonFile(filePath);
155
- if (!content)
182
+ if (!content) {
156
183
  return;
184
+ }
185
+ // Check if this is a rename operation (following architectural plan)
186
+ const detectedWorkflowId = content.id || this.fileToIdMap.get(filename);
187
+ const pendingOpKey = `unlink:${detectedWorkflowId || filename}`;
188
+ const pendingOp = this.pendingOperations.get(pendingOpKey);
189
+ if (pendingOp) {
190
+ // Check if this is a rename based on workflow ID or filename
191
+ const isRenameByWorkflowId = detectedWorkflowId && pendingOp.workflowId === detectedWorkflowId;
192
+ const isRenameByFilename = !detectedWorkflowId && pendingOp.filename === filename;
193
+ if (isRenameByWorkflowId || isRenameByFilename) {
194
+ // This is a rename! Handle it
195
+ clearTimeout(pendingOp.timeout); // Cancel the deletion timeout
196
+ this.handleRename(pendingOp.workflowId || detectedWorkflowId || '', pendingOp.filename, filename);
197
+ this.pendingOperations.delete(pendingOpKey);
198
+ return;
199
+ }
200
+ }
157
201
  // Check if filename is paused (for workflows without ID)
158
202
  if (this.pausedFilenames.has(filename)) {
159
203
  return;
160
204
  }
161
- const workflowId = content.id || this.fileToIdMap.get(filename);
205
+ let workflowId = content.id || this.fileToIdMap.get(filename);
162
206
  if (workflowId && (this.isPaused.has(workflowId) || this.syncInProgress.has(workflowId))) {
163
207
  return;
164
208
  }
209
+ // Check for duplicate ID (following architectural plan)
210
+ if (content.id) {
211
+ const existingFilename = this.idToFileMap.get(content.id);
212
+ if (existingFilename && existingFilename !== filename) {
213
+ // Check if the existing file still exists on disk
214
+ const existingFilePath = path.join(this.directory, existingFilename);
215
+ const fileExists = fs.existsSync(existingFilePath);
216
+ if (!fileExists) {
217
+ // The existing file doesn't exist - this is likely a rename
218
+ // Update mappings to point to the new filename
219
+ this.fileToIdMap.delete(existingFilename);
220
+ this.fileToIdMap.set(filename, content.id);
221
+ this.idToFileMap.set(content.id, filename);
222
+ // Emit rename event
223
+ this.emit('fileRenamed', {
224
+ workflowId: content.id,
225
+ oldFilename: existingFilename,
226
+ newFilename: filename
227
+ });
228
+ // Also check if there's a pending deletion for this workflow ID
229
+ const pendingOpKey = `unlink:${content.id}`;
230
+ const pendingOp = this.pendingOperations.get(pendingOpKey);
231
+ if (pendingOp) {
232
+ clearTimeout(pendingOp.timeout);
233
+ this.pendingOperations.delete(pendingOpKey);
234
+ }
235
+ }
236
+ else {
237
+ // File exists - this could be a rename where add happened before unlink
238
+ // Track as potential rename and wait for unlink event
239
+ this.potentialRenames.set(content.id, {
240
+ newFilename: filename,
241
+ timestamp: Date.now()
242
+ });
243
+ // File exists - this is a DUPLICATE ID (copy-paste)
244
+ // Principle: Keep ID only in the oldest file, remove from the new one
245
+ // DUPLICAT DÉTECTÉ pendant le watch → supprimer l'ID du nouveau fichier
246
+ // Remove ID from the new file
247
+ const currentContent = this.readJsonFile(filePath);
248
+ if (currentContent && currentContent.id === content.id) {
249
+ delete currentContent.id;
250
+ this.writeWorkflowFile(filename, currentContent);
251
+ // Re-read the content without ID
252
+ const newContent = this.readJsonFile(filePath);
253
+ if (newContent) {
254
+ const workflowId = this.fileToIdMap.get(filename);
255
+ const clean = WorkflowSanitizer.cleanForStorage(newContent);
256
+ const hash = this.computeHash(clean);
257
+ this.localHashes.set(filename, hash);
258
+ this.broadcastStatus(filename, workflowId);
259
+ }
260
+ }
261
+ return; // Stop processing this file as it's being modified
262
+ // Don't return - continue processing as normal
263
+ // The unlink event should come soon and trigger rename detection
264
+ }
265
+ }
266
+ }
165
267
  // IMPORTANT: Hash is calculated on the SANITIZED version
166
268
  // This means versionId, versionCounter, pinData, etc. are ignored
167
269
  // The file on disk can contain these fields, but they won't affect the hash
@@ -188,9 +290,89 @@ export class Watcher extends EventEmitter {
188
290
  }
189
291
  }
190
292
  }
293
+ // Check if this is a potential rename (add happened before unlink)
294
+ if (workflowId) {
295
+ const potentialRename = this.potentialRenames.get(workflowId);
296
+ if (potentialRename) {
297
+ this.potentialRenames.delete(workflowId);
298
+ // Handle as rename
299
+ this.handleRename(workflowId, filename, potentialRename.newFilename);
300
+ return;
301
+ }
302
+ }
191
303
  if (workflowId && (this.isPaused.has(workflowId) || this.syncInProgress.has(workflowId))) {
192
304
  return;
193
305
  }
306
+ // Schedule deletion check to detect renames (following architectural plan)
307
+ this.scheduleDeletionCheck(filename, workflowId);
308
+ }
309
+ scheduleDeletionCheck(filename, workflowId) {
310
+ const key = `unlink:${workflowId || filename}`;
311
+ const timeout = setTimeout(() => {
312
+ // After 1000ms, confirm that it's really a deletion (increased for better rename detection)
313
+ this.confirmDeletion(filename, workflowId);
314
+ this.pendingOperations.delete(key);
315
+ }, 1000);
316
+ this.pendingOperations.set(key, {
317
+ type: 'unlink',
318
+ filename,
319
+ workflowId,
320
+ timeout
321
+ });
322
+ }
323
+ async onLocalRename(oldPath, newPath) {
324
+ const oldFilename = path.basename(oldPath);
325
+ const newFilename = path.basename(newPath);
326
+ if (!oldFilename.endsWith('.json') || !newFilename.endsWith('.json')) {
327
+ return;
328
+ }
329
+ // Try to get workflow ID from old filename mapping
330
+ let workflowId = this.fileToIdMap.get(oldFilename);
331
+ // If not found, try to read the new file to get the workflow ID
332
+ if (!workflowId) {
333
+ const content = this.readJsonFile(newPath);
334
+ if (content?.id) {
335
+ workflowId = content.id;
336
+ }
337
+ }
338
+ if (!workflowId) {
339
+ // No workflow ID found - this is a rename of a file without ID
340
+ // Just update filename mappings if they exist
341
+ const oldHash = this.localHashes.get(oldFilename);
342
+ if (oldHash) {
343
+ this.localHashes.delete(oldFilename);
344
+ this.localHashes.set(newFilename, oldHash);
345
+ }
346
+ // Update fileToIdMap if old filename had a mapping
347
+ const mappedWorkflowId = this.fileToIdMap.get(oldFilename);
348
+ if (mappedWorkflowId) {
349
+ this.fileToIdMap.delete(oldFilename);
350
+ this.fileToIdMap.set(newFilename, mappedWorkflowId);
351
+ this.idToFileMap.set(mappedWorkflowId, newFilename);
352
+ }
353
+ // Emit rename event even without workflow ID
354
+ this.emit('fileRenamed', {
355
+ workflowId: '',
356
+ oldFilename,
357
+ newFilename
358
+ });
359
+ this.broadcastStatus(newFilename, workflowId);
360
+ return;
361
+ }
362
+ // We have a workflow ID - handle as a proper rename
363
+ this.handleRename(workflowId, oldFilename, newFilename);
364
+ }
365
+ async confirmDeletion(filename, workflowId) {
366
+ // Final check: is this actually a rename?
367
+ if (workflowId) {
368
+ // Check if the workflow ID appears in another file
369
+ const otherFilename = this.findFilenameByWorkflowId(workflowId);
370
+ if (otherFilename && otherFilename !== filename) {
371
+ // This is a rename, not a deletion!
372
+ this.handleRename(workflowId, filename, otherFilename);
373
+ return;
374
+ }
375
+ }
194
376
  // CRITICAL: Per spec 5.3 DELETED_LOCALLY - Archive Remote to _archive/ IMMEDIATELY
195
377
  // This happens BEFORE user confirmation, to ensure we have a backup
196
378
  if (workflowId) {
@@ -211,7 +393,6 @@ export class Watcher extends EventEmitter {
211
393
  const clean = WorkflowSanitizer.cleanForStorage(remoteWorkflow);
212
394
  const archivePath = path.join(archiveDir, `${Date.now()}_${filename}`);
213
395
  fs.writeFileSync(archivePath, JSON.stringify(clean, null, 2));
214
- console.log(`[Watcher] Archived remote workflow to: ${archivePath}`);
215
396
  }
216
397
  }
217
398
  catch (error) {
@@ -220,8 +401,36 @@ export class Watcher extends EventEmitter {
220
401
  }
221
402
  }
222
403
  }
223
- this.localHashes.delete(filename);
404
+ // IMPORTANT: Broadcast status BEFORE cleaning up mappings
405
+ // This ensures the UI receives the DELETED_LOCALLY status with the correct workflowId
224
406
  this.broadcastStatus(filename, workflowId);
407
+ // Clean up local hash for deleted file
408
+ this.localHashes.delete(filename);
409
+ // CRITICAL: DO NOT delete ID→filename mappings for DELETED_LOCALLY workflows
410
+ // Mappings must persist to:
411
+ // 1. Allow file restoration with the same filename
412
+ // 2. Prevent other remote workflows with the same name from taking this filename
413
+ // Mappings are only deleted when the workflow is completely removed via removeWorkflowState()
414
+ }
415
+ handleRename(workflowId, oldFilename, newFilename) {
416
+ // Update mappings
417
+ this.fileToIdMap.delete(oldFilename);
418
+ this.fileToIdMap.set(newFilename, workflowId);
419
+ this.idToFileMap.set(workflowId, newFilename);
420
+ // Update local hash mapping
421
+ const oldHash = this.localHashes.get(oldFilename);
422
+ if (oldHash) {
423
+ this.localHashes.delete(oldFilename);
424
+ this.localHashes.set(newFilename, oldHash);
425
+ }
426
+ // Emit rename event
427
+ this.emit('fileRenamed', {
428
+ workflowId,
429
+ oldFilename,
430
+ newFilename
431
+ });
432
+ // Broadcast status with new filename
433
+ this.broadcastStatus(newFilename, workflowId);
225
434
  }
226
435
  async refreshLocalState() {
227
436
  if (!fs.existsSync(this.directory)) {
@@ -230,7 +439,7 @@ export class Watcher extends EventEmitter {
230
439
  this.localHashes.clear();
231
440
  return;
232
441
  }
233
- const files = fs.readdirSync(this.directory).filter(f => f.endsWith('.json') && !f.startsWith('.'));
442
+ const files = fs.readdirSync(this.directory).filter(f => f.endsWith('.json') && !f.startsWith('.') && f !== '.archive' && f !== '_archive');
234
443
  const currentFiles = new Set(files);
235
444
  // Remove entries for files that no longer exist
236
445
  for (const filename of this.localHashes.keys()) {
@@ -243,18 +452,87 @@ export class Watcher extends EventEmitter {
243
452
  }
244
453
  }
245
454
  }
246
- // Add/update entries for existing files
455
+ // First pass: collect all files and their content
456
+ const fileContents = [];
247
457
  for (const filename of files) {
248
458
  const filePath = path.join(this.directory, filename);
249
459
  const content = this.readJsonFile(filePath);
250
460
  if (content) {
461
+ const stat = fs.statSync(filePath);
462
+ fileContents.push({ filename, content, mtime: stat.mtimeMs });
251
463
  const clean = WorkflowSanitizer.cleanForStorage(content);
252
464
  const hash = this.computeHash(clean);
253
465
  this.localHashes.set(filename, hash);
254
- if (content.id) {
466
+ }
467
+ }
468
+ // Detect and resolve duplicate IDs (following architectural plan)
469
+ this.resolveDuplicateIds(fileContents);
470
+ // Second pass: update mappings after duplicate resolution
471
+ // CRITICAL: Only update mappings if not already set from persisted state
472
+ // This prevents ID alternation when remote workflows have duplicate names
473
+ for (const { filename, content } of fileContents) {
474
+ if (content?.id) {
475
+ // Only update if we don't have a persisted mapping for this ID
476
+ if (!this.idToFileMap.has(content.id)) {
255
477
  this.fileToIdMap.set(filename, content.id);
256
478
  this.idToFileMap.set(content.id, filename);
257
479
  }
480
+ else {
481
+ // We have a persisted mapping - verify it matches the file
482
+ const persistedFilename = this.idToFileMap.get(content.id);
483
+ if (persistedFilename !== filename) {
484
+ // The ID is in a different file than expected
485
+ // This can happen if a file was renamed or copied
486
+ // We need to decide: keep persisted mapping or update to new file?
487
+ // For now, update the reverse mapping but keep ID mapping stable
488
+ this.fileToIdMap.set(filename, content.id);
489
+ }
490
+ }
491
+ }
492
+ }
493
+ }
494
+ /**
495
+ * Resolve duplicate IDs in local files (following architectural plan)
496
+ * Principle: Keep ID only in the oldest file, remove from others
497
+ */
498
+ resolveDuplicateIds(fileContents) {
499
+ // Group files by workflow ID
500
+ const filesById = new Map();
501
+ for (const { filename, content, mtime } of fileContents) {
502
+ if (content?.id) {
503
+ const workflowId = content.id;
504
+ if (!filesById.has(workflowId)) {
505
+ filesById.set(workflowId, []);
506
+ }
507
+ filesById.get(workflowId).push({ filename, mtime });
508
+ }
509
+ }
510
+ // For each duplicate ID, keep only in oldest file
511
+ for (const [workflowId, fileList] of filesById.entries()) {
512
+ if (fileList.length > 1) {
513
+ // Sort by modification time (oldest first)
514
+ fileList.sort((a, b) => a.mtime - b.mtime);
515
+ const oldestFile = fileList[0].filename;
516
+ const duplicates = fileList.slice(1);
517
+ // Remove ID from duplicate files
518
+ for (const { filename: dupFilename } of duplicates) {
519
+ const filePath = path.join(this.directory, dupFilename);
520
+ const content = this.readJsonFile(filePath);
521
+ if (content) {
522
+ delete content.id;
523
+ fs.writeFileSync(filePath, JSON.stringify(content, null, 2));
524
+ // Update local hash for the modified file
525
+ const clean = WorkflowSanitizer.cleanForStorage(content);
526
+ const hash = this.computeHash(clean);
527
+ this.localHashes.set(dupFilename, hash);
528
+ }
529
+ }
530
+ // Emit event for UI (if needed)
531
+ this.emit('duplicateIdResolved', {
532
+ workflowId,
533
+ keptInFilename: oldestFile,
534
+ removedFromFilenames: duplicates.map(d => d.filename)
535
+ });
258
536
  }
259
537
  }
260
538
  }
@@ -269,25 +547,64 @@ export class Watcher extends EventEmitter {
269
547
  const remoteWorkflows = await this.client.getAllWorkflows();
270
548
  this.isConnected = true;
271
549
  const currentRemoteIds = new Set();
550
+ // Build set of already-assigned filenames to prevent collisions
551
+ // A filename is "assigned" if:
552
+ // 1. It exists physically on disk, OR
553
+ // 2. It's mapped to a workflow that still exists remotely (even if DELETED_LOCALLY)
554
+ const assignedFilenames = new Set();
272
555
  for (const wf of remoteWorkflows) {
273
556
  if (this.shouldIgnore(wf))
274
557
  continue;
275
558
  if (this.isPaused.has(wf.id) || this.syncInProgress.has(wf.id))
276
559
  continue;
277
560
  currentRemoteIds.add(wf.id);
278
- // CRITICAL: Use ID-based mapping instead of name-based filename generation
279
- // This prevents issues when filename != workflow.name
561
+ // CRITICAL: Use ID-based mapping with PERSISTED state as source of truth
562
+ // Priority order for finding filename:
563
+ // 1. Persisted mapping from state (most reliable for stability)
564
+ // 2. Memory mapping (may differ if file was renamed locally)
565
+ // 3. Scan local files by ID
566
+ // 4. Generate from name (new workflow)
280
567
  let filename = this.idToFileMap.get(wf.id);
281
- // If no mapping exists, try to find the file by scanning local files
568
+ // If no valid mapping, scan local files to discover/rediscover the workflow
282
569
  if (!filename) {
283
570
  filename = this.findFilenameByWorkflowId(wf.id);
284
571
  }
285
- // If still not found, generate filename from name (new remote workflow)
572
+ // Reserve this filename BEFORE checking for newworkflows
573
+ if (filename) {
574
+ assignedFilenames.add(filename);
575
+ }
576
+ // If still not found, this is a NEW remote workflow - generate filename
286
577
  if (!filename) {
287
- filename = `${this.safeName(wf.name)}.json`;
578
+ const baseName = `${this.safeName(wf.name)}.json`;
579
+ // Check if this base name is already assigned to another workflow
580
+ if (assignedFilenames.has(baseName)) {
581
+ // Name collision - generate unique filename with ID suffix
582
+ const idSuffix = wf.id.substring(0, 8);
583
+ filename = `${this.safeName(wf.name)}_${idSuffix}.json`;
584
+ }
585
+ else {
586
+ // Name is free - use it
587
+ filename = baseName;
588
+ }
589
+ // Mark this filename as assigned
590
+ assignedFilenames.add(filename);
591
+ }
592
+ // Update mappings ONLY if this is a new workflow or filename hasn't changed
593
+ const previousFilename = this.idToFileMap.get(wf.id);
594
+ if (!previousFilename) {
595
+ // New workflow - establish mapping
596
+ this.idToFileMap.set(wf.id, filename);
597
+ this.fileToIdMap.set(filename, wf.id);
598
+ }
599
+ else if (previousFilename !== filename) {
600
+ // Filename changed - this should only happen during explicit rename
601
+ // For duplicate name scenarios, we should have generated a unique name above
602
+ // Update mappings
603
+ this.fileToIdMap.delete(previousFilename);
604
+ this.idToFileMap.set(wf.id, filename);
605
+ this.fileToIdMap.set(filename, wf.id);
288
606
  }
289
- this.idToFileMap.set(wf.id, filename);
290
- this.fileToIdMap.set(filename, wf.id);
607
+ // If previousFilename === filename, mappings are already correct - don't touch them
291
608
  // Check if we need to fetch full content
292
609
  const cachedTimestamp = this.remoteTimestamps.get(wf.id);
293
610
  const needsFullFetch = !cachedTimestamp ||
@@ -364,7 +681,7 @@ export class Watcher extends EventEmitter {
364
681
  // If workflow not tracked yet (first sync of local-only workflow),
365
682
  // scan directory to find the file with this ID
366
683
  if (!filename) {
367
- const files = fs.readdirSync(this.directory).filter(f => f.endsWith('.json') && !f.startsWith('.'));
684
+ const files = fs.readdirSync(this.directory).filter(f => f.endsWith('.json') && !f.startsWith('.') && f !== '.archive' && f !== '_archive');
368
685
  for (const file of files) {
369
686
  const filePath = path.join(this.directory, file);
370
687
  const content = this.readJsonFile(filePath);
@@ -406,9 +723,11 @@ export class Watcher extends EventEmitter {
406
723
  */
407
724
  async updateWorkflowState(id, hash) {
408
725
  const state = this.loadState();
726
+ const filename = this.idToFileMap.get(id) || '';
409
727
  state.workflows[id] = {
410
728
  lastSyncedHash: hash,
411
- lastSyncedAt: new Date().toISOString()
729
+ lastSyncedAt: new Date().toISOString(),
730
+ filename: filename
412
731
  };
413
732
  this.saveState(state);
414
733
  }
@@ -431,6 +750,7 @@ export class Watcher extends EventEmitter {
431
750
  }
432
751
  /**
433
752
  * Load state from .n8n-state.json
753
+ * Does NOT restore mappings - use restoreMappingsFromState() for that
434
754
  */
435
755
  loadState() {
436
756
  if (fs.existsSync(this.stateFilePath)) {
@@ -447,6 +767,23 @@ export class Watcher extends EventEmitter {
447
767
  }
448
768
  return { workflows: {} };
449
769
  }
770
+ /**
771
+ * Restore ID→filename mappings from persisted state
772
+ * Should only be called once at startup and after state changes
773
+ */
774
+ restoreMappingsFromState() {
775
+ const state = this.loadState();
776
+ for (const [id, workflowState] of Object.entries(state.workflows)) {
777
+ const ws = workflowState;
778
+ if (ws.filename) {
779
+ // Only set if not already mapped (current session takes precedence)
780
+ if (!this.idToFileMap.has(id)) {
781
+ this.idToFileMap.set(id, ws.filename);
782
+ this.fileToIdMap.set(ws.filename, id);
783
+ }
784
+ }
785
+ }
786
+ }
450
787
  /**
451
788
  * Save state to .n8n-state.json
452
789
  */
@@ -535,7 +872,7 @@ export class Watcher extends EventEmitter {
535
872
  return undefined;
536
873
  }
537
874
  const files = fs.readdirSync(this.directory)
538
- .filter(f => f.endsWith('.json') && !f.startsWith('.'));
875
+ .filter(f => f.endsWith('.json') && !f.startsWith('.') && f !== '.archive' && f !== '_archive');
539
876
  for (const file of files) {
540
877
  const content = this.readJsonFile(path.join(this.directory, file));
541
878
  if (content?.id === workflowId) {
@@ -552,6 +889,10 @@ export class Watcher extends EventEmitter {
552
889
  return null;
553
890
  }
554
891
  }
892
+ writeWorkflowFile(filename, content) {
893
+ const filePath = path.join(this.directory, filename);
894
+ fs.writeFileSync(filePath, JSON.stringify(content, null, 2));
895
+ }
555
896
  getFileToIdMap() {
556
897
  return this.fileToIdMap;
557
898
  }
@@ -572,7 +913,9 @@ export class Watcher extends EventEmitter {
572
913
  }
573
914
  // 2. Process all remote workflows not yet in results
574
915
  for (const [workflowId, remoteHash] of this.remoteHashes.entries()) {
575
- const filename = this.idToFileMap.get(workflowId) || `${workflowId}.json`;
916
+ // Use persisted filename from state for stability
917
+ const persistedFilename = state.workflows[workflowId]?.filename;
918
+ const filename = persistedFilename || this.idToFileMap.get(workflowId) || `${workflowId}.json`;
576
919
  if (!results.has(filename)) {
577
920
  const status = this.calculateStatus(filename, workflowId);
578
921
  results.set(filename, {
@@ -586,7 +929,9 @@ export class Watcher extends EventEmitter {
586
929
  }
587
930
  // 3. Process tracked but deleted workflows
588
931
  for (const id of Object.keys(state.workflows)) {
589
- const filename = this.idToFileMap.get(id) || `${id}.json`;
932
+ // Use persisted filename from state for stability
933
+ const persistedFilename = state.workflows[id].filename;
934
+ const filename = persistedFilename || this.idToFileMap.get(id) || `${id}.json`;
590
935
  if (!results.has(filename)) {
591
936
  const status = this.calculateStatus(filename, id);
592
937
  results.set(filename, {
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/services/watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,YAAY,MAAM,QAAQ,CAAC;AAClC,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAA8B,MAAM,aAAa,CAAC;AAG7E;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,OAAQ,SAAQ,YAAY;IAC7B,OAAO,GAA8B,IAAI,CAAC;IAC1C,YAAY,GAA0B,IAAI,CAAC;IAC3C,MAAM,CAAe;IACrB,SAAS,CAAS;IAClB,cAAc,CAAS;IACvB,YAAY,CAAU;IACtB,WAAW,CAAW;IACtB,aAAa,CAAS;IACtB,WAAW,GAAY,IAAI,CAAC;IAC5B,cAAc,GAAY,KAAK,CAAC;IAExC,0BAA0B;IAClB,WAAW,GAAwB,IAAI,GAAG,EAAE,CAAC,CAAC,mBAAmB;IACjE,YAAY,GAAwB,IAAI,GAAG,EAAE,CAAC,CAAC,qBAAqB;IACpE,WAAW,GAAwB,IAAI,GAAG,EAAE,CAAC,CAAC,yBAAyB;IACvE,WAAW,GAAwB,IAAI,GAAG,EAAE,CAAC,CAAC,yBAAyB;IACvE,iBAAiB,GAAoC,IAAI,GAAG,EAAE,CAAC,CAAC,mCAAmC;IAE3G,sBAAsB;IACd,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC,CAAC,sCAAsC;IACpE,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC,CAAC,6BAA6B;IACjE,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC,CAAC,2EAA2E;IAExH,4BAA4B;IACpB,gBAAgB,GAAwB,IAAI,GAAG,EAAE,CAAC,CAAC,0BAA0B;IAErF,YACI,MAAoB,EACpB,OAKC;QAED,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IACtE,CAAC;IAEM,KAAK,CAAC,KAAK;QACd,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QAE9C,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAE3B,4DAA4D;QAC5D,IAAI,CAAC;YACD,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACpC,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,mCAAmC;YACnC,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,KAAK,cAAc;gBAC7B,KAAK,CAAC,IAAI,KAAK,WAAW;gBAC1B,KAAK,CAAC,IAAI,KAAK,WAAW;gBAC1B,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC;gBACvC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC;gBACvC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC;gBACpC,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,cAAc,CAAC;YAE/D,IAAI,iBAAiB,EAAE,CAAC;gBACpB,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;gBAC5B,wDAAwD;gBACxD,MAAM,IAAI,KAAK,CAAC,6FAA6F,CAAC,CAAC;YACnH,CAAC;YACD,6BAA6B;YAC7B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;YAC5B,MAAM,KAAK,CAAC;QAChB,CAAC;QAED,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAE5B,4BAA4B;QAC5B,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE;YAC1C,OAAO,EAAE;gBACL,eAAe,EAAE,eAAe;gBAChC,gBAAgB,EAAE,oCAAoC;gBACtD,oBAAoB,CAAC,aAAa;aACrC;YACD,UAAU,EAAE,IAAI;YAChB,aAAa,EAAE,IAAI;YACnB,gBAAgB,EAAE,EAAE,kBAAkB,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,iBAAiB;SACrF,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO;aACP,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACvC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aAC1C,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhD,cAAc;QACd,IAAI,IAAI,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC1F,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAEM,IAAI;QACP,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC7B,CAAC;IACL,CAAC;IAED;;OAEG;IACI,gBAAgB,CAAC,UAAkB;QACtC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,iBAAiB,CAAC,UAAkB;QACvC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjC,oEAAoE;QACpE,uEAAuE;QACvE,gFAAgF;IACpF,CAAC;IAED;;OAEG;IACI,0BAA0B,CAAC,QAAgB;QAC9C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACI,2BAA2B,CAAC,QAAgB;QAC/C,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACI,kBAAkB,CAAC,UAAkB;QACxC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACI,gBAAgB,CAAC,UAAkB;QACtC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,QAAgB;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO;QAExC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,yDAAyD;QACzD,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,OAAO;QACX,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACvF,OAAO;QACX,CAAC;QAED,yDAAyD;QACzD,kEAAkE;QAClE,4EAA4E;QAC5E,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAErC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACrC,IAAI,UAAU,EAAE,CAAC;YACb,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC3C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,QAAgB;QACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEhD,yEAAyE;QACzE,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/B,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5D,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAChD,IAAI,cAAc,KAAK,QAAQ,EAAE,CAAC;oBAC9B,UAAU,GAAG,EAAE,CAAC;oBAChB,MAAM;gBACV,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;YACvF,OAAO;QACX,CAAC;QAED,mFAAmF;QACnF,oEAAoE;QACpE,IAAI,UAAU,EAAE,CAAC;YACb,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACrD,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAE1D,8EAA8E;YAC9E,IAAI,UAAU,IAAI,UAAU,KAAK,cAAc,EAAE,CAAC;gBAC9C,IAAI,CAAC;oBACD,gCAAgC;oBAChC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBAEjE,IAAI,cAAc,EAAE,CAAC;wBACjB,+CAA+C;wBAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;wBACzD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;4BAC7B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;wBAClD,CAAC;wBAED,iCAAiC;wBACjC,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;wBAChE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC,CAAC;wBACvE,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;wBAE9D,OAAO,CAAC,GAAG,CAAC,0CAA0C,WAAW,EAAE,CAAC,CAAC;oBACzE,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,OAAO,CAAC,IAAI,CAAC,+CAA+C,UAAU,GAAG,EAAE,KAAK,CAAC,CAAC;oBAClF,yDAAyD;gBAC7D,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC1B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,iDAAiD,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAC/E,uDAAuD;YACvD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YACzB,OAAO;QACX,CAAC;QAED,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACpG,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAEpC,gDAAgD;QAChD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAClC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAClD,IAAI,UAAU,EAAE,CAAC;oBACb,2CAA2C;oBAC3C,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC;QACL,CAAC;QAED,wCAAwC;QACxC,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACrD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,OAAO,EAAE,CAAC;gBACV,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBACzD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;gBACrC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;gBACrC,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;oBACb,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;oBAC3C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAC/C,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,kBAAkB;QAC3B,IAAI,CAAC;YACD,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAC5D,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;YAE3C,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;gBAC/B,IAAI,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;oBAAE,SAAS;gBACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBAAE,SAAS;gBAEzE,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAE5B,2EAA2E;gBAC3E,sDAAsD;gBACtD,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBAE3C,qEAAqE;gBACrE,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACZ,QAAQ,GAAG,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACpD,CAAC;gBAED,wEAAwE;gBACxE,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACZ,QAAQ,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;gBAChD,CAAC;gBAED,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBACtC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;gBAEtC,yCAAyC;gBACzC,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACzD,MAAM,cAAc,GAAG,CAAC,eAAe;oBACnC,CAAC,EAAE,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,KAAK,eAAe,CAAC,CAAC;gBAEvD,IAAI,cAAc,EAAE,CAAC;oBACjB,IAAI,CAAC;wBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;wBACpD,IAAI,MAAM,EAAE,CAAC;4BACT,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;4BACxD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;4BAErC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;4BACnC,IAAI,EAAE,CAAC,SAAS,EAAE,CAAC;gCACf,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;4BACnD,CAAC;4BACD,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;wBAC1C,CAAC;oBACL,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACT,OAAO,CAAC,IAAI,CAAC,sCAAsC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;oBACpE,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACJ,uCAAuC;oBACvC,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oBAChD,IAAI,UAAU,EAAE,CAAC;wBACb,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;oBAC1C,CAAC;gBACL,CAAC;YACL,CAAC;YAED,2CAA2C;YAC3C,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;gBACxC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC5B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBAC7B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC1C,IAAI,QAAQ;wBAAE,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACrD,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,mCAAmC;YACnC,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,KAAK,cAAc;gBAC7B,KAAK,CAAC,IAAI,KAAK,WAAW;gBAC1B,KAAK,CAAC,IAAI,KAAK,WAAW;gBAC1B,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC;gBACvC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,cAAc,CAAC;gBACvC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC;gBACpC,KAAK,CAAC,KAAK,EAAE,IAAI,KAAK,cAAc,CAAC;YAE/D,IAAI,iBAAiB,EAAE,CAAC;gBACpB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;gBACzB,wCAAwC;gBACxC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACpB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBAC7B,CAAC;gBACD,mCAAmC;gBACnC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,IAAI,KAAK,CAAC,kEAAkE,CAAC,CAAC,CAAC;YAChH,CAAC;iBAAM,CAAC;gBACJ,wCAAwC;gBACxC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC9B,CAAC;YACD,wDAAwD;YACxD,MAAM,KAAK,CAAC;QAChB,CAAC;IACL,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,YAAY,CAAC,UAAkB;QACxC,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEhD,mEAAmE;QACnE,+CAA+C;QAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YACpG,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACvB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBACjD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC5C,IAAI,OAAO,EAAE,EAAE,KAAK,UAAU,EAAE,CAAC;oBAC7B,QAAQ,GAAG,IAAI,CAAC;oBAChB,wCAAwC;oBACxC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;oBAC3C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;oBAC3C,MAAM;gBACV,CAAC;YACL,CAAC;YAED,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,kCAAkC,UAAU,yBAAyB,CAAC,CAAC;YAC3F,CAAC;QACL,CAAC;QAED,sBAAsB;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,kDAAkD,UAAU,EAAE,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,KAAK,GAAG,iBAAiB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAE7C,gEAAgE;QAChE,iCAAiC;QACjC,MAAM,SAAS,GAAG,YAAY,CAAC;QAC/B,MAAM,UAAU,GAAG,YAAY,CAAC;QAEhC,gBAAgB;QAChB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAE9C,oBAAoB;QACpB,MAAM,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAEtD,+BAA+B;QAC/B,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,mBAAmB,CAAC,EAAU,EAAE,IAAY;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG;YAClB,cAAc,EAAE,IAAI;YACpB,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACzC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,mBAAmB,CAAC,EAAU;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAEtB,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC1C,IAAI,QAAQ,EAAE,CAAC;YACX,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACK,SAAS;QACb,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,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;IACK,SAAS,CAAC,KAAqB;QACnC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,OAAY;QAC5B,OAAO,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IAEO,eAAe,CAAC,QAAgB,EAAE,UAAmB;QACzD,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAEhC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,UAAU,IAAI,QAAQ,CAAC;QACnC,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEnD,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YACxB,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACxC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACtB,QAAQ;gBACR,UAAU;gBACV,MAAM;aACT,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEM,eAAe,CAAC,QAAgB,EAAE,UAAmB;QACxD,IAAI,CAAC,UAAU;YAAE,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE9E,gFAAgF;QAChF,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,UAAU,IAAI,UAAU,EAAE,CAAC;YACjD,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC,uDAAuD;QAC9F,CAAC;QAED,iBAAiB;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvE,MAAM,cAAc,GAAG,SAAS,EAAE,cAAc,CAAC;QAEjD,4CAA4C;QAC5C,IAAI,SAAS,IAAI,CAAC,cAAc,IAAI,CAAC,UAAU;YAAE,OAAO,kBAAkB,CAAC,kBAAkB,CAAC;QAC9F,IAAI,UAAU,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS;YAAE,OAAO,kBAAkB,CAAC,mBAAmB,CAAC;QAE/F,IAAI,SAAS,IAAI,UAAU,IAAI,SAAS,KAAK,UAAU;YAAE,OAAO,kBAAkB,CAAC,OAAO,CAAC;QAE3F,IAAI,cAAc,EAAE,CAAC;YACjB,kEAAkE;YAClE,IAAI,CAAC,SAAS,IAAI,UAAU,KAAK,cAAc;gBAAE,OAAO,kBAAkB,CAAC,eAAe,CAAC;YAC3F,IAAI,CAAC,UAAU,IAAI,SAAS,KAAK,cAAc;gBAAE,OAAO,kBAAkB,CAAC,gBAAgB,CAAC;YAE5F,2BAA2B;YAC3B,MAAM,aAAa,GAAG,SAAS,KAAK,cAAc,CAAC;YACnD,MAAM,cAAc,GAAG,UAAU,IAAI,UAAU,KAAK,cAAc,CAAC;YAEnE,IAAI,aAAa,IAAI,cAAc;gBAAE,OAAO,kBAAkB,CAAC,QAAQ,CAAC;YACxE,IAAI,aAAa,IAAI,UAAU,KAAK,cAAc;gBAAE,OAAO,kBAAkB,CAAC,gBAAgB,CAAC;YAC/F,IAAI,cAAc,IAAI,SAAS,KAAK,cAAc;gBAAE,OAAO,kBAAkB,CAAC,iBAAiB,CAAC;QACpG,CAAC;QAED,0BAA0B;QAC1B,OAAO,kBAAkB,CAAC,QAAQ,CAAC;IACvC,CAAC;IAEO,YAAY,CAAC,EAAa;QAC9B,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAClD,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,aAAa,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACzF,IAAI,aAAa;gBAAE,OAAO,IAAI,CAAC;QACnC,CAAC;QACD,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,QAAQ,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACrE,CAAC;IAED;;;OAGG;IACK,wBAAwB,CAAC,UAAkB;QAC/C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,OAAO,SAAS,CAAC;QACrB,CAAC;QAED,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;aACvC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QAE5D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;YACnE,IAAI,OAAO,EAAE,EAAE,KAAK,UAAU,EAAE,CAAC;gBAC7B,OAAO,IAAI,CAAC;YAChB,CAAC;QACL,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAEO,YAAY,CAAC,QAAgB;QACjC,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QACzD,CAAC;QAAC,MAAM,CAAC;YACL,OAAO,IAAI,CAAC;QAChB,CAAC;IACL,CAAC;IAEM,cAAc;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC5B,CAAC;IAEM,eAAe;QAClB,MAAM,OAAO,GAAiC,IAAI,GAAG,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAE/B,6BAA6B;QAC7B,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC;YACxD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAE1D,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;gBAClB,EAAE,EAAE,UAAU,IAAI,EAAE;gBACpB,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;gBACnC,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,IAAI;aACf,CAAC,CAAC;QACP,CAAC;QAED,qDAAqD;QACrD,KAAK,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;YACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,UAAU,OAAO,CAAC;YAC1E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAC1D,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAClB,EAAE,EAAE,UAAU;oBACd,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;oBACnC,QAAQ,EAAE,QAAQ;oBAClB,MAAM,EAAE,MAAM;oBACd,MAAM,EAAE,IAAI;iBACf,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,2CAA2C;QAC3C,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,OAAO,CAAC;YAC1D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBAClD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAClB,EAAE;oBACF,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;oBACnC,QAAQ;oBACR,MAAM;oBACN,MAAM,EAAE,IAAI;iBACf,CAAC,CAAC;YACP,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACrF,CAAC;IAED;;OAEG;IACI,iBAAiB,CAAC,UAAkB;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,cAAc,CAAC;IACvD,CAAC;IAED;;;OAGG;IACI,aAAa,CAAC,UAAkB,EAAE,IAAY;QACjD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACI,qBAAqB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,gBAAgB,CAAC,KAAa,EAAE,KAAa;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;QAE/B,sCAAsC;QACtC,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAChD,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;QAED,2BAA2B;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACX,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YACtC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;QAED,mBAAmB;QACnB,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,UAAU,EAAE,CAAC;YACb,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnD,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAChD,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"watcher.js","sourceRoot":"","sources":["../../src/services/watcher.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@n8n-as-code/sync",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "Sync library for n8n-as-code ecosystem",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -16,9 +16,9 @@
16
16
  "validate-schema": "node ../../scripts/validate-schema.js --schema ./src/assets/n8n-nodes-index.json"
17
17
  },
18
18
  "dependencies": {
19
+ "@parcel/watcher": "^2.5.6",
19
20
  "@types/json-stable-stringify": "^1.1.0",
20
21
  "axios": "^1.6.0",
21
- "chokidar": "^5.0.0",
22
22
  "deep-equal": "^2.2.3",
23
23
  "json-stable-stringify": "^1.3.0",
24
24
  "zod": "^3.22.4"