legal-markdown-js 2.10.0 → 2.11.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/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +51 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/service.d.ts.map +1 -1
- package/dist/cli/service.js +2 -1
- package/dist/cli/service.js.map +1 -1
- package/dist/core/processors/import-processor.d.ts +9 -3
- package/dist/core/processors/import-processor.d.ts.map +1 -1
- package/dist/core/processors/import-processor.js +92 -5
- package/dist/core/processors/import-processor.js.map +1 -1
- package/dist/core/utils/frontmatter-merger.d.ts +204 -0
- package/dist/core/utils/frontmatter-merger.d.ts.map +1 -0
- package/dist/core/utils/frontmatter-merger.js +366 -0
- package/dist/core/utils/frontmatter-merger.js.map +1 -0
- package/dist/core/utils/object-flattener.d.ts +153 -0
- package/dist/core/utils/object-flattener.d.ts.map +1 -0
- package/dist/core/utils/object-flattener.js +246 -0
- package/dist/core/utils/object-flattener.js.map +1 -0
- package/dist/core/utils/reserved-fields-filter.d.ts +169 -0
- package/dist/core/utils/reserved-fields-filter.d.ts.map +1 -0
- package/dist/core/utils/reserved-fields-filter.js +279 -0
- package/dist/core/utils/reserved-fields-filter.js.map +1 -0
- package/dist/extensions/pipeline/pipeline-config.d.ts.map +1 -1
- package/dist/extensions/pipeline/pipeline-config.js +15 -4
- package/dist/extensions/pipeline/pipeline-config.js.map +1 -1
- package/dist/extensions/pipeline/pipeline-logger.d.ts.map +1 -1
- package/dist/extensions/pipeline/pipeline-logger.js +4 -1
- package/dist/extensions/pipeline/pipeline-logger.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -3
- package/dist/index.js.map +1 -1
- package/dist/legal-markdown.umd.min.js +1 -1
- package/dist/legal-markdown.umd.min.js.map +1 -1
- package/dist/types.d.ts +27 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/logger.d.ts +5 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +15 -0
- package/dist/utils/logger.js.map +1 -1
- package/dist/web/legal-markdown.umd.min.js +1 -1
- package/package.json +1 -1
package/dist/cli/index.d.ts
CHANGED
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
* - Comprehensive processing options and flags
|
|
13
13
|
* - Field highlighting and styling options
|
|
14
14
|
* - Metadata export capabilities
|
|
15
|
+
* - Frontmatter merging from imported files
|
|
16
|
+
* - Import tracing and debugging options
|
|
15
17
|
* - Error handling and user feedback
|
|
16
18
|
* - Debug mode support
|
|
17
19
|
*
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG"}
|
package/dist/cli/index.js
CHANGED
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
* - Comprehensive processing options and flags
|
|
14
14
|
* - Field highlighting and styling options
|
|
15
15
|
* - Metadata export capabilities
|
|
16
|
+
* - Frontmatter merging from imported files
|
|
17
|
+
* - Import tracing and debugging options
|
|
16
18
|
* - Error handling and user feedback
|
|
17
19
|
* - Debug mode support
|
|
18
20
|
*
|
|
@@ -31,12 +33,46 @@
|
|
|
31
33
|
* legal-md input.md --export-yaml --output-path metadata.yaml
|
|
32
34
|
* ```
|
|
33
35
|
*/
|
|
36
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
37
|
+
if (k2 === undefined) k2 = k;
|
|
38
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
39
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
40
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
41
|
+
}
|
|
42
|
+
Object.defineProperty(o, k2, desc);
|
|
43
|
+
}) : (function(o, m, k, k2) {
|
|
44
|
+
if (k2 === undefined) k2 = k;
|
|
45
|
+
o[k2] = m[k];
|
|
46
|
+
}));
|
|
47
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
48
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
49
|
+
}) : function(o, v) {
|
|
50
|
+
o["default"] = v;
|
|
51
|
+
});
|
|
52
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
53
|
+
var ownKeys = function(o) {
|
|
54
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
55
|
+
var ar = [];
|
|
56
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
57
|
+
return ar;
|
|
58
|
+
};
|
|
59
|
+
return ownKeys(o);
|
|
60
|
+
};
|
|
61
|
+
return function (mod) {
|
|
62
|
+
if (mod && mod.__esModule) return mod;
|
|
63
|
+
var result = {};
|
|
64
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
65
|
+
__setModuleDefault(result, mod);
|
|
66
|
+
return result;
|
|
67
|
+
};
|
|
68
|
+
})();
|
|
34
69
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
70
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
71
|
};
|
|
37
72
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
73
|
const commander_1 = require("commander");
|
|
39
74
|
const chalk_1 = __importDefault(require("chalk"));
|
|
75
|
+
const fs = __importStar(require("fs"));
|
|
40
76
|
const service_1 = require("./service");
|
|
41
77
|
const _errors_1 = require("../errors/index.js");
|
|
42
78
|
const _constants_1 = require("../constants/index.js");
|
|
@@ -94,6 +130,10 @@ program
|
|
|
94
130
|
.option('--html', 'Generate HTML output')
|
|
95
131
|
.option('--highlight', 'Enable field highlighting in HTML/PDF output')
|
|
96
132
|
.option('--enable-field-tracking', 'Add field tracking spans to markdown output')
|
|
133
|
+
.option('--disable-frontmatter-merge', 'Disable automatic frontmatter merging from imported files (enabled by default)')
|
|
134
|
+
.option('--import-tracing', 'Add HTML comments showing imported content boundaries')
|
|
135
|
+
.option('--validate-import-types', 'Validate type compatibility during frontmatter merging')
|
|
136
|
+
.option('--log-import-operations', 'Log detailed frontmatter merge operations')
|
|
97
137
|
.option('--css <path>', 'Path to custom CSS file for HTML/PDF')
|
|
98
138
|
.option('--title <title>', 'Document title for HTML/PDF')
|
|
99
139
|
.option('--archive-source [dir]', 'Archive source file after successful processing to directory')
|
|
@@ -123,6 +163,10 @@ program
|
|
|
123
163
|
html: options.html,
|
|
124
164
|
highlight: options.highlight,
|
|
125
165
|
enableFieldTrackingInMarkdown: options.enableFieldTracking,
|
|
166
|
+
disableFrontmatterMerge: options.disableFrontmatterMerge,
|
|
167
|
+
importTracing: options.importTracing,
|
|
168
|
+
validateImportTypes: options.validateImportTypes,
|
|
169
|
+
logImportOperations: options.logImportOperations,
|
|
126
170
|
css: options.css,
|
|
127
171
|
title: options.title,
|
|
128
172
|
archiveSource: options.archiveSource,
|
|
@@ -135,7 +179,7 @@ program
|
|
|
135
179
|
console.log(result);
|
|
136
180
|
}
|
|
137
181
|
else {
|
|
138
|
-
|
|
182
|
+
fs.writeFileSync(outputFile, result);
|
|
139
183
|
console.error(`✅ Output written to: ${outputFile}`);
|
|
140
184
|
}
|
|
141
185
|
return;
|
|
@@ -149,6 +193,8 @@ program
|
|
|
149
193
|
console.error(chalk_1.default.cyan(' legal-md document.md --pdf --title "Doc" ') + '# Generate PDF');
|
|
150
194
|
console.error(chalk_1.default.cyan(' legal-md document.md --html --highlight ') +
|
|
151
195
|
'# Generate HTML with highlighting');
|
|
196
|
+
console.error(chalk_1.default.cyan(' legal-md doc.md --disable-frontmatter-merge') +
|
|
197
|
+
'# Disable imported frontmatter merging');
|
|
152
198
|
console.error(chalk_1.default.cyan(' cat document.md | legal-md --stdin ') + '# Process from stdin');
|
|
153
199
|
console.error(chalk_1.default.cyan(' legal-md --help ') + '# Show all options\n');
|
|
154
200
|
process.exit(1);
|
|
@@ -174,6 +220,10 @@ program
|
|
|
174
220
|
html: options.html,
|
|
175
221
|
highlight: options.highlight,
|
|
176
222
|
enableFieldTrackingInMarkdown: options.enableFieldTracking,
|
|
223
|
+
disableFrontmatterMerge: options.disableFrontmatterMerge,
|
|
224
|
+
importTracing: options.importTracing,
|
|
225
|
+
validateImportTypes: options.validateImportTypes,
|
|
226
|
+
logImportOperations: options.logImportOperations,
|
|
177
227
|
css: options.css,
|
|
178
228
|
title: options.title,
|
|
179
229
|
archiveSource: options.archiveSource,
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;AAEA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/cli/service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/cli/service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAgB9C;;;;;GAKG;AACH,MAAM,WAAW,UAAW,SAAQ,oBAAoB;IACtD,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0BAA0B;IAC1B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,2BAA2B;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,gCAAgC;IAChC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,8BAA8B;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAClC;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAa;IAE5B;;;;OAIG;gBACS,OAAO,GAAE,UAAe;IAIpC;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAQ1B;;;;;;;;;OASG;IACU,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8D/E;;;;;;;OAOG;IACU,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAgB7D;;;;;;;OAOG;IACH,OAAO,CAAC,GAAG;IAoBX;;;;;;;;;OASG;YACW,kCAAkC;IAsFhD;;;;;;;;OAQG;YACW,eAAe;IAiD7B;;;;;;OAMG;IACH,OAAO,CAAC,WAAW;IAiBnB;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;CAyC7B"}
|
package/dist/cli/service.js
CHANGED
|
@@ -76,6 +76,7 @@ const archive_manager_1 = require("../utils/archive-manager");
|
|
|
76
76
|
const file_naming_1 = require("../utils/file-naming");
|
|
77
77
|
const chalk_1 = __importDefault(require("chalk"));
|
|
78
78
|
const path = __importStar(require("path"));
|
|
79
|
+
const fs = __importStar(require("fs"));
|
|
79
80
|
/**
|
|
80
81
|
* Service class for CLI operations and document processing
|
|
81
82
|
*
|
|
@@ -142,7 +143,7 @@ class CliService {
|
|
|
142
143
|
this.log(`Processing file: ${inputPath}`, 'info');
|
|
143
144
|
const resolvedInputPath = (0, _lib_1.resolveFilePath)(this.options.basePath, inputPath);
|
|
144
145
|
// Check if file exists before trying to read it
|
|
145
|
-
if (!
|
|
146
|
+
if (!fs.existsSync(resolvedInputPath)) {
|
|
146
147
|
throw new _errors_1.FileNotFoundError(resolvedInputPath);
|
|
147
148
|
}
|
|
148
149
|
const content = (0, _lib_1.readFileSync)(resolvedInputPath);
|
package/dist/cli/service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/cli/service.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,oCAAgG;AAEhG,+BAAoE;AACpE,qCAAgE;AAChE,iFAI+C;AAC/C,6DAAmE;AACnE,2CAAmD;AACnD,8DAA0D;AAC1D,sDAA6D;AAC7D,kDAA0B;AAC1B,2CAA6B;
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/cli/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
* console.log(result.importedFiles); // Array of imported file paths
|
|
38
38
|
* ```
|
|
39
39
|
*/
|
|
40
|
-
import { ImportProcessingResult } from '
|
|
40
|
+
import { ImportProcessingResult, LegalMarkdownOptions } from '../../types';
|
|
41
41
|
/**
|
|
42
42
|
* Processes partial imports in a LegalMarkdown document
|
|
43
43
|
*
|
|
@@ -45,9 +45,15 @@ import { ImportProcessingResult } from '@types';
|
|
|
45
45
|
* It recursively resolves and includes external files, tracking all imported files
|
|
46
46
|
* and handling errors gracefully when files cannot be found or loaded.
|
|
47
47
|
*
|
|
48
|
+
* By default, it also extracts YAML frontmatter from imported files and merges it using
|
|
49
|
+
* the "source always wins" strategy with flattened granular merging. This can be disabled
|
|
50
|
+
* with the disableFrontmatterMerge option.
|
|
51
|
+
*
|
|
48
52
|
* @param {string} content - The document content containing import statements
|
|
49
53
|
* @param {string} [basePath] - Optional base path for resolving relative imports
|
|
50
|
-
* @
|
|
54
|
+
* @param {Record<string, any>} [currentMetadata] - Current document metadata for merging
|
|
55
|
+
* @param {LegalMarkdownOptions} [options] - Processing options including frontmatter merge settings
|
|
56
|
+
* @returns {ImportProcessingResult} Object containing processed content, list of imported files, and merged metadata
|
|
51
57
|
* @example
|
|
52
58
|
* ```typescript
|
|
53
59
|
* // Basic import processing
|
|
@@ -78,7 +84,7 @@ import { ImportProcessingResult } from '@types';
|
|
|
78
84
|
* // Result will include content from existing.md and error comment for missing.md
|
|
79
85
|
* ```
|
|
80
86
|
*/
|
|
81
|
-
export declare function processPartialImports(content: string, basePath?: string): ImportProcessingResult;
|
|
87
|
+
export declare function processPartialImports(content: string, basePath?: string, currentMetadata?: Record<string, any>, options?: LegalMarkdownOptions): ImportProcessingResult;
|
|
82
88
|
/**
|
|
83
89
|
* Validates that all import paths in a document exist
|
|
84
90
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-processor.d.ts","sourceRoot":"","sources":["../../../src/core/processors/import-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAIH,OAAO,EAAE,sBAAsB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"import-processor.d.ts","sourceRoot":"","sources":["../../../src/core/processors/import-processor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAIH,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAI3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,sBAAsB,CA2IxB;AAwCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAqB5E"}
|
|
@@ -76,6 +76,8 @@ exports.processPartialImports = processPartialImports;
|
|
|
76
76
|
exports.validateImports = validateImports;
|
|
77
77
|
const fs = __importStar(require("fs"));
|
|
78
78
|
const path = __importStar(require("path"));
|
|
79
|
+
const yaml_parser_1 = require("../parsers/yaml-parser");
|
|
80
|
+
const frontmatter_merger_1 = require("../utils/frontmatter-merger");
|
|
79
81
|
/**
|
|
80
82
|
* Processes partial imports in a LegalMarkdown document
|
|
81
83
|
*
|
|
@@ -83,9 +85,15 @@ const path = __importStar(require("path"));
|
|
|
83
85
|
* It recursively resolves and includes external files, tracking all imported files
|
|
84
86
|
* and handling errors gracefully when files cannot be found or loaded.
|
|
85
87
|
*
|
|
88
|
+
* By default, it also extracts YAML frontmatter from imported files and merges it using
|
|
89
|
+
* the "source always wins" strategy with flattened granular merging. This can be disabled
|
|
90
|
+
* with the disableFrontmatterMerge option.
|
|
91
|
+
*
|
|
86
92
|
* @param {string} content - The document content containing import statements
|
|
87
93
|
* @param {string} [basePath] - Optional base path for resolving relative imports
|
|
88
|
-
* @
|
|
94
|
+
* @param {Record<string, any>} [currentMetadata] - Current document metadata for merging
|
|
95
|
+
* @param {LegalMarkdownOptions} [options] - Processing options including frontmatter merge settings
|
|
96
|
+
* @returns {ImportProcessingResult} Object containing processed content, list of imported files, and merged metadata
|
|
89
97
|
* @example
|
|
90
98
|
* ```typescript
|
|
91
99
|
* // Basic import processing
|
|
@@ -116,12 +124,29 @@ const path = __importStar(require("path"));
|
|
|
116
124
|
* // Result will include content from existing.md and error comment for missing.md
|
|
117
125
|
* ```
|
|
118
126
|
*/
|
|
119
|
-
function processPartialImports(content, basePath) {
|
|
127
|
+
function processPartialImports(content, basePath, currentMetadata, options) {
|
|
128
|
+
const startTime = Date.now();
|
|
129
|
+
const timeoutMs = 30000; // 30 seconds for complete import processing
|
|
120
130
|
// Regular expression to match import statements
|
|
121
131
|
// Format: @import [filename]
|
|
122
132
|
const importPattern = /@import\s+(.+?)(?:\s|$)/g;
|
|
123
133
|
const importedFiles = [];
|
|
134
|
+
const importedMetadataList = [];
|
|
135
|
+
// Configure merge options based on processing options
|
|
136
|
+
const mergeOptions = {
|
|
137
|
+
filterReserved: true,
|
|
138
|
+
validateTypes: options?.validateImportTypes ?? true,
|
|
139
|
+
logOperations: options?.logImportOperations ?? false,
|
|
140
|
+
includeStats: options?.logImportOperations ?? false,
|
|
141
|
+
timeoutMs: Math.max(2000, timeoutMs - (Date.now() - startTime)), // Allocate remaining time for merge
|
|
142
|
+
};
|
|
124
143
|
const processedContent = content.replace(importPattern, (match, filename) => {
|
|
144
|
+
// Timeout safety check during import processing
|
|
145
|
+
if (Date.now() - startTime > timeoutMs) {
|
|
146
|
+
const message = `Import processing timed out after ${timeoutMs}ms. ` +
|
|
147
|
+
'This may indicate complex nested imports or circular references.';
|
|
148
|
+
throw new Error(message);
|
|
149
|
+
}
|
|
125
150
|
// Clean up filename (remove quotes, etc.)
|
|
126
151
|
const cleanFilename = filename.trim().replace(/['"]/g, '');
|
|
127
152
|
try {
|
|
@@ -131,19 +156,81 @@ function processPartialImports(content, basePath) {
|
|
|
131
156
|
const importedContent = fs.readFileSync(importPath, 'utf8');
|
|
132
157
|
// Track imported files
|
|
133
158
|
importedFiles.push(importPath);
|
|
134
|
-
|
|
135
|
-
|
|
159
|
+
let processedImportContent = importedContent;
|
|
160
|
+
let importedMetadata = {};
|
|
161
|
+
// Extract frontmatter unless merging is explicitly disabled
|
|
162
|
+
if (options?.disableFrontmatterMerge !== true) {
|
|
163
|
+
const yamlResult = (0, yaml_parser_1.parseYamlFrontMatter)(importedContent, false);
|
|
164
|
+
processedImportContent = yamlResult.content;
|
|
165
|
+
importedMetadata = yamlResult.metadata;
|
|
166
|
+
// Store metadata for later merging
|
|
167
|
+
if (Object.keys(importedMetadata).length > 0) {
|
|
168
|
+
importedMetadataList.push(importedMetadata);
|
|
169
|
+
if (options?.logImportOperations) {
|
|
170
|
+
const fieldCount = Object.keys(importedMetadata).length;
|
|
171
|
+
console.log(`Extracted ${fieldCount} metadata fields from ${cleanFilename}`);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// Process nested imports (pass along metadata and options)
|
|
176
|
+
const nestedResult = processPartialImports(processedImportContent, path.dirname(importPath), importedMetadata, options);
|
|
136
177
|
importedFiles.push(...nestedResult.importedFiles);
|
|
137
|
-
|
|
178
|
+
// Collect nested metadata if available
|
|
179
|
+
if (nestedResult.mergedMetadata && Object.keys(nestedResult.mergedMetadata).length > 0) {
|
|
180
|
+
importedMetadataList.push(nestedResult.mergedMetadata);
|
|
181
|
+
}
|
|
182
|
+
// Add import tracing comments if enabled
|
|
183
|
+
let tracedContent = nestedResult.content;
|
|
184
|
+
if (options?.importTracing) {
|
|
185
|
+
const relativeImportPath = path.relative(basePath || process.cwd(), importPath);
|
|
186
|
+
const startComment = `<!-- start import: ${relativeImportPath} -->`;
|
|
187
|
+
const endComment = `<!-- end import: ${relativeImportPath} -->`;
|
|
188
|
+
tracedContent = `${startComment}\n${tracedContent}\n${endComment}`;
|
|
189
|
+
}
|
|
190
|
+
return tracedContent;
|
|
138
191
|
}
|
|
139
192
|
catch (error) {
|
|
140
193
|
console.error(`Error importing file ${cleanFilename}:`, error);
|
|
141
194
|
return `<!-- Error importing ${cleanFilename} -->`;
|
|
142
195
|
}
|
|
143
196
|
});
|
|
197
|
+
// Merge all collected metadata unless explicitly disabled
|
|
198
|
+
let mergedMetadata;
|
|
199
|
+
const shouldMerge = options?.disableFrontmatterMerge !== true && importedMetadataList.length > 0;
|
|
200
|
+
if (shouldMerge) {
|
|
201
|
+
const initialMetadata = currentMetadata || {};
|
|
202
|
+
if (options?.logImportOperations) {
|
|
203
|
+
const currentFieldCount = Object.keys(initialMetadata).length;
|
|
204
|
+
console.log(`Merging metadata from ${importedMetadataList.length} imports with ${currentFieldCount} current fields`);
|
|
205
|
+
}
|
|
206
|
+
// Calculate remaining time and allocate granular timeouts
|
|
207
|
+
const remainingTime = timeoutMs - (Date.now() - startTime);
|
|
208
|
+
if (remainingTime < 1000) {
|
|
209
|
+
throw new Error('Insufficient time remaining for metadata merging.');
|
|
210
|
+
}
|
|
211
|
+
const perImportTimeout = Math.max(500, Math.floor(remainingTime / importedMetadataList.length));
|
|
212
|
+
const mergeResult = (0, frontmatter_merger_1.mergeSequentially)(initialMetadata, importedMetadataList, {
|
|
213
|
+
...mergeOptions,
|
|
214
|
+
timeoutMs: perImportTimeout,
|
|
215
|
+
});
|
|
216
|
+
mergedMetadata = mergeResult.metadata;
|
|
217
|
+
if (options?.logImportOperations && mergeResult.stats) {
|
|
218
|
+
console.log('Frontmatter merge completed:');
|
|
219
|
+
console.log(` - Properties added: ${mergeResult.stats.propertiesAdded}`);
|
|
220
|
+
console.log(` - Conflicts resolved: ${mergeResult.stats.conflictsResolved}`);
|
|
221
|
+
console.log(` - Reserved fields filtered: ${mergeResult.stats.reservedFieldsFiltered}`);
|
|
222
|
+
if (mergeResult.stats.addedFields.length > 0) {
|
|
223
|
+
console.log(` - Added fields: ${mergeResult.stats.addedFields.join(', ')}`);
|
|
224
|
+
}
|
|
225
|
+
if (mergeResult.stats.conflictedFields.length > 0) {
|
|
226
|
+
console.log(` - Conflicted fields (source wins): ${mergeResult.stats.conflictedFields.join(', ')}`);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
144
230
|
return {
|
|
145
231
|
content: processedContent,
|
|
146
232
|
importedFiles,
|
|
233
|
+
mergedMetadata,
|
|
147
234
|
};
|
|
148
235
|
}
|
|
149
236
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import-processor.js","sourceRoot":"","sources":["../../../src/core/processors/import-processor.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"import-processor.js","sourceRoot":"","sources":["../../../src/core/processors/import-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Frontmatter Merger for Import Processing
|
|
3
|
+
*
|
|
4
|
+
* This module provides the core functionality for merging YAML frontmatter from
|
|
5
|
+
* imported files using the "source always wins" strategy with flattened merging.
|
|
6
|
+
* It enables granular merging at the property level while maintaining predictable
|
|
7
|
+
* conflict resolution.
|
|
8
|
+
*
|
|
9
|
+
* Features:
|
|
10
|
+
* - Flattened merging for granular property-level control
|
|
11
|
+
* - "Source always wins" conflict resolution strategy
|
|
12
|
+
* - Type conflict detection and validation
|
|
13
|
+
* - Reserved field filtering integration
|
|
14
|
+
* - Comprehensive merge statistics and reporting
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* import { mergeFlattened, validateMergeCompatibility } from './frontmatter-merger';
|
|
19
|
+
*
|
|
20
|
+
* const current = {
|
|
21
|
+
* title: "Main Document",
|
|
22
|
+
* config: { server: "prod", port: 8080 }
|
|
23
|
+
* };
|
|
24
|
+
*
|
|
25
|
+
* const imported = {
|
|
26
|
+
* config: { level: "high", server: "dev" }, // server conflict - current wins
|
|
27
|
+
* client: "Acme Corp" // new field - added
|
|
28
|
+
* };
|
|
29
|
+
*
|
|
30
|
+
* const result = mergeFlattened(current, imported);
|
|
31
|
+
* // {
|
|
32
|
+
* // title: "Main Document",
|
|
33
|
+
* // config: { server: "prod", port: 8080, level: "high" },
|
|
34
|
+
* // client: "Acme Corp"
|
|
35
|
+
* // }
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
38
|
+
/**
|
|
39
|
+
* Options for frontmatter merging
|
|
40
|
+
*/
|
|
41
|
+
export interface MergeOptions {
|
|
42
|
+
/** Whether to filter reserved fields from imported metadata */
|
|
43
|
+
filterReserved?: boolean;
|
|
44
|
+
/** Whether to validate type compatibility before merging */
|
|
45
|
+
validateTypes?: boolean;
|
|
46
|
+
/** Whether to log merge operations for debugging */
|
|
47
|
+
logOperations?: boolean;
|
|
48
|
+
/** Custom conflict resolution strategy (future extension) */
|
|
49
|
+
conflictStrategy?: 'source-wins' | 'import-wins' | 'error';
|
|
50
|
+
/** Whether to include merge statistics in result */
|
|
51
|
+
includeStats?: boolean;
|
|
52
|
+
/** Maximum execution time in milliseconds (default: 10000ms) */
|
|
53
|
+
timeoutMs?: number;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Result of a merge operation
|
|
57
|
+
*/
|
|
58
|
+
export interface MergeResult {
|
|
59
|
+
/** Merged metadata object */
|
|
60
|
+
metadata: Record<string, any>;
|
|
61
|
+
/** Statistics about the merge operation */
|
|
62
|
+
stats?: MergeStats;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Statistics about a merge operation
|
|
66
|
+
*/
|
|
67
|
+
export interface MergeStats {
|
|
68
|
+
/** Total properties in current metadata */
|
|
69
|
+
currentProperties: number;
|
|
70
|
+
/** Total properties in imported metadata */
|
|
71
|
+
importedProperties: number;
|
|
72
|
+
/** Properties added from imported metadata */
|
|
73
|
+
propertiesAdded: number;
|
|
74
|
+
/** Properties that had conflicts (current wins) */
|
|
75
|
+
conflictsResolved: number;
|
|
76
|
+
/** Reserved fields filtered out */
|
|
77
|
+
reservedFieldsFiltered: number;
|
|
78
|
+
/** List of fields that were added */
|
|
79
|
+
addedFields: string[];
|
|
80
|
+
/** List of fields that had conflicts */
|
|
81
|
+
conflictedFields: string[];
|
|
82
|
+
/** List of reserved fields that were filtered */
|
|
83
|
+
filteredFields: string[];
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Error thrown when merge validation fails
|
|
87
|
+
*/
|
|
88
|
+
export declare class MergeValidationError extends Error {
|
|
89
|
+
field: string;
|
|
90
|
+
currentType: string;
|
|
91
|
+
importedType: string;
|
|
92
|
+
constructor(message: string, field: string, currentType: string, importedType: string);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Merges imported frontmatter into current frontmatter using flattened strategy
|
|
96
|
+
*
|
|
97
|
+
* Uses the "source always wins" strategy where the current metadata takes precedence
|
|
98
|
+
* over imported metadata in case of conflicts. Supports granular merging at the
|
|
99
|
+
* property level using dot notation flattening.
|
|
100
|
+
*
|
|
101
|
+
* @param current - Current metadata (takes precedence)
|
|
102
|
+
* @param imported - Imported metadata to merge
|
|
103
|
+
* @param options - Merge configuration options
|
|
104
|
+
* @returns Merged metadata or MergeResult with statistics
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```typescript
|
|
108
|
+
* const current = {
|
|
109
|
+
* document: { title: "Contract", version: "1.0" },
|
|
110
|
+
* client: "Main Client"
|
|
111
|
+
* };
|
|
112
|
+
*
|
|
113
|
+
* const imported = {
|
|
114
|
+
* document: { title: "Import Doc", author: "John Doe" }, // title conflicts - current wins
|
|
115
|
+
* metadata: { created: "@today" } // new field - added
|
|
116
|
+
* };
|
|
117
|
+
*
|
|
118
|
+
* const result = mergeFlattened(current, imported, { includeStats: true });
|
|
119
|
+
* // result.metadata = {
|
|
120
|
+
* // document: { title: "Contract", version: "1.0", author: "John Doe" },
|
|
121
|
+
* // client: "Main Client",
|
|
122
|
+
* // metadata: { created: "@today" }
|
|
123
|
+
* // }
|
|
124
|
+
* // result.stats.propertiesAdded = 2
|
|
125
|
+
* // result.stats.conflictsResolved = 1
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
export declare function mergeFlattened(current: Record<string, any>, imported: Record<string, any>, options?: MergeOptions): Record<string, any>;
|
|
129
|
+
export declare function mergeFlattened(current: Record<string, any>, imported: Record<string, any>, options: MergeOptions & {
|
|
130
|
+
includeStats: true;
|
|
131
|
+
}): MergeResult;
|
|
132
|
+
/**
|
|
133
|
+
* Validates that two values are compatible for merging
|
|
134
|
+
*
|
|
135
|
+
* Checks if the current and imported values have compatible types.
|
|
136
|
+
* Throws MergeValidationError if types are incompatible.
|
|
137
|
+
*
|
|
138
|
+
* @param current - Current value
|
|
139
|
+
* @param imported - Imported value to merge
|
|
140
|
+
* @param key - Property key for error reporting
|
|
141
|
+
* @throws MergeValidationError when types are incompatible
|
|
142
|
+
*
|
|
143
|
+
* @example
|
|
144
|
+
* ```typescript
|
|
145
|
+
* // Compatible types - no error
|
|
146
|
+
* validateMergeCompatibility("string", "another string", "title");
|
|
147
|
+
* validateMergeCompatibility(42, 100, "count");
|
|
148
|
+
*
|
|
149
|
+
* // Incompatible types - throws error
|
|
150
|
+
* try {
|
|
151
|
+
* validateMergeCompatibility("string", { object: true }, "config");
|
|
152
|
+
* } catch (error) {
|
|
153
|
+
* console.log(error.message); // "Type conflict for 'config': current=string, imported=object"
|
|
154
|
+
* }
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
export declare function validateMergeCompatibility(current: any, imported: any, key: string): void;
|
|
158
|
+
/**
|
|
159
|
+
* Performs a dry run merge to preview results
|
|
160
|
+
*
|
|
161
|
+
* Simulates a merge operation without actually performing it.
|
|
162
|
+
* Useful for validation and preview purposes.
|
|
163
|
+
*
|
|
164
|
+
* @param current - Current metadata
|
|
165
|
+
* @param imported - Imported metadata
|
|
166
|
+
* @param options - Merge options
|
|
167
|
+
* @returns Preview of merge results
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```typescript
|
|
171
|
+
* const preview = previewMerge(current, imported, { filterReserved: true });
|
|
172
|
+
* console.log(`Would add ${preview.stats.propertiesAdded} properties`);
|
|
173
|
+
* console.log(`Would resolve ${preview.stats.conflictsResolved} conflicts`);
|
|
174
|
+
* console.log(`Would filter ${preview.stats.reservedFieldsFiltered} reserved fields`);
|
|
175
|
+
* ```
|
|
176
|
+
*/
|
|
177
|
+
export declare function previewMerge(current: Record<string, any>, imported: Record<string, any>, options?: MergeOptions): MergeResult;
|
|
178
|
+
/**
|
|
179
|
+
* Merges multiple imported metadata objects sequentially
|
|
180
|
+
*
|
|
181
|
+
* Applies the merge operation sequentially across multiple imports,
|
|
182
|
+
* where each result becomes the new "current" for the next merge.
|
|
183
|
+
*
|
|
184
|
+
* @param initial - Initial metadata (usually from main document)
|
|
185
|
+
* @param imports - Array of imported metadata objects to merge
|
|
186
|
+
* @param options - Merge options applied to all operations
|
|
187
|
+
* @returns Final merged metadata with cumulative statistics
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* ```typescript
|
|
191
|
+
* const initial = { title: "Main Doc" };
|
|
192
|
+
* const imports = [
|
|
193
|
+
* { config: { level: "high" } },
|
|
194
|
+
* { config: { debug: true }, client: "Acme" },
|
|
195
|
+
* { metadata: { version: "1.0" } }
|
|
196
|
+
* ];
|
|
197
|
+
*
|
|
198
|
+
* const result = mergeSequentially(initial, imports, { includeStats: true });
|
|
199
|
+
* // result.metadata contains all merged properties
|
|
200
|
+
* // result.stats contains cumulative statistics
|
|
201
|
+
* ```
|
|
202
|
+
*/
|
|
203
|
+
export declare function mergeSequentially(initial: Record<string, any>, imports: Record<string, any>[], options?: MergeOptions): MergeResult;
|
|
204
|
+
//# sourceMappingURL=frontmatter-merger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frontmatter-merger.d.ts","sourceRoot":"","sources":["../../../src/core/utils/frontmatter-merger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAKH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,+DAA+D;IAC/D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,oDAAoD;IACpD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6DAA6D;IAC7D,gBAAgB,CAAC,EAAE,aAAa,GAAG,aAAa,GAAG,OAAO,CAAC;IAC3D,oDAAoD;IACpD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,2CAA2C;IAC3C,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,2CAA2C;IAC3C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4CAA4C;IAC5C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,mDAAmD;IACnD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mCAAmC;IACnC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qCAAqC;IACrC,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,wCAAwC;IACxC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,iDAAiD;IACjD,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAGpC,KAAK,EAAE,MAAM;IACb,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,MAAM;gBAH3B,OAAO,EAAE,MAAM,EACR,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM;CAK9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,OAAO,CAAC,EAAE,YAAY,GACrB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACvB,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,OAAO,EAAE,YAAY,GAAG;IAAE,YAAY,EAAE,IAAI,CAAA;CAAE,GAC7C,WAAW,CAAC;AAwIf;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAkCzF;AAiBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,OAAO,GAAE,YAAiB,GACzB,WAAW,CAEb;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAC9B,OAAO,GAAE,YAAiB,GACzB,WAAW,CA2Db"}
|