@n8n-as-code/sync 0.12.0 → 0.13.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 +2 -0
- package/dist/assets/n8n-workflows.d.ts +320 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/services/sync-engine.d.ts +1 -1
- package/dist/services/sync-engine.d.ts.map +1 -1
- package/dist/services/sync-engine.js +35 -25
- package/dist/services/sync-engine.js.map +1 -1
- package/dist/services/sync-manager.d.ts.map +1 -1
- package/dist/services/sync-manager.js +18 -1
- package/dist/services/sync-manager.js.map +1 -1
- package/dist/services/watcher.d.ts +2 -1
- package/dist/services/watcher.d.ts.map +1 -1
- package/dist/services/watcher.js +135 -52
- package/dist/services/watcher.js.map +1 -1
- package/dist/services/workflow-transformer-adapter.d.ts +87 -0
- package/dist/services/workflow-transformer-adapter.d.ts.map +1 -0
- package/dist/services/workflow-transformer-adapter.js +234 -0
- package/dist/services/workflow-transformer-adapter.js.map +1 -0
- package/dist/services/workspace-setup-service.d.ts +36 -0
- package/dist/services/workspace-setup-service.d.ts.map +1 -0
- package/dist/services/workspace-setup-service.js +107 -0
- package/dist/services/workspace-setup-service.js.map +1 -0
- package/package.json +4 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-manager.js","sourceRoot":"","sources":["../../src/services/sync-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync-manager.js","sourceRoot":"","sources":["../../src/services/sync-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -131,9 +131,10 @@ export declare class Watcher extends EventEmitter {
|
|
|
131
131
|
*/
|
|
132
132
|
private findFilenameByWorkflowId;
|
|
133
133
|
private readJsonFile;
|
|
134
|
+
private readWorkflowFile;
|
|
134
135
|
private writeWorkflowFile;
|
|
135
136
|
getFileToIdMap(): Map<string, string>;
|
|
136
|
-
getStatusMatrix(): IWorkflowStatus[]
|
|
137
|
+
getStatusMatrix(): Promise<IWorkflowStatus[]>;
|
|
137
138
|
/**
|
|
138
139
|
* Get last synced hash for a workflow
|
|
139
140
|
*/
|
|
@@ -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,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7E;;;;;;;;;;;GAWG;AACH,qBAAa,OAAQ,SAAQ,YAAY;IACrC,OAAO,CAAC,mBAAmB,CAA0B;IACrD,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,SAAS,CAAS;IAC1B,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;QACtB,SAAS,EAAE,MAAM,CAAC;KACrB;IAYQ,KAAK;IAqFL,IAAI;IAiBjB;;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;
|
|
1
|
+
{"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../src/services/watcher.ts"],"names":[],"mappings":"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"}
|
package/dist/services/watcher.js
CHANGED
|
@@ -2,7 +2,7 @@ import fs from 'fs';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import EventEmitter from 'events';
|
|
4
4
|
import chokidar from 'chokidar';
|
|
5
|
-
import {
|
|
5
|
+
import { WorkflowTransformerAdapter } from './workflow-transformer-adapter.js';
|
|
6
6
|
import { HashUtils } from './hash-utils.js';
|
|
7
7
|
import { WorkflowSyncStatus } from '../types.js';
|
|
8
8
|
/**
|
|
@@ -190,12 +190,15 @@ export class Watcher extends EventEmitter {
|
|
|
190
190
|
}
|
|
191
191
|
async onLocalChange(filePath) {
|
|
192
192
|
const filename = path.basename(filePath);
|
|
193
|
-
|
|
193
|
+
console.log(`[Watcher] onLocalChange: ${filename}`);
|
|
194
|
+
if (!filename.endsWith('.workflow.ts'))
|
|
194
195
|
return;
|
|
195
196
|
const content = this.readJsonFile(filePath);
|
|
196
197
|
if (!content) {
|
|
198
|
+
console.log(`[Watcher] ❌ Cannot read file content for ${filename} - readJsonFile returned null`);
|
|
197
199
|
return;
|
|
198
200
|
}
|
|
201
|
+
console.log(`[Watcher] ✅ File content read for ${filename}, ID=${content.id}`);
|
|
199
202
|
// Check if this is a rename operation (following architectural plan)
|
|
200
203
|
const detectedWorkflowId = content.id || this.fileToIdMap.get(filename);
|
|
201
204
|
const pendingOpKey = `unlink:${detectedWorkflowId || filename}`;
|
|
@@ -214,10 +217,12 @@ export class Watcher extends EventEmitter {
|
|
|
214
217
|
}
|
|
215
218
|
// Check if filename is paused (for workflows without ID)
|
|
216
219
|
if (this.pausedFilenames.has(filename)) {
|
|
220
|
+
console.log(`[Watcher] ⏸️ Filename ${filename} is paused, ignoring change`);
|
|
217
221
|
return;
|
|
218
222
|
}
|
|
219
223
|
let workflowId = content.id || this.fileToIdMap.get(filename);
|
|
220
224
|
if (workflowId && (this.isPaused.has(workflowId) || this.syncInProgress.has(workflowId))) {
|
|
225
|
+
console.log(`[Watcher] ⏸️ Workflow ${workflowId} is paused or sync in progress, ignoring change`);
|
|
221
226
|
return;
|
|
222
227
|
}
|
|
223
228
|
// Check for duplicate ID (following architectural plan)
|
|
@@ -267,16 +272,13 @@ export class Watcher extends EventEmitter {
|
|
|
267
272
|
const currentContent = this.readJsonFile(filePath);
|
|
268
273
|
if (currentContent && currentContent.id === content.id) {
|
|
269
274
|
delete currentContent.id;
|
|
270
|
-
this.writeWorkflowFile(filename, currentContent);
|
|
271
|
-
// Re-read the content
|
|
272
|
-
const
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
this.localHashes.set(filename, hash);
|
|
278
|
-
this.broadcastStatus(filename, workflowId);
|
|
279
|
-
}
|
|
275
|
+
await this.writeWorkflowFile(filename, currentContent);
|
|
276
|
+
// Re-read the TypeScript content and compute hash
|
|
277
|
+
const tsContent = fs.readFileSync(filePath, 'utf-8');
|
|
278
|
+
const hash = await WorkflowTransformerAdapter.hashWorkflow(tsContent);
|
|
279
|
+
const workflowId = this.fileToIdMap.get(filename);
|
|
280
|
+
this.localHashes.set(filename, hash);
|
|
281
|
+
this.broadcastStatus(filename, workflowId);
|
|
280
282
|
}
|
|
281
283
|
return; // Stop processing this file as it's being modified
|
|
282
284
|
// Don't return - continue processing as normal
|
|
@@ -287,13 +289,15 @@ export class Watcher extends EventEmitter {
|
|
|
287
289
|
// IMPORTANT: Hash is calculated on the SANITIZED version
|
|
288
290
|
// This means versionId, versionCounter, pinData, etc. are ignored
|
|
289
291
|
// The file on disk can contain these fields, but they won't affect the hash
|
|
290
|
-
const
|
|
291
|
-
const hash =
|
|
292
|
+
const tsContent = fs.readFileSync(filePath, 'utf-8');
|
|
293
|
+
const hash = await WorkflowTransformerAdapter.hashWorkflow(tsContent);
|
|
294
|
+
console.log(`[Watcher] 🔢 Hash computed for ${filename}: ${hash.substring(0, 8)}...`);
|
|
292
295
|
this.localHashes.set(filename, hash);
|
|
293
296
|
if (workflowId) {
|
|
294
297
|
this.fileToIdMap.set(filename, workflowId);
|
|
295
298
|
this.idToFileMap.set(workflowId, filename);
|
|
296
299
|
}
|
|
300
|
+
console.log(`[Watcher] 📡 Broadcasting status for ${filename}...`);
|
|
297
301
|
this.broadcastStatus(filename, workflowId);
|
|
298
302
|
}
|
|
299
303
|
async onLocalDelete(filePath) {
|
|
@@ -343,7 +347,7 @@ export class Watcher extends EventEmitter {
|
|
|
343
347
|
async onLocalRename(oldPath, newPath) {
|
|
344
348
|
const oldFilename = path.basename(oldPath);
|
|
345
349
|
const newFilename = path.basename(newPath);
|
|
346
|
-
if (!oldFilename.endsWith('.
|
|
350
|
+
if (!oldFilename.endsWith('.workflow.ts') || !newFilename.endsWith('.workflow.ts')) {
|
|
347
351
|
return;
|
|
348
352
|
}
|
|
349
353
|
// Try to get workflow ID from old filename mapping
|
|
@@ -409,10 +413,13 @@ export class Watcher extends EventEmitter {
|
|
|
409
413
|
if (!fs.existsSync(trashDir)) {
|
|
410
414
|
fs.mkdirSync(trashDir, { recursive: true });
|
|
411
415
|
}
|
|
412
|
-
//
|
|
413
|
-
const
|
|
416
|
+
// Convert to TypeScript and save to archive with timestamp
|
|
417
|
+
const tsCode = await WorkflowTransformerAdapter.convertToTypeScript(remoteWorkflow, {
|
|
418
|
+
format: true,
|
|
419
|
+
commentStyle: 'verbose'
|
|
420
|
+
});
|
|
414
421
|
const archivePath = path.join(trashDir, `${Date.now()}_${filename}`);
|
|
415
|
-
fs.writeFileSync(archivePath,
|
|
422
|
+
fs.writeFileSync(archivePath, tsCode, 'utf-8');
|
|
416
423
|
}
|
|
417
424
|
}
|
|
418
425
|
catch (error) {
|
|
@@ -470,7 +477,7 @@ export class Watcher extends EventEmitter {
|
|
|
470
477
|
this.localHashes.clear();
|
|
471
478
|
return;
|
|
472
479
|
}
|
|
473
|
-
const files = fs.readdirSync(this.directory).filter(f => f.endsWith('.
|
|
480
|
+
const files = fs.readdirSync(this.directory).filter(f => f.endsWith('.workflow.ts') && !f.startsWith('.'));
|
|
474
481
|
const currentFiles = new Set(files);
|
|
475
482
|
// Remove entries for files that no longer exist
|
|
476
483
|
for (const filename of this.localHashes.keys()) {
|
|
@@ -487,17 +494,18 @@ export class Watcher extends EventEmitter {
|
|
|
487
494
|
const fileContents = [];
|
|
488
495
|
for (const filename of files) {
|
|
489
496
|
const filePath = path.join(this.directory, filename);
|
|
490
|
-
const content = this.readJsonFile(filePath);
|
|
497
|
+
const content = this.readJsonFile(filePath); // Quick ID extraction
|
|
491
498
|
if (content) {
|
|
492
499
|
const stat = fs.statSync(filePath);
|
|
493
500
|
fileContents.push({ filename, content, mtime: stat.mtimeMs });
|
|
494
|
-
|
|
495
|
-
const
|
|
501
|
+
// Compute hash from TypeScript file directly
|
|
502
|
+
const tsContent = fs.readFileSync(filePath, 'utf-8');
|
|
503
|
+
const hash = await WorkflowTransformerAdapter.hashWorkflow(tsContent);
|
|
496
504
|
this.localHashes.set(filename, hash);
|
|
497
505
|
}
|
|
498
506
|
}
|
|
499
507
|
// Detect and resolve duplicate IDs (following architectural plan)
|
|
500
|
-
this.resolveDuplicateIds(fileContents);
|
|
508
|
+
await this.resolveDuplicateIds(fileContents);
|
|
501
509
|
// Second pass: update mappings after duplicate resolution
|
|
502
510
|
// CRITICAL: Only update mappings if not already set from persisted state
|
|
503
511
|
// This prevents ID alternation when remote workflows have duplicate names
|
|
@@ -526,7 +534,7 @@ export class Watcher extends EventEmitter {
|
|
|
526
534
|
* Resolve duplicate IDs in local files (following architectural plan)
|
|
527
535
|
* Principle: Keep ID only in the oldest file, remove from others
|
|
528
536
|
*/
|
|
529
|
-
resolveDuplicateIds(fileContents) {
|
|
537
|
+
async resolveDuplicateIds(fileContents) {
|
|
530
538
|
// Group files by workflow ID
|
|
531
539
|
const filesById = new Map();
|
|
532
540
|
for (const { filename, content, mtime } of fileContents) {
|
|
@@ -551,10 +559,10 @@ export class Watcher extends EventEmitter {
|
|
|
551
559
|
const content = this.readJsonFile(filePath);
|
|
552
560
|
if (content) {
|
|
553
561
|
delete content.id;
|
|
554
|
-
|
|
562
|
+
await this.writeWorkflowFile(dupFilename, content);
|
|
555
563
|
// Update local hash for the modified file
|
|
556
|
-
const
|
|
557
|
-
const hash =
|
|
564
|
+
const tsContent = fs.readFileSync(filePath, 'utf-8');
|
|
565
|
+
const hash = await WorkflowTransformerAdapter.hashWorkflow(tsContent);
|
|
558
566
|
this.localHashes.set(dupFilename, hash);
|
|
559
567
|
}
|
|
560
568
|
}
|
|
@@ -606,12 +614,12 @@ export class Watcher extends EventEmitter {
|
|
|
606
614
|
}
|
|
607
615
|
// If still not found, this is a NEW remote workflow - generate filename
|
|
608
616
|
if (!filename) {
|
|
609
|
-
const baseName = `${this.safeName(wf.name)}.
|
|
617
|
+
const baseName = `${this.safeName(wf.name)}.workflow.ts`;
|
|
610
618
|
// Check if this base name is already assigned to another workflow
|
|
611
619
|
if (assignedFilenames.has(baseName)) {
|
|
612
620
|
// Name collision - generate unique filename with ID suffix
|
|
613
621
|
const idSuffix = wf.id.substring(0, 8);
|
|
614
|
-
filename = `${this.safeName(wf.name)}_${idSuffix}.
|
|
622
|
+
filename = `${this.safeName(wf.name)}_${idSuffix}.workflow.ts`;
|
|
615
623
|
}
|
|
616
624
|
else {
|
|
617
625
|
// Name is free - use it
|
|
@@ -644,8 +652,7 @@ export class Watcher extends EventEmitter {
|
|
|
644
652
|
try {
|
|
645
653
|
const fullWf = await this.client.getWorkflow(wf.id);
|
|
646
654
|
if (fullWf) {
|
|
647
|
-
const
|
|
648
|
-
const hash = this.computeHash(clean);
|
|
655
|
+
const hash = await WorkflowTransformerAdapter.hashWorkflowFromJson(fullWf);
|
|
649
656
|
this.remoteHashes.set(wf.id, hash);
|
|
650
657
|
if (wf.updatedAt) {
|
|
651
658
|
this.remoteTimestamps.set(wf.id, wf.updatedAt);
|
|
@@ -712,7 +719,7 @@ export class Watcher extends EventEmitter {
|
|
|
712
719
|
// If workflow not tracked yet (first sync of local-only workflow),
|
|
713
720
|
// scan directory to find the file with this ID
|
|
714
721
|
if (!filename) {
|
|
715
|
-
const files = fs.readdirSync(this.directory).filter(f => f.endsWith('.
|
|
722
|
+
const files = fs.readdirSync(this.directory).filter(f => f.endsWith('.workflow.ts') && !f.startsWith('.'));
|
|
716
723
|
for (const file of files) {
|
|
717
724
|
const filePath = path.join(this.directory, file);
|
|
718
725
|
const content = this.readJsonFile(filePath);
|
|
@@ -734,8 +741,8 @@ export class Watcher extends EventEmitter {
|
|
|
734
741
|
if (!content) {
|
|
735
742
|
throw new Error(`Cannot finalize sync: local file not found for ${workflowId}`);
|
|
736
743
|
}
|
|
737
|
-
const
|
|
738
|
-
const computedHash =
|
|
744
|
+
const tsContent = fs.readFileSync(filePath, 'utf-8');
|
|
745
|
+
const computedHash = await WorkflowTransformerAdapter.hashWorkflow(tsContent);
|
|
739
746
|
// After a successful sync, local and remote should be identical
|
|
740
747
|
// Use the computed hash for both
|
|
741
748
|
const localHash = computedHash;
|
|
@@ -833,7 +840,9 @@ export class Watcher extends EventEmitter {
|
|
|
833
840
|
const status = this.calculateStatus(filename, workflowId);
|
|
834
841
|
const key = workflowId || filename;
|
|
835
842
|
const lastStatus = this.lastKnownStatuses.get(key);
|
|
843
|
+
console.log(`[Watcher] Status for ${filename}: ${status} (last: ${lastStatus || 'none'})`);
|
|
836
844
|
if (status !== lastStatus) {
|
|
845
|
+
console.log(`[Watcher] 🔔 Status changed! Emitting statusChange event`);
|
|
837
846
|
this.lastKnownStatuses.set(key, status);
|
|
838
847
|
this.emit('statusChange', {
|
|
839
848
|
filename,
|
|
@@ -841,6 +850,9 @@ export class Watcher extends EventEmitter {
|
|
|
841
850
|
status
|
|
842
851
|
});
|
|
843
852
|
}
|
|
853
|
+
else {
|
|
854
|
+
console.log(`[Watcher] Status unchanged, not emitting event`);
|
|
855
|
+
}
|
|
844
856
|
}
|
|
845
857
|
calculateStatus(filename, workflowId) {
|
|
846
858
|
if (!workflowId)
|
|
@@ -855,6 +867,13 @@ export class Watcher extends EventEmitter {
|
|
|
855
867
|
const state = this.loadState();
|
|
856
868
|
const baseState = workflowId ? state.workflows[workflowId] : undefined;
|
|
857
869
|
const lastSyncedHash = baseState?.lastSyncedHash;
|
|
870
|
+
// Debug logging for new files
|
|
871
|
+
if (!workflowId && localHash) {
|
|
872
|
+
console.log(`[Watcher] 🆕 calculateStatus for NEW file: ${filename}`);
|
|
873
|
+
console.log(` localHash: ${localHash ? localHash.substring(0, 8) : 'none'}`);
|
|
874
|
+
console.log(` lastSyncedHash: ${lastSyncedHash ? lastSyncedHash.substring(0, 8) : 'none'}`);
|
|
875
|
+
console.log(` remoteHash: ${remoteHash ? remoteHash.substring(0, 8) : 'none'}`);
|
|
876
|
+
}
|
|
858
877
|
// Implementation of 4.2 Status Logic Matrix
|
|
859
878
|
if (localHash && !lastSyncedHash && !remoteHash)
|
|
860
879
|
return WorkflowSyncStatus.EXIST_ONLY_LOCALLY;
|
|
@@ -879,6 +898,7 @@ export class Watcher extends EventEmitter {
|
|
|
879
898
|
return WorkflowSyncStatus.MODIFIED_REMOTELY;
|
|
880
899
|
}
|
|
881
900
|
// Fallback for edge cases
|
|
901
|
+
console.warn(`[Watcher] ⚠️ CONFLICT fallback for ${filename}:`, { localHash: !!localHash, remoteHash: !!remoteHash, lastSyncedHash: !!lastSyncedHash, workflowId });
|
|
882
902
|
return WorkflowSyncStatus.CONFLICT;
|
|
883
903
|
}
|
|
884
904
|
shouldIgnore(wf) {
|
|
@@ -903,7 +923,7 @@ export class Watcher extends EventEmitter {
|
|
|
903
923
|
return undefined;
|
|
904
924
|
}
|
|
905
925
|
const files = fs.readdirSync(this.directory)
|
|
906
|
-
.filter(f => f.endsWith('.
|
|
926
|
+
.filter(f => f.endsWith('.workflow.ts') && !f.startsWith('.'));
|
|
907
927
|
for (const file of files) {
|
|
908
928
|
const content = this.readJsonFile(path.join(this.directory, file));
|
|
909
929
|
if (content?.id === workflowId) {
|
|
@@ -914,20 +934,81 @@ export class Watcher extends EventEmitter {
|
|
|
914
934
|
}
|
|
915
935
|
readJsonFile(filePath) {
|
|
916
936
|
try {
|
|
917
|
-
|
|
937
|
+
// For TypeScript workflow files, we need async parsing
|
|
938
|
+
// This method should only be called for extracting workflow ID
|
|
939
|
+
// For full workflow data, use readWorkflowFile (async)
|
|
940
|
+
const content = fs.readFileSync(filePath, 'utf8');
|
|
941
|
+
if (filePath.endsWith('.workflow.ts')) {
|
|
942
|
+
// Quick extraction of workflow ID and name from TypeScript decorator
|
|
943
|
+
// Look for: @workflow({ id: "...", name: "..." })
|
|
944
|
+
const decoratorMatch = content.match(/@workflow\s*\(\s*\{([^}]+)\}/);
|
|
945
|
+
if (decoratorMatch) {
|
|
946
|
+
const decoratorContent = decoratorMatch[1];
|
|
947
|
+
const result = {};
|
|
948
|
+
// Extract id if present
|
|
949
|
+
const idMatch = decoratorContent.match(/id:\s*["']([^"']+)["']/);
|
|
950
|
+
if (idMatch) {
|
|
951
|
+
result.id = idMatch[1];
|
|
952
|
+
}
|
|
953
|
+
// Extract name if present
|
|
954
|
+
const nameMatch = decoratorContent.match(/name:\s*["']([^"']+)["']/);
|
|
955
|
+
if (nameMatch) {
|
|
956
|
+
result.name = nameMatch[1];
|
|
957
|
+
}
|
|
958
|
+
// Return at least the extracted data (even if no id)
|
|
959
|
+
// This allows EXIST_ONLY_LOCALLY workflows to be detected
|
|
960
|
+
return Object.keys(result).length > 0 ? result : {};
|
|
961
|
+
}
|
|
962
|
+
// Fallback: If file contains JSON (for tests/transition), parse it
|
|
963
|
+
try {
|
|
964
|
+
const jsonData = JSON.parse(content);
|
|
965
|
+
// Return workflow data even if it doesn't have an ID
|
|
966
|
+
// (workflows without ID should be detected as EXIST_ONLY_LOCALLY)
|
|
967
|
+
return jsonData;
|
|
968
|
+
}
|
|
969
|
+
catch {
|
|
970
|
+
// Not JSON, and no decorator match - but still valid .workflow.ts file
|
|
971
|
+
// Return empty object to allow detection
|
|
972
|
+
}
|
|
973
|
+
return {};
|
|
974
|
+
}
|
|
975
|
+
else {
|
|
976
|
+
// Legacy JSON files
|
|
977
|
+
return JSON.parse(content);
|
|
978
|
+
}
|
|
979
|
+
}
|
|
980
|
+
catch {
|
|
981
|
+
return null;
|
|
982
|
+
}
|
|
983
|
+
}
|
|
984
|
+
async readWorkflowFile(filePath) {
|
|
985
|
+
try {
|
|
986
|
+
const content = fs.readFileSync(filePath, 'utf8');
|
|
987
|
+
if (filePath.endsWith('.workflow.ts')) {
|
|
988
|
+
return await WorkflowTransformerAdapter.compileToJson(content);
|
|
989
|
+
}
|
|
990
|
+
else {
|
|
991
|
+
// Legacy JSON files
|
|
992
|
+
return JSON.parse(content);
|
|
993
|
+
}
|
|
918
994
|
}
|
|
919
995
|
catch {
|
|
920
996
|
return null;
|
|
921
997
|
}
|
|
922
998
|
}
|
|
923
|
-
writeWorkflowFile(filename,
|
|
999
|
+
async writeWorkflowFile(filename, workflow) {
|
|
924
1000
|
const filePath = path.join(this.directory, filename);
|
|
925
|
-
|
|
1001
|
+
// Always write as TypeScript
|
|
1002
|
+
const tsCode = await WorkflowTransformerAdapter.convertToTypeScript(workflow, {
|
|
1003
|
+
format: true,
|
|
1004
|
+
commentStyle: 'verbose'
|
|
1005
|
+
});
|
|
1006
|
+
fs.writeFileSync(filePath, tsCode, 'utf-8');
|
|
926
1007
|
}
|
|
927
1008
|
getFileToIdMap() {
|
|
928
1009
|
return this.fileToIdMap;
|
|
929
1010
|
}
|
|
930
|
-
getStatusMatrix() {
|
|
1011
|
+
async getStatusMatrix() {
|
|
931
1012
|
const results = new Map();
|
|
932
1013
|
const state = this.loadState();
|
|
933
1014
|
// Get workflows with metadata for project info
|
|
@@ -938,11 +1019,12 @@ export class Watcher extends EventEmitter {
|
|
|
938
1019
|
const filePath = path.join(this.directory, filename);
|
|
939
1020
|
if (fs.existsSync(filePath)) {
|
|
940
1021
|
try {
|
|
941
|
-
const
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
1022
|
+
const workflow = await this.readWorkflowFile(filePath);
|
|
1023
|
+
if (workflow) {
|
|
1024
|
+
const workflowId = workflow.id || this.fileToIdMap.get(filename);
|
|
1025
|
+
if (workflowId) {
|
|
1026
|
+
workflowsMap.set(workflowId, workflow);
|
|
1027
|
+
}
|
|
946
1028
|
}
|
|
947
1029
|
}
|
|
948
1030
|
catch (e) {
|
|
@@ -961,7 +1043,7 @@ export class Watcher extends EventEmitter {
|
|
|
961
1043
|
const workflow = workflowId ? workflowsMap.get(workflowId) : undefined;
|
|
962
1044
|
results.set(filename, {
|
|
963
1045
|
id: workflowId || '',
|
|
964
|
-
name: workflow?.name || filename.replace('.
|
|
1046
|
+
name: workflow?.name || filename.replace('.workflow.ts', ''),
|
|
965
1047
|
filename: filename,
|
|
966
1048
|
status: status,
|
|
967
1049
|
active: workflow?.active ?? true,
|
|
@@ -975,13 +1057,13 @@ export class Watcher extends EventEmitter {
|
|
|
975
1057
|
for (const [workflowId, remoteHash] of this.remoteHashes.entries()) {
|
|
976
1058
|
// Use persisted filename from state for stability
|
|
977
1059
|
const persistedFilename = state.workflows[workflowId]?.filename;
|
|
978
|
-
const filename = persistedFilename || this.idToFileMap.get(workflowId) || `${workflowId}.
|
|
1060
|
+
const filename = persistedFilename || this.idToFileMap.get(workflowId) || `${workflowId}.workflow.ts`;
|
|
979
1061
|
if (!results.has(filename)) {
|
|
980
1062
|
const status = this.calculateStatus(filename, workflowId);
|
|
981
1063
|
const workflow = workflowsMap.get(workflowId);
|
|
982
1064
|
results.set(filename, {
|
|
983
1065
|
id: workflowId,
|
|
984
|
-
name: workflow?.name || filename.replace('.
|
|
1066
|
+
name: workflow?.name || filename.replace('.workflow.ts', ''),
|
|
985
1067
|
filename: filename,
|
|
986
1068
|
status: status,
|
|
987
1069
|
active: workflow?.active ?? true,
|
|
@@ -996,13 +1078,13 @@ export class Watcher extends EventEmitter {
|
|
|
996
1078
|
for (const id of Object.keys(state.workflows)) {
|
|
997
1079
|
// Use persisted filename from state for stability
|
|
998
1080
|
const persistedFilename = state.workflows[id].filename;
|
|
999
|
-
const filename = persistedFilename || this.idToFileMap.get(id) || `${id}.
|
|
1081
|
+
const filename = persistedFilename || this.idToFileMap.get(id) || `${id}.workflow.ts`;
|
|
1000
1082
|
if (!results.has(filename)) {
|
|
1001
1083
|
const status = this.calculateStatus(filename, id);
|
|
1002
1084
|
const workflow = workflowsMap.get(id);
|
|
1003
1085
|
results.set(filename, {
|
|
1004
1086
|
id,
|
|
1005
|
-
name: workflow?.name || filename.replace('.
|
|
1087
|
+
name: workflow?.name || filename.replace('.workflow.ts', ''),
|
|
1006
1088
|
filename,
|
|
1007
1089
|
status,
|
|
1008
1090
|
active: workflow?.active ?? true,
|
|
@@ -1047,9 +1129,10 @@ export class Watcher extends EventEmitter {
|
|
|
1047
1129
|
for (const [filename, _] of this.localHashes.entries()) {
|
|
1048
1130
|
const filepath = path.join(this.directory, filename);
|
|
1049
1131
|
try {
|
|
1050
|
-
const
|
|
1051
|
-
|
|
1052
|
-
|
|
1132
|
+
const workflow = await this.readWorkflowFile(filepath);
|
|
1133
|
+
if (workflow) {
|
|
1134
|
+
workflows.push(workflow);
|
|
1135
|
+
}
|
|
1053
1136
|
}
|
|
1054
1137
|
catch (error) {
|
|
1055
1138
|
console.warn(`[Watcher] Failed to read local workflow ${filename}:`, error);
|