@memberjunction/metadata-sync 3.4.0 → 4.1.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.
Files changed (130) hide show
  1. package/README.md +907 -2200
  2. package/dist/config.d.ts +1 -0
  3. package/dist/config.d.ts.map +1 -0
  4. package/dist/config.js +17 -27
  5. package/dist/config.js.map +1 -1
  6. package/dist/constants/metadata-keywords.d.ts +1 -0
  7. package/dist/constants/metadata-keywords.d.ts.map +1 -0
  8. package/dist/constants/metadata-keywords.js +31 -42
  9. package/dist/constants/metadata-keywords.js.map +1 -1
  10. package/dist/index.d.ts +39 -37
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +26 -62
  13. package/dist/index.js.map +1 -1
  14. package/dist/lib/EntityPropertyExtractor.d.ts +1 -0
  15. package/dist/lib/EntityPropertyExtractor.d.ts.map +1 -0
  16. package/dist/lib/EntityPropertyExtractor.js +1 -5
  17. package/dist/lib/EntityPropertyExtractor.js.map +1 -1
  18. package/dist/lib/FieldExternalizer.d.ts +1 -0
  19. package/dist/lib/FieldExternalizer.d.ts.map +1 -0
  20. package/dist/lib/FieldExternalizer.js +14 -21
  21. package/dist/lib/FieldExternalizer.js.map +1 -1
  22. package/dist/lib/RecordProcessor.d.ts +3 -2
  23. package/dist/lib/RecordProcessor.d.ts.map +1 -0
  24. package/dist/lib/RecordProcessor.js +16 -25
  25. package/dist/lib/RecordProcessor.js.map +1 -1
  26. package/dist/lib/RelatedEntityHandler.d.ts +3 -2
  27. package/dist/lib/RelatedEntityHandler.d.ts.map +1 -0
  28. package/dist/lib/RelatedEntityHandler.js +3 -9
  29. package/dist/lib/RelatedEntityHandler.js.map +1 -1
  30. package/dist/lib/config-manager.d.ts +2 -1
  31. package/dist/lib/config-manager.d.ts.map +1 -0
  32. package/dist/lib/config-manager.js +10 -15
  33. package/dist/lib/config-manager.js.map +1 -1
  34. package/dist/lib/database-reference-scanner.d.ts +3 -2
  35. package/dist/lib/database-reference-scanner.d.ts.map +1 -0
  36. package/dist/lib/database-reference-scanner.js +7 -13
  37. package/dist/lib/database-reference-scanner.js.map +1 -1
  38. package/dist/lib/deletion-auditor.d.ts +18 -3
  39. package/dist/lib/deletion-auditor.d.ts.map +1 -0
  40. package/dist/lib/deletion-auditor.js +111 -20
  41. package/dist/lib/deletion-auditor.js.map +1 -1
  42. package/dist/lib/deletion-report-generator.d.ts +2 -1
  43. package/dist/lib/deletion-report-generator.d.ts.map +1 -0
  44. package/dist/lib/deletion-report-generator.js +1 -5
  45. package/dist/lib/deletion-report-generator.js.map +1 -1
  46. package/dist/lib/entity-foreign-key-helper.d.ts +1 -0
  47. package/dist/lib/entity-foreign-key-helper.d.ts.map +1 -0
  48. package/dist/lib/entity-foreign-key-helper.js +1 -5
  49. package/dist/lib/entity-foreign-key-helper.js.map +1 -1
  50. package/dist/lib/file-backup-manager.d.ts +1 -0
  51. package/dist/lib/file-backup-manager.d.ts.map +1 -0
  52. package/dist/lib/file-backup-manager.js +22 -27
  53. package/dist/lib/file-backup-manager.js.map +1 -1
  54. package/dist/lib/file-write-batch.d.ts +2 -1
  55. package/dist/lib/file-write-batch.d.ts.map +1 -0
  56. package/dist/lib/file-write-batch.js +16 -21
  57. package/dist/lib/file-write-batch.js.map +1 -1
  58. package/dist/lib/json-preprocessor.d.ts +1 -0
  59. package/dist/lib/json-preprocessor.d.ts.map +1 -0
  60. package/dist/lib/json-preprocessor.js +21 -26
  61. package/dist/lib/json-preprocessor.js.map +1 -1
  62. package/dist/lib/json-write-helper.d.ts +2 -1
  63. package/dist/lib/json-write-helper.d.ts.map +1 -0
  64. package/dist/lib/json-write-helper.js +4 -11
  65. package/dist/lib/json-write-helper.js.map +1 -1
  66. package/dist/lib/provider-utils.d.ts +2 -1
  67. package/dist/lib/provider-utils.d.ts.map +1 -0
  68. package/dist/lib/provider-utils.js +15 -46
  69. package/dist/lib/provider-utils.js.map +1 -1
  70. package/dist/lib/record-dependency-analyzer.d.ts +41 -2
  71. package/dist/lib/record-dependency-analyzer.d.ts.map +1 -0
  72. package/dist/lib/record-dependency-analyzer.js +108 -40
  73. package/dist/lib/record-dependency-analyzer.js.map +1 -1
  74. package/dist/lib/singleton-manager.d.ts +2 -1
  75. package/dist/lib/singleton-manager.d.ts.map +1 -0
  76. package/dist/lib/singleton-manager.js +4 -9
  77. package/dist/lib/singleton-manager.js.map +1 -1
  78. package/dist/lib/sql-logger.d.ts +2 -1
  79. package/dist/lib/sql-logger.d.ts.map +1 -0
  80. package/dist/lib/sql-logger.js +8 -16
  81. package/dist/lib/sql-logger.js.map +1 -1
  82. package/dist/lib/sync-engine.d.ts +2 -1
  83. package/dist/lib/sync-engine.d.ts.map +1 -0
  84. package/dist/lib/sync-engine.js +58 -76
  85. package/dist/lib/sync-engine.js.map +1 -1
  86. package/dist/lib/transaction-manager.d.ts +2 -1
  87. package/dist/lib/transaction-manager.d.ts.map +1 -0
  88. package/dist/lib/transaction-manager.js +6 -11
  89. package/dist/lib/transaction-manager.js.map +1 -1
  90. package/dist/services/FileResetService.d.ts +1 -0
  91. package/dist/services/FileResetService.d.ts.map +1 -0
  92. package/dist/services/FileResetService.js +17 -24
  93. package/dist/services/FileResetService.js.map +1 -1
  94. package/dist/services/FormattingService.d.ts +2 -1
  95. package/dist/services/FormattingService.d.ts.map +1 -0
  96. package/dist/services/FormattingService.js +68 -73
  97. package/dist/services/FormattingService.js.map +1 -1
  98. package/dist/services/InitService.d.ts +1 -0
  99. package/dist/services/InitService.d.ts.map +1 -0
  100. package/dist/services/InitService.js +12 -19
  101. package/dist/services/InitService.js.map +1 -1
  102. package/dist/services/PullService.d.ts +2 -1
  103. package/dist/services/PullService.d.ts.map +1 -0
  104. package/dist/services/PullService.js +49 -60
  105. package/dist/services/PullService.js.map +1 -1
  106. package/dist/services/PushService.d.ts +3 -1
  107. package/dist/services/PushService.d.ts.map +1 -0
  108. package/dist/services/PushService.js +144 -95
  109. package/dist/services/PushService.js.map +1 -1
  110. package/dist/services/StatusService.d.ts +2 -1
  111. package/dist/services/StatusService.d.ts.map +1 -0
  112. package/dist/services/StatusService.js +14 -22
  113. package/dist/services/StatusService.js.map +1 -1
  114. package/dist/services/ValidationService.d.ts +2 -1
  115. package/dist/services/ValidationService.d.ts.map +1 -0
  116. package/dist/services/ValidationService.js +41 -71
  117. package/dist/services/ValidationService.js.map +1 -1
  118. package/dist/services/WatchService.d.ts +4 -3
  119. package/dist/services/WatchService.d.ts.map +1 -0
  120. package/dist/services/WatchService.js +35 -43
  121. package/dist/services/WatchService.js.map +1 -1
  122. package/dist/services/index.d.ts +9 -8
  123. package/dist/services/index.d.ts.map +1 -0
  124. package/dist/services/index.js +8 -19
  125. package/dist/services/index.js.map +1 -1
  126. package/dist/types/validation.d.ts +2 -1
  127. package/dist/types/validation.d.ts.map +1 -0
  128. package/dist/types/validation.js +2 -23
  129. package/dist/types/validation.js.map +1 -1
  130. package/package.json +23 -21
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /**
3
2
  * @fileoverview Transaction Manager for atomic database operations
4
3
  * @module transaction-manager
@@ -6,13 +5,10 @@
6
5
  * This module provides transaction support for push operations to ensure
7
6
  * all related entities are saved atomically with rollback capability.
8
7
  */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.TransactionManager = void 0;
