@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.
- package/README.md +907 -2200
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +17 -27
- package/dist/config.js.map +1 -1
- package/dist/constants/metadata-keywords.d.ts +1 -0
- package/dist/constants/metadata-keywords.d.ts.map +1 -0
- package/dist/constants/metadata-keywords.js +31 -42
- package/dist/constants/metadata-keywords.js.map +1 -1
- package/dist/index.d.ts +39 -37
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +26 -62
- package/dist/index.js.map +1 -1
- package/dist/lib/EntityPropertyExtractor.d.ts +1 -0
- package/dist/lib/EntityPropertyExtractor.d.ts.map +1 -0
- package/dist/lib/EntityPropertyExtractor.js +1 -5
- package/dist/lib/EntityPropertyExtractor.js.map +1 -1
- package/dist/lib/FieldExternalizer.d.ts +1 -0
- package/dist/lib/FieldExternalizer.d.ts.map +1 -0
- package/dist/lib/FieldExternalizer.js +14 -21
- package/dist/lib/FieldExternalizer.js.map +1 -1
- package/dist/lib/RecordProcessor.d.ts +3 -2
- package/dist/lib/RecordProcessor.d.ts.map +1 -0
- package/dist/lib/RecordProcessor.js +16 -25
- package/dist/lib/RecordProcessor.js.map +1 -1
- package/dist/lib/RelatedEntityHandler.d.ts +3 -2
- package/dist/lib/RelatedEntityHandler.d.ts.map +1 -0
- package/dist/lib/RelatedEntityHandler.js +3 -9
- package/dist/lib/RelatedEntityHandler.js.map +1 -1
- package/dist/lib/config-manager.d.ts +2 -1
- package/dist/lib/config-manager.d.ts.map +1 -0
- package/dist/lib/config-manager.js +10 -15
- package/dist/lib/config-manager.js.map +1 -1
- package/dist/lib/database-reference-scanner.d.ts +3 -2
- package/dist/lib/database-reference-scanner.d.ts.map +1 -0
- package/dist/lib/database-reference-scanner.js +7 -13
- package/dist/lib/database-reference-scanner.js.map +1 -1
- package/dist/lib/deletion-auditor.d.ts +18 -3
- package/dist/lib/deletion-auditor.d.ts.map +1 -0
- package/dist/lib/deletion-auditor.js +111 -20
- package/dist/lib/deletion-auditor.js.map +1 -1
- package/dist/lib/deletion-report-generator.d.ts +2 -1
- package/dist/lib/deletion-report-generator.d.ts.map +1 -0
- package/dist/lib/deletion-report-generator.js +1 -5
- package/dist/lib/deletion-report-generator.js.map +1 -1
- package/dist/lib/entity-foreign-key-helper.d.ts +1 -0
- package/dist/lib/entity-foreign-key-helper.d.ts.map +1 -0
- package/dist/lib/entity-foreign-key-helper.js +1 -5
- package/dist/lib/entity-foreign-key-helper.js.map +1 -1
- package/dist/lib/file-backup-manager.d.ts +1 -0
- package/dist/lib/file-backup-manager.d.ts.map +1 -0
- package/dist/lib/file-backup-manager.js +22 -27
- package/dist/lib/file-backup-manager.js.map +1 -1
- package/dist/lib/file-write-batch.d.ts +2 -1
- package/dist/lib/file-write-batch.d.ts.map +1 -0
- package/dist/lib/file-write-batch.js +16 -21
- package/dist/lib/file-write-batch.js.map +1 -1
- package/dist/lib/json-preprocessor.d.ts +1 -0
- package/dist/lib/json-preprocessor.d.ts.map +1 -0
- package/dist/lib/json-preprocessor.js +21 -26
- package/dist/lib/json-preprocessor.js.map +1 -1
- package/dist/lib/json-write-helper.d.ts +2 -1
- package/dist/lib/json-write-helper.d.ts.map +1 -0
- package/dist/lib/json-write-helper.js +4 -11
- package/dist/lib/json-write-helper.js.map +1 -1
- package/dist/lib/provider-utils.d.ts +2 -1
- package/dist/lib/provider-utils.d.ts.map +1 -0
- package/dist/lib/provider-utils.js +15 -46
- package/dist/lib/provider-utils.js.map +1 -1
- package/dist/lib/record-dependency-analyzer.d.ts +41 -2
- package/dist/lib/record-dependency-analyzer.d.ts.map +1 -0
- package/dist/lib/record-dependency-analyzer.js +108 -40
- package/dist/lib/record-dependency-analyzer.js.map +1 -1
- package/dist/lib/singleton-manager.d.ts +2 -1
- package/dist/lib/singleton-manager.d.ts.map +1 -0
- package/dist/lib/singleton-manager.js +4 -9
- package/dist/lib/singleton-manager.js.map +1 -1
- package/dist/lib/sql-logger.d.ts +2 -1
- package/dist/lib/sql-logger.d.ts.map +1 -0
- package/dist/lib/sql-logger.js +8 -16
- package/dist/lib/sql-logger.js.map +1 -1
- package/dist/lib/sync-engine.d.ts +2 -1
- package/dist/lib/sync-engine.d.ts.map +1 -0
- package/dist/lib/sync-engine.js +58 -76
- package/dist/lib/sync-engine.js.map +1 -1
- package/dist/lib/transaction-manager.d.ts +2 -1
- package/dist/lib/transaction-manager.d.ts.map +1 -0
- package/dist/lib/transaction-manager.js +6 -11
- package/dist/lib/transaction-manager.js.map +1 -1
- package/dist/services/FileResetService.d.ts +1 -0
- package/dist/services/FileResetService.d.ts.map +1 -0
- package/dist/services/FileResetService.js +17 -24
- package/dist/services/FileResetService.js.map +1 -1
- package/dist/services/FormattingService.d.ts +2 -1
- package/dist/services/FormattingService.d.ts.map +1 -0
- package/dist/services/FormattingService.js +68 -73
- package/dist/services/FormattingService.js.map +1 -1
- package/dist/services/InitService.d.ts +1 -0
- package/dist/services/InitService.d.ts.map +1 -0
- package/dist/services/InitService.js +12 -19
- package/dist/services/InitService.js.map +1 -1
- package/dist/services/PullService.d.ts +2 -1
- package/dist/services/PullService.d.ts.map +1 -0
- package/dist/services/PullService.js +49 -60
- package/dist/services/PullService.js.map +1 -1
- package/dist/services/PushService.d.ts +3 -1
- package/dist/services/PushService.d.ts.map +1 -0
- package/dist/services/PushService.js +144 -95
- package/dist/services/PushService.js.map +1 -1
- package/dist/services/StatusService.d.ts +2 -1
- package/dist/services/StatusService.d.ts.map +1 -0
- package/dist/services/StatusService.js +14 -22
- package/dist/services/StatusService.js.map +1 -1
- package/dist/services/ValidationService.d.ts +2 -1
- package/dist/services/ValidationService.d.ts.map +1 -0
- package/dist/services/ValidationService.js +41 -71
- package/dist/services/ValidationService.js.map +1 -1
- package/dist/services/WatchService.d.ts +4 -3
- package/dist/services/WatchService.d.ts.map +1 -0
- package/dist/services/WatchService.js +35 -43
- package/dist/services/WatchService.js.map +1 -1
- package/dist/services/index.d.ts +9 -8
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +8 -19
- package/dist/services/index.js.map +1 -1
- package/dist/types/validation.d.ts +2 -1
- package/dist/types/validation.d.ts.map +1 -0
- package/dist/types/validation.js +2 -23
- package/dist/types/validation.js.map +1 -1
- package/package.json +23 -21
|
@@ -1,26 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const core_1 = require("@memberjunction/core");
|
|
11
|
-
const config_1 = require("../config");
|
|
12
|
-
const provider_utils_1 = require("../lib/provider-utils");
|
|
13
|
-
const config_manager_1 = require("../lib/config-manager");
|
|
14
|
-
const json_write_helper_1 = require("../lib/json-write-helper");
|
|
15
|
-
class WatchService {
|
|
16
|
-
syncEngine;
|
|
17
|
-
debounceTimers = new Map();
|
|
18
|
-
sqlLoggingSession = null;
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import chokidar from 'chokidar';
|
|
4
|
+
import { Metadata } from '@memberjunction/core';
|
|
5
|
+
import { loadEntityConfig, loadSyncConfig } from '../config.js';
|
|
6
|
+
import { findEntityDirectories } from '../lib/provider-utils.js';
|
|
7
|
+
import { configManager } from '../lib/config-manager.js';
|
|
8
|
+
import { JsonWriteHelper } from '../lib/json-write-helper.js';
|
|
9
|
+
export class WatchService {
|
|
19
10
|
constructor(syncEngine) {
|
|
11
|
+
this.debounceTimers = new Map();
|
|
12
|
+
this.sqlLoggingSession = null;
|
|
20
13
|
this.syncEngine = syncEngine;
|
|
21
14
|
}
|
|
22
15
|
async watch(options = {}, callbacks) {
|
|
23
|
-
const entityDirs =
|
|
16
|
+
const entityDirs = findEntityDirectories(process.cwd(), options.dir);
|
|
24
17
|
if (entityDirs.length === 0) {
|
|
25
18
|
throw new Error('No entity directories found');
|
|
26
19
|
}
|
|
@@ -30,7 +23,7 @@ class WatchService {
|
|
|
30
23
|
// Set up watchers
|
|
31
24
|
const watchers = [];
|
|
32
25
|
for (const entityDir of entityDirs) {
|
|
33
|
-
const entityConfig = await
|
|
26
|
+
const entityConfig = await loadEntityConfig(entityDir);
|
|
34
27
|
if (!entityConfig) {
|
|
35
28
|
callbacks?.onWarn?.(`Skipping ${entityDir} - no valid entity configuration`);
|
|
36
29
|
continue;
|
|
@@ -38,12 +31,12 @@ class WatchService {
|
|
|
38
31
|
callbacks?.onLog?.(`Watching ${entityConfig.entity} in ${entityDir}`);
|
|
39
32
|
// Watch for JSON files and external files
|
|
40
33
|
const patterns = [
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
34
|
+
path.join(entityDir, entityConfig.filePattern || '**/*.json'),
|
|
35
|
+
path.join(entityDir, '**/*.md'),
|
|
36
|
+
path.join(entityDir, '**/*.txt'),
|
|
37
|
+
path.join(entityDir, '**/*.html'),
|
|
38
|
+
path.join(entityDir, '**/*.liquid'),
|
|
39
|
+
path.join(entityDir, '**/*.sql')
|
|
47
40
|
];
|
|
48
41
|
const ignored = [
|
|
49
42
|
'**/node_modules/**',
|
|
@@ -53,7 +46,7 @@ class WatchService {
|
|
|
53
46
|
'**/*.backup',
|
|
54
47
|
...(options.ignorePatterns || [])
|
|
55
48
|
];
|
|
56
|
-
const watcher =
|
|
49
|
+
const watcher = chokidar.watch(patterns, {
|
|
57
50
|
ignored,
|
|
58
51
|
persistent: true,
|
|
59
52
|
ignoreInitial: true
|
|
@@ -108,7 +101,7 @@ class WatchService {
|
|
|
108
101
|
const timer = setTimeout(async () => {
|
|
109
102
|
this.debounceTimers.delete(filePath);
|
|
110
103
|
try {
|
|
111
|
-
const relativePath =
|
|
104
|
+
const relativePath = path.relative(entityDir, filePath);
|
|
112
105
|
callbacks?.onLog?.(`File ${event}: ${relativePath}`);
|
|
113
106
|
if (event === 'deleted') {
|
|
114
107
|
// Handle deletion
|
|
@@ -134,7 +127,7 @@ class WatchService {
|
|
|
134
127
|
this.debounceTimers.set(filePath, timer);
|
|
135
128
|
}
|
|
136
129
|
async syncJsonFile(filePath, entityDir, entityConfig, callbacks) {
|
|
137
|
-
const recordData = await
|
|
130
|
+
const recordData = await fs.readJson(filePath);
|
|
138
131
|
// Keep original fields for file writing
|
|
139
132
|
const originalFields = { ...recordData.fields };
|
|
140
133
|
// Build defaults
|
|
@@ -161,7 +154,7 @@ class WatchService {
|
|
|
161
154
|
// Apply record fields with processed values for database operations
|
|
162
155
|
for (const [field, value] of Object.entries(recordData.fields)) {
|
|
163
156
|
if (field in entity) {
|
|
164
|
-
const processedValue = await this.syncEngine.processFieldValue(value,
|
|
157
|
+
const processedValue = await this.syncEngine.processFieldValue(value, path.dirname(filePath));
|
|
165
158
|
entity[field] = processedValue;
|
|
166
159
|
}
|
|
167
160
|
}
|
|
@@ -232,32 +225,32 @@ class WatchService {
|
|
|
232
225
|
// Always update sync metadata when the record was updated - use original fields for checksum
|
|
233
226
|
recordData.sync = {
|
|
234
227
|
lastModified: new Date().toISOString(),
|
|
235
|
-
checksum: await this.syncEngine.calculateChecksumWithFileContent(originalFields,
|
|
228
|
+
checksum: await this.syncEngine.calculateChecksumWithFileContent(originalFields, path.dirname(filePath))
|
|
236
229
|
};
|
|
237
230
|
// Restore original field values to preserve @ references
|
|
238
231
|
recordData.fields = originalFields;
|
|
239
232
|
// Write back to file
|
|
240
|
-
await
|
|
233
|
+
await JsonWriteHelper.writeOrderedRecordData(filePath, recordData);
|
|
241
234
|
}
|
|
242
235
|
}
|
|
243
236
|
}
|
|
244
237
|
async syncExternalFile(filePath, entityDir, entityConfig, callbacks) {
|
|
245
238
|
// Find the corresponding JSON file
|
|
246
|
-
const fileName =
|
|
239
|
+
const fileName = path.basename(filePath);
|
|
247
240
|
const parts = fileName.split('.');
|
|
248
241
|
if (parts.length >= 3) {
|
|
249
242
|
// Format: uuid.fieldname.ext
|
|
250
243
|
const jsonFileName = `${parts[0]}.json`;
|
|
251
244
|
const fieldName = parts[1];
|
|
252
|
-
const jsonFilePath =
|
|
253
|
-
if (await
|
|
245
|
+
const jsonFilePath = path.join(path.dirname(filePath), jsonFileName);
|
|
246
|
+
if (await fs.pathExists(jsonFilePath)) {
|
|
254
247
|
// Update the JSON file's sync metadata to trigger a sync
|
|
255
|
-
const recordData = await
|
|
248
|
+
const recordData = await fs.readJson(jsonFilePath);
|
|
256
249
|
recordData.sync = {
|
|
257
250
|
lastModified: new Date().toISOString(),
|
|
258
251
|
checksum: recordData.sync?.checksum || ''
|
|
259
252
|
};
|
|
260
|
-
await
|
|
253
|
+
await JsonWriteHelper.writeOrderedRecordData(jsonFilePath, recordData);
|
|
261
254
|
callbacks?.onLog?.(`Updated sync metadata for ${jsonFileName} due to external file change`);
|
|
262
255
|
}
|
|
263
256
|
}
|
|
@@ -265,9 +258,9 @@ class WatchService {
|
|
|
265
258
|
async setupSqlLogging(callbacks) {
|
|
266
259
|
try {
|
|
267
260
|
// Load sync config for SQL logging settings
|
|
268
|
-
const syncConfig = await
|
|
261
|
+
const syncConfig = await loadSyncConfig(configManager.getOriginalCwd());
|
|
269
262
|
if (syncConfig?.sqlLogging?.enabled) {
|
|
270
|
-
const provider =
|
|
263
|
+
const provider = Metadata.Provider; // SQLServerDataProvider
|
|
271
264
|
if (provider && typeof provider.CreateSqlLogger === 'function') {
|
|
272
265
|
// Generate filename with timestamp
|
|
273
266
|
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
@@ -275,10 +268,10 @@ class WatchService {
|
|
|
275
268
|
? `MetadataSync_Watch_${timestamp}.sql`
|
|
276
269
|
: `watch_${timestamp}.sql`;
|
|
277
270
|
// Use .sql-log-watch directory in the working directory
|
|
278
|
-
const outputDir =
|
|
279
|
-
const filepath =
|
|
271
|
+
const outputDir = path.join(configManager.getOriginalCwd(), '.sql-log-watch');
|
|
272
|
+
const filepath = path.join(outputDir, filename);
|
|
280
273
|
// Ensure the directory exists
|
|
281
|
-
await
|
|
274
|
+
await fs.ensureDir(outputDir);
|
|
282
275
|
// Create the SQL logging session
|
|
283
276
|
this.sqlLoggingSession = await provider.CreateSqlLogger(filepath, {
|
|
284
277
|
formatAsMigration: syncConfig.sqlLogging?.formatAsMigration || false,
|
|
@@ -294,5 +287,4 @@ class WatchService {
|
|
|
294
287
|
}
|
|
295
288
|
}
|
|
296
289
|
}
|
|
297
|
-
exports.WatchService = WatchService;
|
|
298
290
|
//# sourceMappingURL=WatchService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WatchService.js","sourceRoot":"","sources":["../../src/services/WatchService.ts"],"names":[],"mappings":"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","sourcesContent":["import fs from 'fs-extra';\nimport path from 'path';\nimport chokidar from 'chokidar';\nimport { BaseEntity, Metadata } from '@memberjunction/core';\nimport { SyncEngine, RecordData } from '../lib/sync-engine';\nimport { loadEntityConfig, loadSyncConfig } from '../config';\nimport { findEntityDirectories } from '../lib/provider-utils';\nimport { configManager } from '../lib/config-manager';\nimport { JsonWriteHelper } from '../lib/json-write-helper';\nimport type { SqlLoggingSession } from '@memberjunction/sqlserver-dataprovider';\n\nexport interface WatchOptions {\n dir?: string;\n debounceMs?: number;\n ignorePatterns?: string[];\n}\n\nexport interface WatchCallbacks {\n onFileAdd?: (filePath: string, entityDir: string, entityConfig: any) => void;\n onFileChange?: (filePath: string, entityDir: string, entityConfig: any) => void;\n onFileDelete?: (filePath: string, entityDir: string, entityConfig: any) => void;\n onLog?: (message: string) => void;\n onWarn?: (message: string) => void;\n onError?: (error: Error) => void;\n onRecordCreated?: (entity: BaseEntity, entityConfig: any) => void;\n onRecordUpdated?: (entity: BaseEntity, changes: any, entityConfig: any) => void;\n onRecordSaved?: (entity: BaseEntity, isNew: boolean, entityConfig: any) => void;\n}\n\nexport interface WatchResult {\n watchers: chokidar.FSWatcher[];\n stop: () => Promise<void>;\n}\n\nexport class WatchService {\n private syncEngine: SyncEngine;\n private debounceTimers: Map<string, NodeJS.Timeout> = new Map();\n private sqlLoggingSession: SqlLoggingSession | null = null;\n \n constructor(syncEngine: SyncEngine) {\n this.syncEngine = syncEngine;\n }\n \n async watch(options: WatchOptions = {}, callbacks?: WatchCallbacks): Promise<WatchResult> {\n const entityDirs = findEntityDirectories(process.cwd(), options.dir);\n \n if (entityDirs.length === 0) {\n throw new Error('No entity directories found');\n }\n \n callbacks?.onLog?.(`Watching ${entityDirs.length} entity ${entityDirs.length === 1 ? 'directory' : 'directories'} for changes`);\n \n // Setup SQL logging session\n await this.setupSqlLogging(callbacks);\n \n // Set up watchers\n const watchers: chokidar.FSWatcher[] = [];\n \n for (const entityDir of entityDirs) {\n const entityConfig = await loadEntityConfig(entityDir);\n if (!entityConfig) {\n callbacks?.onWarn?.(`Skipping ${entityDir} - no valid entity configuration`);\n continue;\n }\n \n callbacks?.onLog?.(`Watching ${entityConfig.entity} in ${entityDir}`);\n \n // Watch for JSON files and external files\n const patterns = [\n path.join(entityDir, entityConfig.filePattern || '**/*.json'),\n path.join(entityDir, '**/*.md'),\n path.join(entityDir, '**/*.txt'),\n path.join(entityDir, '**/*.html'),\n path.join(entityDir, '**/*.liquid'),\n path.join(entityDir, '**/*.sql')\n ];\n \n const ignored = [\n '**/node_modules/**',\n '**/.git/**',\n '**/.mj-sync.json',\n '**/.mj-folder.json',\n '**/*.backup',\n ...(options.ignorePatterns || [])\n ];\n \n const watcher = chokidar.watch(patterns, {\n ignored,\n persistent: true,\n ignoreInitial: true\n });\n \n watcher\n .on('add', (filePath) => {\n callbacks?.onFileAdd?.(filePath, entityDir, entityConfig);\n this.handleFileChange(filePath, 'added', entityDir, entityConfig, options, callbacks);\n })\n .on('change', (filePath) => {\n callbacks?.onFileChange?.(filePath, entityDir, entityConfig);\n this.handleFileChange(filePath, 'changed', entityDir, entityConfig, options, callbacks);\n })\n .on('unlink', (filePath) => {\n callbacks?.onFileDelete?.(filePath, entityDir, entityConfig);\n this.handleFileChange(filePath, 'deleted', entityDir, entityConfig, options, callbacks);\n });\n \n watchers.push(watcher);\n }\n \n return {\n watchers,\n stop: async () => {\n // Clear all debounce timers\n for (const timer of this.debounceTimers.values()) {\n clearTimeout(timer);\n }\n this.debounceTimers.clear();\n \n // Close all watchers\n await Promise.all(watchers.map(w => w.close()));\n \n // Dispose SQL logging session\n if (this.sqlLoggingSession) {\n try {\n callbacks?.onLog?.(`📝 SQL log written to: ${this.sqlLoggingSession.filePath}`);\n await this.sqlLoggingSession.dispose();\n this.sqlLoggingSession = null;\n } catch (error) {\n callbacks?.onWarn?.(`Failed to close SQL logging session: ${error}`);\n }\n }\n }\n };\n }\n \n private handleFileChange(\n filePath: string,\n event: string,\n entityDir: string,\n entityConfig: any,\n options: WatchOptions,\n callbacks?: WatchCallbacks\n ): void {\n // Clear existing debounce timer\n const existingTimer = this.debounceTimers.get(filePath);\n if (existingTimer) {\n clearTimeout(existingTimer);\n }\n \n // Set new debounce timer\n const debounceMs = options.debounceMs || 1000;\n const timer = setTimeout(async () => {\n this.debounceTimers.delete(filePath);\n \n try {\n const relativePath = path.relative(entityDir, filePath);\n callbacks?.onLog?.(`File ${event}: ${relativePath}`);\n \n if (event === 'deleted') {\n // Handle deletion\n callbacks?.onLog?.('File deletion detected - manual database cleanup may be required');\n } else if (filePath.endsWith('.json')) {\n // Handle JSON file change\n await this.syncJsonFile(filePath, entityDir, entityConfig, callbacks);\n } else {\n // Handle external file change\n await this.syncExternalFile(filePath, entityDir, entityConfig, callbacks);\n }\n } catch (error) {\n const errorMessage = `Failed to sync ${filePath}: ${(error as any).message || error}`;\n callbacks?.onWarn?.(errorMessage);\n if (error instanceof Error) {\n callbacks?.onError?.(error);\n }\n }\n }, debounceMs);\n \n this.debounceTimers.set(filePath, timer);\n }\n \n private async syncJsonFile(\n filePath: string,\n entityDir: string,\n entityConfig: any,\n callbacks?: WatchCallbacks\n ): Promise<void> {\n const recordData: RecordData = await fs.readJson(filePath);\n \n // Keep original fields for file writing\n const originalFields = { ...recordData.fields };\n \n // Build defaults\n const defaults = await this.syncEngine.buildDefaults(filePath, entityConfig);\n \n // Load or create entity\n let entity: BaseEntity | null = null;\n let isNew = false;\n \n if (recordData.primaryKey) {\n entity = await this.syncEngine.loadEntity(entityConfig.entity, recordData.primaryKey);\n }\n \n if (!entity) {\n // New record\n entity = await this.syncEngine.createEntityObject(entityConfig.entity);\n entity.NewRecord();\n isNew = true;\n \n // UUID generation now happens automatically in BaseEntity.NewRecord()\n }\n \n // Apply defaults first\n for (const [field, value] of Object.entries(defaults)) {\n if (field in entity) {\n (entity as any)[field] = value;\n }\n }\n \n // Apply record fields with processed values for database operations\n for (const [field, value] of Object.entries(recordData.fields)) {\n if (field in entity) {\n const processedValue = await this.syncEngine.processFieldValue(value, path.dirname(filePath));\n (entity as any)[field] = processedValue;\n }\n }\n \n // Check if the record is dirty before saving\n let wasActuallyUpdated = false;\n let changes: any = null;\n \n if (!isNew && entity.Dirty) {\n // Record is dirty, get the changes\n changes = entity.GetChangesSinceLastSave();\n const changeKeys = Object.keys(changes);\n if (changeKeys.length > 0) {\n wasActuallyUpdated = true;\n \n // Get primary key info for display\n const entityInfo = this.syncEngine.getEntityInfo(entityConfig.entity);\n const primaryKeyDisplay: string[] = [];\n if (entityInfo) {\n for (const pk of entityInfo.PrimaryKeys) {\n primaryKeyDisplay.push(`${pk.Name}: ${entity.Get(pk.Name)}`);\n }\n }\n \n callbacks?.onLog?.(`📝 Updating ${entityConfig.entity} record:`);\n if (primaryKeyDisplay.length > 0) {\n callbacks?.onLog?.(` Primary Key: ${primaryKeyDisplay.join(', ')}`);\n }\n callbacks?.onLog?.(` Changes:`);\n for (const fieldName of changeKeys) {\n const field = entity.GetFieldByName(fieldName);\n const oldValue = field ? field.OldValue : undefined;\n const newValue = (changes as any)[fieldName];\n callbacks?.onLog?.(` ${fieldName}: ${oldValue} → ${newValue}`);\n }\n \n callbacks?.onRecordUpdated?.(entity, changes, entityConfig);\n }\n } else if (isNew) {\n wasActuallyUpdated = true;\n callbacks?.onRecordCreated?.(entity, entityConfig);\n }\n \n // Save the record\n const saved = await entity.Save();\n if (!saved) {\n const message = entity.LatestResult?.Message;\n if (message) {\n throw new Error(`Failed to save record: ${message}`);\n }\n \n const errors = entity.LatestResult?.Errors?.map(err => \n typeof err === 'string' ? err : (err?.message || JSON.stringify(err))\n )?.join(', ') || 'Unknown error';\n throw new Error(`Failed to save record: ${errors}`);\n }\n \n if (wasActuallyUpdated) {\n callbacks?.onLog?.(`Successfully ${isNew ? 'created' : 'updated'} ${entityConfig.entity} record`);\n callbacks?.onRecordSaved?.(entity, isNew, entityConfig);\n } else {\n callbacks?.onLog?.(`No changes detected for ${entityConfig.entity} record - skipped update`);\n }\n \n // Update the local file with primary key and sync metadata\n if (wasActuallyUpdated) {\n const entityInfo = this.syncEngine.getEntityInfo(entityConfig.entity);\n if (entityInfo) {\n // Update primary key for new records\n if (isNew) {\n const newPrimaryKey: Record<string, any> = {};\n for (const pk of entityInfo.PrimaryKeys) {\n newPrimaryKey[pk.Name] = entity.Get(pk.Name);\n }\n recordData.primaryKey = newPrimaryKey;\n }\n \n // Always update sync metadata when the record was updated - use original fields for checksum\n recordData.sync = {\n lastModified: new Date().toISOString(),\n checksum: await this.syncEngine.calculateChecksumWithFileContent(originalFields, path.dirname(filePath))\n };\n \n // Restore original field values to preserve @ references\n recordData.fields = originalFields;\n \n // Write back to file\n await JsonWriteHelper.writeOrderedRecordData(filePath, recordData);\n }\n }\n }\n \n private async syncExternalFile(\n filePath: string,\n entityDir: string,\n entityConfig: any,\n callbacks?: WatchCallbacks\n ): Promise<void> {\n // Find the corresponding JSON file\n const fileName = path.basename(filePath);\n const parts = fileName.split('.');\n \n if (parts.length >= 3) {\n // Format: uuid.fieldname.ext\n const jsonFileName = `${parts[0]}.json`;\n const fieldName = parts[1];\n const jsonFilePath = path.join(path.dirname(filePath), jsonFileName);\n \n if (await fs.pathExists(jsonFilePath)) {\n // Update the JSON file's sync metadata to trigger a sync\n const recordData: RecordData = await fs.readJson(jsonFilePath);\n recordData.sync = {\n lastModified: new Date().toISOString(),\n checksum: recordData.sync?.checksum || ''\n };\n await JsonWriteHelper.writeOrderedRecordData(jsonFilePath, recordData);\n \n callbacks?.onLog?.(`Updated sync metadata for ${jsonFileName} due to external file change`);\n }\n }\n }\n \n private async setupSqlLogging(callbacks?: WatchCallbacks): Promise<void> {\n try {\n // Load sync config for SQL logging settings\n const syncConfig = await loadSyncConfig(configManager.getOriginalCwd());\n \n if (syncConfig?.sqlLogging?.enabled) {\n const provider = Metadata.Provider as any; // SQLServerDataProvider\n \n if (provider && typeof provider.CreateSqlLogger === 'function') {\n // Generate filename with timestamp\n const timestamp = new Date().toISOString().replace(/[:.]/g, '-');\n const filename = syncConfig.sqlLogging?.formatAsMigration \n ? `MetadataSync_Watch_${timestamp}.sql`\n : `watch_${timestamp}.sql`;\n \n // Use .sql-log-watch directory in the working directory\n const outputDir = path.join(configManager.getOriginalCwd(), '.sql-log-watch');\n const filepath = path.join(outputDir, filename);\n \n // Ensure the directory exists\n await fs.ensureDir(outputDir);\n \n // Create the SQL logging session\n this.sqlLoggingSession = await provider.CreateSqlLogger(filepath, {\n formatAsMigration: syncConfig.sqlLogging?.formatAsMigration || false,\n description: 'MetadataSync watch operation',\n logRecordChangeMetadata: true\n });\n \n callbacks?.onLog?.(`📝 SQL logging enabled: ${filepath}`);\n }\n }\n } catch (error) {\n callbacks?.onWarn?.(`Failed to setup SQL logging: ${error}`);\n }\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"WatchService.js","sourceRoot":"","sources":["../../src/services/WatchService.ts"],"names":[],"mappings":"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"}
|
package/dist/services/index.d.ts
CHANGED
|
@@ -6,11 +6,12 @@
|
|
|
6
6
|
* without the CLI interface. These services provide the core functionality
|
|
7
7
|
* for metadata synchronization operations.
|
|
8
8
|
*/
|
|
9
|
-
export { InitService, InitOptions, InitCallbacks } from './InitService';
|
|
10
|
-
export { PullService, PullOptions, PullCallbacks, PullResult } from './PullService';
|
|
11
|
-
export { PushService, PushOptions, PushCallbacks, PushResult, EntityPushResult } from './PushService';
|
|
12
|
-
export { ValidationService } from './ValidationService';
|
|
13
|
-
export { FormattingService } from './FormattingService';
|
|
14
|
-
export { StatusService, StatusOptions, StatusCallbacks, StatusResult, EntityStatusResult } from './StatusService';
|
|
15
|
-
export { FileResetService, FileResetOptions, FileResetCallbacks, FileResetResult } from './FileResetService';
|
|
16
|
-
export { WatchService, WatchOptions, WatchCallbacks, WatchResult } from './WatchService';
|
|
9
|
+
export { InitService, InitOptions, InitCallbacks } from './InitService.js';
|
|
10
|
+
export { PullService, PullOptions, PullCallbacks, PullResult } from './PullService.js';
|
|
11
|
+
export { PushService, PushOptions, PushCallbacks, PushResult, EntityPushResult } from './PushService.js';
|
|
12
|
+
export { ValidationService } from './ValidationService.js';
|
|
13
|
+
export { FormattingService } from './FormattingService.js';
|
|
14
|
+
export { StatusService, StatusOptions, StatusCallbacks, StatusResult, EntityStatusResult } from './StatusService.js';
|
|
15
|
+
export { FileResetService, FileResetOptions, FileResetCallbacks, FileResetResult } from './FileResetService.js';
|
|
16
|
+
export { WatchService, WatchOptions, WatchCallbacks, WatchResult } from './WatchService.js';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC7G,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/services/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* @fileoverview Service exports for MetadataSync library usage
|
|
4
3
|
* @module services
|
|
@@ -7,22 +6,12 @@
|
|
|
7
6
|
* without the CLI interface. These services provide the core functionality
|
|
8
7
|
* for metadata synchronization operations.
|
|
9
8
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
var ValidationService_1 = require("./ValidationService");
|
|
19
|
-
Object.defineProperty(exports, "ValidationService", { enumerable: true, get: function () { return ValidationService_1.ValidationService; } });
|
|
20
|
-
var FormattingService_1 = require("./FormattingService");
|
|
21
|
-
Object.defineProperty(exports, "FormattingService", { enumerable: true, get: function () { return FormattingService_1.FormattingService; } });
|
|
22
|
-
var StatusService_1 = require("./StatusService");
|
|
23
|
-
Object.defineProperty(exports, "StatusService", { enumerable: true, get: function () { return StatusService_1.StatusService; } });
|
|
24
|
-
var FileResetService_1 = require("./FileResetService");
|
|
25
|
-
Object.defineProperty(exports, "FileResetService", { enumerable: true, get: function () { return FileResetService_1.FileResetService; } });
|
|
26
|
-
var WatchService_1 = require("./WatchService");
|
|
27
|
-
Object.defineProperty(exports, "WatchService", { enumerable: true, get: function () { return WatchService_1.WatchService; } });
|
|
9
|
+
export { InitService } from './InitService.js';
|
|
10
|
+
export { PullService } from './PullService.js';
|
|
11
|
+
export { PushService } from './PushService.js';
|
|
12
|
+
export { ValidationService } from './ValidationService.js';
|
|
13
|
+
export { FormattingService } from './FormattingService.js';
|
|
14
|
+
export { StatusService } from './StatusService.js';
|
|
15
|
+
export { FileResetService } from './FileResetService.js';
|
|
16
|
+
export { WatchService } from './WatchService.js';
|
|
28
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAA8B,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,WAAW,EAA0C,MAAM,eAAe,CAAC;AACpF,OAAO,EAAE,WAAW,EAA4D,MAAM,eAAe,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAoE,MAAM,iBAAiB,CAAC;AAClH,OAAO,EAAE,gBAAgB,EAAyD,MAAM,oBAAoB,CAAC;AAC7G,OAAO,EAAE,YAAY,EAA6C,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Validation types and interfaces for MetadataSync
|
|
3
3
|
*/
|
|
4
|
-
import type { MetadataKeyword } from '../constants/metadata-keywords';
|
|
4
|
+
import type { MetadataKeyword } from '../constants/metadata-keywords.js';
|
|
5
5
|
export interface ValidationResult {
|
|
6
6
|
isValid: boolean;
|
|
7
7
|
errors: ValidationError[];
|
|
@@ -107,3 +107,4 @@ export interface ParsedReference {
|
|
|
107
107
|
createIfMissing?: boolean;
|
|
108
108
|
additionalFields?: Record<string, any>;
|
|
109
109
|
}
|
|
110
|
+
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/types/validation.ts"],"names":[],"mappings":"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"}
|
package/dist/types/validation.js
CHANGED
|
@@ -1,21 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Validation types and interfaces for MetadataSync
|
|
4
3
|
*/
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.ValidationWarningClass = exports.ValidationErrorClass = void 0;
|
|
7
4
|
/**
|
|
8
5
|
* Custom error class for validation errors
|
|
9
6
|
*/
|
|
10
|
-
class ValidationErrorClass extends Error {
|
|
11
|
-
type;
|
|
12
|
-
severity;
|
|
13
|
-
file;
|
|
14
|
-
entity;
|
|
15
|
-
field;
|
|
16
|
-
suggestion;
|
|
17
|
-
line;
|
|
18
|
-
column;
|
|
7
|
+
export class ValidationErrorClass extends Error {
|
|
19
8
|
constructor(error) {
|
|
20
9
|
super(error.message);
|
|
21
10
|
this.name = 'ValidationError';
|
|
@@ -48,19 +37,10 @@ class ValidationErrorClass extends Error {
|
|
|
48
37
|
return msg;
|
|
49
38
|
}
|
|
50
39
|
}
|
|
51
|
-
exports.ValidationErrorClass = ValidationErrorClass;
|
|
52
40
|
/**
|
|
53
41
|
* Custom warning class for validation warnings
|
|
54
42
|
*/
|
|
55
|
-
class ValidationWarningClass extends Error {
|
|
56
|
-
type;
|
|
57
|
-
severity;
|
|
58
|
-
file;
|
|
59
|
-
entity;
|
|
60
|
-
field;
|
|
61
|
-
suggestion;
|
|
62
|
-
line;
|
|
63
|
-
column;
|
|
43
|
+
export class ValidationWarningClass extends Error {
|
|
64
44
|
constructor(warning) {
|
|
65
45
|
super(warning.message);
|
|
66
46
|
this.name = 'ValidationWarning';
|
|
@@ -93,5 +73,4 @@ class ValidationWarningClass extends Error {
|
|
|
93
73
|
return msg;
|
|
94
74
|
}
|
|
95
75
|
}
|
|
96
|
-
exports.ValidationWarningClass = ValidationWarningClass;
|
|
97
76
|
//# sourceMappingURL=validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/types/validation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/types/validation.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/metadata-sync",
|
|
3
|
-
"
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "4.1.0",
|
|
4
5
|
"description": "MemberJunction metadata synchronization CLI tool",
|
|
5
6
|
"keywords": [
|
|
6
7
|
"metadata",
|
|
@@ -23,33 +24,34 @@
|
|
|
23
24
|
"/dist"
|
|
24
25
|
],
|
|
25
26
|
"scripts": {
|
|
26
|
-
"build": "tsc -b"
|
|
27
|
+
"build": "tsc -b && tsc-alias -f"
|
|
27
28
|
},
|
|
28
29
|
"dependencies": {
|
|
29
|
-
"@memberjunction/
|
|
30
|
-
"@memberjunction/
|
|
31
|
-
"@memberjunction/core
|
|
32
|
-
"@memberjunction/core-entities
|
|
33
|
-
"@memberjunction/
|
|
34
|
-
"@memberjunction/
|
|
35
|
-
"@memberjunction/
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
30
|
+
"@memberjunction/server-bootstrap-lite": "4.1.0",
|
|
31
|
+
"@memberjunction/config": "4.1.0",
|
|
32
|
+
"@memberjunction/core": "4.1.0",
|
|
33
|
+
"@memberjunction/core-entities": "4.1.0",
|
|
34
|
+
"@memberjunction/core-entities-server": "4.1.0",
|
|
35
|
+
"@memberjunction/global": "4.1.0",
|
|
36
|
+
"@memberjunction/graphql-dataprovider": "4.1.0",
|
|
37
|
+
"@memberjunction/sqlserver-dataprovider": "4.1.0",
|
|
38
|
+
"axios": "^1.13.4",
|
|
39
|
+
"chalk": "^5.6.2",
|
|
40
|
+
"chokidar": "^5.0.0",
|
|
39
41
|
"cosmiconfig": "9.0.0",
|
|
40
|
-
"dotenv": "
|
|
41
|
-
"fast-glob": "^3.3.
|
|
42
|
-
"fs-extra": "^11.
|
|
43
|
-
"minimatch": "^
|
|
44
|
-
"mssql": "^
|
|
45
|
-
"uuid": "^
|
|
46
|
-
"zod": "
|
|
42
|
+
"dotenv": "17.2.4",
|
|
43
|
+
"fast-glob": "^3.3.3",
|
|
44
|
+
"fs-extra": "^11.3.3",
|
|
45
|
+
"minimatch": "^10.1.2",
|
|
46
|
+
"mssql": "^12.2.0",
|
|
47
|
+
"uuid": "^13.0.0",
|
|
48
|
+
"zod": "~3.24.4"
|
|
47
49
|
},
|
|
48
50
|
"devDependencies": {
|
|
49
51
|
"@types/fs-extra": "^11.0.4",
|
|
50
|
-
"rimraf": "
|
|
52
|
+
"rimraf": "6.1.2",
|
|
51
53
|
"ts-node": "^10.9.2",
|
|
52
|
-
"typescript": "^5.
|
|
54
|
+
"typescript": "^5.9.3"
|
|
53
55
|
},
|
|
54
56
|
"engines": {
|
|
55
57
|
"node": ">=20.0.0"
|