legal-markdown-js 0.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 (175) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +168 -0
  3. package/dist/browser.d.ts +87 -0
  4. package/dist/browser.d.ts.map +1 -0
  5. package/dist/browser.js +157 -0
  6. package/dist/browser.js.map +1 -0
  7. package/dist/cli/index.d.ts +34 -0
  8. package/dist/cli/index.d.ts.map +1 -0
  9. package/dist/cli/index.js +221 -0
  10. package/dist/cli/index.js.map +1 -0
  11. package/dist/cli/service.d.ts +128 -0
  12. package/dist/cli/service.d.ts.map +1 -0
  13. package/dist/cli/service.js +284 -0
  14. package/dist/cli/service.js.map +1 -0
  15. package/dist/constants/index.d.ts +229 -0
  16. package/dist/constants/index.d.ts.map +1 -0
  17. package/dist/constants/index.js +232 -0
  18. package/dist/constants/index.js.map +1 -0
  19. package/dist/core/exporters/metadata-exporter.d.ts +104 -0
  20. package/dist/core/exporters/metadata-exporter.d.ts.map +1 -0
  21. package/dist/core/exporters/metadata-exporter.js +201 -0
  22. package/dist/core/exporters/metadata-exporter.js.map +1 -0
  23. package/dist/core/index.d.ts +40 -0
  24. package/dist/core/index.d.ts.map +1 -0
  25. package/dist/core/index.js +56 -0
  26. package/dist/core/index.js.map +1 -0
  27. package/dist/core/parsers/yaml-parser.d.ts +149 -0
  28. package/dist/core/parsers/yaml-parser.d.ts.map +1 -0
  29. package/dist/core/parsers/yaml-parser.js +321 -0
  30. package/dist/core/parsers/yaml-parser.js.map +1 -0
  31. package/dist/core/processors/clause-processor.d.ts +74 -0
  32. package/dist/core/processors/clause-processor.d.ts.map +1 -0
  33. package/dist/core/processors/clause-processor.js +213 -0
  34. package/dist/core/processors/clause-processor.js.map +1 -0
  35. package/dist/core/processors/date-processor.d.ts +90 -0
  36. package/dist/core/processors/date-processor.d.ts.map +1 -0
  37. package/dist/core/processors/date-processor.js +336 -0
  38. package/dist/core/processors/date-processor.js.map +1 -0
  39. package/dist/core/processors/header-processor.d.ts +104 -0
  40. package/dist/core/processors/header-processor.d.ts.map +1 -0
  41. package/dist/core/processors/header-processor.js +585 -0
  42. package/dist/core/processors/header-processor.js.map +1 -0
  43. package/dist/core/processors/import-processor.d.ts +116 -0
  44. package/dist/core/processors/import-processor.d.ts.map +1 -0
  45. package/dist/core/processors/import-processor.js +236 -0
  46. package/dist/core/processors/import-processor.js.map +1 -0
  47. package/dist/core/processors/mixin-processor.d.ts +93 -0
  48. package/dist/core/processors/mixin-processor.d.ts.map +1 -0
  49. package/dist/core/processors/mixin-processor.js +378 -0
  50. package/dist/core/processors/mixin-processor.js.map +1 -0
  51. package/dist/core/processors/reference-processor.d.ts +115 -0
  52. package/dist/core/processors/reference-processor.d.ts.map +1 -0
  53. package/dist/core/processors/reference-processor.js +273 -0
  54. package/dist/core/processors/reference-processor.js.map +1 -0
  55. package/dist/errors/index.d.ts +234 -0
  56. package/dist/errors/index.d.ts.map +1 -0
  57. package/dist/errors/index.js +267 -0
  58. package/dist/errors/index.js.map +1 -0
  59. package/dist/extensions/batch-processor.d.ts +197 -0
  60. package/dist/extensions/batch-processor.d.ts.map +1 -0
  61. package/dist/extensions/batch-processor.js +392 -0
  62. package/dist/extensions/batch-processor.js.map +1 -0
  63. package/dist/extensions/formatters/index.d.ts +99 -0
  64. package/dist/extensions/formatters/index.d.ts.map +1 -0
  65. package/dist/extensions/formatters/index.js +128 -0
  66. package/dist/extensions/formatters/index.js.map +1 -0
  67. package/dist/extensions/index.d.ts +53 -0
  68. package/dist/extensions/index.d.ts.map +1 -0
  69. package/dist/extensions/index.js +71 -0
  70. package/dist/extensions/index.js.map +1 -0
  71. package/dist/extensions/latex-parser.d.ts +111 -0
  72. package/dist/extensions/latex-parser.d.ts.map +1 -0
  73. package/dist/extensions/latex-parser.js +563 -0
  74. package/dist/extensions/latex-parser.js.map +1 -0
  75. package/dist/extensions/rst-parser.d.ts +112 -0
  76. package/dist/extensions/rst-parser.d.ts.map +1 -0
  77. package/dist/extensions/rst-parser.js +268 -0
  78. package/dist/extensions/rst-parser.js.map +1 -0
  79. package/dist/extensions/template-loops.d.ts +61 -0
  80. package/dist/extensions/template-loops.d.ts.map +1 -0
  81. package/dist/extensions/template-loops.js +418 -0
  82. package/dist/extensions/template-loops.js.map +1 -0
  83. package/dist/extensions/utilities/index.d.ts +114 -0
  84. package/dist/extensions/utilities/index.d.ts.map +1 -0
  85. package/dist/extensions/utilities/index.js +137 -0
  86. package/dist/extensions/utilities/index.js.map +1 -0
  87. package/dist/extensions/validators/index.d.ts +65 -0
  88. package/dist/extensions/validators/index.d.ts.map +1 -0
  89. package/dist/extensions/validators/index.js +88 -0
  90. package/dist/extensions/validators/index.js.map +1 -0
  91. package/dist/generators/html-generator.d.ts +184 -0
  92. package/dist/generators/html-generator.d.ts.map +1 -0
  93. package/dist/generators/html-generator.js +361 -0
  94. package/dist/generators/html-generator.js.map +1 -0
  95. package/dist/generators/pdf-generator.d.ts +165 -0
  96. package/dist/generators/pdf-generator.d.ts.map +1 -0
  97. package/dist/generators/pdf-generator.js +275 -0
  98. package/dist/generators/pdf-generator.js.map +1 -0
  99. package/dist/helpers/date-helpers.d.ts +216 -0
  100. package/dist/helpers/date-helpers.d.ts.map +1 -0
  101. package/dist/helpers/date-helpers.js +402 -0
  102. package/dist/helpers/date-helpers.js.map +1 -0
  103. package/dist/helpers/index.d.ts +87 -0
  104. package/dist/helpers/index.d.ts.map +1 -0
  105. package/dist/helpers/index.js +149 -0
  106. package/dist/helpers/index.js.map +1 -0
  107. package/dist/helpers/number-helpers.d.ts +269 -0
  108. package/dist/helpers/number-helpers.d.ts.map +1 -0
  109. package/dist/helpers/number-helpers.js +406 -0
  110. package/dist/helpers/number-helpers.js.map +1 -0
  111. package/dist/helpers/string-helpers.d.ts +391 -0
  112. package/dist/helpers/string-helpers.d.ts.map +1 -0
  113. package/dist/helpers/string-helpers.js +549 -0
  114. package/dist/helpers/string-helpers.js.map +1 -0
  115. package/dist/index.d.ts +229 -0
  116. package/dist/index.d.ts.map +1 -0
  117. package/dist/index.js +384 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/legal-markdown.umd.min.js +2 -0
  120. package/dist/legal-markdown.umd.min.js.LICENSE.txt +14 -0
  121. package/dist/legal-markdown.umd.min.js.map +1 -0
  122. package/dist/lib/index.d.ts +150 -0
  123. package/dist/lib/index.d.ts.map +1 -0
  124. package/dist/lib/index.js +265 -0
  125. package/dist/lib/index.js.map +1 -0
  126. package/dist/parsers/content-detector.d.ts +131 -0
  127. package/dist/parsers/content-detector.d.ts.map +1 -0
  128. package/dist/parsers/content-detector.js +220 -0
  129. package/dist/parsers/content-detector.js.map +1 -0
  130. package/dist/parsers/fallback-parsers.d.ts +14 -0
  131. package/dist/parsers/fallback-parsers.d.ts.map +1 -0
  132. package/dist/parsers/fallback-parsers.js +188 -0
  133. package/dist/parsers/fallback-parsers.js.map +1 -0
  134. package/dist/parsers/implementations/pandoc-native.d.ts +13 -0
  135. package/dist/parsers/implementations/pandoc-native.d.ts.map +1 -0
  136. package/dist/parsers/implementations/pandoc-native.js +63 -0
  137. package/dist/parsers/implementations/pandoc-native.js.map +1 -0
  138. package/dist/parsers/implementations/pandoc-wasm.d.ts +14 -0
  139. package/dist/parsers/implementations/pandoc-wasm.d.ts.map +1 -0
  140. package/dist/parsers/implementations/pandoc-wasm.js +64 -0
  141. package/dist/parsers/implementations/pandoc-wasm.js.map +1 -0
  142. package/dist/parsers/pandoc-factory.d.ts +97 -0
  143. package/dist/parsers/pandoc-factory.d.ts.map +1 -0
  144. package/dist/parsers/pandoc-factory.js +146 -0
  145. package/dist/parsers/pandoc-factory.js.map +1 -0
  146. package/dist/parsers/pandoc-loader.d.ts +24 -0
  147. package/dist/parsers/pandoc-loader.d.ts.map +1 -0
  148. package/dist/parsers/pandoc-loader.js +124 -0
  149. package/dist/parsers/pandoc-loader.js.map +1 -0
  150. package/dist/parsers/pandoc-parser.d.ts +27 -0
  151. package/dist/parsers/pandoc-parser.d.ts.map +1 -0
  152. package/dist/parsers/pandoc-parser.js +3 -0
  153. package/dist/parsers/pandoc-parser.js.map +1 -0
  154. package/dist/styles/default.css +125 -0
  155. package/dist/styles/headers.css +146 -0
  156. package/dist/styles/highlight.css +171 -0
  157. package/dist/tracking/field-tracker.d.ts +206 -0
  158. package/dist/tracking/field-tracker.d.ts.map +1 -0
  159. package/dist/tracking/field-tracker.js +247 -0
  160. package/dist/tracking/field-tracker.js.map +1 -0
  161. package/dist/types.d.ts +186 -0
  162. package/dist/types.d.ts.map +1 -0
  163. package/dist/types.js +33 -0
  164. package/dist/types.js.map +1 -0
  165. package/dist/utils/logger.d.ts +107 -0
  166. package/dist/utils/logger.d.ts.map +1 -0
  167. package/dist/utils/logger.js +122 -0
  168. package/dist/utils/logger.js.map +1 -0
  169. package/dist/web/bundle-standalone.js +28 -0
  170. package/dist/web/bundle.js +17 -0
  171. package/dist/web/index.html +1465 -0
  172. package/dist/web/legal-markdown.umd.min.js +2 -0
  173. package/dist/web/standalone.html +390 -0
  174. package/dist/web/styles.css +874 -0
  175. package/package.json +118 -0
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @fileoverview Extensions Module - Enhanced Legal Markdown Functionality
3
+ *
4
+ * This module provides additional functionality beyond the original legal-markdown
5
+ * specification. It includes Node.js specific enhancements, utilities, and tools
6
+ * for extended document processing, validation, and format conversion.
7
+ *
8
+ * Features:
9
+ * - Document validation and structure checking
10
+ * - Enhanced output formatting and styling
11
+ * - Utility functions for document analysis
12
+ * - Batch processing capabilities for multiple files
13
+ * - LaTeX document conversion support
14
+ * - reStructuredText document conversion support
15
+ * - Template loops for array iteration and conditional blocks
16
+ * - Node.js specific enhancements and optimizations
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * import {
21
+ * validateDocumentStructure,
22
+ * formatLegalDocument,
23
+ * analyzeDocument,
24
+ * processBatch,
25
+ * convertLatexToLegalMarkdown,
26
+ * convertRstToLegalMarkdown,
27
+ * processTemplateLoops
28
+ * } from './extensions';
29
+ *
30
+ * // Validate document structure
31
+ * const validation = validateDocumentStructure(content);
32
+ *
33
+ * // Format document output
34
+ * const formatted = formatLegalDocument(content, { lineSpacing: 'double' });
35
+ *
36
+ * // Analyze document statistics
37
+ * const stats = analyzeDocument(content);
38
+ *
39
+ * // Process multiple files
40
+ * const result = await processBatch({
41
+ * inputDir: './documents',
42
+ * outputDir: './output'
43
+ * });
44
+ * ```
45
+ */
46
+ export * from './validators';
47
+ export * from './formatters';
48
+ export * from './utilities';
49
+ export * from './batch-processor';
50
+ export * from './rst-parser';
51
+ export * from './latex-parser';
52
+ export * from './template-loops';
53
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AAKH,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Extensions Module - Enhanced Legal Markdown Functionality
4
+ *
5
+ * This module provides additional functionality beyond the original legal-markdown
6
+ * specification. It includes Node.js specific enhancements, utilities, and tools
7
+ * for extended document processing, validation, and format conversion.
8
+ *
9
+ * Features:
10
+ * - Document validation and structure checking
11
+ * - Enhanced output formatting and styling
12
+ * - Utility functions for document analysis
13
+ * - Batch processing capabilities for multiple files
14
+ * - LaTeX document conversion support
15
+ * - reStructuredText document conversion support
16
+ * - Template loops for array iteration and conditional blocks
17
+ * - Node.js specific enhancements and optimizations
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * import {
22
+ * validateDocumentStructure,
23
+ * formatLegalDocument,
24
+ * analyzeDocument,
25
+ * processBatch,
26
+ * convertLatexToLegalMarkdown,
27
+ * convertRstToLegalMarkdown,
28
+ * processTemplateLoops
29
+ * } from './extensions';
30
+ *
31
+ * // Validate document structure
32
+ * const validation = validateDocumentStructure(content);
33
+ *
34
+ * // Format document output
35
+ * const formatted = formatLegalDocument(content, { lineSpacing: 'double' });
36
+ *
37
+ * // Analyze document statistics
38
+ * const stats = analyzeDocument(content);
39
+ *
40
+ * // Process multiple files
41
+ * const result = await processBatch({
42
+ * inputDir: './documents',
43
+ * outputDir: './output'
44
+ * });
45
+ * ```
46
+ */
47
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
48
+ if (k2 === undefined) k2 = k;
49
+ var desc = Object.getOwnPropertyDescriptor(m, k);
50
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
51
+ desc = { enumerable: true, get: function() { return m[k]; } };
52
+ }
53
+ Object.defineProperty(o, k2, desc);
54
+ }) : (function(o, m, k, k2) {
55
+ if (k2 === undefined) k2 = k;
56
+ o[k2] = m[k];
57
+ }));
58
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
59
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
60
+ };
61
+ Object.defineProperty(exports, "__esModule", { value: true });
62
+ // Extensions - Additional functionality beyond original legal-markdown
63
+ // These are Node.js specific enhancements and utilities
64
+ __exportStar(require("./validators"), exports);
65
+ __exportStar(require("./formatters"), exports);
66
+ __exportStar(require("./utilities"), exports);
67
+ __exportStar(require("./batch-processor"), exports);
68
+ __exportStar(require("./rst-parser"), exports);
69
+ __exportStar(require("./latex-parser"), exports);
70
+ __exportStar(require("./template-loops"), exports);
71
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;;;;;;;;;;;;;;;;AAEH,uEAAuE;AACvE,wDAAwD;AAExD,+CAA6B;AAC7B,+CAA6B;AAC7B,8CAA4B;AAC5B,oDAAkC;AAClC,+CAA6B;AAC7B,iDAA+B;AAC/B,mDAAiC"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * @fileoverview LaTeX Parser Extension for Legal Markdown
3
+ *
4
+ * This module provides functionality to parse LaTeX (.tex) documents and convert
5
+ * them to Legal Markdown format. It uses Pandoc for robust parsing with intelligent
6
+ * fallback to basic regex-based parsing when Pandoc is not available or fails.
7
+ *
8
+ * Features:
9
+ * - AST-based LaTeX parsing using Pandoc
10
+ * - Fallback regex-based parsing for simple documents
11
+ * - Content type detection and validation
12
+ * - Section command conversion to Legal Markdown headers
13
+ * - Text formatting preservation (textbf, textit, emph)
14
+ * - Environment handling (enumerate, itemize, verbatim)
15
+ * - Macro expansion and command processing
16
+ * - Mathematical notation preservation
17
+ * - Reference and label handling
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * import { convertLatexToLegalMarkdown, convertLatexToLegalMarkdownSync } from './latex-parser';
22
+ *
23
+ * const latexContent = `
24
+ * \\documentclass{article}
25
+ * \\begin{document}
26
+ *
27
+ * \\section{Introduction}
28
+ * This is a sample LaTeX document with \\textbf{bold} and \\textit{italic} text.
29
+ *
30
+ * \\subsection{Terms}
31
+ * Some content here.
32
+ *
33
+ * \\end{document}
34
+ * `;
35
+ *
36
+ * // Async conversion (preferred)
37
+ * const legalMarkdown = await convertLatexToLegalMarkdown(latexContent);
38
+ *
39
+ * // Sync conversion (fallback)
40
+ * const legalMarkdownSync = convertLatexToLegalMarkdownSync(latexContent);
41
+ * ```
42
+ */
43
+ /**
44
+ * Converts LaTeX content to legal markdown format using pandoc
45
+ */
46
+ export declare function parseLatex(content: string): Promise<string>;
47
+ /**
48
+ * Synchronous version using fallback parser
49
+ */
50
+ export declare function parseLatexSync(content: string): string;
51
+ /**
52
+ * Checks if content appears to be LaTeX
53
+ */
54
+ export declare function isLatex(content: string): boolean;
55
+ /**
56
+ * Converts LaTeX content to Legal Markdown format (async version)
57
+ *
58
+ * This function provides robust conversion of LaTeX documents to Legal Markdown
59
+ * format using Pandoc when available. It automatically detects LaTeX content
60
+ * and only performs conversion when necessary, preserving non-LaTeX content unchanged.
61
+ *
62
+ * @async
63
+ * @param {string} content - The input content that may contain LaTeX
64
+ * @returns {Promise<string>} A promise that resolves to Legal Markdown formatted content
65
+ * @example
66
+ * ```typescript
67
+ * const latexContent = `
68
+ * \\section{Introduction}
69
+ * This is a sample LaTeX document with \\textbf{bold} text.
70
+ *
71
+ * \\subsection{Terms}
72
+ * Some content with \\textit{italic} formatting.
73
+ * `;
74
+ *
75
+ * const legalMarkdown = await convertLatexToLegalMarkdown(latexContent);
76
+ * console.log(legalMarkdown);
77
+ * // Output:
78
+ * // l. Introduction
79
+ * // This is a sample LaTeX document with **bold** text.
80
+ * //
81
+ * // ll. Terms
82
+ * // Some content with *italic* formatting.
83
+ * ```
84
+ */
85
+ export declare function convertLatexToLegalMarkdown(content: string): Promise<string>;
86
+ /**
87
+ * Converts LaTeX content to Legal Markdown format (sync version)
88
+ *
89
+ * This synchronous function provides fallback conversion of LaTeX documents
90
+ * using regex-based parsing when Pandoc is not available. It's designed for
91
+ * environments where async operations are not suitable or when simple
92
+ * conversion is sufficient.
93
+ *
94
+ * @param {string} content - The input content that may contain LaTeX
95
+ * @returns {string} Legal Markdown formatted content
96
+ * @example
97
+ * ```typescript
98
+ * const latexContent = `
99
+ * \\section{Terms}
100
+ * This agreement contains \\textbf{important} terms.
101
+ * `;
102
+ *
103
+ * const legalMarkdown = convertLatexToLegalMarkdownSync(latexContent);
104
+ * console.log(legalMarkdown);
105
+ * // Output:
106
+ * // l. Terms
107
+ * // This agreement contains **important** terms.
108
+ * ```
109
+ */
110
+ export declare function convertLatexToLegalMarkdownSync(content: string): string;
111
+ //# sourceMappingURL=latex-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"latex-parser.d.ts","sourceRoot":"","sources":["../../src/extensions/latex-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AAudH;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBjE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOlF;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOvE"}