11
- const provider_utils_1 = require("./provider-utils");
12
- class TransactionManager {
13
- inTransaction = false;
14
- sqlLogger;
8
+ import { getDataProvider } from './provider-utils.js';
9
+ export class TransactionManager {
15
10
  constructor(sqlLogger) {
11
+ this.inTransaction = false;
16
12
  this.sqlLogger = sqlLogger;
17
13
  }
18
14
  /**
@@ -22,7 +18,7 @@ class TransactionManager {
22
18
  if (this.inTransaction) {
23
19
  throw new Error('Transaction already in progress');
24
20
  }
25
- const provider = (0, provider_utils_1.getDataProvider)();
21
+ const provider = getDataProvider();
26
22
  if (!provider) {
27
23
  throw new Error('No data provider available');
28
24
  }
@@ -42,7 +38,7 @@ class TransactionManager {
42
38
  if (!this.inTransaction) {
43
39
  return; // No transaction to commit
44
40
  }
45
- const provider = (0, provider_utils_1.getDataProvider)();
41
+ const provider = getDataProvider();
46
42
  if (!provider) {
47
43
  throw new Error('No data provider available');
48
44
  }
@@ -61,7 +57,7 @@ class TransactionManager {
61
57
  if (!this.inTransaction) {
62
58
  return; // No transaction to rollback
63
59
  }
64
- const provider = (0, provider_utils_1.getDataProvider)();
60
+ const provider = getDataProvider();
65
61
  if (!provider) {
66
62
  throw new Error('No data provider available');
67
63
  }
@@ -96,5 +92,4 @@ class TransactionManager {
96
92
  return this.inTransaction;
97
93
  }
98
94
  }
99
- exports.TransactionManager = TransactionManager;
100
95
  //# sourceMappingURL=transaction-manager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-manager.js","sourceRoot":"","sources":["../../src/lib/transaction-manager.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview Transaction Manager for atomic database operations\n * @module transaction-manager\n * \n * This module provides transaction support for push operations to ensure\n * all related entities are saved atomically with rollback capability.\n */\n\nimport { getDataProvider } from './provider-utils';\nimport { SQLLogger } from './sql-logger';\n\nexport interface TransactionOptions {\n}\n\nexport class TransactionManager {\n private inTransaction = false;\n private sqlLogger?: SQLLogger;\n \n constructor(sqlLogger?: SQLLogger) {\n this.sqlLogger = sqlLogger;\n }\n \n /**\n * Begin a new transaction\n */\n async beginTransaction(options?: TransactionOptions): Promise<void> {\n if (this.inTransaction) {\n throw new Error('Transaction already in progress');\n }\n \n const provider = getDataProvider();\n if (!provider) {\n throw new Error('No data provider available');\n }\n \n // Check if provider supports transactions (PascalCase method names)\n try {\n await provider.BeginTransaction();\n this.inTransaction = true;\n } catch (error) {\n throw new Error(`Failed to begin transaction: ${error instanceof Error ? error.message : String(error)}`);\n }\n }\n \n /**\n * Commit the current transaction\n */\n async commitTransaction(): Promise<void> {\n if (!this.inTransaction) {\n return; // No transaction to commit\n }\n \n const provider = getDataProvider();\n if (!provider) {\n throw new Error('No data provider available');\n }\n \n try {\n await provider.CommitTransaction();\n this.inTransaction = false;\n } catch (error) {\n throw new Error(`Failed to commit transaction: ${error instanceof Error ? error.message : String(error)}`);\n }\n }\n \n /**\n * Rollback the current transaction\n */\n async rollbackTransaction(): Promise<void> {\n if (!this.inTransaction) {\n return; // No transaction to rollback\n }\n \n const provider = getDataProvider();\n if (!provider) {\n throw new Error('No data provider available');\n }\n \n try {\n await provider.RollbackTransaction();\n this.inTransaction = false;\n } catch (error) {\n // Log but don't throw - we're already in an error state\n console.error('Failed to rollback transaction:', error);\n }\n }\n \n /**\n * Execute a function within a transaction\n */\n async executeInTransaction<T>(\n fn: () => Promise<T>,\n options?: TransactionOptions\n ): Promise<T> {\n await this.beginTransaction(options);\n \n try {\n const result = await fn();\n await this.commitTransaction();\n return result;\n } catch (error) {\n await this.rollbackTransaction();\n throw error;\n }\n }\n \n /**\n * Check if currently in a transaction\n */\n get isInTransaction(): boolean {\n return this.inTransaction;\n }\n}"]}
1
+ {"version":3,"file":"transaction-manager.js","sourceRoot":"","sources":["../../src/lib/transaction-manager.ts"],"names":[],"mappings":"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"}
@@ -28,3 +28,4 @@ export declare class FileResetService {
28
28
  private countSections;
29
29
  private removeSections;
30
30
  }
31
+ //# sourceMappingURL=FileResetService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileResetService.d.ts","sourceRoot":"","sources":["../../src/services/FileResetService.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,MAAM,CAAC;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACnD;AAED,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,gBAAgB;IAErB,UAAU,CAAC,OAAO,GAAE,gBAAqB,EAAE,SAAS,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IAuI1G,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,cAAc;CA4BvB"}
@@ -1,28 +1,22 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.FileResetService = void 0;
7
- const fs_extra_1 = __importDefault(require("fs-extra"));
8
- const path_1 = __importDefault(require("path"));
9
- const fast_glob_1 = __importDefault(require("fast-glob"));
10
- const config_1 = require("../config");
11
- const config_manager_1 = require("../lib/config-manager");
12
- const json_write_helper_1 = require("../lib/json-write-helper");
13
- class FileResetService {
1
+ import fs from 'fs-extra';
2
+ import path from 'path';
3
+ import fastGlob from 'fast-glob';
4
+ import { loadSyncConfig } from '../config.js';
5
+ import { configManager } from '../lib/config-manager.js';
6
+ import { JsonWriteHelper } from '../lib/json-write-helper.js';
7
+ export class FileResetService {
14
8
  async resetFiles(options = {}, callbacks) {
15
9
  const sections = options.sections || 'both';
16
10
  // Load sync config
17
- const syncConfig = await (0, config_1.loadSyncConfig)(config_manager_1.configManager.getOriginalCwd());
11
+ const syncConfig = await loadSyncConfig(configManager.getOriginalCwd());
18
12
  if (!syncConfig) {
19
13
  throw new Error('No .mj-sync.json found in current directory');
20
14
  }
21
15
  // Find all metadata JSON files
22
16
  callbacks?.onProgress?.('Finding metadata files');
23
17
  const pattern = syncConfig.filePattern || '.*.json';
24
- const files = await (0, fast_glob_1.default)(pattern, {
25
- cwd: config_manager_1.configManager.getOriginalCwd(),
18
+ const files = await fastGlob(pattern, {
19
+ cwd: configManager.getOriginalCwd(),
26
20
  absolute: true,
27
21
  dot: true,
28
22
  ignore: ['.mj-sync.json', '.mj-folder.json'],
@@ -46,7 +40,7 @@ class FileResetService {
46
40
  let totalPrimaryKeys = 0;
47
41
  let totalSyncs = 0;
48
42
  for (const file of files) {
49
- const content = await fs_extra_1.default.readJson(file);
43
+ const content = await fs.readJson(file);
50
44
  const stats = this.countSections(content);
51
45
  if (stats.primaryKeyCount > 0) {
52
46
  filesWithPrimaryKey++;
@@ -68,10 +62,10 @@ class FileResetService {
68
62
  callbacks?.onLog?.('Dry run mode - no files will be modified');
69
63
  if (options.verbose) {
70
64
  for (const file of files) {
71
- const content = await fs_extra_1.default.readJson(file);
65
+ const content = await fs.readJson(file);
72
66
  const stats = this.countSections(content);
73
67
  if (stats.primaryKeyCount > 0 || stats.syncCount > 0) {
74
- callbacks?.onLog?.(`${path_1.default.relative(config_manager_1.configManager.getOriginalCwd(), file)}:`);
68
+ callbacks?.onLog?.(`${path.relative(configManager.getOriginalCwd(), file)}:`);
75
69
  if (stats.primaryKeyCount > 0) {
76
70
  callbacks?.onLog?.(` - ${stats.primaryKeyCount} primaryKey section${stats.primaryKeyCount === 1 ? '' : 's'}`);
77
71
  }
@@ -98,7 +92,7 @@ class FileResetService {
98
92
  let backupsCreated = 0;
99
93
  for (const file of files) {
100
94
  processedFiles++;
101
- const content = await fs_extra_1.default.readJson(file);
95
+ const content = await fs.readJson(file);
102
96
  const originalContent = JSON.stringify(content);
103
97
  // Remove sections
104
98
  const cleanedContent = this.removeSections(content, sections);
@@ -107,14 +101,14 @@ class FileResetService {
107
101
  // Create backup if requested
108
102
  if (!options.noBackup) {
109
103
  const backupPath = `${file}.backup`;
110
- await fs_extra_1.default.writeJson(backupPath, content, { spaces: 2 });
104
+ await fs.writeJson(backupPath, content, { spaces: 2 });
111
105
  backupsCreated++;
112
106
  }
113
107
  // Write cleaned content
114
- await json_write_helper_1.JsonWriteHelper.writeOrderedRecordData(file, cleanedContent);
108
+ await JsonWriteHelper.writeOrderedRecordData(file, cleanedContent);
115
109
  modifiedFiles++;
116
110
  if (options.verbose) {
117
- callbacks?.onLog?.(`✓ ${path_1.default.relative(config_manager_1.configManager.getOriginalCwd(), file)}`);
111
+ callbacks?.onLog?.(`✓ ${path.relative(configManager.getOriginalCwd(), file)}`);
118
112
  }
119
113
  }
120
114
  }
@@ -180,5 +174,4 @@ class FileResetService {
180
174
  return data;
181
175
  }
182
176
  }
183
- exports.FileResetService = FileResetService;
184
177
  //# sourceMappingURL=FileResetService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FileResetService.js","sourceRoot":"","sources":["../../src/services/FileResetService.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'fs-extra';\nimport path from 'path';\nimport fastGlob from 'fast-glob';\nimport { loadSyncConfig } from '../config';\nimport { configManager } from '../lib/config-manager';\nimport { JsonWriteHelper } from '../lib/json-write-helper';\n\nexport interface FileResetOptions {\n sections?: 'both' | 'primaryKey' | 'sync';\n dryRun?: boolean;\n noBackup?: boolean;\n verbose?: boolean;\n}\n\nexport interface FileResetCallbacks {\n onProgress?: (message: string) => void;\n onLog?: (message: string) => void;\n onWarn?: (message: string) => void;\n onConfirm?: (message: string) => Promise<boolean>;\n}\n\nexport interface FileResetResult {\n processedFiles: number;\n modifiedFiles: number;\n totalPrimaryKeys: number;\n totalSyncs: number;\n filesWithPrimaryKey: number;\n filesWithSync: number;\n backupsCreated: number;\n}\n\nexport interface FileStats {\n primaryKeyCount: number;\n syncCount: number;\n}\n\nexport class FileResetService {\n \n async resetFiles(options: FileResetOptions = {}, callbacks?: FileResetCallbacks): Promise<FileResetResult> {\n const sections = options.sections || 'both';\n \n // Load sync config\n const syncConfig = await loadSyncConfig(configManager.getOriginalCwd());\n if (!syncConfig) {\n throw new Error('No .mj-sync.json found in current directory');\n }\n \n // Find all metadata JSON files\n callbacks?.onProgress?.('Finding metadata files');\n const pattern = syncConfig.filePattern || '.*.json';\n const files = await fastGlob(pattern, {\n cwd: configManager.getOriginalCwd(),\n absolute: true,\n dot: true,\n ignore: ['.mj-sync.json', '.mj-folder.json'],\n });\n \n if (files.length === 0) {\n callbacks?.onLog?.('No metadata files found');\n return {\n processedFiles: 0,\n modifiedFiles: 0,\n totalPrimaryKeys: 0,\n totalSyncs: 0,\n filesWithPrimaryKey: 0,\n filesWithSync: 0,\n backupsCreated: 0\n };\n }\n \n callbacks?.onLog?.(`Found ${files.length} metadata file${files.length === 1 ? '' : 's'}`);\n \n // Count what will be removed\n let filesWithPrimaryKey = 0;\n let filesWithSync = 0;\n let totalPrimaryKeys = 0;\n let totalSyncs = 0;\n \n for (const file of files) {\n const content = await fs.readJson(file);\n const stats = this.countSections(content);\n if (stats.primaryKeyCount > 0) {\n filesWithPrimaryKey++;\n totalPrimaryKeys += stats.primaryKeyCount;\n }\n if (stats.syncCount > 0) {\n filesWithSync++;\n totalSyncs += stats.syncCount;\n }\n }\n \n // Report what will be removed\n if (sections === 'both' || sections === 'primaryKey') {\n callbacks?.onLog?.(`Will remove ${totalPrimaryKeys} primaryKey section${totalPrimaryKeys === 1 ? '' : 's'} from ${filesWithPrimaryKey} file${filesWithPrimaryKey === 1 ? '' : 's'}`);\n }\n if (sections === 'both' || sections === 'sync') {\n callbacks?.onLog?.(`Will remove ${totalSyncs} sync section${totalSyncs === 1 ? '' : 's'} from ${filesWithSync} file${filesWithSync === 1 ? '' : 's'}`);\n }\n \n if (options.dryRun) {\n callbacks?.onLog?.('Dry run mode - no files will be modified');\n \n if (options.verbose) {\n for (const file of files) {\n const content = await fs.readJson(file);\n const stats = this.countSections(content);\n if (stats.primaryKeyCount > 0 || stats.syncCount > 0) {\n callbacks?.onLog?.(`${path.relative(configManager.getOriginalCwd(), file)}:`);\n if (stats.primaryKeyCount > 0) {\n callbacks?.onLog?.(` - ${stats.primaryKeyCount} primaryKey section${stats.primaryKeyCount === 1 ? '' : 's'}`);\n }\n if (stats.syncCount > 0) {\n callbacks?.onLog?.(` - ${stats.syncCount} sync section${stats.syncCount === 1 ? '' : 's'}`);\n }\n }\n }\n }\n \n return {\n processedFiles: files.length,\n modifiedFiles: 0,\n totalPrimaryKeys,\n totalSyncs,\n filesWithPrimaryKey,\n filesWithSync,\n backupsCreated: 0\n };\n }\n \n // Process files\n callbacks?.onProgress?.('Processing files');\n let processedFiles = 0;\n let modifiedFiles = 0;\n let backupsCreated = 0;\n \n for (const file of files) {\n processedFiles++;\n const content = await fs.readJson(file);\n const originalContent = JSON.stringify(content);\n \n // Remove sections\n const cleanedContent = this.removeSections(content, sections);\n \n // Only write if content changed\n if (JSON.stringify(cleanedContent) !== originalContent) {\n // Create backup if requested\n if (!options.noBackup) {\n const backupPath = `${file}.backup`;\n await fs.writeJson(backupPath, content, { spaces: 2 });\n backupsCreated++;\n }\n \n // Write cleaned content\n await JsonWriteHelper.writeOrderedRecordData(file, cleanedContent);\n modifiedFiles++;\n \n if (options.verbose) {\n callbacks?.onLog?.(`✓ ${path.relative(configManager.getOriginalCwd(), file)}`);\n }\n }\n }\n \n return {\n processedFiles,\n modifiedFiles,\n totalPrimaryKeys,\n totalSyncs,\n filesWithPrimaryKey,\n filesWithSync,\n backupsCreated\n };\n }\n \n private countSections(data: any): FileStats {\n let primaryKeyCount = 0;\n let syncCount = 0;\n \n if (Array.isArray(data)) {\n for (const item of data) {\n const stats = this.countSections(item);\n primaryKeyCount += stats.primaryKeyCount;\n syncCount += stats.syncCount;\n }\n } else if (data && typeof data === 'object') {\n if ('primaryKey' in data) primaryKeyCount++;\n if ('sync' in data) syncCount++;\n \n // Check related entities\n if (data.relatedEntities) {\n for (const entityData of Object.values(data.relatedEntities)) {\n const stats = this.countSections(entityData);\n primaryKeyCount += stats.primaryKeyCount;\n syncCount += stats.syncCount;\n }\n }\n }\n \n return { primaryKeyCount, syncCount };\n }\n \n private removeSections(data: any, sections: string): any {\n if (Array.isArray(data)) {\n return data.map(item => this.removeSections(item, sections));\n } else if (data && typeof data === 'object') {\n const cleaned = { ...data };\n \n // Remove specified sections\n if (sections === 'both' || sections === 'primaryKey') {\n delete cleaned.primaryKey;\n }\n if (sections === 'both' || sections === 'sync') {\n delete cleaned.sync;\n }\n \n // Process related entities\n if (cleaned.relatedEntities) {\n const cleanedRelated: any = {};\n for (const [entityName, entityData] of Object.entries(cleaned.relatedEntities)) {\n cleanedRelated[entityName] = this.removeSections(entityData, sections);\n }\n cleaned.relatedEntities = cleanedRelated;\n }\n \n return cleaned;\n }\n \n return data;\n }\n}"]}
1
+ {"version":3,"file":"FileResetService.js","sourceRoot":"","sources":["../../src/services/FileResetService.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { ValidationResult } from '../types/validation';
1
+ import { ValidationResult } from '../types/validation.js';
2
2
  export declare class FormattingService {
3
3
  /**
4
4
  * Format validation result as JSON
@@ -44,3 +44,4 @@ export declare class FormattingService {
44
44
  */
45
45
  formatValidationResultAsMarkdown(result: ValidationResult): string;
46
46
  }
47
+ //# sourceMappingURL=FormattingService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormattingService.d.ts","sourceRoot":"","sources":["../../src/services/FormattingService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAA4D,MAAM,qBAAqB,CAAC;AAEjH,qBAAa,iBAAiB;IAC1B;;OAEG;IACI,4BAA4B,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;IA+BrE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAgBtB;IAEF;;OAEG;IACI,sBAAsB,CAAC,MAAM,EAAE,gBAAgB,EAAE,OAAO,GAAE,OAAe,GAAG,MAAM;IAmDzF;;OAEG;IACI,iBAAiB,CACpB,SAAS,EAAE,MAAM,GAAG,MAAM,EAC1B,KAAK,EAAE;QACH,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACrB,GACF,MAAM;IAgCT,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,gBAAgB;IA8DxB,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,WAAW;IAqBnB,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,YAAY;IAmBpB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,cAAc;IAMtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACI,gCAAgC,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM;CAoS5E"}
@@ -1,11 +1,24 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.FormattingService = void 0;
7
- const chalk_1 = __importDefault(require("chalk"));
8
- class FormattingService {
1
+ import chalk from 'chalk';
2
+ export class FormattingService {
3
+ constructor() {
4
+ this.symbols = {
5
+ success: '✓',
6
+ error: '✗',
7
+ warning: '⚠',
8
+ info: 'ℹ',
9
+ arrow: '→',
10
+ bullet: '•',
11
+ box: {
12
+ topLeft: '┌',
13
+ topRight: '┐',
14
+ bottomLeft: '└',
15
+ bottomRight: '┘',
16
+ horizontal: '─',
17
+ vertical: '│',
18
+ cross: '┼'
19
+ }
20
+ };
21
+ }
9
22
  /**
10
23
  * Format validation result as JSON
11
24
  */
@@ -39,23 +52,6 @@ class FormattingService {
39
52
  };
40
53
  return JSON.stringify(output, null, 2);
41
54
  }
42
- symbols = {
43
- success: '✓',
44
- error: '✗',
45
- warning: '⚠',
46
- info: 'ℹ',
47
- arrow: '→',
48
- bullet: '•',
49
- box: {
50
- topLeft: '┌',
51
- topRight: '┐',
52
- bottomLeft: '└',
53
- bottomRight: '┘',
54
- horizontal: '─',
55
- vertical: '│',
56
- cross: '┼'
57
- }
58
- };
59
55
  /**
60
56
  * Format validation result for terminal output
61
57
  */
@@ -109,24 +105,24 @@ class FormattingService {
109
105
  lines.push(this.formatHeader(`${operation.charAt(0).toUpperCase() + operation.slice(1)} Summary`));
110
106
  lines.push('');
111
107
  const total = stats.created + stats.updated + stats.deleted + stats.skipped + (stats.unchanged || 0);
112
- lines.push(chalk_1.default.bold('Operation Statistics:'));
108
+ lines.push(chalk.bold('Operation Statistics:'));
113
109
  lines.push('');
114
- lines.push(` ${chalk_1.default.green(this.symbols.success)} Created: ${chalk_1.default.green(stats.created)}`);
115
- lines.push(` ${chalk_1.default.blue(this.symbols.info)} Updated: ${chalk_1.default.blue(stats.updated)}`);
110
+ lines.push(` ${chalk.green(this.symbols.success)} Created: ${chalk.green(stats.created)}`);
111
+ lines.push(` ${chalk.blue(this.symbols.info)} Updated: ${chalk.blue(stats.updated)}`);
116
112
  if (stats.unchanged !== undefined) {
117
- lines.push(` ${chalk_1.default.gray('-')} Unchanged: ${chalk_1.default.gray(stats.unchanged)}`);
113
+ lines.push(` ${chalk.gray('-')} Unchanged: ${chalk.gray(stats.unchanged)}`);
118
114
  }
119
- lines.push(` ${chalk_1.default.red(this.symbols.error)} Deleted: ${chalk_1.default.red(stats.deleted)}`);
120
- lines.push(` ${chalk_1.default.gray('-')} Skipped: ${chalk_1.default.gray(stats.skipped)}`);
115
+ lines.push(` ${chalk.red(this.symbols.error)} Deleted: ${chalk.red(stats.deleted)}`);
116
+ lines.push(` ${chalk.gray('-')} Skipped: ${chalk.gray(stats.skipped)}`);
121
117
  if (stats.deferred !== undefined && stats.deferred > 0) {
122
- lines.push(` ${chalk_1.default.yellow('⏳')} Deferred: ${chalk_1.default.yellow(stats.deferred)}`);
118
+ lines.push(` ${chalk.yellow('⏳')} Deferred: ${chalk.yellow(stats.deferred)}`);
123
119
  }
124
120
  lines.push('');
125
- lines.push(` Total Records: ${chalk_1.default.bold(total)}`);
126
- lines.push(` Duration: ${chalk_1.default.cyan(this.formatDuration(stats.duration))}`);
121
+ lines.push(` Total Records: ${chalk.bold(total)}`);
122
+ lines.push(` Duration: ${chalk.cyan(this.formatDuration(stats.duration))}`);
127
123
  if (stats.errors > 0) {
128
124
  lines.push('');
129
- lines.push(chalk_1.default.red(` ${this.symbols.error} Errors: ${stats.errors}`));
125
+ lines.push(chalk.red(` ${this.symbols.error} Errors: ${stats.errors}`));
130
126
  }
131
127
  return lines.join('\n');
132
128
  }
@@ -138,7 +134,7 @@ class FormattingService {
138
134
  const brandingPadding = Math.floor((width - brandingText.length - 2) / 2);
139
135
  // Title
140
136
  const titlePadding = Math.floor((width - title.length - 2) / 2);
141
- return chalk_1.default.blue([
137
+ return chalk.blue([
142
138
  line,
143
139
  '║' + ' '.repeat(brandingPadding) + brandingText + ' '.repeat(width - brandingPadding - brandingText.length - 2) + '║',
144
140
  '║' + ' '.repeat(titlePadding) + title + ' '.repeat(width - titlePadding - title.length - 2) + '║',
@@ -146,12 +142,12 @@ class FormattingService {
146
142
  ].join('\n'));
147
143
  }
148
144
  formatSectionHeader(title) {
149
- return chalk_1.default.bold.underline(title);
145
+ return chalk.bold.underline(title);
150
146
  }
151
147
  formatSummaryBox(result) {
152
148
  const lines = [];
153
149
  const width = 50;
154
- lines.push(chalk_1.default.gray('┌' + '─'.repeat(width - 2) + '┐'));
150
+ lines.push(chalk.gray('┌' + '─'.repeat(width - 2) + '┐'));
155
151
  // Basic stats
156
152
  const items = [
157
153
  ['Files:', result.summary.totalFiles],
@@ -161,62 +157,62 @@ class FormattingService {
161
157
  ];
162
158
  items.forEach(([label, value]) => {
163
159
  const numValue = Number(value);
164
- const color = label === 'Errors:' && numValue > 0 ? chalk_1.default.red :
165
- label === 'Warnings:' && numValue > 0 ? chalk_1.default.yellow :
166
- chalk_1.default.white;
160
+ const color = label === 'Errors:' && numValue > 0 ? chalk.red :
161
+ label === 'Warnings:' && numValue > 0 ? chalk.yellow :
162
+ chalk.white;
167
163
  const line = `${String(label).padEnd(15)} ${color(String(value))}`;
168
- lines.push(chalk_1.default.gray('│ ') + line.padEnd(width - 4) + chalk_1.default.gray(' │'));
164
+ lines.push(chalk.gray('│ ') + line.padEnd(width - 4) + chalk.gray(' │'));
169
165
  });
170
166
  // Add separator
171
167
  if (result.errors.length > 0 || result.warnings.length > 0) {
172
- lines.push(chalk_1.default.gray('├' + '─'.repeat(width - 2) + '┤'));
168
+ lines.push(chalk.gray('├' + '─'.repeat(width - 2) + '┤'));
173
169
  }
174
170
  // Error breakdown by type
175
171
  if (result.errors.length > 0) {
176
- lines.push(chalk_1.default.gray('│ ') + chalk_1.default.bold('Errors by Type:').padEnd(width - 4) + chalk_1.default.gray(' │'));
172
+ lines.push(chalk.gray('│ ') + chalk.bold('Errors by Type:').padEnd(width - 4) + chalk.gray(' │'));
177
173
  const errorsByType = this.getErrorsByType(result.errors);
178
174
  for (const [type, count] of Object.entries(errorsByType)) {
179
175
  const typeText = ` ${type}:`;
180
- const countText = chalk_1.default.red(count.toString());
176
+ const countText = chalk.red(count.toString());
181
177
  const spaceBetween = width - 4 - typeText.length - count.toString().length;
182
178
  const line = typeText + ' '.repeat(spaceBetween) + countText;
183
- lines.push(chalk_1.default.gray('│ ') + line + chalk_1.default.gray(' │'));
179
+ lines.push(chalk.gray('│ ') + line + chalk.gray(' │'));
184
180
  }
185
181
  }
186
182
  // Warning breakdown by type
187
183
  if (result.warnings.length > 0) {
188
184
  if (result.errors.length > 0) {
189
- lines.push(chalk_1.default.gray('├' + '─'.repeat(width - 2) + '┤'));
185
+ lines.push(chalk.gray('├' + '─'.repeat(width - 2) + '┤'));
190
186
  }
191
- lines.push(chalk_1.default.gray('│ ') + chalk_1.default.bold('Warnings by Type:').padEnd(width - 4) + chalk_1.default.gray(' │'));
187
+ lines.push(chalk.gray('│ ') + chalk.bold('Warnings by Type:').padEnd(width - 4) + chalk.gray(' │'));
192
188
  const warningsByType = this.getWarningsByType(result.warnings);
193
189
  for (const [type, count] of Object.entries(warningsByType)) {
194
190
  const typeText = ` ${type}:`;
195
- const countText = chalk_1.default.yellow(count.toString());
191
+ const countText = chalk.yellow(count.toString());
196
192
  const spaceBetween = width - 4 - typeText.length - count.toString().length;
197
193
  const line = typeText + ' '.repeat(spaceBetween) + countText;
198
- lines.push(chalk_1.default.gray('│ ') + line + chalk_1.default.gray(' │'));
194
+ lines.push(chalk.gray('│ ') + line + chalk.gray(' │'));
199
195
  }
200
196
  }
201
- lines.push(chalk_1.default.gray('└' + '─'.repeat(width - 2) + '┘'));
197
+ lines.push(chalk.gray('└' + '─'.repeat(width - 2) + '┘'));
202
198
  return lines.join('\n');
203
199
  }
204
200
  formatFileResult(file, result, verbose) {
205
201
  const lines = [];
206
202
  const hasErrors = result.errors.length > 0;
207
203
  const hasWarnings = result.warnings.length > 0;
208
- const icon = hasErrors ? chalk_1.default.red(this.symbols.error) :
209
- hasWarnings ? chalk_1.default.yellow(this.symbols.warning) :
210
- chalk_1.default.green(this.symbols.success);
204
+ const icon = hasErrors ? chalk.red(this.symbols.error) :
205
+ hasWarnings ? chalk.yellow(this.symbols.warning) :
206
+ chalk.green(this.symbols.success);
211
207
  const shortPath = this.shortenPath(file);
212
- lines.push(`${icon} ${chalk_1.default.bold(shortPath)}`);
208
+ lines.push(`${icon} ${chalk.bold(shortPath)}`);
213
209
  if (verbose || hasErrors || hasWarnings) {
214
- lines.push(` ${chalk_1.default.gray(`Entities: ${result.entityCount}`)}`);
210
+ lines.push(` ${chalk.gray(`Entities: ${result.entityCount}`)}`);
215
211
  if (hasErrors) {
216
- lines.push(` ${chalk_1.default.red(`Errors: ${result.errors.length}`)}`);
212
+ lines.push(` ${chalk.red(`Errors: ${result.errors.length}`)}`);
217
213
  }
218
214
  if (hasWarnings) {
219
- lines.push(` ${chalk_1.default.yellow(`Warnings: ${result.warnings.length}`)}`);
215
+ lines.push(` ${chalk.yellow(`Warnings: ${result.warnings.length}`)}`);
220
216
  }
221
217
  }
222
218
  lines.push('');
@@ -224,32 +220,32 @@ class FormattingService {
224
220
  }
225
221
  formatError(error, index) {
226
222
  const lines = [];
227
- lines.push(chalk_1.default.red(`${index}. ${error.message}`));
223
+ lines.push(chalk.red(`${index}. ${error.message}`));
228
224
  if (error.entity) {
229
- lines.push(chalk_1.default.gray(` Entity: ${error.entity}`));
225
+ lines.push(chalk.gray(` Entity: ${error.entity}`));
230
226
  }
231
227
  if (error.field) {
232
- lines.push(chalk_1.default.gray(` Field: ${error.field}`));
228
+ lines.push(chalk.gray(` Field: ${error.field}`));
233
229
  }
234
- lines.push(chalk_1.default.gray(` File: ${this.shortenPath(error.file)}`));
230
+ lines.push(chalk.gray(` File: ${this.shortenPath(error.file)}`));
235
231
  if (error.suggestion) {
236
- lines.push(chalk_1.default.cyan(` ${this.symbols.arrow} Suggestion: ${error.suggestion}`));
232
+ lines.push(chalk.cyan(` ${this.symbols.arrow} Suggestion: ${error.suggestion}`));
237
233
  }
238
234
  lines.push('');
239
235
  return lines.join('\n');
240
236
  }
241
237
  formatWarning(warning, index) {
242
238
  const lines = [];
243
- lines.push(chalk_1.default.yellow(`${index}. ${warning.message}`));
239
+ lines.push(chalk.yellow(`${index}. ${warning.message}`));
244
240
  if (warning.entity) {
245
- lines.push(chalk_1.default.gray(` Entity: ${warning.entity}`));
241
+ lines.push(chalk.gray(` Entity: ${warning.entity}`));
246
242
  }
247
243
  if (warning.field) {
248
- lines.push(chalk_1.default.gray(` Field: ${warning.field}`));
244
+ lines.push(chalk.gray(` Field: ${warning.field}`));
249
245
  }
250
- lines.push(chalk_1.default.gray(` File: ${this.shortenPath(warning.file)}`));
246
+ lines.push(chalk.gray(` File: ${this.shortenPath(warning.file)}`));
251
247
  if (warning.suggestion) {
252
- lines.push(chalk_1.default.cyan(` ${this.symbols.arrow} Suggestion: ${warning.suggestion}`));
248
+ lines.push(chalk.cyan(` ${this.symbols.arrow} Suggestion: ${warning.suggestion}`));
253
249
  }
254
250
  lines.push('');
255
251
  return lines.join('\n');
@@ -257,16 +253,16 @@ class FormattingService {
257
253
  formatFooter(result) {
258
254
  const lines = [];
259
255
  if (result.isValid) {
260
- lines.push(chalk_1.default.green.bold(`${this.symbols.success} Validation passed!`));
256
+ lines.push(chalk.green.bold(`${this.symbols.success} Validation passed!`));
261
257
  }
262
258
  else {
263
- lines.push(chalk_1.default.red.bold(`${this.symbols.error} Validation failed with ${result.errors.length} error(s)`));
259
+ lines.push(chalk.red.bold(`${this.symbols.error} Validation failed with ${result.errors.length} error(s)`));
264
260
  }
265
261
  // Add documentation link if there are any issues
266
262
  if (result.errors.length > 0 || result.warnings.length > 0) {
267
263
  lines.push('');
268
- lines.push(chalk_1.default.gray('For help resolving issues, see:'));
269
- lines.push(chalk_1.default.cyan('https://github.com/MemberJunction/MJ/tree/next/packages/MetadataSync'));
264
+ lines.push(chalk.gray('For help resolving issues, see:'));
265
+ lines.push(chalk.cyan('https://github.com/MemberJunction/MJ/tree/next/packages/MetadataSync'));
270
266
  }
271
267
  return lines.join('\n');
272
268
  }
@@ -563,5 +559,4 @@ class FormattingService {
563
559
  return lines.join('\n');
564
560
  }
565
561
  }
566
- exports.FormattingService = FormattingService;
567
562
  //# sourceMappingURL=FormattingService.js.map