legal-markdown-js 2.0.1 → 2.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.
@@ -0,0 +1,193 @@
1
+ # Assets Directory
2
+
3
+ This directory contains static assets used by Legal Markdown JS for PDF
4
+ generation and document styling.
5
+
6
+ ## Directory Structure
7
+
8
+ ```
9
+ src/assets/
10
+ ├── images/ # Logo and image files for PDF headers/footers
11
+ │ └── ... # Additional logos
12
+ └── README.md # This file
13
+ ```
14
+
15
+ ## Logo Integration
16
+
17
+ ### Overview
18
+
19
+ The PDF generator automatically detects and includes logos in document headers
20
+ when:
21
+
22
+ 1. A CSS file contains the `--logo-filename` custom property
23
+ 2. The referenced logo file exists in this `images/` directory
24
+ 3. The logo meets validation requirements (PNG format, ≤500KB)
25
+
26
+ ### Usage
27
+
28
+ #### Step 1: Add Logo File
29
+
30
+ Place your PNG logo in the `src/assets/images/` directory:
31
+
32
+ ```
33
+ src/assets/images/logo.company.png
34
+ ```
35
+
36
+ #### Step 2: Reference in CSS
37
+
38
+ Add the logo filename to your CSS file:
39
+
40
+ ```css
41
+ :root {
42
+ --logo-filename: logo.company.png;
43
+ }
44
+ ```
45
+
46
+ #### Step 3: Generate PDF with Logo
47
+
48
+ ```typescript
49
+ import { generatePdf } from 'legal-markdown-js';
50
+
51
+ const buffer = await generatePdf(content, 'output.pdf', {
52
+ cssPath: './styles/contract.css', // Contains --logo-filename
53
+ });
54
+ ```
55
+
56
+ ### Logo Requirements
57
+
58
+ | Property | Requirement | Notes |
59
+ | -------------- | -------------------- | ------------------------------------------------------ |
60
+ | **Format** | PNG only | Validated using PNG magic numbers |
61
+ | **Size** | ≤ 500KB | Configurable in `PDF_TEMPLATE_CONSTANTS.MAX_LOGO_SIZE` |
62
+ | **Dimensions** | Any | Automatically scaled to 40px height in headers |
63
+ | **Location** | `src/assets/images/` | Copied to `dist/assets/images/` during build |
64
+
65
+ ### Validation Process
66
+
67
+ The system performs the following validation checks:
68
+
69
+ 1. **File Existence**: Verifies the file exists in the images directory
70
+ 2. **Size Check**: Ensures file size is within the 500KB limit
71
+ 3. **Format Validation**: Checks PNG magic numbers (0x89, 0x50, 0x4E, 0x47)
72
+ 4. **Base64 Encoding**: Converts valid files for embedding in PDF templates
73
+
74
+ ### Error Handling
75
+
76
+ If logo validation fails, the system:
77
+
78
+ - Logs a warning message with the specific error
79
+ - Continues PDF generation without the logo
80
+ - Uses an empty header template as fallback
81
+
82
+ ### Build Process
83
+
84
+ During the build process (`npm run build`), all assets are copied from
85
+ `src/assets/` to `dist/assets/` to ensure they're available in the compiled
86
+ package.
87
+
88
+ ## File Naming Conventions
89
+
90
+ - Use descriptive names: `logo.company-name.png`
91
+ - Include version if needed: `logo.company.v2.png`
92
+ - Use lowercase with hyphens or dots for separation
93
+ - Avoid spaces and special characters
94
+
95
+ ## Examples
96
+
97
+ ### Basic Logo Integration
98
+
99
+ ```css
100
+ /* styles/contract.css */
101
+ :root {
102
+ --logo-filename: logo.petalo.png;
103
+ }
104
+ ```
105
+
106
+ ### Multiple Logos for Different Documents
107
+
108
+ ```css
109
+ /* styles/contract.css */
110
+ :root {
111
+ --logo-filename: logo.legal-dept.png;
112
+ }
113
+
114
+ /* styles/invoice.css */
115
+ :root {
116
+ --logo-filename: logo.accounting.png;
117
+ }
118
+ ```
119
+
120
+ ### Conditional Logo Usage
121
+
122
+ ```typescript
123
+ // Different logos based on document type
124
+ const cssPath =
125
+ documentType === 'contract'
126
+ ? './styles/contract.css' // Uses logo.legal.png
127
+ : './styles/general.css'; // Uses logo.company.png
128
+
129
+ const buffer = await generatePdf(content, 'output.pdf', { cssPath });
130
+ ```
131
+
132
+ ## Template Customization
133
+
134
+ For advanced logo positioning and styling, use the template helper functions:
135
+
136
+ ```typescript
137
+ import { PdfTemplates } from 'legal-markdown-js/generators/pdf-templates';
138
+
139
+ // Custom header with logo and text
140
+ const headerTemplate = PdfTemplates.generateCustomHeaderTemplate(
141
+ 'Confidential Document',
142
+ logoBase64
143
+ );
144
+
145
+ // Standard header with just logo
146
+ const simpleHeader = PdfTemplates.generateHeaderTemplate(logoBase64);
147
+ ```
148
+
149
+ ## Troubleshooting
150
+
151
+ ### Common Issues
152
+
153
+ **Logo not appearing in PDF:**
154
+
155
+ - Check CSS contains `--logo-filename: filename.png;`
156
+ - Verify file exists in `src/assets/images/`
157
+ - Ensure file is valid PNG format
158
+ - Check file size is under 500KB
159
+
160
+ **Build errors:**
161
+
162
+ - Ensure `src/assets/` is copied to `dist/` in build script
163
+ - Verify file permissions allow reading the logo file
164
+
165
+ **Invalid format errors:**
166
+
167
+ - Only PNG format is supported
168
+ - Use image conversion tools to convert other formats to PNG
169
+
170
+ ### Debug Logging
171
+
172
+ Enable debug logging to see detailed logo detection information:
173
+
174
+ ```typescript
175
+ import { generatePdf } from 'legal-markdown-js';
176
+
177
+ // Debug logs will show logo detection process
178
+ const buffer = await generatePdf(content, 'output.pdf', {
179
+ cssPath: './styles/contract.css',
180
+ });
181
+ ```
182
+
183
+ Look for log messages like:
184
+
185
+ - `Auto-detecting logo from CSS`
186
+ - `Logo detected and loaded successfully`
187
+ - `Logo detection failed, proceeding without logo`
188
+
189
+ ## Related Documentation
190
+
191
+ - [PDF Generation Features](../../docs/FEATURES-GUIDE.md#pdf-with-logo-headersfooters)
192
+ - [CSS Classes Documentation](../../docs/CSS-CLASSES.md)
193
+ - [Architecture Overview](../../docs/ARCHITECTURE.md)
@@ -1 +1 @@
1
- {"version":3,"file":"pdf-generator.d.ts","sourceRoot":"","sources":["../../src/generators/pdf-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAMH,OAAO,EAAiB,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAIvE;;;;;GAKG;AACH,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;IAC/D,8BAA8B;IAC9B,MAAM,CAAC,EAAE,IAAI,GAAG,QAAQ,GAAG,OAAO,CAAC;IACnC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iCAAiC;IACjC,MAAM,CAAC,EAAE;QACP,wCAAwC;QACxC,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,0CAA0C;QAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,2CAA2C;QAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,yCAAyC;QACzC,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,2CAA2C;IAC3C,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAyGD;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,gBAAgB,CAYtB;IAEF;;;;OAIG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACG,WAAW,CACf,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,MAAM,CAAC;IA2IlB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,mBAAmB,CACvB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC;QACT,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CAoBH;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,cAAqB,CAAC"}
1
+ {"version":3,"file":"pdf-generator.d.ts","sourceRoot":"","sources":["../../src/generators/pdf-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAQH,OAAO,EAAiB,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAIvE;;;;;GAKG;AACH,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;IAC/D,8BAA8B;IAC9B,MAAM,CAAC,EAAE,IAAI,GAAG,QAAQ,GAAG,OAAO,CAAC;IACnC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iCAAiC;IACjC,MAAM,CAAC,EAAE;QACP,wCAAwC;QACxC,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,0CAA0C;QAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,2CAA2C;QAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,yCAAyC;QACzC,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,2CAA2C;IAC3C,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,yDAAyD;IACzD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA0OD;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,gBAAgB,CAYtB;IAEF;;;;OAIG;;IAGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACG,WAAW,CACf,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,MAAM,CAAC;IAmJlB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,mBAAmB,CACvB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC;QACT,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CAoBH;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,YAAY,cAAqB,CAAC"}
@@ -67,6 +67,8 @@ exports.pdfGenerator = exports.PdfGenerator = void 0;
67
67
  const puppeteer = __importStar(require("puppeteer"));
68
68
  const fs = __importStar(require("fs/promises"));
69
69
  const path = __importStar(require("path"));
70
+ const https = __importStar(require("https"));
71
+ const http = __importStar(require("http"));
70
72
  const logger_1 = require("../utils/logger");
71
73
  const html_generator_1 = require("./html-generator");
72
74
  const pdf_templates_1 = require("./pdf-templates");
@@ -161,6 +163,111 @@ async function loadAndEncodeImage(logoPath) {
161
163
  throw error;
162
164
  }
163
165
  }
166
+ /**
167
+ * Downloads and validates logo image from external URL, converting to base64
168
+ *
169
+ * Performs comprehensive validation:
170
+ * - URL accessibility and download
171
+ * - File size limit (500KB max)
172
+ * - PNG format validation using magic numbers
173
+ * - Base64 encoding for embedding
174
+ *
175
+ * @async
176
+ * @param {string} logoUrl - URL to the logo image
177
+ * @returns {Promise<string>} Base64 encoded image string
178
+ * @throws {Error} When download or validation fails
179
+ * @example
180
+ * ```typescript
181
+ * const base64Logo = await downloadAndEncodeImage('https://example.com/logo.png');
182
+ * // Returns: 'iVBORw0KGgoAAAANSUhEUgAAA...'
183
+ * ```
184
+ */
185
+ async function downloadAndEncodeImage(logoUrl) {
186
+ return new Promise((resolve, reject) => {
187
+ try {
188
+ logger_1.logger.debug('Downloading logo from URL', { logoUrl });
189
+ const protocol = logoUrl.startsWith('https://') ? https : http;
190
+ const request = protocol.get(logoUrl, response => {
191
+ // Check for redirect
192
+ if (response.statusCode === 301 || response.statusCode === 302) {
193
+ const redirectUrl = response.headers.location;
194
+ if (redirectUrl) {
195
+ logger_1.logger.debug('Following redirect', { from: logoUrl, to: redirectUrl });
196
+ downloadAndEncodeImage(redirectUrl).then(resolve).catch(reject);
197
+ return;
198
+ }
199
+ }
200
+ // Check for successful response
201
+ if (response.statusCode !== 200) {
202
+ reject(new Error(`Failed to download logo: HTTP ${response.statusCode}`));
203
+ return;
204
+ }
205
+ // Check content length
206
+ const contentLength = parseInt(response.headers['content-length'] || '0', 10);
207
+ if (contentLength > constants_1.PDF_TEMPLATE_CONSTANTS.MAX_LOGO_SIZE) {
208
+ reject(new Error(`Logo file too large: ${contentLength} bytes ` +
209
+ `(max ${constants_1.PDF_TEMPLATE_CONSTANTS.MAX_LOGO_SIZE})`));
210
+ return;
211
+ }
212
+ const chunks = [];
213
+ let downloadedBytes = 0;
214
+ response.on('data', (chunk) => {
215
+ downloadedBytes += chunk.length;
216
+ // Check size limit during download
217
+ if (downloadedBytes > constants_1.PDF_TEMPLATE_CONSTANTS.MAX_LOGO_SIZE) {
218
+ reject(new Error(`Logo file too large: ${downloadedBytes} bytes ` +
219
+ `(max ${constants_1.PDF_TEMPLATE_CONSTANTS.MAX_LOGO_SIZE})`));
220
+ return;
221
+ }
222
+ chunks.push(chunk);
223
+ });
224
+ response.on('end', () => {
225
+ try {
226
+ const logoBuffer = Buffer.concat(chunks);
227
+ // Validate PNG magic numbers (0x89, 0x50, 0x4E, 0x47)
228
+ if (logoBuffer.length < 8 ||
229
+ logoBuffer[0] !== 0x89 ||
230
+ logoBuffer[1] !== 0x50 ||
231
+ logoBuffer[2] !== 0x4e ||
232
+ logoBuffer[3] !== 0x47) {
233
+ reject(new Error('Invalid logo file format: must be PNG'));
234
+ return;
235
+ }
236
+ // Convert to base64
237
+ const base64Logo = logoBuffer.toString('base64');
238
+ logger_1.logger.debug('Logo downloaded and encoded successfully', {
239
+ url: logoUrl,
240
+ size: logoBuffer.length,
241
+ base64Length: base64Logo.length,
242
+ });
243
+ resolve(base64Logo);
244
+ }
245
+ catch (error) {
246
+ reject(error);
247
+ }
248
+ });
249
+ response.on('error', error => {
250
+ reject(new Error(`Failed to download logo: ${error.message}`));
251
+ });
252
+ });
253
+ request.on('error', error => {
254
+ reject(new Error(`Failed to download logo: ${error.message}`));
255
+ });
256
+ // Set timeout for the request
257
+ request.setTimeout(10000, () => {
258
+ request.destroy();
259
+ reject(new Error('Logo download timeout (10 seconds)'));
260
+ });
261
+ }
262
+ catch (error) {
263
+ logger_1.logger.error('Failed to download logo from URL', {
264
+ logoUrl,
265
+ error: error instanceof Error ? error.message : String(error),
266
+ });
267
+ reject(error);
268
+ }
269
+ });
270
+ }
164
271
  /**
165
272
  * PDF Generator for Legal Markdown Documents
166
273
  *
@@ -276,12 +383,21 @@ class PdfGenerator {
276
383
  logger_1.logger.debug('Auto-detecting logo from CSS', { cssPath: options.cssPath });
277
384
  const logoFilename = await detectLogoFromCSS(options.cssPath);
278
385
  if (logoFilename) {
279
- // Construct absolute path to logo file
280
- const logoPath = path.join(__dirname, '../assets/images', logoFilename);
281
- logoBase64 = await loadAndEncodeImage(logoPath);
386
+ // Check if logoFilename is an external URL or local file
387
+ if (logoFilename.startsWith('http://') || logoFilename.startsWith('https://')) {
388
+ // Handle external URL
389
+ logoBase64 = await downloadAndEncodeImage(logoFilename);
390
+ }
391
+ else {
392
+ // Handle local file
393
+ const logoPath = path.join(__dirname, '../assets/images', logoFilename);
394
+ logoBase64 = await loadAndEncodeImage(logoPath);
395
+ }
282
396
  logger_1.logger.info('Logo detected and loaded successfully', {
283
397
  logoFilename,
284
- logoPath,
398
+ logoPath: logoFilename.startsWith('http')
399
+ ? logoFilename
400
+ : `${__dirname}/../assets/images/${logoFilename}`,
285
401
  cssPath: options.cssPath,
286
402
  });
287
403
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pdf-generator.js","sourceRoot":"","sources":["../../src/generators/pdf-generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdf-generator.js","sourceRoot":"","sources":["../../src/generators/pdf-generator.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,11 @@
1
1
  /* Default CSS for Legal Markdown HTML Generation */
2
2
 
3
+ /* Variables and Configuration */
4
+ :root {
5
+ /* Assets - Default logo placeholder */
6
+ --logo-filename: https://placehold.co/120x40/2563eb/ffffff.png?text=LOGO;
7
+ }
8
+
3
9
  /* Base styles */
4
10
  body {
5
11
  font-family: -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "legal-markdown-js",
3
- "version": "2.0.1",
3
+ "version": "2.1.0",
4
4
  "description": "Node.js implementation of LegalMarkdown for processing legal documents with markdown and YAML - Complete feature parity with Ruby version",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "scripts": {
8
- "build": "tsc && tsc-alias && cp -r src/styles dist/ && cp -r src/web dist/ && npm run build:umd && cp dist/legal-markdown.umd.min.js dist/web/",
8
+ "build": "tsc && tsc-alias && cp -r src/styles dist/ && cp -r src/web dist/ && cp -r src/assets dist/ && npm run build:umd && cp dist/legal-markdown.umd.min.js dist/web/",
9
9
  "build:umd": "webpack --mode production --config webpack.config.js",
10
10
  "build:watch": "tsc --watch",
11
11
  "clean": "rm -rf dist coverage .turbo && tsc --build --clean",