documentation-hub 5.7.2
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/.eslintrc.json +43 -0
- package/.github/workflows/build.yml +64 -0
- package/.github/workflows/ci.yml +39 -0
- package/.vscode/extensions.json +3 -0
- package/Current.md +97 -0
- package/DocHub_Image.png +0 -0
- package/README.md +666 -0
- package/USER_GUIDE.md +1173 -0
- package/Updater.md +311 -0
- package/build/256x256.png +0 -0
- package/build/512x512.png +0 -0
- package/build/app-update.yml +4 -0
- package/build/create-icon.js +208 -0
- package/build/icon.ico +0 -0
- package/build/icon.png +0 -0
- package/build/icon_1024x1024.png +0 -0
- package/dist/assets/Analytics-BpsG9895.js +1 -0
- package/dist/assets/Card-IAZin8kp.js +1 -0
- package/dist/assets/CurrentSession-B-rFkHvf.js +12 -0
- package/dist/assets/Dashboard-C_5gMb0q.js +1 -0
- package/dist/assets/Documents-CqZ25axS.js +1 -0
- package/dist/assets/Input-l89xwXBi.js +1 -0
- package/dist/assets/Reporting-DqdHJY_a.js +1 -0
- package/dist/assets/Search-XNbu5z_3.js +1 -0
- package/dist/assets/SessionManager-lH9hZfzH.js +1 -0
- package/dist/assets/Sessions-ClZOPYNc.js +1 -0
- package/dist/assets/Settings-DUEHGURa.js +11 -0
- package/dist/assets/index-8xUe8ptc.js +24 -0
- package/dist/assets/index-RYyJqF7O.css +1 -0
- package/dist/assets/path-BkOl0AGO.js +1 -0
- package/dist/assets/promises-ID_B9S-h.js +1 -0
- package/dist/assets/urlHelpers-TvgahX0r.js +1 -0
- package/dist/assets/useToast-yRSO1dkm.js +1 -0
- package/dist/assets/vendor-charts-RkGK5ROP.js +36 -0
- package/dist/assets/vendor-db-l0sNRNKZ.js +1 -0
- package/dist/assets/vendor-react-BVZ_anCF.js +4 -0
- package/dist/assets/vendor-search-Dw8P0qyA.js +1 -0
- package/dist/assets/vendor-ui-BU7NfluV.js +53 -0
- package/dist/electron/PowerAutomateApiService-LfW09ZGr.js +147 -0
- package/dist/electron/main-CXkNtyv-.js +19789 -0
- package/dist/electron/main.js +5 -0
- package/dist/electron/preload.js +1 -0
- package/dist/icon.png +0 -0
- package/dist/index.html +27 -0
- package/docs/CODEBASE_ANALYSIS_REPORT.md +309 -0
- package/docs/DEBUG_LOGGING_GUIDE.md +244 -0
- package/docs/README.md +115 -0
- package/docs/TOC_WIRING_GUIDE.md +344 -0
- package/docs/analysis/Bullet_Symbol_Bug_Analysis.md +136 -0
- package/docs/analysis/DOCXMLATER_ANALYSIS_SUMMARY.txt +169 -0
- package/docs/analysis/Document_Processing_Issues_Analysis.md +704 -0
- package/docs/analysis/FIELD_PRESERVATION_ANALYSIS.md +1200 -0
- package/docs/analysis/INDENTATION_PRESERVE_ANALYSIS.md +181 -0
- package/docs/analysis/INDENTATION_PRESERVE_IMPLEMENTATION.md +207 -0
- package/docs/analysis/List_Implementation.md +206 -0
- package/docs/analysis/List_Implementation_Accuracy_Report.md +366 -0
- package/docs/analysis/PROCESSING_OPTIONS_UI_UPDATES.md +220 -0
- package/docs/analysis/RefactorStyles.md +852 -0
- package/docs/analysis/STYLE_PARAMETER_ENHANCEMENT.md +143 -0
- package/docs/analysis/docxmlater-comparison-todo-2025-11-13.md +636 -0
- package/docs/analysis/docxmlater-implementation-analysis-2025-11-13.md +340 -0
- package/docs/analysis/docxmlater-template_ui-integration-analysis.md +263 -0
- package/docs/analysis/github-issues-to-create.md +237 -0
- package/docs/api/API_README.md +538 -0
- package/docs/api/API_REFERENCE.md +751 -0
- package/docs/api/TYPE_DEFINITIONS.md +869 -0
- package/docs/architecture/FONT_EMBEDDING_GUIDE.md +318 -0
- package/docs/architecture/docxmlater-functions-and-structure.md +726 -0
- package/docs/docxmlater-readme.md +1341 -0
- package/docs/fixes/EXECUTION_LOG_TEST_BASE.md +573 -0
- package/docs/fixes/HYPERLINK_TEXT_SANITIZATION.md +253 -0
- package/docs/fixes/README.md +37 -0
- package/docs/github-issues/issue-1-body.md +125 -0
- package/docs/github-issues/issue-10-body.md +850 -0
- package/docs/github-issues/issue-2-body.md +200 -0
- package/docs/github-issues/issue-3-body.md +270 -0
- package/docs/github-issues/issue-4-body.md +169 -0
- package/docs/github-issues/issue-5-body.md +173 -0
- package/docs/github-issues/issue-6-body.md +158 -0
- package/docs/github-issues/issue-7-body.md +171 -0
- package/docs/github-issues/issue-8-body.md +407 -0
- package/docs/github-issues/issue-9-body.md +515 -0
- package/docs/github-issues/issue-tracker.md +274 -0
- package/docs/github-issues/predictive-analysis-2025-10-18.md +2131 -0
- package/docs/implementation/List_Framework_Refactor_Plan.md +336 -0
- package/docs/implementation/PRIMARY_TEXT_COLOR_FEATURE.md +217 -0
- package/docs/implementation/RELEASE_PLAN_v2.1.0.md +362 -0
- package/docs/implementation/RefactorStyles.md +588 -0
- package/docs/implementation/implement-plan.md +489 -0
- package/docs/implementation/missing-helpers-implementation.md +391 -0
- package/docs/implementation/refactor-plan.md +520 -0
- package/docs/implementation/session-implementation-complete.md +233 -0
- package/docs/implementation/session-management-plan.md +250 -0
- package/docs/setup-checklist.md +77 -0
- package/docs/versions/changelog.md +345 -0
- package/electron/customUpdater.ts +656 -0
- package/electron/main.ts +2441 -0
- package/electron/memoryConfig.ts +187 -0
- package/electron/preload.ts +394 -0
- package/electron/proxyConfig.ts +340 -0
- package/electron/services/BackupService.ts +452 -0
- package/electron/services/DictionaryService.ts +402 -0
- package/electron/services/LocalDictionaryLookupService.ts +147 -0
- package/electron/services/PowerAutomateApiService.ts +231 -0
- package/electron/services/SharePointSyncService.ts +474 -0
- package/electron/windowsCertStore.ts +427 -0
- package/electron/zscalerConfig.ts +381 -0
- package/eslint.config.js +92 -0
- package/jest.config.js +52 -0
- package/package.json +214 -0
- package/postcss.config.mjs +6 -0
- package/public/icon.png +0 -0
- package/publish-release.ps1 +5 -0
- package/renovate.json +30 -0
- package/src/App.tsx +216 -0
- package/src/__mocks__/p-limit.js +12 -0
- package/src/__mocks__/styleMock.js +1 -0
- package/src/components/common/BugReportButton.tsx +44 -0
- package/src/components/common/BugReportDialog.tsx +193 -0
- package/src/components/common/Button.tsx +153 -0
- package/src/components/common/Card.tsx +86 -0
- package/src/components/common/ColorPickerDialog.tsx +177 -0
- package/src/components/common/ConfirmDialog.tsx +96 -0
- package/src/components/common/DebugConsole.tsx +275 -0
- package/src/components/common/EmptyState.tsx +183 -0
- package/src/components/common/ErrorBoundary.tsx +98 -0
- package/src/components/common/ErrorDetailsDialog.tsx +153 -0
- package/src/components/common/ErrorFallback.tsx +218 -0
- package/src/components/common/Input.tsx +109 -0
- package/src/components/common/Skeleton.tsx +184 -0
- package/src/components/common/SplashScreen.tsx +81 -0
- package/src/components/common/Toast.tsx +155 -0
- package/src/components/common/Tooltip.tsx +79 -0
- package/src/components/common/UpdateNotification.tsx +320 -0
- package/src/components/comparison/ComparisonWindow.tsx +374 -0
- package/src/components/comparison/SideBySideDiff.tsx +486 -0
- package/src/components/comparison/index.ts +8 -0
- package/src/components/document/DocumentUploader.tsx +288 -0
- package/src/components/document/HyperlinkPreview.tsx +430 -0
- package/src/components/document/HyperlinkService.md +1484 -0
- package/src/components/document/Hyperlink_Technical_Documentation.md +496 -0
- package/src/components/document/InlineChangesView.tsx +707 -0
- package/src/components/document/ProcessingProgress.tsx +303 -0
- package/src/components/document/ProcessingResults.tsx +256 -0
- package/src/components/document/TrackedChangesDetail.tsx +530 -0
- package/src/components/document/TrackedChangesPanel.tsx +546 -0
- package/src/components/document/VirtualDocumentList.tsx +240 -0
- package/src/components/editor/DocumentEditor.tsx +723 -0
- package/src/components/editor/DocumentEditorModal.tsx +640 -0
- package/src/components/editor/EditorQuickActions.tsx +502 -0
- package/src/components/editor/EditorToolbar.tsx +312 -0
- package/src/components/editor/TableEditor.tsx +926 -0
- package/src/components/editor/index.ts +18 -0
- package/src/components/layout/Header.tsx +190 -0
- package/src/components/layout/Sidebar.tsx +313 -0
- package/src/components/layout/TitleBar.tsx +190 -0
- package/src/components/navigation/CommandPalette.tsx +233 -0
- package/src/components/navigation/KeyboardShortcutsModal.tsx +173 -0
- package/src/components/sessions/ChangeItem.tsx +408 -0
- package/src/components/sessions/ChangeViewer.tsx +1155 -0
- package/src/components/sessions/DocumentComparisonModal.tsx +314 -0
- package/src/components/sessions/ProcessingOptions.tsx +297 -0
- package/src/components/sessions/ReplacementsTab.tsx +438 -0
- package/src/components/sessions/RevisionHandlingOptions.tsx +87 -0
- package/src/components/sessions/SessionManager.tsx +188 -0
- package/src/components/sessions/StylesEditor.tsx +1335 -0
- package/src/components/sessions/TabContainer.tsx +151 -0
- package/src/components/sessions/VirtualSessionList.tsx +157 -0
- package/src/components/sessions/sessionToProcessorManager.tsx +420 -0
- package/src/components/settings/CertificateManager.tsx +410 -0
- package/src/components/settings/SegmentedControl.tsx +88 -0
- package/src/components/settings/SettingRow.tsx +52 -0
- package/src/contexts/GlobalStatsContext.tsx +396 -0
- package/src/contexts/SessionContext.tsx +2129 -0
- package/src/contexts/ThemeContext.tsx +428 -0
- package/src/contexts/UserSettingsContext.tsx +290 -0
- package/src/contexts/__tests__/GlobalStatsContext.test.tsx +390 -0
- package/src/global.d.ts +273 -0
- package/src/hooks/useDocumentQueue.tsx +210 -0
- package/src/hooks/useToast.tsx +55 -0
- package/src/main.tsx +10 -0
- package/src/pages/Analytics.tsx +386 -0
- package/src/pages/CurrentSession.tsx +1174 -0
- package/src/pages/Dashboard.tsx +319 -0
- package/src/pages/Documents.tsx +317 -0
- package/src/pages/Projects.tsx +250 -0
- package/src/pages/Reporting.tsx +386 -0
- package/src/pages/Search.tsx +349 -0
- package/src/pages/Sessions.tsx +285 -0
- package/src/pages/Settings.tsx +2662 -0
- package/src/services/HyperlinkService.ts +1085 -0
- package/src/services/document/DocXMLaterProcessor.ts +617 -0
- package/src/services/document/DocumentProcessingComparison.ts +856 -0
- package/src/services/document/DocumentSnapshotService.ts +575 -0
- package/src/services/document/WordDocumentProcessor.ts +10509 -0
- package/src/services/document/__tests__/DocXMLaterProcessor.hyperlinks.test.md +311 -0
- package/src/services/document/__tests__/WordDocumentProcessor.integration.test.ts +515 -0
- package/src/services/document/__tests__/WordDocumentProcessor.test.ts +812 -0
- package/src/services/document/blanklines/BlankLineManager.ts +658 -0
- package/src/services/document/blanklines/__tests__/paragraphChecks.test.ts +281 -0
- package/src/services/document/blanklines/helpers/blankLineInsertion.ts +87 -0
- package/src/services/document/blanklines/helpers/blankLineSnapshot.ts +251 -0
- package/src/services/document/blanklines/helpers/clearCustom.ts +121 -0
- package/src/services/document/blanklines/helpers/contextChecks.ts +117 -0
- package/src/services/document/blanklines/helpers/imageChecks.ts +51 -0
- package/src/services/document/blanklines/helpers/paragraphChecks.ts +236 -0
- package/src/services/document/blanklines/helpers/removeBlanksBetweenListItems.ts +91 -0
- package/src/services/document/blanklines/helpers/removeTrailingBlanks.ts +35 -0
- package/src/services/document/blanklines/helpers/tableGuards.ts +21 -0
- package/src/services/document/blanklines/index.ts +67 -0
- package/src/services/document/blanklines/rules/additionRules.ts +337 -0
- package/src/services/document/blanklines/rules/indentationRules.ts +317 -0
- package/src/services/document/blanklines/rules/removalRules.ts +362 -0
- package/src/services/document/blanklines/rules/ruleTypes.ts +92 -0
- package/src/services/document/blanklines/types.ts +29 -0
- package/src/services/document/helpers/ImageBorderCropper.ts +377 -0
- package/src/services/document/helpers/__tests__/whitespace.test.ts +272 -0
- package/src/services/document/helpers/whitespace.ts +117 -0
- package/src/services/document/list/ListNormalizer.ts +947 -0
- package/src/services/document/list/index.ts +45 -0
- package/src/services/document/list/list-detection.ts +275 -0
- package/src/services/document/list/list-types.ts +162 -0
- package/src/services/document/processors/HyperlinkProcessor.ts +370 -0
- package/src/services/document/processors/ListProcessor.ts +257 -0
- package/src/services/document/processors/StructureProcessor.ts +176 -0
- package/src/services/document/processors/StyleProcessor.ts +389 -0
- package/src/services/document/processors/TableProcessor.ts +2238 -0
- package/src/services/document/processors/__tests__/HyperlinkProcessor.test.ts +314 -0
- package/src/services/document/processors/__tests__/ListProcessor.test.ts +291 -0
- package/src/services/document/processors/__tests__/StructureProcessor.test.ts +257 -0
- package/src/services/document/processors/__tests__/TableProcessor.hlp-tips-bullets.test.ts +459 -0
- package/src/services/document/processors/__tests__/TableProcessor.test.ts +1604 -0
- package/src/services/document/processors/index.ts +28 -0
- package/src/services/document/types/docx-processing.ts +310 -0
- package/src/services/editor/EditorActionHandlers.ts +901 -0
- package/src/services/editor/index.ts +13 -0
- package/src/setupTests.ts +47 -0
- package/src/styles/global.css +782 -0
- package/src/types/backup.ts +132 -0
- package/src/types/dictionary.ts +125 -0
- package/src/types/document-processing.ts +331 -0
- package/src/types/docxmlater-augments.d.ts +142 -0
- package/src/types/editor.ts +280 -0
- package/src/types/electron.ts +340 -0
- package/src/types/globalStats.ts +155 -0
- package/src/types/hyperlink.ts +471 -0
- package/src/types/operations.ts +354 -0
- package/src/types/session.ts +427 -0
- package/src/types/settings.ts +112 -0
- package/src/utils/MemoryMonitor.ts +248 -0
- package/src/utils/cn.ts +6 -0
- package/src/utils/colorConvert.ts +306 -0
- package/src/utils/diffUtils.ts +347 -0
- package/src/utils/documentUtils.ts +202 -0
- package/src/utils/electronGuard.ts +62 -0
- package/src/utils/indexedDB.ts +915 -0
- package/src/utils/logger.ts +717 -0
- package/src/utils/pathSecurity.ts +232 -0
- package/src/utils/pathValidator.ts +236 -0
- package/src/utils/processingTimeEstimator.ts +153 -0
- package/src/utils/safeJsonParse.ts +62 -0
- package/src/utils/textSanitizer.ts +162 -0
- package/src/utils/urlHelpers.ts +304 -0
- package/src/utils/urlPatterns.ts +198 -0
- package/src/utils/urlSanitizer.ts +152 -0
- package/src/vite-env.d.ts +11 -0
- package/tsconfig.electron.json +19 -0
- package/tsconfig.json +36 -0
- package/tsconfig.node.json +12 -0
- package/typedoc.json +45 -0
- package/vite.config.ts +152 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Document Processors - Focused modules for WordDocumentProcessor
|
|
3
|
+
*
|
|
4
|
+
* This module exports specialized processors that handle specific aspects
|
|
5
|
+
* of document processing. These were refactored from the monolithic
|
|
6
|
+
* WordDocumentProcessor.ts (5400+ lines) into focused, testable modules.
|
|
7
|
+
*
|
|
8
|
+
* Processors:
|
|
9
|
+
* - HyperlinkProcessor: Hyperlink manipulation, API integration, URL updates
|
|
10
|
+
* - TableProcessor: Table formatting, uniformity, Header2 handling
|
|
11
|
+
* - ListProcessor: List bullets, numbering, indentation
|
|
12
|
+
* - StyleProcessor: Heading styles, text formatting, style definitions
|
|
13
|
+
* - StructureProcessor: Blank lines, paragraphs, document structure
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
export { HyperlinkProcessor, hyperlinkProcessor } from "./HyperlinkProcessor";
|
|
17
|
+
export type { UrlUpdateResult, HyperlinkProcessingResult, HyperlinkProcessingOptions } from "./HyperlinkProcessor";
|
|
18
|
+
|
|
19
|
+
export { TableProcessor, tableProcessor } from "./TableProcessor";
|
|
20
|
+
export type { TableShadingSettings, TableFormattingResult, Header2TableValidationResult, HLPTableAnalysis, HLPVariant, HLPTableProcessingResult } from "./TableProcessor";
|
|
21
|
+
|
|
22
|
+
export { ListProcessor, listProcessor } from "./ListProcessor";
|
|
23
|
+
export type { ListIndentationLevel, ListBulletSettings, ListProcessingResult } from "./ListProcessor";
|
|
24
|
+
|
|
25
|
+
export { StyleProcessor, styleProcessor } from "./StyleProcessor";
|
|
26
|
+
export type { SessionStyle, StyleApplicationResult } from "./StyleProcessor";
|
|
27
|
+
|
|
28
|
+
export { StructureProcessor, structureProcessor } from "./StructureProcessor";
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for DOCX processing abstraction layer
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
// ========== Document Operations ==========
|
|
6
|
+
|
|
7
|
+
export enum DocumentOperation {
|
|
8
|
+
CREATE = 'create',
|
|
9
|
+
READ = 'read',
|
|
10
|
+
MODIFY = 'modify',
|
|
11
|
+
MODIFY_TEMPLATE = 'modify_template',
|
|
12
|
+
MODIFY_XML = 'modify_xml',
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// ========== Style Definitions ==========
|
|
16
|
+
|
|
17
|
+
export interface TextStyle {
|
|
18
|
+
fontFamily?: string;
|
|
19
|
+
fontSize?: number; // in points
|
|
20
|
+
bold?: boolean;
|
|
21
|
+
italic?: boolean;
|
|
22
|
+
underline?: boolean;
|
|
23
|
+
preserveBold?: boolean; // Optional: true = preserve existing bold (ignore bold property)
|
|
24
|
+
preserveItalic?: boolean; // Optional: true = preserve existing italic (ignore italic property)
|
|
25
|
+
preserveUnderline?: boolean; // Optional: true = preserve existing underline (ignore underline property)
|
|
26
|
+
color?: string; // hex color (e.g., "FF0000")
|
|
27
|
+
highlight?: string; // highlight color
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export interface ParagraphStyle {
|
|
31
|
+
alignment?: 'left' | 'center' | 'right' | 'justify';
|
|
32
|
+
indentLeft?: number; // in twips (1/20th of a point)
|
|
33
|
+
indentRight?: number;
|
|
34
|
+
indentFirstLine?: number;
|
|
35
|
+
spaceBefore?: number;
|
|
36
|
+
spaceAfter?: number;
|
|
37
|
+
lineSpacing?: number;
|
|
38
|
+
keepNext?: boolean;
|
|
39
|
+
keepLines?: boolean;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export interface NumberingStyle {
|
|
43
|
+
level: number; // 0-8 (9 levels)
|
|
44
|
+
format: 'bullet' | 'decimal' | 'lowerLetter' | 'upperLetter' | 'lowerRoman' | 'upperRoman';
|
|
45
|
+
text?: string; // for bullets, the character to use
|
|
46
|
+
alignment?: 'left' | 'center' | 'right';
|
|
47
|
+
indentLeft?: number;
|
|
48
|
+
indentHanging?: number;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// ========== Document Structure ==========
|
|
52
|
+
|
|
53
|
+
export interface DocxDocument {
|
|
54
|
+
styles: DocxStyles;
|
|
55
|
+
numbering: DocxNumbering;
|
|
56
|
+
fonts: DocxFonts;
|
|
57
|
+
content: DocxContent;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export interface DocxStyles {
|
|
61
|
+
paragraphStyles: Map<string, ParagraphStyle>;
|
|
62
|
+
characterStyles: Map<string, TextStyle>;
|
|
63
|
+
defaultParagraphStyle?: ParagraphStyle;
|
|
64
|
+
defaultCharacterStyle?: TextStyle;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export interface DocxNumbering {
|
|
68
|
+
abstractNumberings: Map<string, NumberingDefinition>;
|
|
69
|
+
numberingInstances: Map<string, string>; // instanceId -> abstractNumId
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export interface NumberingDefinition {
|
|
73
|
+
id: string;
|
|
74
|
+
levels: NumberingStyle[];
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export interface DocxFonts {
|
|
78
|
+
fonts: Map<string, FontDefinition>;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export interface FontDefinition {
|
|
82
|
+
name: string;
|
|
83
|
+
charset?: string;
|
|
84
|
+
family?: string;
|
|
85
|
+
pitch?: string;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
export interface DocxContent {
|
|
89
|
+
paragraphs: Paragraph[];
|
|
90
|
+
tables?: Table[];
|
|
91
|
+
sections?: Section[];
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export interface Paragraph {
|
|
95
|
+
text: string;
|
|
96
|
+
style?: string; // style name
|
|
97
|
+
numbering?: {
|
|
98
|
+
id: string;
|
|
99
|
+
level: number;
|
|
100
|
+
};
|
|
101
|
+
runs?: Run[];
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export interface Run {
|
|
105
|
+
text: string;
|
|
106
|
+
style?: TextStyle;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export interface Table {
|
|
110
|
+
rows: TableRow[];
|
|
111
|
+
style?: string;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export interface TableRow {
|
|
115
|
+
cells: TableCell[];
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
export interface TableCell {
|
|
119
|
+
text: string; // Combined text from all paragraphs (for quick access)
|
|
120
|
+
colspan: number; // Column span (1 = no merge, >1 = merged cells)
|
|
121
|
+
rowspan: number; // Row span (1 = no merge, >1 = merged cells)
|
|
122
|
+
paragraphs: Paragraph[]; // Detailed paragraph structure within cell
|
|
123
|
+
style?: any; // Cell style (deprecated, kept for compatibility)
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export interface Section {
|
|
127
|
+
properties: SectionProperties;
|
|
128
|
+
content: Paragraph[];
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export interface SectionProperties {
|
|
132
|
+
pageSize?: {
|
|
133
|
+
width: number;
|
|
134
|
+
height: number;
|
|
135
|
+
};
|
|
136
|
+
pageMargins?: {
|
|
137
|
+
top: number;
|
|
138
|
+
bottom: number;
|
|
139
|
+
left: number;
|
|
140
|
+
right: number;
|
|
141
|
+
};
|
|
142
|
+
columns?: number;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
// ========== Processing Options ==========
|
|
146
|
+
|
|
147
|
+
export interface DocumentReadOptions {
|
|
148
|
+
parseStyles?: boolean;
|
|
149
|
+
parseNumbering?: boolean;
|
|
150
|
+
parseFonts?: boolean;
|
|
151
|
+
parseContent?: boolean;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
export interface DocumentModifyOptions {
|
|
155
|
+
operation: DocumentOperation;
|
|
156
|
+
preserveFormatting?: boolean;
|
|
157
|
+
updateStyles?: boolean;
|
|
158
|
+
updateNumbering?: boolean;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export interface TemplateData {
|
|
162
|
+
[key: string]: any;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// ========== Style Application ==========
|
|
166
|
+
|
|
167
|
+
export interface StyleApplication {
|
|
168
|
+
target: 'all' | 'pattern' | 'indices';
|
|
169
|
+
styleId: string;
|
|
170
|
+
pattern?: string | RegExp;
|
|
171
|
+
indices?: number[];
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
export interface StyleApplicationResult {
|
|
175
|
+
appliedCount: number;
|
|
176
|
+
skippedCount: number;
|
|
177
|
+
paragraphsModified: number[];
|
|
178
|
+
totalParagraphs: number;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
export interface DefineAndApplyStyleOptions {
|
|
182
|
+
styleId: string;
|
|
183
|
+
styleName: string;
|
|
184
|
+
properties: TextStyle & ParagraphStyle;
|
|
185
|
+
application: StyleApplication;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// ========== Processor Results ==========
|
|
189
|
+
|
|
190
|
+
export interface ProcessorResult<T = any> {
|
|
191
|
+
success: boolean;
|
|
192
|
+
data?: T;
|
|
193
|
+
error?: string;
|
|
194
|
+
warnings?: string[];
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
export interface DocumentReadResult extends ProcessorResult {
|
|
198
|
+
data?: DocxDocument;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
export interface DocumentModifyResult extends ProcessorResult {
|
|
202
|
+
data?: Buffer; // Modified DOCX file as buffer
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
// ========== XML Structure Types ==========
|
|
206
|
+
|
|
207
|
+
export interface DocumentXml {
|
|
208
|
+
'w:document': {
|
|
209
|
+
'w:body': {
|
|
210
|
+
'w:p': ParagraphXml[];
|
|
211
|
+
'w:tbl'?: TableXml[];
|
|
212
|
+
'w:sectPr'?: SectionXml;
|
|
213
|
+
};
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
export interface ParagraphXml {
|
|
218
|
+
'w:pPr'?: {
|
|
219
|
+
'w:pStyle'?: { '@_w:val': string };
|
|
220
|
+
'w:numPr'?: {
|
|
221
|
+
'w:ilvl': { '@_w:val': string };
|
|
222
|
+
'w:numId': { '@_w:val': string };
|
|
223
|
+
};
|
|
224
|
+
[key: string]: any; // Allow other properties
|
|
225
|
+
};
|
|
226
|
+
'w:r'?: RunXml | RunXml[];
|
|
227
|
+
'w:hyperlink'?: any | any[];
|
|
228
|
+
[key: string]: any; // Allow other children (bookmarks, etc.)
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
export interface RunXml {
|
|
232
|
+
'w:rPr'?: any;
|
|
233
|
+
'w:t'?: { '#text': string } | string;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
export interface TableXml {
|
|
237
|
+
'w:tblPr'?: any;
|
|
238
|
+
'w:tr'?: any[];
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
export interface SectionXml {
|
|
242
|
+
'w:pgSz'?: any;
|
|
243
|
+
'w:pgMar'?: any;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
export interface StylesXml {
|
|
247
|
+
'w:styles': {
|
|
248
|
+
'w:style': StyleXml[];
|
|
249
|
+
'w:docDefaults'?: any;
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
export interface StyleXml {
|
|
254
|
+
'@_w:type': 'paragraph' | 'character' | 'table';
|
|
255
|
+
'@_w:styleId': string;
|
|
256
|
+
'w:name'?: { '@_w:val': string };
|
|
257
|
+
'w:basedOn'?: { '@_w:val': string };
|
|
258
|
+
'w:pPr'?: any;
|
|
259
|
+
'w:rPr'?: any;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
export interface NumberingXml {
|
|
263
|
+
'w:numbering': {
|
|
264
|
+
'w:abstractNum'?: AbstractNumXml[];
|
|
265
|
+
'w:num'?: NumXml[];
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
export interface AbstractNumXml {
|
|
270
|
+
'@_w:abstractNumId': string;
|
|
271
|
+
'w:lvl': LevelXml[];
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
export interface LevelXml {
|
|
275
|
+
'@_w:ilvl': string;
|
|
276
|
+
'w:start'?: { '@_w:val': string };
|
|
277
|
+
'w:numFmt'?: { '@_w:val': string };
|
|
278
|
+
'w:lvlText'?: { '@_w:val': string };
|
|
279
|
+
'w:lvlJc'?: { '@_w:val': string };
|
|
280
|
+
'w:pPr'?: any;
|
|
281
|
+
'w:rPr'?: any;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
export interface NumXml {
|
|
285
|
+
'@_w:numId': string;
|
|
286
|
+
'w:abstractNumId': { '@_w:val': string };
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
// ========== Error Types ==========
|
|
290
|
+
|
|
291
|
+
export class DocxProcessingError extends Error {
|
|
292
|
+
constructor(
|
|
293
|
+
message: string,
|
|
294
|
+
public code: string,
|
|
295
|
+
public details?: any
|
|
296
|
+
) {
|
|
297
|
+
super(message);
|
|
298
|
+
this.name = 'DocxProcessingError';
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
export enum ErrorCode {
|
|
303
|
+
INVALID_DOCX = 'INVALID_DOCX',
|
|
304
|
+
FILE_NOT_FOUND = 'FILE_NOT_FOUND',
|
|
305
|
+
PARSE_ERROR = 'PARSE_ERROR',
|
|
306
|
+
XML_ERROR = 'XML_ERROR',
|
|
307
|
+
STYLE_NOT_FOUND = 'STYLE_NOT_FOUND',
|
|
308
|
+
NUMBERING_NOT_FOUND = 'NUMBERING_NOT_FOUND',
|
|
309
|
+
UNSUPPORTED_OPERATION = 'UNSUPPORTED_OPERATION',
|
|
310
|
+
}
|