pdf-oxide 0.3.24 → 0.3.28
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/lib/builders/annotation-builder.d.ts +199 -0
- package/lib/builders/annotation-builder.d.ts.map +1 -0
- package/lib/builders/annotation-builder.js +318 -0
- package/lib/builders/annotation-builder.js.map +1 -0
- package/lib/builders/conversion-options-builder.d.ts +107 -0
- package/lib/builders/conversion-options-builder.d.ts.map +1 -0
- package/lib/builders/conversion-options-builder.js +215 -0
- package/lib/builders/conversion-options-builder.js.map +1 -0
- package/{src/builders/index.ts → lib/builders/index.d.ts} +1 -1
- package/lib/builders/index.d.ts.map +1 -0
- package/lib/builders/index.js +12 -0
- package/lib/builders/index.js.map +1 -0
- package/lib/builders/metadata-builder.d.ts +202 -0
- package/lib/builders/metadata-builder.d.ts.map +1 -0
- package/lib/builders/metadata-builder.js +286 -0
- package/lib/builders/metadata-builder.js.map +1 -0
- package/lib/builders/pdf-builder.d.ts +215 -0
- package/lib/builders/pdf-builder.d.ts.map +1 -0
- package/lib/builders/pdf-builder.js +339 -0
- package/lib/builders/pdf-builder.js.map +1 -0
- package/lib/builders/search-options-builder.d.ts +74 -0
- package/lib/builders/search-options-builder.d.ts.map +1 -0
- package/lib/builders/search-options-builder.js +130 -0
- package/lib/builders/search-options-builder.js.map +1 -0
- package/lib/document-editor-manager.d.ts +140 -0
- package/lib/document-editor-manager.d.ts.map +1 -0
- package/lib/document-editor-manager.js +257 -0
- package/lib/document-editor-manager.js.map +1 -0
- package/lib/errors.d.ts +383 -0
- package/lib/errors.d.ts.map +1 -0
- package/lib/errors.js +1117 -0
- package/lib/errors.js.map +1 -0
- package/lib/form-field-manager.d.ts +300 -0
- package/lib/form-field-manager.d.ts.map +1 -0
- package/lib/form-field-manager.js +567 -0
- package/lib/form-field-manager.js.map +1 -0
- package/lib/hybrid-ml-manager.d.ts +143 -0
- package/lib/hybrid-ml-manager.d.ts.map +1 -0
- package/lib/hybrid-ml-manager.js +209 -0
- package/lib/hybrid-ml-manager.js.map +1 -0
- package/lib/index.d.ts +23 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +280 -0
- package/lib/index.js.map +1 -0
- package/lib/managers/accessibility-manager.d.ts +149 -0
- package/lib/managers/accessibility-manager.d.ts.map +1 -0
- package/lib/managers/accessibility-manager.js +224 -0
- package/lib/managers/accessibility-manager.js.map +1 -0
- package/lib/managers/annotation-manager.d.ts +220 -0
- package/lib/managers/annotation-manager.d.ts.map +1 -0
- package/lib/managers/annotation-manager.js +360 -0
- package/lib/managers/annotation-manager.js.map +1 -0
- package/lib/managers/barcode-manager.d.ts +80 -0
- package/lib/managers/barcode-manager.d.ts.map +1 -0
- package/lib/managers/barcode-manager.js +226 -0
- package/lib/managers/barcode-manager.js.map +1 -0
- package/lib/managers/batch-manager.d.ts +186 -0
- package/lib/managers/batch-manager.d.ts.map +1 -0
- package/lib/managers/batch-manager.js +389 -0
- package/lib/managers/batch-manager.js.map +1 -0
- package/lib/managers/cache-manager.d.ts +182 -0
- package/lib/managers/cache-manager.d.ts.map +1 -0
- package/lib/managers/cache-manager.js +387 -0
- package/lib/managers/cache-manager.js.map +1 -0
- package/lib/managers/compliance-manager.d.ts +104 -0
- package/lib/managers/compliance-manager.d.ts.map +1 -0
- package/lib/managers/compliance-manager.js +415 -0
- package/lib/managers/compliance-manager.js.map +1 -0
- package/lib/managers/content-manager.d.ts +121 -0
- package/lib/managers/content-manager.d.ts.map +1 -0
- package/lib/managers/content-manager.js +295 -0
- package/lib/managers/content-manager.js.map +1 -0
- package/lib/managers/document-utility-manager.d.ts +370 -0
- package/lib/managers/document-utility-manager.d.ts.map +1 -0
- package/lib/managers/document-utility-manager.js +731 -0
- package/lib/managers/document-utility-manager.js.map +1 -0
- package/lib/managers/dom-pdf-creator.d.ts +105 -0
- package/lib/managers/dom-pdf-creator.d.ts.map +1 -0
- package/lib/managers/dom-pdf-creator.js +300 -0
- package/lib/managers/dom-pdf-creator.js.map +1 -0
- package/lib/managers/editing-manager.d.ts +249 -0
- package/lib/managers/editing-manager.d.ts.map +1 -0
- package/lib/managers/editing-manager.js +388 -0
- package/lib/managers/editing-manager.js.map +1 -0
- package/lib/managers/enterprise-manager.d.ts +193 -0
- package/lib/managers/enterprise-manager.d.ts.map +1 -0
- package/lib/managers/enterprise-manager.js +305 -0
- package/lib/managers/enterprise-manager.js.map +1 -0
- package/lib/managers/extended-managers.d.ts +123 -0
- package/lib/managers/extended-managers.d.ts.map +1 -0
- package/lib/managers/extended-managers.js +658 -0
- package/lib/managers/extended-managers.js.map +1 -0
- package/lib/managers/extraction-manager.d.ts +247 -0
- package/lib/managers/extraction-manager.d.ts.map +1 -0
- package/lib/managers/extraction-manager.js +478 -0
- package/lib/managers/extraction-manager.js.map +1 -0
- package/lib/managers/final-utilities.d.ts +128 -0
- package/lib/managers/final-utilities.d.ts.map +1 -0
- package/lib/managers/final-utilities.js +653 -0
- package/lib/managers/final-utilities.js.map +1 -0
- package/lib/managers/hybrid-ml-advanced.d.ts +137 -0
- package/lib/managers/hybrid-ml-advanced.d.ts.map +1 -0
- package/lib/managers/hybrid-ml-advanced.js +707 -0
- package/lib/managers/hybrid-ml-advanced.js.map +1 -0
- package/lib/managers/index.d.ts +65 -0
- package/lib/managers/index.d.ts.map +1 -0
- package/lib/managers/index.js +70 -0
- package/lib/managers/index.js.map +1 -0
- package/lib/managers/layer-manager.d.ts +204 -0
- package/lib/managers/layer-manager.d.ts.map +1 -0
- package/lib/managers/layer-manager.js +403 -0
- package/lib/managers/layer-manager.js.map +1 -0
- package/lib/managers/metadata-manager.d.ts +149 -0
- package/lib/managers/metadata-manager.d.ts.map +1 -0
- package/lib/managers/metadata-manager.js +281 -0
- package/lib/managers/metadata-manager.js.map +1 -0
- package/lib/managers/ocr-manager.d.ts +195 -0
- package/lib/managers/ocr-manager.d.ts.map +1 -0
- package/lib/managers/ocr-manager.js +583 -0
- package/lib/managers/ocr-manager.js.map +1 -0
- package/lib/managers/optimization-manager.d.ts +103 -0
- package/lib/managers/optimization-manager.d.ts.map +1 -0
- package/lib/managers/optimization-manager.js +194 -0
- package/lib/managers/optimization-manager.js.map +1 -0
- package/lib/managers/outline-manager.d.ts +102 -0
- package/lib/managers/outline-manager.d.ts.map +1 -0
- package/lib/managers/outline-manager.js +170 -0
- package/lib/managers/outline-manager.js.map +1 -0
- package/lib/managers/page-manager.d.ts +143 -0
- package/lib/managers/page-manager.d.ts.map +1 -0
- package/lib/managers/page-manager.js +237 -0
- package/lib/managers/page-manager.js.map +1 -0
- package/lib/managers/pattern-detection.d.ts +170 -0
- package/lib/managers/pattern-detection.d.ts.map +1 -0
- package/lib/managers/pattern-detection.js +325 -0
- package/lib/managers/pattern-detection.js.map +1 -0
- package/lib/managers/rendering-manager.d.ts +354 -0
- package/lib/managers/rendering-manager.d.ts.map +1 -0
- package/lib/managers/rendering-manager.js +680 -0
- package/lib/managers/rendering-manager.js.map +1 -0
- package/lib/managers/search-manager.d.ts +236 -0
- package/lib/managers/search-manager.d.ts.map +1 -0
- package/lib/managers/search-manager.js +330 -0
- package/lib/managers/search-manager.js.map +1 -0
- package/lib/managers/security-manager.d.ts +162 -0
- package/lib/managers/security-manager.d.ts.map +1 -0
- package/lib/managers/security-manager.js +293 -0
- package/lib/managers/security-manager.js.map +1 -0
- package/lib/managers/signature-manager.d.ts +725 -0
- package/lib/managers/signature-manager.d.ts.map +1 -0
- package/lib/managers/signature-manager.js +1365 -0
- package/lib/managers/signature-manager.js.map +1 -0
- package/lib/managers/streams.d.ts +263 -0
- package/lib/managers/streams.d.ts.map +1 -0
- package/lib/managers/streams.js +472 -0
- package/lib/managers/streams.js.map +1 -0
- package/lib/managers/xfa-manager.d.ts +228 -0
- package/lib/managers/xfa-manager.d.ts.map +1 -0
- package/lib/managers/xfa-manager.js +490 -0
- package/lib/managers/xfa-manager.js.map +1 -0
- package/lib/pdf-creator-manager.d.ts +201 -0
- package/lib/pdf-creator-manager.d.ts.map +1 -0
- package/lib/pdf-creator-manager.js +379 -0
- package/lib/pdf-creator-manager.js.map +1 -0
- package/lib/properties.d.ts +80 -0
- package/lib/properties.d.ts.map +1 -0
- package/lib/properties.js +455 -0
- package/lib/properties.js.map +1 -0
- package/lib/result-accessors-manager.d.ts +347 -0
- package/lib/result-accessors-manager.d.ts.map +1 -0
- package/lib/result-accessors-manager.js +705 -0
- package/lib/result-accessors-manager.js.map +1 -0
- package/lib/thumbnail-manager.d.ts +122 -0
- package/lib/thumbnail-manager.d.ts.map +1 -0
- package/lib/thumbnail-manager.js +206 -0
- package/lib/thumbnail-manager.js.map +1 -0
- package/lib/types/common.d.ts +93 -0
- package/lib/types/common.d.ts.map +1 -0
- package/lib/types/common.js +5 -0
- package/lib/types/common.js.map +1 -0
- package/lib/types/document-types.d.ts +353 -0
- package/lib/types/document-types.d.ts.map +1 -0
- package/lib/types/document-types.js +83 -0
- package/lib/types/document-types.js.map +1 -0
- package/{src/types/index.ts → lib/types/index.d.ts} +1 -1
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/index.js +6 -0
- package/lib/types/index.js.map +1 -0
- package/lib/types/manager-types.d.ts +180 -0
- package/lib/types/manager-types.d.ts.map +1 -0
- package/lib/types/manager-types.js +99 -0
- package/lib/types/manager-types.js.map +1 -0
- package/lib/types/native-bindings.d.ts +440 -0
- package/lib/types/native-bindings.d.ts.map +1 -0
- package/lib/types/native-bindings.js +8 -0
- package/lib/types/native-bindings.js.map +1 -0
- package/{src/workers/index.ts → lib/workers/index.d.ts} +1 -1
- package/lib/workers/index.d.ts.map +1 -0
- package/lib/workers/index.js +6 -0
- package/lib/workers/index.js.map +1 -0
- package/lib/workers/pool.d.ts +65 -0
- package/lib/workers/pool.d.ts.map +1 -0
- package/lib/workers/pool.js +195 -0
- package/lib/workers/pool.js.map +1 -0
- package/lib/workers/worker.d.ts +6 -0
- package/lib/workers/worker.d.ts.map +1 -0
- package/lib/workers/worker.js +100 -0
- package/lib/workers/worker.js.map +1 -0
- package/package.json +12 -22
- package/prebuilds/darwin-arm64/pdf_oxide.node +0 -0
- package/prebuilds/darwin-x64/pdf_oxide.node +0 -0
- package/prebuilds/linux-arm64/pdf_oxide.node +0 -0
- package/prebuilds/linux-x64/pdf_oxide.node +0 -0
- package/prebuilds/win32-x64/pdf_oxide.node +0 -0
- package/binding.gyp +0 -35
- package/src/builders/annotation-builder.ts +0 -367
- package/src/builders/conversion-options-builder.ts +0 -257
- package/src/builders/metadata-builder.ts +0 -317
- package/src/builders/pdf-builder.ts +0 -386
- package/src/builders/search-options-builder.ts +0 -151
- package/src/document-editor-manager.ts +0 -318
- package/src/errors.ts +0 -1629
- package/src/form-field-manager.ts +0 -666
- package/src/hybrid-ml-manager.ts +0 -283
- package/src/index.ts +0 -453
- package/src/managers/accessibility-manager.ts +0 -338
- package/src/managers/annotation-manager.ts +0 -439
- package/src/managers/barcode-manager.ts +0 -235
- package/src/managers/batch-manager.ts +0 -533
- package/src/managers/cache-manager.ts +0 -486
- package/src/managers/compliance-manager.ts +0 -375
- package/src/managers/content-manager.ts +0 -339
- package/src/managers/document-utility-manager.ts +0 -922
- package/src/managers/dom-pdf-creator.ts +0 -365
- package/src/managers/editing-manager.ts +0 -514
- package/src/managers/enterprise-manager.ts +0 -478
- package/src/managers/extended-managers.ts +0 -437
- package/src/managers/extraction-manager.ts +0 -583
- package/src/managers/final-utilities.ts +0 -429
- package/src/managers/hybrid-ml-advanced.ts +0 -479
- package/src/managers/index.ts +0 -239
- package/src/managers/layer-manager.ts +0 -500
- package/src/managers/metadata-manager.ts +0 -303
- package/src/managers/ocr-manager.ts +0 -756
- package/src/managers/optimization-manager.ts +0 -262
- package/src/managers/outline-manager.ts +0 -196
- package/src/managers/page-manager.ts +0 -289
- package/src/managers/pattern-detection.ts +0 -440
- package/src/managers/rendering-manager.ts +0 -863
- package/src/managers/search-manager.ts +0 -385
- package/src/managers/security-manager.ts +0 -345
- package/src/managers/signature-manager.ts +0 -1664
- package/src/managers/streams.ts +0 -618
- package/src/managers/xfa-manager.ts +0 -500
- package/src/pdf-creator-manager.ts +0 -494
- package/src/properties.ts +0 -522
- package/src/result-accessors-manager.ts +0 -867
- package/src/tests/advanced-features.test.ts +0 -414
- package/src/tests/advanced.test.ts +0 -266
- package/src/tests/extended-managers.test.ts +0 -316
- package/src/tests/final-utilities.test.ts +0 -455
- package/src/tests/foundation.test.ts +0 -315
- package/src/tests/high-demand.test.ts +0 -257
- package/src/tests/specialized.test.ts +0 -97
- package/src/thumbnail-manager.ts +0 -272
- package/src/types/common.ts +0 -142
- package/src/types/document-types.ts +0 -457
- package/src/types/manager-types.ts +0 -284
- package/src/types/native-bindings.ts +0 -517
- package/src/workers/pool.ts +0 -274
- package/src/workers/worker.ts +0 -131
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AccessibilityManager - PDF Accessibility Operations
|
|
3
|
+
*
|
|
4
|
+
* Provides accessibility analysis and remediation capabilities including:
|
|
5
|
+
* - Tagged PDF detection
|
|
6
|
+
* - Structure tree extraction
|
|
7
|
+
* - Auto-tagging
|
|
8
|
+
* - Alt text management
|
|
9
|
+
* - Language and title metadata
|
|
10
|
+
*
|
|
11
|
+
* @since 1.0.0
|
|
12
|
+
*/
|
|
13
|
+
import { EventEmitter } from 'events';
|
|
14
|
+
import { mapFfiErrorCode, AccessibilityException } from '../errors.js';
|
|
15
|
+
// =============================================================================
|
|
16
|
+
// AccessibilityManager
|
|
17
|
+
// =============================================================================
|
|
18
|
+
/**
|
|
19
|
+
* Manager for PDF accessibility operations.
|
|
20
|
+
*
|
|
21
|
+
* Provides methods for inspecting and improving the accessibility of
|
|
22
|
+
* PDF documents, including tagged PDF detection, structure tree analysis,
|
|
23
|
+
* auto-tagging, and alt text management.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const accessibility = new AccessibilityManager(document);
|
|
28
|
+
*
|
|
29
|
+
* // Check if document is tagged
|
|
30
|
+
* const tagged = await accessibility.isTagged();
|
|
31
|
+
*
|
|
32
|
+
* // Auto-tag an untagged document
|
|
33
|
+
* if (!tagged) {
|
|
34
|
+
* const result = await accessibility.autoTag('en');
|
|
35
|
+
* console.log(`Tagged ${result.elementsTagged} elements`);
|
|
36
|
+
* }
|
|
37
|
+
*
|
|
38
|
+
* // Set alt text on images
|
|
39
|
+
* await accessibility.setAltText(0, 1, 'Company logo');
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export class AccessibilityManager extends EventEmitter {
|
|
43
|
+
constructor(document) {
|
|
44
|
+
super();
|
|
45
|
+
if (!document) {
|
|
46
|
+
throw new Error('Document cannot be null or undefined');
|
|
47
|
+
}
|
|
48
|
+
this.document = document;
|
|
49
|
+
try {
|
|
50
|
+
this.native = require('../../index.node');
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
this.native = null;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// ===========================================================================
|
|
57
|
+
// Accessibility Analysis
|
|
58
|
+
// ===========================================================================
|
|
59
|
+
/**
|
|
60
|
+
* Checks whether the PDF document is tagged.
|
|
61
|
+
*
|
|
62
|
+
* A tagged PDF contains a structure tree that defines the logical
|
|
63
|
+
* reading order and semantic structure of the content.
|
|
64
|
+
*
|
|
65
|
+
* @returns True if the document is tagged
|
|
66
|
+
* @throws AccessibilityException if the check fails
|
|
67
|
+
*/
|
|
68
|
+
async isTagged() {
|
|
69
|
+
if (!this.native?.pdf_accessibility_is_tagged) {
|
|
70
|
+
throw new AccessibilityException('Native accessibility not available: pdf_accessibility_is_tagged not found');
|
|
71
|
+
}
|
|
72
|
+
const errorCode = Buffer.alloc(4);
|
|
73
|
+
const result = this.native.pdf_accessibility_is_tagged(this.document._handle ?? this.document, errorCode);
|
|
74
|
+
const code = errorCode.readInt32LE(0);
|
|
75
|
+
if (code !== 0) {
|
|
76
|
+
throw mapFfiErrorCode(code, 'Failed to check if document is tagged');
|
|
77
|
+
}
|
|
78
|
+
this.emit('tagged-checked', { isTagged: result });
|
|
79
|
+
return !!result;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Gets the full structure tree of the document.
|
|
83
|
+
*
|
|
84
|
+
* Returns the hierarchical structure tree that defines the logical
|
|
85
|
+
* organization and reading order of the document content.
|
|
86
|
+
*
|
|
87
|
+
* @returns The document structure tree
|
|
88
|
+
* @throws AccessibilityException if the extraction fails
|
|
89
|
+
*/
|
|
90
|
+
async getStructureTree() {
|
|
91
|
+
if (!this.native?.pdf_accessibility_get_structure_tree) {
|
|
92
|
+
throw new AccessibilityException('Native accessibility not available: pdf_accessibility_get_structure_tree not found');
|
|
93
|
+
}
|
|
94
|
+
const errorCode = Buffer.alloc(4);
|
|
95
|
+
const resultPtr = this.native.pdf_accessibility_get_structure_tree(this.document._handle ?? this.document, errorCode);
|
|
96
|
+
const code = errorCode.readInt32LE(0);
|
|
97
|
+
if (code !== 0) {
|
|
98
|
+
throw mapFfiErrorCode(code, 'Failed to get structure tree');
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
const tree = typeof resultPtr === 'string'
|
|
102
|
+
? JSON.parse(resultPtr)
|
|
103
|
+
: resultPtr;
|
|
104
|
+
this.emit('structure-tree-retrieved', { totalElements: tree.totalElements });
|
|
105
|
+
// Free native handle if needed
|
|
106
|
+
if (this.native.pdf_structure_tree_free && typeof resultPtr !== 'string') {
|
|
107
|
+
this.native.pdf_structure_tree_free(resultPtr);
|
|
108
|
+
}
|
|
109
|
+
return tree;
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
return {
|
|
113
|
+
isTagged: false,
|
|
114
|
+
elements: [],
|
|
115
|
+
totalElements: 0,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Automatically tags an untagged PDF document.
|
|
121
|
+
*
|
|
122
|
+
* Uses heuristic analysis to detect document structure and apply
|
|
123
|
+
* appropriate tags for headings, paragraphs, images, tables, and lists.
|
|
124
|
+
*
|
|
125
|
+
* @param language - Optional BCP-47 language tag (e.g., 'en', 'fr', 'de')
|
|
126
|
+
* @returns Result of the auto-tagging operation
|
|
127
|
+
* @throws AccessibilityException if auto-tagging fails
|
|
128
|
+
*/
|
|
129
|
+
async autoTag(language) {
|
|
130
|
+
if (!this.native?.pdf_accessibility_auto_tag) {
|
|
131
|
+
throw new AccessibilityException('Native accessibility not available: pdf_accessibility_auto_tag not found');
|
|
132
|
+
}
|
|
133
|
+
const errorCode = Buffer.alloc(4);
|
|
134
|
+
const resultPtr = this.native.pdf_accessibility_auto_tag(this.document._handle ?? this.document, language ?? null, errorCode);
|
|
135
|
+
const code = errorCode.readInt32LE(0);
|
|
136
|
+
if (code !== 0) {
|
|
137
|
+
throw mapFfiErrorCode(code, 'Failed to auto-tag document');
|
|
138
|
+
}
|
|
139
|
+
let result;
|
|
140
|
+
try {
|
|
141
|
+
result = typeof resultPtr === 'string'
|
|
142
|
+
? JSON.parse(resultPtr)
|
|
143
|
+
: resultPtr ?? { success: true, elementsTagged: 0, imagesFound: 0, headingsDetected: 0, warnings: [] };
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
result = { success: true, elementsTagged: 0, imagesFound: 0, headingsDetected: 0, warnings: [] };
|
|
147
|
+
}
|
|
148
|
+
this.emit('auto-tagged', { language, elementsTagged: result.elementsTagged });
|
|
149
|
+
return result;
|
|
150
|
+
}
|
|
151
|
+
// ===========================================================================
|
|
152
|
+
// Alt Text Management
|
|
153
|
+
// ===========================================================================
|
|
154
|
+
/**
|
|
155
|
+
* Sets alt text for a structure element identified by page and MCID.
|
|
156
|
+
*
|
|
157
|
+
* @param page - Zero-based page index
|
|
158
|
+
* @param mcid - Marked content identifier of the element
|
|
159
|
+
* @param text - Alt text to set
|
|
160
|
+
* @throws AccessibilityException if the operation fails
|
|
161
|
+
*/
|
|
162
|
+
async setAltText(page, mcid, text) {
|
|
163
|
+
if (!this.native?.pdf_accessibility_set_alt_text) {
|
|
164
|
+
throw new AccessibilityException('Native accessibility not available: pdf_accessibility_set_alt_text not found');
|
|
165
|
+
}
|
|
166
|
+
const errorCode = Buffer.alloc(4);
|
|
167
|
+
this.native.pdf_accessibility_set_alt_text(this.document._handle ?? this.document, page, mcid, text, errorCode);
|
|
168
|
+
const code = errorCode.readInt32LE(0);
|
|
169
|
+
if (code !== 0) {
|
|
170
|
+
throw mapFfiErrorCode(code, `Failed to set alt text on page ${page}, mcid ${mcid}`);
|
|
171
|
+
}
|
|
172
|
+
this.emit('alt-text-set', { page, mcid, text });
|
|
173
|
+
}
|
|
174
|
+
// ===========================================================================
|
|
175
|
+
// Document-Level Accessibility Metadata
|
|
176
|
+
// ===========================================================================
|
|
177
|
+
/**
|
|
178
|
+
* Sets the document language.
|
|
179
|
+
*
|
|
180
|
+
* @param lang - BCP-47 language tag (e.g., 'en', 'en-US', 'fr')
|
|
181
|
+
* @throws AccessibilityException if the operation fails
|
|
182
|
+
*/
|
|
183
|
+
async setLanguage(lang) {
|
|
184
|
+
if (!this.native?.pdf_accessibility_set_language) {
|
|
185
|
+
throw new AccessibilityException('Native accessibility not available: pdf_accessibility_set_language not found');
|
|
186
|
+
}
|
|
187
|
+
const errorCode = Buffer.alloc(4);
|
|
188
|
+
this.native.pdf_accessibility_set_language(this.document._handle ?? this.document, lang, errorCode);
|
|
189
|
+
const code = errorCode.readInt32LE(0);
|
|
190
|
+
if (code !== 0) {
|
|
191
|
+
throw mapFfiErrorCode(code, `Failed to set document language to '${lang}'`);
|
|
192
|
+
}
|
|
193
|
+
this.emit('language-set', { lang });
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Sets the document title for accessibility.
|
|
197
|
+
*
|
|
198
|
+
* @param title - Document title
|
|
199
|
+
* @throws AccessibilityException if the operation fails
|
|
200
|
+
*/
|
|
201
|
+
async setTitle(title) {
|
|
202
|
+
if (!this.native?.pdf_accessibility_set_title) {
|
|
203
|
+
throw new AccessibilityException('Native accessibility not available: pdf_accessibility_set_title not found');
|
|
204
|
+
}
|
|
205
|
+
const errorCode = Buffer.alloc(4);
|
|
206
|
+
this.native.pdf_accessibility_set_title(this.document._handle ?? this.document, title, errorCode);
|
|
207
|
+
const code = errorCode.readInt32LE(0);
|
|
208
|
+
if (code !== 0) {
|
|
209
|
+
throw mapFfiErrorCode(code, 'Failed to set document title');
|
|
210
|
+
}
|
|
211
|
+
this.emit('title-set', { title });
|
|
212
|
+
}
|
|
213
|
+
// ===========================================================================
|
|
214
|
+
// Cleanup
|
|
215
|
+
// ===========================================================================
|
|
216
|
+
/**
|
|
217
|
+
* Releases resources held by this manager.
|
|
218
|
+
*/
|
|
219
|
+
destroy() {
|
|
220
|
+
this.removeAllListeners();
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
export default AccessibilityManager;
|
|
224
|
+
//# sourceMappingURL=accessibility-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accessibility-manager.js","sourceRoot":"","sources":["../../src/managers/accessibility-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAwDpE,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,oBAAqB,SAAQ,YAAY;IAIpD,YAAY,QAAa;QACvB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,yBAAyB;IACzB,8EAA8E;IAE9E;;;;;;;;OAQG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,2BAA2B,EAAE,CAAC;YAC9C,MAAM,IAAI,sBAAsB,CAAC,2EAA2E,CAAC,CAAC;QAChH,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,2BAA2B,CACpD,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EACtC,SAAS,CACV,CAAC;QACF,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAEtC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,MAAM,eAAe,CAAC,IAAI,EAAE,uCAAuC,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QAClD,OAAO,CAAC,CAAC,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,gBAAgB;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,oCAAoC,EAAE,CAAC;YACvD,MAAM,IAAI,sBAAsB,CAAC,oFAAoF,CAAC,CAAC;QACzH,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,oCAAoC,CAChE,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EACtC,SAAS,CACV,CAAC;QACF,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAEtC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,MAAM,eAAe,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAkB,OAAO,SAAS,KAAK,QAAQ;gBACvD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;gBACvB,CAAC,CAAC,SAAS,CAAC;YAEd,IAAI,CAAC,IAAI,CAAC,0BAA0B,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YAE7E,+BAA+B;YAC/B,IAAI,IAAI,CAAC,MAAM,CAAC,uBAAuB,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;gBACzE,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;YACjD,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,EAAE;gBACZ,aAAa,EAAE,CAAC;aACjB,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,OAAO,CAAC,QAAiB;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,0BAA0B,EAAE,CAAC;YAC7C,MAAM,IAAI,sBAAsB,CAAC,0EAA0E,CAAC,CAAC;QAC/G,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,0BAA0B,CACtD,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EACtC,QAAQ,IAAI,IAAI,EAChB,SAAS,CACV,CAAC;QACF,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAEtC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,MAAM,eAAe,CAAC,IAAI,EAAE,6BAA6B,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,MAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,GAAG,OAAO,SAAS,KAAK,QAAQ;gBACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;gBACvB,CAAC,CAAC,SAAS,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QAC3G,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACnG,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QAC9E,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,8EAA8E;IAC9E,sBAAsB;IACtB,8EAA8E;IAE9E;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CAAC,IAAY,EAAE,IAAY,EAAE,IAAY;QACvD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,8BAA8B,EAAE,CAAC;YACjD,MAAM,IAAI,sBAAsB,CAAC,8EAA8E,CAAC,CAAC;QACnH,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,8BAA8B,CACxC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EACtC,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,SAAS,CACV,CAAC;QACF,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAEtC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,MAAM,eAAe,CAAC,IAAI,EAAE,kCAAkC,IAAI,UAAU,IAAI,EAAE,CAAC,CAAC;QACtF,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,8EAA8E;IAC9E,wCAAwC;IACxC,8EAA8E;IAE9E;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,IAAY;QAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,8BAA8B,EAAE,CAAC;YACjD,MAAM,IAAI,sBAAsB,CAAC,8EAA8E,CAAC,CAAC;QACnH,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,8BAA8B,CACxC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EACtC,IAAI,EACJ,SAAS,CACV,CAAC;QACF,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAEtC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,MAAM,eAAe,CAAC,IAAI,EAAE,uCAAuC,IAAI,GAAG,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CAAC,KAAa;QAC1B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,2BAA2B,EAAE,CAAC;YAC9C,MAAM,IAAI,sBAAsB,CAAC,2EAA2E,CAAC,CAAC;QAChH,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,2BAA2B,CACrC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,EACtC,KAAK,EACL,SAAS,CACV,CAAC;QACF,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QAEtC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,MAAM,eAAe,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,8EAA8E;IAC9E,UAAU;IACV,8EAA8E;IAE9E;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAC5B,CAAC;CACF;AAED,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manager for PDF page annotations (comments, highlights, etc.)
|
|
3
|
+
*
|
|
4
|
+
* Provides methods to work with annotations on PDF pages including
|
|
5
|
+
* comments, highlights, underlines, and other markup.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { AnnotationManager } from 'pdf_oxide';
|
|
10
|
+
*
|
|
11
|
+
* const doc = PdfDocument.open('document.pdf');
|
|
12
|
+
* const page = doc.getPage(0);
|
|
13
|
+
* const annotationManager = new AnnotationManager(page);
|
|
14
|
+
*
|
|
15
|
+
* // Get annotations on the page
|
|
16
|
+
* const annotations = annotationManager.getAnnotations();
|
|
17
|
+
* console.log(`Page has ${annotations.length} annotations`);
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export interface Annotation {
|
|
21
|
+
type: string;
|
|
22
|
+
content?: string;
|
|
23
|
+
author?: string;
|
|
24
|
+
modificationDate?: Date;
|
|
25
|
+
bounds?: {
|
|
26
|
+
x: number;
|
|
27
|
+
y: number;
|
|
28
|
+
width: number;
|
|
29
|
+
height: number;
|
|
30
|
+
};
|
|
31
|
+
opacity?: number;
|
|
32
|
+
[key: string]: any;
|
|
33
|
+
}
|
|
34
|
+
export interface AnnotationStatistics {
|
|
35
|
+
total: number;
|
|
36
|
+
byType: Record<string, number>;
|
|
37
|
+
byAuthor: Record<string, number>;
|
|
38
|
+
authors: string[];
|
|
39
|
+
types: string[];
|
|
40
|
+
hasComments: boolean;
|
|
41
|
+
hasHighlights: boolean;
|
|
42
|
+
averageOpacity: number;
|
|
43
|
+
recentModifications: number;
|
|
44
|
+
}
|
|
45
|
+
export interface AnnotationValidation {
|
|
46
|
+
isValid: boolean;
|
|
47
|
+
issues: string[];
|
|
48
|
+
}
|
|
49
|
+
export declare class AnnotationManager {
|
|
50
|
+
private _page;
|
|
51
|
+
private _annotationCache;
|
|
52
|
+
private _statisticsCache;
|
|
53
|
+
/**
|
|
54
|
+
* Creates a new AnnotationManager for the given page
|
|
55
|
+
* @param page - The PDF page
|
|
56
|
+
* @throws Error if page is null or undefined
|
|
57
|
+
*/
|
|
58
|
+
constructor(page: any);
|
|
59
|
+
/**
|
|
60
|
+
* Clears the annotation cache
|
|
61
|
+
* Useful when page content might have changed
|
|
62
|
+
*/
|
|
63
|
+
clearCache(): void;
|
|
64
|
+
/**
|
|
65
|
+
* Gets all annotations on the page
|
|
66
|
+
* Performance optimization: caches results to avoid redundant fetches
|
|
67
|
+
* @returns Array of annotations
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* const annotations = manager.getAnnotations();
|
|
72
|
+
* annotations.forEach(ann => {
|
|
73
|
+
* console.log(`${ann.type}: ${ann.content}`);
|
|
74
|
+
* });
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
getAnnotations(): Annotation[];
|
|
78
|
+
/**
|
|
79
|
+
* Gets annotations by type
|
|
80
|
+
* @param type - Annotation type ('text', 'highlight', 'underline', 'strikeout', 'squiggly')
|
|
81
|
+
* @returns Matching annotations
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* const highlights = manager.getAnnotationsByType('highlight');
|
|
86
|
+
* console.log(`Page has ${highlights.length} highlights`);
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
getAnnotationsByType(type: string): Annotation[];
|
|
90
|
+
/**
|
|
91
|
+
* Gets number of annotations on page
|
|
92
|
+
* @returns Annotation count
|
|
93
|
+
*/
|
|
94
|
+
getAnnotationCount(): number;
|
|
95
|
+
/**
|
|
96
|
+
* Gets annotations by author
|
|
97
|
+
* @param author - Author name to filter
|
|
98
|
+
* @returns Annotations by specified author
|
|
99
|
+
*
|
|
100
|
+
* @example
|
|
101
|
+
* ```typescript
|
|
102
|
+
* const johnDoeAnnotations = manager.getAnnotationsByAuthor('John Doe');
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
getAnnotationsByAuthor(author: string): Annotation[];
|
|
106
|
+
/**
|
|
107
|
+
* Gets unique authors of annotations
|
|
108
|
+
* @returns Array of author names
|
|
109
|
+
*/
|
|
110
|
+
getAnnotationAuthors(): string[];
|
|
111
|
+
/**
|
|
112
|
+
* Gets annotations modified after a date
|
|
113
|
+
* @param date - Filter date
|
|
114
|
+
* @returns Annotations modified after date
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```typescript
|
|
118
|
+
* const recentAnnotations = manager.getAnnotationsAfter(new Date('2024-01-01'));
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
getAnnotationsAfter(date: Date): Annotation[];
|
|
122
|
+
/**
|
|
123
|
+
* Gets annotations modified before a date
|
|
124
|
+
* @param date - Filter date
|
|
125
|
+
* @returns Annotations modified before date
|
|
126
|
+
*/
|
|
127
|
+
getAnnotationsBefore(date: Date): Annotation[];
|
|
128
|
+
/**
|
|
129
|
+
* Gets annotations with specific content
|
|
130
|
+
* @param contentFragment - Text fragment to search for
|
|
131
|
+
* @returns Matching annotations
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```typescript
|
|
135
|
+
* const reviewComments = manager.getAnnotationsWithContent('review');
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
getAnnotationsWithContent(contentFragment: string): Annotation[];
|
|
139
|
+
/**
|
|
140
|
+
* Gets highlights (most common annotation type)
|
|
141
|
+
* @returns Array of highlight annotations
|
|
142
|
+
*/
|
|
143
|
+
getHighlights(): Annotation[];
|
|
144
|
+
/**
|
|
145
|
+
* Gets text comments/notes
|
|
146
|
+
* @returns Array of text annotations
|
|
147
|
+
*/
|
|
148
|
+
getComments(): Annotation[];
|
|
149
|
+
/**
|
|
150
|
+
* Gets underlines
|
|
151
|
+
* @returns Array of underline annotations
|
|
152
|
+
*/
|
|
153
|
+
getUnderlines(): Annotation[];
|
|
154
|
+
/**
|
|
155
|
+
* Gets strikeouts
|
|
156
|
+
* @returns Array of strikeout annotations
|
|
157
|
+
*/
|
|
158
|
+
getStrikeouts(): Annotation[];
|
|
159
|
+
/**
|
|
160
|
+
* Gets squiggly underlines
|
|
161
|
+
* @returns Array of squiggly annotations
|
|
162
|
+
*/
|
|
163
|
+
getSquigglies(): Annotation[];
|
|
164
|
+
/**
|
|
165
|
+
* Gets annotations statistics
|
|
166
|
+
* Performance optimization: caches computed statistics
|
|
167
|
+
* @returns Statistics about annotations
|
|
168
|
+
*
|
|
169
|
+
* @example
|
|
170
|
+
* ```typescript
|
|
171
|
+
* const stats = manager.getAnnotationStatistics();
|
|
172
|
+
* console.log(`Total: ${stats.total}, Highlights: ${stats.byType.highlight}`);
|
|
173
|
+
* ```
|
|
174
|
+
*/
|
|
175
|
+
getAnnotationStatistics(): AnnotationStatistics;
|
|
176
|
+
/**
|
|
177
|
+
* Gets average opacity of annotations
|
|
178
|
+
* @returns Average opacity value (0-1)
|
|
179
|
+
* @private
|
|
180
|
+
*/
|
|
181
|
+
private getAverageOpacity;
|
|
182
|
+
/**
|
|
183
|
+
* Gets annotations modified within last N days
|
|
184
|
+
* @param days - Number of days to look back
|
|
185
|
+
* @returns Recent annotations
|
|
186
|
+
*
|
|
187
|
+
* @example
|
|
188
|
+
* ```typescript
|
|
189
|
+
* const lastWeek = manager.getRecentAnnotations(7);
|
|
190
|
+
* console.log(`${lastWeek.length} annotations modified in last 7 days`);
|
|
191
|
+
* ```
|
|
192
|
+
*/
|
|
193
|
+
getRecentAnnotations(days: number): Annotation[];
|
|
194
|
+
/**
|
|
195
|
+
* Generates annotation summary
|
|
196
|
+
* @returns Human-readable annotation summary
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* ```typescript
|
|
200
|
+
* console.log(manager.generateAnnotationSummary());
|
|
201
|
+
* ```
|
|
202
|
+
*/
|
|
203
|
+
generateAnnotationSummary(): string;
|
|
204
|
+
/**
|
|
205
|
+
* Validates annotation bounds
|
|
206
|
+
* @param annotation - Annotation to validate
|
|
207
|
+
* @returns Validation result
|
|
208
|
+
*
|
|
209
|
+
* @example
|
|
210
|
+
* ```typescript
|
|
211
|
+
* const annotation = manager.getAnnotations()[0];
|
|
212
|
+
* const validation = manager.validateAnnotation(annotation);
|
|
213
|
+
* if (!validation.isValid) {
|
|
214
|
+
* console.log('Invalid:', validation.issues);
|
|
215
|
+
* }
|
|
216
|
+
* ```
|
|
217
|
+
*/
|
|
218
|
+
validateAnnotation(annotation: any): AnnotationValidation;
|
|
219
|
+
}
|
|
220
|
+
//# sourceMappingURL=annotation-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"annotation-manager.d.ts","sourceRoot":"","sources":["../../src/managers/annotation-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE;QACP,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAM;IACnB,OAAO,CAAC,gBAAgB,CAAsB;IAC9C,OAAO,CAAC,gBAAgB,CAA8B;IAEtD;;;;OAIG;gBACS,IAAI,EAAE,GAAG;IAUrB;;;OAGG;IACH,UAAU,IAAI,IAAI;IAKlB;;;;;;;;;;;;OAYG;IACH,cAAc,IAAI,UAAU,EAAE;IAiB9B;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE;IAchD;;;OAGG;IACH,kBAAkB,IAAI,MAAM;IAI5B;;;;;;;;;OASG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,EAAE;IASpD;;;OAGG;IACH,oBAAoB,IAAI,MAAM,EAAE;IAahC;;;;;;;;;OASG;IACH,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,EAAE;IAW7C;;;;OAIG;IACH,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,EAAE;IAW9C;;;;;;;;;OASG;IACH,yBAAyB,CAAC,eAAe,EAAE,MAAM,GAAG,UAAU,EAAE;IAahE;;;OAGG;IACH,aAAa,IAAI,UAAU,EAAE;IAI7B;;;OAGG;IACH,WAAW,IAAI,UAAU,EAAE;IAI3B;;;OAGG;IACH,aAAa,IAAI,UAAU,EAAE;IAI7B;;;OAGG;IACH,aAAa,IAAI,UAAU,EAAE;IAI7B;;;OAGG;IACH,aAAa,IAAI,UAAU,EAAE;IAI7B;;;;;;;;;;OAUG;IACH,uBAAuB,IAAI,oBAAoB;IAqC/C;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;;;;;;;OAUG;IACH,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,EAAE;IAWhD;;;;;;;;OAQG;IACH,yBAAyB,IAAI,MAAM;IAwBnC;;;;;;;;;;;;;OAaG;IACH,kBAAkB,CAAC,UAAU,EAAE,GAAG,GAAG,oBAAoB;CA4B1D"}
|