@stll/folio-core 0.15.2 → 0.15.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-edits/apply.js +2 -2
- package/dist/ai-edits/blockRange.js +1 -1
- package/dist/ai-edits/headless.js +9 -9
- package/dist/ai-edits/index.js +5 -5
- package/dist/ai-edits/read.js +1 -1
- package/dist/ai-edits/table-cell-mutations.js +2 -2
- package/dist/compat/eigenpal.js +19 -19
- package/dist/content-controls/mutateContentControls.js +1 -1
- package/dist/controller/contentControlWidgetController.js +1 -1
- package/dist/controller/headerFooterEditorManager.js +5 -5
- package/dist/controller/hiddenEditorManager.js +5 -5
- package/dist/controller/layoutPipeline.js +10 -10
- package/dist/controller/noteEditorManager.js +5 -5
- package/dist/docx/blockContentParser.js +4 -4
- package/dist/docx/commentParser.js +2 -2
- package/dist/docx/documentParser.js +27 -3
- package/dist/docx/encryption/agileDecryption.js +1 -1
- package/dist/docx/encryption/encryptionInfo.js +1 -1
- package/dist/docx/encryption/index.js +1 -1
- package/dist/docx/encryption/openEncryptedDocx.js +3 -3
- package/dist/docx/fieldParser.js +1 -1
- package/dist/docx/footnoteParser.js +2 -2
- package/dist/docx/groupDrawingParser.js +1 -1
- package/dist/docx/headerFooterParser.js +3 -3
- package/dist/docx/hyperlinkParser.js +1 -1
- package/dist/docx/imageParser.js +3 -3
- package/dist/docx/index.js +1 -1
- package/dist/docx/paragraphParser.js +4 -4
- package/dist/docx/paragraphTextBoxEnrichment.js +4 -4
- package/dist/docx/parser.js +7 -7
- package/dist/docx/rezip.js +9 -9
- package/dist/docx/runParser.js +6 -6
- package/dist/docx/sectionParser.js +2 -2
- package/dist/docx/selectiveSave.js +7 -7
- package/dist/docx/serializer/commentSerializer.js +2 -2
- package/dist/docx/serializer/documentSerializer.js +7 -3
- package/dist/docx/serializer/headerFooterSerializer.js +3 -3
- package/dist/docx/serializer/noteSerializer.js +2 -2
- package/dist/docx/serializer/numberingSerializer.js +1 -1
- package/dist/docx/serializer/paragraphSerializer.js +2 -2
- package/dist/docx/serializer/runSerializer.js +3 -3
- package/dist/docx/serializer/sectionPropertiesSerializer.js +1 -1
- package/dist/docx/serializer/stylesSerializer.js +3 -3
- package/dist/docx/serializer/tableSerializer.js +1 -1
- package/dist/docx/server/docxToMarkdown.js +1 -1
- package/dist/docx/server/evaluateDocxXmlPatchProposal.js +1 -1
- package/dist/docx/server/extractDocxText.js +1 -1
- package/dist/docx/server/validateDocxConformance.js +3 -3
- package/dist/docx/shapeParser.js +1 -1
- package/dist/docx/styleParser.js +3 -3
- package/dist/docx/tableParser.js +3 -3
- package/dist/docx/textBoxParser.js +1 -1
- package/dist/docx/vmlImageParser.js +2 -2
- package/dist/fonts/embeddedFonts.js +2 -2
- package/dist/index.js +18 -18
- package/dist/layout-bridge/convert/footnoteLayout.js +2 -2
- package/dist/layout-bridge/convert/headerFooterLayout.js +2 -2
- package/dist/layout-bridge/convert/paragraphFrames.js +2 -2
- package/dist/layout-bridge/convert/toFlowBlocks.js +10 -10
- package/dist/layout-bridge/engine/clickToPosition.js +2 -2
- package/dist/layout-bridge/engine/hitTest.js +1 -1
- package/dist/layout-bridge/engine/measuring/index.js +6 -6
- package/dist/layout-bridge/engine/selectionRects.js +5 -5
- package/dist/layout-engine/index.js +6 -6
- package/dist/layout-engine/measure/cache.js +2 -2
- package/dist/layout-engine/measure/index.js +6 -6
- package/dist/layout-engine/measure/lineBreaks.js +1 -1
- package/dist/layout-engine/measure/listMarkerWidth.js +1 -1
- package/dist/layout-engine/measure/measureBlocks.js +7 -7
- package/dist/layout-engine/measure/measureContainer.js +3 -3
- package/dist/layout-engine/measure/measureHelpers.js +1 -1
- package/dist/layout-engine/measure/measureParagraph.js +7 -7
- package/dist/layout-engine/measure/tableCellFlow.js +1 -1
- package/dist/layout-engine/paginator.js +1 -1
- package/dist/layout-engine/tableRowBreak.js +2 -2
- package/dist/layout-painter/index.js +5 -5
- package/dist/layout-painter/registry/modules/textBox.js +1 -1
- package/dist/layout-painter/renderImage.js +1 -1
- package/dist/layout-painter/renderPage.js +7 -7
- package/dist/layout-painter/renderParagraph.js +13 -13
- package/dist/layout-painter/renderTable.js +6 -6
- package/dist/layout-painter/renderTextBox.js +1 -1
- package/dist/managers/DocumentLoaderManager.js +3 -3
- package/dist/managers/TableSelectionManager.js +1 -1
- package/dist/managers/editorShortcuts.js +1 -1
- package/dist/markdown/fromMarkdown.js +1 -1
- package/dist/markdown/index.js +1 -1
- package/dist/markdown/renderRuns.js +1 -1
- package/dist/markdown/renderTable.js +1 -1
- package/dist/model.js +2 -2
- package/dist/prosemirror/commands/comments.js +3 -3
- package/dist/prosemirror/commands/contentControls.js +1 -1
- package/dist/prosemirror/commands/contentControlsBlockFill.js +1 -1
- package/dist/prosemirror/commands/formatting.js +1 -1
- package/dist/prosemirror/commands/hyperlink.js +1 -1
- package/dist/prosemirror/commands/image.js +2 -2
- package/dist/prosemirror/commands/index.js +6 -6
- package/dist/prosemirror/commands/propertyChangeScope.js +1 -1
- package/dist/prosemirror/commands/tableCellMergeResolution.js +1 -1
- package/dist/prosemirror/commentOps.js +1 -1
- package/dist/prosemirror/conversion/fromProseDoc.js +4 -4
- package/dist/prosemirror/conversion/index.js +1 -1
- package/dist/prosemirror/conversion/toProseDoc.js +8 -8
- package/dist/prosemirror/extensions/StarterKit.js +4 -4
- package/dist/prosemirror/extensions/core/ParagraphExtension.js +4 -4
- package/dist/prosemirror/extensions/features/AutoBidiDetectionExtension.js +2 -2
- package/dist/prosemirror/extensions/features/BaseKeymapExtension.js +3 -3
- package/dist/prosemirror/extensions/features/BidiShortcutExtension.js +2 -2
- package/dist/prosemirror/extensions/features/ContentControlWidgetsExtension.js +1 -1
- package/dist/prosemirror/extensions/features/ImagePasteExtension.js +2 -2
- package/dist/prosemirror/extensions/features/ListExtension.js +3 -3
- package/dist/prosemirror/extensions/features/ParaIdAllocatorExtension.js +1 -1
- package/dist/prosemirror/extensions/features/PasteCleanupExtension.js +2 -2
- package/dist/prosemirror/extensions/features/PasteStyleInlinerExtension.js +1 -1
- package/dist/prosemirror/extensions/features/SelectionTrackerExtension.js +1 -1
- package/dist/prosemirror/extensions/marks/CharacterSpacingExtension.js +1 -1
- package/dist/prosemirror/extensions/marks/HighlightExtension.js +1 -1
- package/dist/prosemirror/extensions/marks/HyperlinkExtension.js +1 -1
- package/dist/prosemirror/extensions/marks/RunShadingExtension.js +1 -1
- package/dist/prosemirror/extensions/marks/TextColorExtension.js +1 -1
- package/dist/prosemirror/extensions/marks/TrackedChangeExtensions.js +1 -1
- package/dist/prosemirror/extensions/nodes/FieldExtension.js +1 -1
- package/dist/prosemirror/extensions/nodes/TableExtension.js +1 -1
- package/dist/prosemirror/index.js +15 -15
- package/dist/prosemirror/insertOperations.js +3 -3
- package/dist/prosemirror/plugins/templateDirectives.js +1 -1
- package/dist/prosemirror/styles/styleResolver.js +1 -1
- package/dist/redline.js +1 -1
- package/dist/render-dom/BodySelectionOverlay.js +2 -2
- package/dist/server.js +15 -15
- package/dist/style-sets/extract.js +1 -1
- package/dist/utils/formatToStyle.js +1 -1
- package/dist/version-comparison.js +2 -2
- package/package.json +2 -2
package/dist/ai-edits/apply.js
CHANGED
|
@@ -5,10 +5,10 @@ import { stripBlockIdentityAttrs } from "./block-identity.js";
|
|
|
5
5
|
import { buildCleanBlockText } from "./clean-text.js";
|
|
6
6
|
import { hasInlineEmphasis, parseInlineEmphasisRuns, stripInlineEmphasisMarkers } from "./inline-emphasis.js";
|
|
7
7
|
import { hashFolioAIBlockText, normalizeFolioAIBlockText } from "./snapshot.js";
|
|
8
|
-
import { planTableMutations } from "./table-mutation-plan.js";
|
|
9
|
-
import { findEnclosingTableBoundary, findEnclosingTableCell, findEnclosingTableRow, tableRectangleCutsMergedCell } from "./table-targets.js";
|
|
10
8
|
import { mergeTableRectangle, mergeTrackedVerticalTableCells, splitTableRectangle, splitTrackedVerticalTableCell } from "./table-cell-mutations.js";
|
|
9
|
+
import { planTableMutations } from "./table-mutation-plan.js";
|
|
11
10
|
import { applyTableColumnDeletion, applyTableColumnInsertion, applyTableRowDeletion, applyTableRowInsertion, findTableColumnInsertion, findTableRowInsertion, getTableColumnCoordinateKey } from "./table-row-column-mutations.js";
|
|
11
|
+
import { findEnclosingTableBoundary, findEnclosingTableCell, findEnclosingTableRow, tableRectangleCutsMergedCell } from "./table-targets.js";
|
|
12
12
|
import { diffWordSegments } from "./word-diff.js";
|
|
13
13
|
import { TableMap } from "prosemirror-tables";
|
|
14
14
|
//#region src/ai-edits/apply.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { findParagraphByParaId } from "../prosemirror/utils/findParagraphByParaId.js";
|
|
1
2
|
import { getFolioParaIdFromBlockId, getSequentialFolioBlockIdIndex } from "../types/block-id.js";
|
|
2
3
|
import { buildCleanBlockText } from "./clean-text.js";
|
|
3
4
|
import { createFolioAIEditSnapshot, hashFolioAIBlockText } from "./snapshot.js";
|
|
4
|
-
import { findParagraphByParaId } from "../prosemirror/utils/findParagraphByParaId.js";
|
|
5
5
|
//#region src/ai-edits/blockRange.ts
|
|
6
6
|
const resolveFolioAIBlockRange = ({ blockId, doc, snapshot }) => {
|
|
7
7
|
const paraId = getFolioParaIdFromBlockId(blockId);
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { getChangedParagraphIds, hasStructuralChanges, hasUntrackedChanges, ignoreTrackedChanges } from "../prosemirror/extensions/features/ParagraphChangeTrackerExtension.js";
|
|
2
|
-
import { deterministicHexId } from "../utils/hexId.js";
|
|
3
|
-
import { schema, singletonManager } from "../prosemirror/schema/index.js";
|
|
4
|
-
import { footnoteToProseDoc, headerFooterToProseDoc, toProseDoc } from "../prosemirror/conversion/toProseDoc.js";
|
|
5
|
-
import { proseDocToBlocks, updateDocumentContent } from "../prosemirror/conversion/fromProseDoc.js";
|
|
6
|
-
import { buildAnnotatedBlockText } from "./clean-text.js";
|
|
7
|
-
import { createFolioAIEditSnapshot, normalizeFolioAIBlockText } from "./snapshot.js";
|
|
8
1
|
import { applyFolioDocumentOperations } from "../document-operations.js";
|
|
9
2
|
import { getEndnoteText, getFootnoteText, isSeparatorEndnote, isSeparatorFootnote } from "../docx/footnoteParser.js";
|
|
10
3
|
import { getHeaderFooterText } from "../docx/headerFooterParser.js";
|
|
11
4
|
import { parseDocx } from "../docx/parser.js";
|
|
12
|
-
import { repackDocx } from "../docx/rezip.js";
|
|
13
|
-
import { getCommentAnchorsFromDoc, getTrackedChangesFromDoc } from "./read.js";
|
|
14
5
|
import { createReply } from "../docx/replyToComment.js";
|
|
6
|
+
import { repackDocx } from "../docx/rezip.js";
|
|
15
7
|
import { attemptSelectiveSave } from "../docx/selectiveSave.js";
|
|
16
8
|
import { acceptAIEditRevision, acceptAllChanges, rejectAIEditRevision, rejectAllChanges } from "../prosemirror/commands/comments.js";
|
|
9
|
+
import { proseDocToBlocks, updateDocumentContent } from "../prosemirror/conversion/fromProseDoc.js";
|
|
10
|
+
import { footnoteToProseDoc, headerFooterToProseDoc, toProseDoc } from "../prosemirror/conversion/toProseDoc.js";
|
|
11
|
+
import { getChangedParagraphIds, hasStructuralChanges, hasUntrackedChanges, ignoreTrackedChanges } from "../prosemirror/extensions/features/ParagraphChangeTrackerExtension.js";
|
|
12
|
+
import { schema, singletonManager } from "../prosemirror/schema/index.js";
|
|
13
|
+
import { deterministicHexId } from "../utils/hexId.js";
|
|
14
|
+
import { buildAnnotatedBlockText } from "./clean-text.js";
|
|
15
|
+
import { getCommentAnchorsFromDoc, getTrackedChangesFromDoc } from "./read.js";
|
|
16
|
+
import { createFolioAIEditSnapshot, normalizeFolioAIBlockText } from "./snapshot.js";
|
|
17
17
|
import { TaggedError } from "better-result";
|
|
18
18
|
import { EditorState } from "prosemirror-state";
|
|
19
19
|
//#region src/ai-edits/headless.ts
|
package/dist/ai-edits/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
import { FOLIO_DOCUMENT_OPERATION_BATCH_MODES, FOLIO_DOCUMENT_OPERATION_CONTRACT_VERSION, FOLIO_DOCUMENT_OPERATION_MODES, FOLIO_DOCUMENT_OPERATION_MODES_BY_TYPE, FOLIO_DOCUMENT_OPERATION_PRECONDITIONS, FOLIO_DOCUMENT_OPERATION_STORIES, FOLIO_DOCUMENT_OPERATION_TYPES, InvalidFolioDocumentOperationBatchError, UnsupportedFolioDocumentOperationVersionError, applyFolioDocumentOperations, assertSupportedFolioDocumentOperationVersion, getFolioDocumentOperationCapabilities, getFolioDocumentOperationIssues, getFolioDocumentOperationReceipts, isFolioDocumentOperationModeSupported, isSupportedFolioDocumentOperationVersion, parseFolioDocumentOperationBatch } from "../document-operations.js";
|
|
1
2
|
import { getFolioParaIdFromBlockId } from "../types/block-id.js";
|
|
2
|
-
import { buildAnnotatedBlockText } from "./clean-text.js";
|
|
3
|
-
import { createFolioAIEditSnapshot, createFolioAITextRangeHandle, hashFolioAIBlockText, normalizeFolioAIBlockText } from "./snapshot.js";
|
|
4
|
-
import { diffWordSegments } from "./word-diff.js";
|
|
5
3
|
import { applyFolioAIEditOperations } from "./apply.js";
|
|
6
|
-
import { FOLIO_DOCUMENT_OPERATION_BATCH_MODES, FOLIO_DOCUMENT_OPERATION_CONTRACT_VERSION, FOLIO_DOCUMENT_OPERATION_MODES, FOLIO_DOCUMENT_OPERATION_MODES_BY_TYPE, FOLIO_DOCUMENT_OPERATION_PRECONDITIONS, FOLIO_DOCUMENT_OPERATION_STORIES, FOLIO_DOCUMENT_OPERATION_TYPES, InvalidFolioDocumentOperationBatchError, UnsupportedFolioDocumentOperationVersionError, applyFolioDocumentOperations, assertSupportedFolioDocumentOperationVersion, getFolioDocumentOperationCapabilities, getFolioDocumentOperationIssues, getFolioDocumentOperationReceipts, isFolioDocumentOperationModeSupported, isSupportedFolioDocumentOperationVersion, parseFolioDocumentOperationBatch } from "../document-operations.js";
|
|
7
4
|
import { clampRangeToDocSize, resolveFolioAIBlockRange, resolveFolioAITextRange, resolvePassageRange } from "./blockRange.js";
|
|
5
|
+
import { buildAnnotatedBlockText } from "./clean-text.js";
|
|
6
|
+
import { FOLIO_RESOLVED_REVIEWED_VIEWS, FOLIO_REVIEWED_VIEWS, FolioDocumentStoryNotFoundError, UnsupportedFolioReviewedViewError, isFolioResolvedReviewedView, isFolioReviewedView } from "./headless.js";
|
|
8
7
|
import { getCommentAnchorsFromDoc, getTrackedChangesFromDoc } from "./read.js";
|
|
9
8
|
import { getFolioDocumentOutline, readFolioDocumentSection } from "./scoped-reading.js";
|
|
10
|
-
import {
|
|
9
|
+
import { createFolioAIEditSnapshot, createFolioAITextRangeHandle, hashFolioAIBlockText, normalizeFolioAIBlockText } from "./snapshot.js";
|
|
10
|
+
import { diffWordSegments } from "./word-diff.js";
|
|
11
11
|
export { FOLIO_DOCUMENT_OPERATION_BATCH_MODES, FOLIO_DOCUMENT_OPERATION_CONTRACT_VERSION, FOLIO_DOCUMENT_OPERATION_MODES, FOLIO_DOCUMENT_OPERATION_MODES_BY_TYPE, FOLIO_DOCUMENT_OPERATION_PRECONDITIONS, FOLIO_DOCUMENT_OPERATION_STORIES, FOLIO_DOCUMENT_OPERATION_TYPES, FOLIO_RESOLVED_REVIEWED_VIEWS, FOLIO_REVIEWED_VIEWS, FolioDocumentStoryNotFoundError, InvalidFolioDocumentOperationBatchError, UnsupportedFolioDocumentOperationVersionError, UnsupportedFolioReviewedViewError, applyFolioAIEditOperations, applyFolioDocumentOperations, assertSupportedFolioDocumentOperationVersion, buildAnnotatedBlockText, clampRangeToDocSize, createFolioAIEditSnapshot, createFolioAITextRangeHandle, diffWordSegments, getCommentAnchorsFromDoc, getFolioDocumentOperationCapabilities, getFolioDocumentOperationIssues, getFolioDocumentOperationReceipts, getFolioDocumentOutline, getFolioParaIdFromBlockId, getTrackedChangesFromDoc, hashFolioAIBlockText, isFolioDocumentOperationModeSupported, isFolioResolvedReviewedView, isFolioReviewedView, isSupportedFolioDocumentOperationVersion, normalizeFolioAIBlockText, parseFolioDocumentOperationBatch, readFolioDocumentSection, resolveFolioAIBlockRange, resolveFolioAITextRange, resolvePassageRange };
|
package/dist/ai-edits/read.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { expectRunPropertyChangeMarkAttrs } from "../prosemirror/attrs/index.js";
|
|
2
|
-
import { createFolioAIEditSnapshot } from "./snapshot.js";
|
|
3
2
|
import { getTableCellMergeChange } from "../prosemirror/tableCellMergeRevision.js";
|
|
3
|
+
import { createFolioAIEditSnapshot } from "./snapshot.js";
|
|
4
4
|
//#region src/ai-edits/read.ts
|
|
5
5
|
/** Map each snapshot block's start position to its stable id. */
|
|
6
6
|
const blockStartIdsFromDoc = (doc) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { expectTableCellAttrs } from "../prosemirror/attrs/index.js";
|
|
2
|
-
import { markStructuralChange } from "../prosemirror/extensions/features/ParagraphChangeTrackerExtension.js";
|
|
3
|
-
import { standaloneTableCellToProseMirror } from "../prosemirror/conversion/toProseDoc.js";
|
|
4
2
|
import { standaloneTableCellFromProseMirror } from "../prosemirror/conversion/fromProseDoc.js";
|
|
3
|
+
import { standaloneTableCellToProseMirror } from "../prosemirror/conversion/toProseDoc.js";
|
|
4
|
+
import { markStructuralChange } from "../prosemirror/extensions/features/ParagraphChangeTrackerExtension.js";
|
|
5
5
|
import { tableRectanglesEqual } from "./table-mutation-plan.js";
|
|
6
6
|
import { tableRectangleCutsMergedCell } from "./table-targets.js";
|
|
7
7
|
import { Result } from "better-result";
|
package/dist/compat/eigenpal.js
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { deriveBlockId, getFolioParaIdFromBlockId, isFolioBlockId, isSequentialFolioBlockId } from "../types/block-id.js";
|
|
1
|
+
import { applyFolioAIEditOperations } from "../ai-edits/apply.js";
|
|
3
2
|
import { createFolioAIEditSnapshot, hashFolioAIBlockText, normalizeFolioAIBlockText } from "../ai-edits/snapshot.js";
|
|
4
3
|
import { diffWordSegments } from "../ai-edits/word-diff.js";
|
|
5
|
-
import {
|
|
4
|
+
import { applySuggestions } from "../ai-suggestions/apply.js";
|
|
5
|
+
import { isSuggestionStale, resolveSuggestionAnchor } from "../ai-suggestions/conflict.js";
|
|
6
|
+
import { buildPositionalText } from "../ai-suggestions/text-positions.js";
|
|
7
|
+
import { DEFAULT_AI_SUGGESTION_PRESETS } from "../ai-suggestions/types.js";
|
|
6
8
|
import { FOLIO_DOCUMENT_OPERATION_BATCH_MODES, FOLIO_DOCUMENT_OPERATION_CONTRACT_VERSION, FOLIO_DOCUMENT_OPERATION_MODES, FOLIO_DOCUMENT_OPERATION_MODES_BY_TYPE, FOLIO_DOCUMENT_OPERATION_PRECONDITIONS, FOLIO_DOCUMENT_OPERATION_STORIES, FOLIO_DOCUMENT_OPERATION_TYPES, InvalidFolioDocumentOperationBatchError, UnsupportedFolioDocumentOperationVersionError, applyFolioDocumentOperations, assertSupportedFolioDocumentOperationVersion, getFolioDocumentOperationCapabilities, getFolioDocumentOperationIssues, getFolioDocumentOperationReceipts, isFolioDocumentOperationModeSupported, isSupportedFolioDocumentOperationVersion, parseFolioDocumentOperationBatch } from "../document-operations.js";
|
|
7
|
-
import { DOCUMENT_PRESET_VERSION, DOCUMENT_STYLE_SET_VERSION } from "../style-sets/types.js";
|
|
8
|
-
import { createEmptyDocument } from "../utils/createDocument.js";
|
|
9
|
-
import { mergeDocumentContent } from "../utils/mergeDocumentContent.js";
|
|
10
|
-
import { extractDocumentStyleSet, extractDocumentStyleSetFromDocx, inspectDocumentStyles, inspectDocumentStylesFromDocx } from "../style-sets/extract.js";
|
|
11
|
-
import { STELLA_STYLE_SET_NAME, createStellaStyleDocumentPreset, createStellaStyleSet } from "../style-sets/stellaStyle.js";
|
|
12
|
-
import { createDocx } from "../docx/rezip.js";
|
|
13
9
|
import { inspectDocxCompatibility } from "../docx/compatibility.js";
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
10
|
+
import { createDocx } from "../docx/rezip.js";
|
|
11
|
+
import { buildEmbeddedFontFamilyMap, extractEmbeddedFonts, getEmbeddedFontFaces, scopeEmbeddedFontFamily } from "../fonts/embeddedFonts.js";
|
|
12
|
+
import { DOCX_CONFORMANCE_CLASSES } from "../index.js";
|
|
13
|
+
import { fromMarkdown } from "../markdown/fromMarkdown.js";
|
|
14
|
+
import { toMarkdown, toMarkdownResult } from "../markdown/index.js";
|
|
19
15
|
import { scrollFolioPositionIntoView } from "../paged-layout/scrollToPmPosition.js";
|
|
20
16
|
import { getFolioCaretViewportRect, getFolioSelectionViewportRect } from "../paged-layout/selectionViewportRect.js";
|
|
21
17
|
import { createAICitationDecorationsPlugin, setAICitationsMeta, setActiveCitationMeta } from "../prosemirror/plugins/aiCitationDecorations.js";
|
|
18
|
+
import { setAISuggestionsMeta, setFocusedSuggestionMeta } from "../prosemirror/plugins/aiSuggestionDecorations.js";
|
|
22
19
|
import { anonymizationDecorationsKey, getAnonymizationMatches, setAnonymizationTermsMeta } from "../prosemirror/plugins/anonymizationDecorations.js";
|
|
20
|
+
import { DEFAULT_AUTOCOMPLETE_DEAD_ZONE_NODES, acceptAutocompleteSuggestion, acceptAutocompleteWord, appendAutocompleteToken, autocompleteSuggestionKey, autocompleteSuggestionPlugin, clearAutocompleteSuggestion, finishAutocompleteSuggestion, getAutocompleteSuggestion, shouldTriggerAutocomplete, startAutocompleteSuggestion } from "../prosemirror/plugins/autocompleteSuggestion.js";
|
|
23
21
|
import { getTemplateDirectives, scanDirectives } from "../prosemirror/plugins/templateDirectives.js";
|
|
24
22
|
import { setTemplatePreviewValues } from "../prosemirror/plugins/templatePreviewValues.js";
|
|
25
23
|
import { clearTemplateSlashMenu, consumeTemplateSlashQuery, getTemplateSlashMenu, resetTemplateSlashQuery, templateSlashMenuKey } from "../prosemirror/plugins/templateSlashMenu.js";
|
|
26
|
-
import {
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
29
|
-
import {
|
|
30
|
-
import {
|
|
24
|
+
import { extractDocumentStyleSet, extractDocumentStyleSetFromDocx, inspectDocumentStyles, inspectDocumentStylesFromDocx } from "../style-sets/extract.js";
|
|
25
|
+
import { STELLA_STYLE_SET_NAME, createStellaStyleDocumentPreset, createStellaStyleSet } from "../style-sets/stellaStyle.js";
|
|
26
|
+
import { DOCUMENT_PRESET_VERSION, DOCUMENT_STYLE_SET_VERSION } from "../style-sets/types.js";
|
|
27
|
+
import { deriveBlockId, getFolioParaIdFromBlockId, isFolioBlockId, isSequentialFolioBlockId } from "../types/block-id.js";
|
|
28
|
+
import { createEmptyDocument } from "../utils/createDocument.js";
|
|
29
|
+
import { getGoogleFontsEnabled, setEmbeddedFontFamilyMap, setGoogleFontsEnabled } from "../utils/fontResolver.js";
|
|
30
|
+
import { mergeDocumentContent } from "../utils/mergeDocumentContent.js";
|
|
31
31
|
export { DEFAULT_AI_SUGGESTION_PRESETS, DEFAULT_AUTOCOMPLETE_DEAD_ZONE_NODES, DOCUMENT_PRESET_VERSION, DOCUMENT_STYLE_SET_VERSION, DOCX_CONFORMANCE_CLASSES, FOLIO_DOCUMENT_OPERATION_BATCH_MODES, FOLIO_DOCUMENT_OPERATION_CONTRACT_VERSION, FOLIO_DOCUMENT_OPERATION_MODES, FOLIO_DOCUMENT_OPERATION_MODES_BY_TYPE, FOLIO_DOCUMENT_OPERATION_PRECONDITIONS, FOLIO_DOCUMENT_OPERATION_STORIES, FOLIO_DOCUMENT_OPERATION_TYPES, InvalidFolioDocumentOperationBatchError, STELLA_STYLE_SET_NAME, UnsupportedFolioDocumentOperationVersionError, acceptAutocompleteSuggestion, acceptAutocompleteWord, anonymizationDecorationsKey, appendAutocompleteToken, applyFolioAIEditOperations, applyFolioDocumentOperations, applySuggestions, assertSupportedFolioDocumentOperationVersion, autocompleteSuggestionKey, autocompleteSuggestionPlugin, buildEmbeddedFontFamilyMap, buildPositionalText, clearAutocompleteSuggestion, clearTemplateSlashMenu, consumeTemplateSlashQuery, createAICitationDecorationsPlugin, createDocx, createEmptyDocument, createFolioAIEditSnapshot, createStellaStyleDocumentPreset, createStellaStyleSet, deriveBlockId, diffWordSegments, extractDocumentStyleSet, extractDocumentStyleSetFromDocx, extractEmbeddedFonts, finishAutocompleteSuggestion, fromMarkdown, getAnonymizationMatches, getAutocompleteSuggestion, getEmbeddedFontFaces, getFolioCaretViewportRect, getFolioDocumentOperationCapabilities, getFolioDocumentOperationIssues, getFolioDocumentOperationReceipts, getFolioParaIdFromBlockId, getFolioSelectionViewportRect, getGoogleFontsEnabled, getTemplateDirectives, getTemplateSlashMenu, hashFolioAIBlockText, inspectDocumentStyles, inspectDocumentStylesFromDocx, inspectDocxCompatibility, isFolioBlockId, isFolioDocumentOperationModeSupported, isSequentialFolioBlockId, isSuggestionStale, isSupportedFolioDocumentOperationVersion, mergeDocumentContent, normalizeFolioAIBlockText, parseFolioDocumentOperationBatch, resetTemplateSlashQuery, resolveSuggestionAnchor, scanDirectives, scopeEmbeddedFontFamily, scrollFolioPositionIntoView, setAICitationsMeta, setAISuggestionsMeta, setActiveCitationMeta, setAnonymizationTermsMeta, setEmbeddedFontFamilyMap, setFocusedSuggestionMeta, setGoogleFontsEnabled, setTemplatePreviewValues, shouldTriggerAutocomplete, startAutocompleteSuggestion, templateSlashMenuKey, toMarkdown, toMarkdownResult };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ContentControlBoundError, ContentControlLockedError, ContentControlTypeError } from "./errors.js";
|
|
2
1
|
import { formatDate } from "../docx/fieldParser.js";
|
|
2
|
+
import { ContentControlBoundError, ContentControlLockedError, ContentControlTypeError } from "./errors.js";
|
|
3
3
|
//#region src/content-controls/mutateContentControls.ts
|
|
4
4
|
/**
|
|
5
5
|
* Pure (immutable) write helpers for block-level content controls.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { CONTENT_CONTROL_WIDGET_EVENT_NAME, dispatchDatePick, dispatchDropdownPick, handleContentControlWidgetClick } from "../prosemirror/plugins/contentControlWidgets.js";
|
|
2
1
|
import { Subscribable } from "../managers/Subscribable.js";
|
|
2
|
+
import { CONTENT_CONTROL_WIDGET_EVENT_NAME, dispatchDatePick, dispatchDropdownPick, handleContentControlWidgetClick } from "../prosemirror/plugins/contentControlWidgets.js";
|
|
3
3
|
//#region src/controller/contentControlWidgetController.ts
|
|
4
4
|
const CLOSED_SNAPSHOT = { status: "closed" };
|
|
5
5
|
const PICKER_GAP_PX = 4;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import { clearHeaderFooterVerbatimXml } from "../docx/headerFooterVerbatim.js";
|
|
2
|
+
import { proseDocToBlocks } from "../prosemirror/conversion/fromProseDoc.js";
|
|
3
|
+
import { headerFooterToProseDoc } from "../prosemirror/conversion/toProseDoc.js";
|
|
1
4
|
import { ExtensionManager } from "../prosemirror/extensions/ExtensionManager.js";
|
|
5
|
+
import { createStarterKit } from "../prosemirror/extensions/StarterKit.js";
|
|
2
6
|
import { ensureBaseDirectionInState } from "../prosemirror/extensions/features/AutoBidiDetectionExtension.js";
|
|
3
|
-
import { createDocumentStylesPlugin } from "../prosemirror/plugins/documentStyles.js";
|
|
4
7
|
import { ensureParaIdsInState } from "../prosemirror/extensions/features/ParaIdAllocatorExtension.js";
|
|
5
|
-
import {
|
|
8
|
+
import { createDocumentStylesPlugin } from "../prosemirror/plugins/documentStyles.js";
|
|
6
9
|
import { schema } from "../prosemirror/schema/index.js";
|
|
7
|
-
import { headerFooterToProseDoc } from "../prosemirror/conversion/toProseDoc.js";
|
|
8
|
-
import { proseDocToBlocks } from "../prosemirror/conversion/fromProseDoc.js";
|
|
9
|
-
import { clearHeaderFooterVerbatimXml } from "../docx/headerFooterVerbatim.js";
|
|
10
10
|
import { EditorState } from "prosemirror-state";
|
|
11
11
|
import { EditorView } from "prosemirror-view";
|
|
12
12
|
//#region src/controller/headerFooterEditorManager.ts
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import { recordHiddenEditorPhase, recordHiddenEditorStateCreate } from "../layout-engine/layoutInstrumentation.js";
|
|
2
|
+
import { suppressHiddenEditorScrollToSelection } from "../paged-layout/hiddenEditorScroll.js";
|
|
3
|
+
import { isReadOnlyEditKey } from "../paged-layout/readOnlyEditAttempt.js";
|
|
4
|
+
import { createEmptyDoc, toProseDoc } from "../prosemirror/conversion/toProseDoc.js";
|
|
1
5
|
import { ensureBaseDirectionInState } from "../prosemirror/extensions/features/AutoBidiDetectionExtension.js";
|
|
2
|
-
import { createDocumentStylesPlugin } from "../prosemirror/plugins/documentStyles.js";
|
|
3
6
|
import { ensureParaIdsInDoc, ensureParaIdsInState } from "../prosemirror/extensions/features/ParaIdAllocatorExtension.js";
|
|
7
|
+
import { createDocumentStylesPlugin } from "../prosemirror/plugins/documentStyles.js";
|
|
4
8
|
import { schema } from "../prosemirror/schema/index.js";
|
|
5
|
-
import { createEmptyDoc, toProseDoc } from "../prosemirror/conversion/toProseDoc.js";
|
|
6
9
|
import { createHiddenEditorApi } from "./hiddenEditorApi.js";
|
|
7
|
-
import { recordHiddenEditorPhase, recordHiddenEditorStateCreate } from "../layout-engine/layoutInstrumentation.js";
|
|
8
|
-
import { suppressHiddenEditorScrollToSelection } from "../paged-layout/hiddenEditorScroll.js";
|
|
9
|
-
import { isReadOnlyEditKey } from "../paged-layout/readOnlyEditAttempt.js";
|
|
10
10
|
import { panic } from "better-result";
|
|
11
11
|
import { EditorState } from "prosemirror-state";
|
|
12
12
|
import { EditorView } from "prosemirror-view";
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import { getDocumentWatermark } from "../watermark/index.js";
|
|
2
|
-
import "../layout-engine/types.js";
|
|
3
|
-
import { resolveEffectiveParagraphSpacingTree } from "../layout-engine/paragraphSpacing.js";
|
|
4
|
-
import { renderPages } from "../layout-painter/renderPage.js";
|
|
5
|
-
import { templatePreviewValuesKey } from "../prosemirror/plugins/templatePreviewValues.js";
|
|
6
1
|
import { resolveDocumentGridLinePitch } from "../docx/documentGrid.js";
|
|
7
|
-
import { getMargins, getPageSize, twipsToPixels } from "../paged-layout/sectionGeometry.js";
|
|
8
|
-
import { getColumns } from "../layout-bridge/sectionColumns.js";
|
|
9
|
-
import { toFlowBlocks } from "../layout-bridge/convert/toFlowBlocks.js";
|
|
10
|
-
import { recordLayoutComplete, recordLayoutError, recordLayoutPhase, recordLayoutStart } from "../layout-engine/layoutInstrumentation.js";
|
|
11
2
|
import { buildBookmarkPageMap } from "../fields/bookmarkPages.js";
|
|
12
3
|
import { buildBookmarkText } from "../fields/bookmarkText.js";
|
|
13
4
|
import { buildHeaderFooterFieldValues, fieldValuesEqual, resolveFieldValues } from "../fields/resolveFieldValues.js";
|
|
14
5
|
import { buildSectionPageCounts } from "../fields/sectionPageCounts.js";
|
|
15
6
|
import { buildSeqValues } from "../fields/seqValues.js";
|
|
16
|
-
import { installCanvasMeasureProvider } from "../layout-engine/measure/measureContainer.js";
|
|
17
7
|
import { buildFootnoteContentMap, collectEndnoteRefs, collectFootnoteRefs, computeNoteDisplayNumbers, remapNoteMarkerText } from "../layout-bridge/convert/footnoteLayout.js";
|
|
18
8
|
import { applyTemplatePreviewToBlocks } from "../layout-bridge/convert/templatePreviewFlow.js";
|
|
9
|
+
import { toFlowBlocks } from "../layout-bridge/convert/toFlowBlocks.js";
|
|
10
|
+
import { getColumns } from "../layout-bridge/sectionColumns.js";
|
|
19
11
|
import { layoutDocument } from "../layout-engine/index.js";
|
|
20
12
|
import { resolveJustificationCompatibility } from "../layout-engine/justificationCompatibility.js";
|
|
13
|
+
import { recordLayoutComplete, recordLayoutError, recordLayoutPhase, recordLayoutStart } from "../layout-engine/layoutInstrumentation.js";
|
|
21
14
|
import { measureBlocks, measureSingleBlockWithoutFloatingZones } from "../layout-engine/measure/measureBlocks.js";
|
|
15
|
+
import { installCanvasMeasureProvider } from "../layout-engine/measure/measureContainer.js";
|
|
16
|
+
import { resolveEffectiveParagraphSpacingTree } from "../layout-engine/paragraphSpacing.js";
|
|
17
|
+
import "../layout-engine/types.js";
|
|
18
|
+
import { renderPages } from "../layout-painter/renderPage.js";
|
|
22
19
|
import { tryBuildIncrementalMeasures } from "../paged-layout/incrementalMeasure.js";
|
|
23
20
|
import { computePerBlockMeasureInputs } from "../paged-layout/sectionBlockWidths.js";
|
|
21
|
+
import { getMargins, getPageSize, twipsToPixels } from "../paged-layout/sectionGeometry.js";
|
|
22
|
+
import { templatePreviewValuesKey } from "../prosemirror/plugins/templatePreviewValues.js";
|
|
23
|
+
import { getDocumentWatermark } from "../watermark/index.js";
|
|
24
24
|
//#region src/controller/layoutPipeline.ts
|
|
25
25
|
function bodyMarginsClearHeaderFooter({ authoredMargins, preparedHeader, preparedFooter }) {
|
|
26
26
|
const headerBottom = preparedHeader ? (authoredMargins.header ?? 0) + (preparedHeader.marginPushBottom ?? preparedHeader.height) : authoredMargins.top;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
import { isSeparatorEndnote, isSeparatorFootnote } from "../docx/footnoteParser.js";
|
|
2
|
+
import { proseDocToBlocks } from "../prosemirror/conversion/fromProseDoc.js";
|
|
3
|
+
import { footnoteToProseDoc } from "../prosemirror/conversion/toProseDoc.js";
|
|
1
4
|
import { ExtensionManager } from "../prosemirror/extensions/ExtensionManager.js";
|
|
5
|
+
import { createStarterKit } from "../prosemirror/extensions/StarterKit.js";
|
|
2
6
|
import { ensureBaseDirectionInState } from "../prosemirror/extensions/features/AutoBidiDetectionExtension.js";
|
|
3
|
-
import { createDocumentStylesPlugin } from "../prosemirror/plugins/documentStyles.js";
|
|
4
7
|
import { ensureParaIdsInState } from "../prosemirror/extensions/features/ParaIdAllocatorExtension.js";
|
|
5
|
-
import {
|
|
8
|
+
import { createDocumentStylesPlugin } from "../prosemirror/plugins/documentStyles.js";
|
|
6
9
|
import { schema } from "../prosemirror/schema/index.js";
|
|
7
|
-
import { footnoteToProseDoc } from "../prosemirror/conversion/toProseDoc.js";
|
|
8
|
-
import { proseDocToBlocks } from "../prosemirror/conversion/fromProseDoc.js";
|
|
9
|
-
import { isSeparatorEndnote, isSeparatorFootnote } from "../docx/footnoteParser.js";
|
|
10
10
|
import { EditorState } from "prosemirror-state";
|
|
11
11
|
import { EditorView } from "prosemirror-view";
|
|
12
12
|
//#region src/controller/noteEditorManager.ts
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { elementToXml, findChild, getChildElements, getLocalName, mergeXmlnsDeclarations } from "./xmlParser.js";
|
|
2
|
-
import { padDecimal } from "./numberingParser.js";
|
|
3
1
|
import { parseBookmarkEnd, parseBookmarkStart } from "./bookmarkParser.js";
|
|
4
|
-
import { parseSdtProperties } from "./sdtProperties.js";
|
|
5
|
-
import { parseParagraph } from "./paragraphParser.js";
|
|
6
2
|
import { appendBookmarkMarkerToLastParagraphInBlocks, prependBookmarkMarkersToFirstParagraphInBlocks } from "./bookmarkPlacement.js";
|
|
7
3
|
import { convertBulletToUnicode } from "./bulletMarkers.js";
|
|
4
|
+
import { padDecimal } from "./numberingParser.js";
|
|
5
|
+
import { parseParagraph } from "./paragraphParser.js";
|
|
8
6
|
import { enrichParagraphTextBoxes } from "./paragraphTextBoxEnrichment.js";
|
|
7
|
+
import { parseSdtProperties } from "./sdtProperties.js";
|
|
9
8
|
import { parseTable } from "./tableParser.js";
|
|
9
|
+
import { elementToXml, findChild, getChildElements, getLocalName, mergeXmlnsDeclarations } from "./xmlParser.js";
|
|
10
10
|
//#region src/docx/blockContentParser.ts
|
|
11
11
|
const toRoman = (numParam) => {
|
|
12
12
|
let num = numParam;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { findChild, getAttribute, getChildElements, getLocalName, parseXml } from "./xmlParser.js";
|
|
2
|
-
import { parseRunProperties } from "./runParser.js";
|
|
3
1
|
import { parseParagraph } from "./paragraphParser.js";
|
|
2
|
+
import { parseRunProperties } from "./runParser.js";
|
|
3
|
+
import { findChild, getAttribute, getChildElements, getLocalName, parseXml } from "./xmlParser.js";
|
|
4
4
|
//#region src/docx/commentParser.ts
|
|
5
5
|
const DEFAULT_ANNOTATION_REFERENCE_STYLE_ID = "CommentReference";
|
|
6
6
|
const normalizeAnnotationReferenceFormatting = (formatting) => {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { collectXmlnsDeclarations, findChild, parseXml } from "./xmlParser.js";
|
|
2
|
-
import { getDefaultSectionProperties, parseSectionProperties } from "./sectionParser.js";
|
|
3
|
-
import { getParagraphText } from "./paragraphParser.js";
|
|
4
1
|
import { parseBlockContent } from "./blockContentParser.js";
|
|
2
|
+
import { getParagraphText } from "./paragraphParser.js";
|
|
3
|
+
import { getDefaultSectionProperties, parseSectionProperties } from "./sectionParser.js";
|
|
5
4
|
import { parseStreamingXml } from "./streamingXmlParser.js";
|
|
5
|
+
import { collectXmlnsDeclarations, findChild, getLocalName, parseXml } from "./xmlParser.js";
|
|
6
6
|
//#region src/docx/documentParser.ts
|
|
7
7
|
/**
|
|
8
8
|
* Regular expression to match template variables {{...}}
|
|
@@ -86,6 +86,29 @@ function buildSections(content, finalSectPr) {
|
|
|
86
86
|
return sections;
|
|
87
87
|
}
|
|
88
88
|
/**
|
|
89
|
+
* Some producers place the body-level sectPr before all content. Consumers
|
|
90
|
+
* apply section properties in source order, but canonical serialization moves
|
|
91
|
+
* the body-level sectPr to the end and would therefore reverse the effective
|
|
92
|
+
* formats around paragraph section breaks.
|
|
93
|
+
*
|
|
94
|
+
* Rotate that leading property through the canonical paragraph-break slots so
|
|
95
|
+
* serialization repairs the element order without changing the observed
|
|
96
|
+
* section sequence.
|
|
97
|
+
*/
|
|
98
|
+
function canonicalizeLeadingBodySectionProperties(bodyElement, body) {
|
|
99
|
+
const firstBodyChild = bodyElement.elements?.find(({ type }) => type === "element");
|
|
100
|
+
if (getLocalName(firstBodyChild?.name) !== "sectPr" || body.finalSectionProperties === void 0) return;
|
|
101
|
+
const sectionBreakParagraphs = body.content.filter((block) => block.type === "paragraph" && block.sectionProperties !== void 0);
|
|
102
|
+
if (sectionBreakParagraphs.length === 0) return;
|
|
103
|
+
let nextProperties = body.finalSectionProperties;
|
|
104
|
+
for (const paragraph of sectionBreakParagraphs) {
|
|
105
|
+
const currentProperties = paragraph.sectionProperties;
|
|
106
|
+
paragraph.sectionProperties = nextProperties;
|
|
107
|
+
nextProperties = currentProperties;
|
|
108
|
+
}
|
|
109
|
+
body.finalSectionProperties = nextProperties;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
89
112
|
* Parse document.xml body content
|
|
90
113
|
*
|
|
91
114
|
* @param xml - Raw XML content of document.xml
|
|
@@ -107,6 +130,7 @@ function parseDocumentBody(xml, styles = null, theme = null, numbering = null, r
|
|
|
107
130
|
result.content = parseBlockContent(bodyEl, styles, theme, numbering, rels, media, { rootXmlns: collectXmlnsDeclarations(documentEl) });
|
|
108
131
|
const finalSectPr = findChild(bodyEl, "w", "sectPr");
|
|
109
132
|
if (finalSectPr) result.finalSectionProperties = parseSectionProperties(finalSectPr);
|
|
133
|
+
canonicalizeLeadingBodySectionProperties(bodyEl, result);
|
|
110
134
|
result.sections = buildSections(result.content, result.finalSectionProperties);
|
|
111
135
|
return result;
|
|
112
136
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DOCX_ENCRYPTION_ERROR_CODES, DocxEncryptionError } from "./errors.js";
|
|
2
1
|
import { bytesEqual, joinBytes, padToBlock, passwordToUtf16Le, toArrayBuffer, writeUint32Le } from "./cryptoBytes.js";
|
|
3
2
|
import { MAX_SPIN_COUNT } from "./encryptionInfo.js";
|
|
3
|
+
import { DOCX_ENCRYPTION_ERROR_CODES, DocxEncryptionError } from "./errors.js";
|
|
4
4
|
//#region src/docx/encryption/agileDecryption.ts
|
|
5
5
|
/**
|
|
6
6
|
* Agile Encryption decryption (Office 2010+) using Web Crypto.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DOCX_ENCRYPTION_ERROR_CODES, DocxEncryptionError } from "./errors.js";
|
|
2
1
|
import { decodeBase64 } from "./cryptoBytes.js";
|
|
2
|
+
import { DOCX_ENCRYPTION_ERROR_CODES, DocxEncryptionError } from "./errors.js";
|
|
3
3
|
//#region src/docx/encryption/encryptionInfo.ts
|
|
4
4
|
/**
|
|
5
5
|
* Parse the EncryptionInfo stream for Agile Encryption (Office 2010+).
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DOCX_ENCRYPTION_ERROR_CODES, DocxEncryptionError, isDocxEncryptionError } from "./errors.js";
|
|
2
1
|
import { DOCX_CONTAINER_TYPES, detectDocxContainerType } from "./containerFormat.js";
|
|
2
|
+
import { DOCX_ENCRYPTION_ERROR_CODES, DocxEncryptionError, isDocxEncryptionError } from "./errors.js";
|
|
3
3
|
import { decryptDocxIfNeeded, openDocxBuffer } from "./openEncryptedDocx.js";
|
|
4
4
|
export { DOCX_CONTAINER_TYPES, DOCX_ENCRYPTION_ERROR_CODES, DocxEncryptionError, decryptDocxIfNeeded, detectDocxContainerType, isDocxEncryptionError, openDocxBuffer };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { DOCX_ENCRYPTION_ERROR_CODES, DocxEncryptionError } from "./errors.js";
|
|
2
|
-
import { toArrayBuffer } from "./cryptoBytes.js";
|
|
3
|
-
import { parseAgileEncryptionInfo } from "./encryptionInfo.js";
|
|
4
1
|
import { decryptAgileEncryptedPackage } from "./agileDecryption.js";
|
|
5
2
|
import { readEncryptedPackageStreams } from "./compoundFile.js";
|
|
6
3
|
import { DOCX_CONTAINER_TYPES, detectDocxContainerType } from "./containerFormat.js";
|
|
4
|
+
import { toArrayBuffer } from "./cryptoBytes.js";
|
|
5
|
+
import { parseAgileEncryptionInfo } from "./encryptionInfo.js";
|
|
6
|
+
import { DOCX_ENCRYPTION_ERROR_CODES, DocxEncryptionError } from "./errors.js";
|
|
7
7
|
//#region src/docx/encryption/openEncryptedDocx.ts
|
|
8
8
|
/**
|
|
9
9
|
* Decrypt password-protected OOXML before ZIP extraction.
|
package/dist/docx/fieldParser.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { FieldTypeSchema, narrowEnum } from "./parserEnums.js";
|
|
2
|
-
import { findChildren, getAttribute } from "./xmlParser.js";
|
|
3
2
|
import { parseRun } from "./runParser.js";
|
|
3
|
+
import { findChildren, getAttribute } from "./xmlParser.js";
|
|
4
4
|
//#region src/docx/fieldParser.ts
|
|
5
5
|
/**
|
|
6
6
|
* All known field types from OOXML specification
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { findChild, findChildren, getAttributes, getChildElements, getLocalName, parseXml } from "./xmlParser.js";
|
|
2
|
-
import { parseSdtProperties } from "./sdtProperties.js";
|
|
3
1
|
import { parseEndnoteProperties, parseFootnoteProperties } from "./notePropertiesParser.js";
|
|
4
2
|
import { parseParagraph } from "./paragraphParser.js";
|
|
3
|
+
import { parseSdtProperties } from "./sdtProperties.js";
|
|
5
4
|
import { parseTable } from "./tableParser.js";
|
|
5
|
+
import { findChild, findChildren, getAttributes, getChildElements, getLocalName, parseXml } from "./xmlParser.js";
|
|
6
6
|
//#region src/docx/footnoteParser.ts
|
|
7
7
|
/**
|
|
8
8
|
* Parse note type attribute
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { findAllDeep, findChildByLocalName, findChildrenByLocalName, getAttribute, getChildElements, getLocalName, getTextContent, parseNumericAttribute } from "./xmlParser.js";
|
|
2
1
|
import { emuToPixels } from "../utils/units.js";
|
|
3
2
|
import { parseImage, resolveImageData } from "./imageParser.js";
|
|
3
|
+
import { findAllDeep, findChildByLocalName, findChildrenByLocalName, getAttribute, getChildElements, getLocalName, getTextContent, parseNumericAttribute } from "./xmlParser.js";
|
|
4
4
|
//#region src/docx/groupDrawingParser.ts
|
|
5
5
|
const HEX_COLOR = /^[0-9A-Fa-f]{6}$/u;
|
|
6
6
|
const DEFAULT_TEXT_COLOR = "000000";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { collectXmlnsDeclarations, parseXml } from "./xmlParser.js";
|
|
2
|
-
import { parseWatermark } from "./watermarkParser.js";
|
|
3
|
-
import { parseFooterReference, parseFooterReferences, parseHeaderReference, parseHeaderReferences } from "./headerFooterRefParser.js";
|
|
4
1
|
import { parseBlockContent } from "./blockContentParser.js";
|
|
2
|
+
import { parseFooterReference, parseFooterReferences, parseHeaderReference, parseHeaderReferences } from "./headerFooterRefParser.js";
|
|
5
3
|
import { assignHeaderFooterVerbatimXml } from "./headerFooterVerbatim.js";
|
|
4
|
+
import { parseWatermark } from "./watermarkParser.js";
|
|
5
|
+
import { collectXmlnsDeclarations, parseXml } from "./xmlParser.js";
|
|
6
6
|
//#region src/docx/headerFooterParser.ts
|
|
7
7
|
/**
|
|
8
8
|
* Parse a header XML file (word/header*.xml)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { getAttribute, getChildElements, getLocalName, mergeXmlnsDeclarations, parseNumericAttribute } from "./xmlParser.js";
|
|
2
1
|
import { sanitizeExternalUrl, sanitizeLinkTarget } from "../utils/urlSecurity.js";
|
|
3
2
|
import { parseRun } from "./runParser.js";
|
|
3
|
+
import { getAttribute, getChildElements, getLocalName, mergeXmlnsDeclarations, parseNumericAttribute } from "./xmlParser.js";
|
|
4
4
|
//#region src/docx/hyperlinkParser.ts
|
|
5
5
|
/**
|
|
6
6
|
* Parse bookmark start (w:bookmarkStart)
|
package/dist/docx/imageParser.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { sanitizeImageSrc } from "../utils/sanitizeImageSrc.js";
|
|
2
2
|
import { emuToPixels } from "../utils/units.js";
|
|
3
|
-
import { WRAP_ELEMENT_NAMES, parsePositionH, parsePositionV, parseWrapElement } from "./drawingUtils.js";
|
|
4
3
|
import { sanitizeExternalUrl } from "../utils/urlSecurity.js";
|
|
5
|
-
import {
|
|
4
|
+
import { WRAP_ELEMENT_NAMES, parsePositionH, parsePositionV, parseWrapElement } from "./drawingUtils.js";
|
|
6
5
|
import { resolveTarget } from "./relsParser.js";
|
|
7
6
|
import { isTextBoxDrawing } from "./textBoxParser.js";
|
|
7
|
+
import { findByFullName, findChild, getAttribute, getChildElements, parseNumericAttribute } from "./xmlParser.js";
|
|
8
8
|
//#region src/docx/imageParser.ts
|
|
9
9
|
/**
|
|
10
10
|
* Convert rotation value (1/60000 of a degree) to degrees
|
package/dist/docx/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getCachedNumberingMap } from "./numberingParser.js";
|
|
2
1
|
import { DOCX_ENCRYPTION_ERROR_CODES, DocxEncryptionError, isDocxEncryptionError } from "./encryption/errors.js";
|
|
3
2
|
import { decryptDocxIfNeeded, openDocxBuffer } from "./encryption/openEncryptedDocx.js";
|
|
4
3
|
import { FOLIO_DOCUMENT_METADATA_PROPERTIES, FOLIO_DOCUMENT_PRIVACY_TRANSFORMS, FolioDocumentPrivacyArchiveError, InvalidFolioDocumentPrivacyOptionsError, isFolioDocumentPrivacyTransform, rewriteDocxMetadataPrivacy } from "./metadataPrivacy.js";
|
|
4
|
+
import { getCachedNumberingMap } from "./numberingParser.js";
|
|
5
5
|
export { DOCX_ENCRYPTION_ERROR_CODES, DocxEncryptionError, FOLIO_DOCUMENT_METADATA_PROPERTIES, FOLIO_DOCUMENT_PRIVACY_TRANSFORMS, FolioDocumentPrivacyArchiveError, InvalidFolioDocumentPrivacyOptionsError, decryptDocxIfNeeded, getCachedNumberingMap, isDocxEncryptionError, isFolioDocumentPrivacyTransform, openDocxBuffer, rewriteDocxMetadataPrivacy };
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { BorderStyleSchema, FrameWrapSchema, FrameXAlignSchema, FrameYAlignSchema, LineSpacingRuleSchema, ParagraphAlignmentSchema, ShadingPatternSchema, TabLeaderSchema, TabStopAlignmentSchema, ThemeColorSlotSchema, narrowEnum } from "./parserEnums.js";
|
|
2
|
-
import { elementToXml, findChild, findChildren, getAttribute, getChildElements, getLocalName, matchesName, mergeXmlnsDeclarations, parseBooleanElement, parseNumberingLevelAttribute, parseNumericAttribute } from "./xmlParser.js";
|
|
3
|
-
import { parseRun, parseRunProperties } from "./runParser.js";
|
|
4
|
-
import { parseFieldType } from "./fieldParser.js";
|
|
5
1
|
import { isValidHexId } from "../utils/hexId.js";
|
|
6
2
|
import { parseBookmarkEnd as parseBookmarkEnd$1, parseBookmarkStart as parseBookmarkStart$1 } from "./bookmarkParser.js";
|
|
3
|
+
import { parseFieldType } from "./fieldParser.js";
|
|
7
4
|
import { parseHyperlink as parseHyperlink$1 } from "./hyperlinkParser.js";
|
|
5
|
+
import { BorderStyleSchema, FrameWrapSchema, FrameXAlignSchema, FrameYAlignSchema, LineSpacingRuleSchema, ParagraphAlignmentSchema, ShadingPatternSchema, TabLeaderSchema, TabStopAlignmentSchema, ThemeColorSlotSchema, narrowEnum } from "./parserEnums.js";
|
|
8
6
|
import { consolidateParagraphContent } from "./runConsolidator.js";
|
|
7
|
+
import { parseRun, parseRunProperties } from "./runParser.js";
|
|
9
8
|
import { parseSdtProperties } from "./sdtProperties.js";
|
|
10
9
|
import { parseSectionProperties } from "./sectionParser.js";
|
|
10
|
+
import { elementToXml, findChild, findChildren, getAttribute, getChildElements, getLocalName, matchesName, mergeXmlnsDeclarations, parseBooleanElement, parseNumberingLevelAttribute, parseNumericAttribute } from "./xmlParser.js";
|
|
11
11
|
import { normalizeRevisionId } from "@stll/docx-core/model";
|
|
12
12
|
//#region src/docx/paragraphParser.ts
|
|
13
13
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { findDeep, getAttribute, getChildElements, getLocalName } from "./xmlParser.js";
|
|
2
1
|
import { pixelsToEmu } from "../utils/units.js";
|
|
3
|
-
import { getTextBoxContentElement, isTextBoxDrawing, parseTextBox, parseTextBoxContent } from "./textBoxParser.js";
|
|
4
2
|
import { parseParagraph } from "./paragraphParser.js";
|
|
3
|
+
import { getTextBoxContentElement, isTextBoxDrawing, parseTextBox, parseTextBoxContent } from "./textBoxParser.js";
|
|
4
|
+
import { findDeep, getAttribute, getChildElements, getLocalName } from "./xmlParser.js";
|
|
5
5
|
//#region src/docx/paragraphTextBoxEnrichment.ts
|
|
6
6
|
const VML_HORIZONTAL_RELATIVES = /* @__PURE__ */ new Set([
|
|
7
7
|
"character",
|
|
@@ -285,11 +285,11 @@ const parseVmlTextBoxShape = (pictEl, styles, theme, numbering, rels, media, par
|
|
|
285
285
|
if (positioned) shape.position = {
|
|
286
286
|
horizontal: {
|
|
287
287
|
relativeTo: horizontalRelativeTo(style["mso-position-horizontal-relative"]),
|
|
288
|
-
|
|
288
|
+
posOffset: pixelsToEmu(left ?? 0)
|
|
289
289
|
},
|
|
290
290
|
vertical: {
|
|
291
291
|
relativeTo: verticalRelativeTo(style["mso-position-vertical-relative"]),
|
|
292
|
-
|
|
292
|
+
posOffset: pixelsToEmu(top ?? 0)
|
|
293
293
|
}
|
|
294
294
|
};
|
|
295
295
|
return shape;
|
package/dist/docx/parser.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import { parseNumbering } from "./numberingParser.js";
|
|
2
|
-
import { RELATIONSHIP_TYPES, parseRelationships, resolveRelativePath } from "./relsParser.js";
|
|
3
|
-
import { applyThemeFontLang, parseTheme } from "./themeParser.js";
|
|
4
1
|
import { toArrayBuffer } from "../utils/docxInput.js";
|
|
5
2
|
import { loadFontsWithMapping } from "../utils/fontLoader.js";
|
|
6
3
|
import { convertTiffToPngDataUrl, isTiffMimeType } from "../utils/tiffConverter.js";
|
|
@@ -10,19 +7,22 @@ import { detectDocxConformanceClass } from "./conformance.js";
|
|
|
10
7
|
import { parseCoreProperties } from "./corePropertiesParser.js";
|
|
11
8
|
import { extractAllTemplateVariables, parseDocumentBody } from "./documentParser.js";
|
|
12
9
|
import { normalizeDrawingIds } from "./drawingIdNormalization.js";
|
|
10
|
+
import { DocxEncryptionError } from "./encryption/errors.js";
|
|
11
|
+
import { parseFontTable } from "./fontTableParser.js";
|
|
13
12
|
import { parseEndnotes, parseFootnotes } from "./footnoteParser.js";
|
|
14
|
-
import { assignHeaderFooterVerbatimXml, refreshHeaderFooterVerbatimFingerprint } from "./headerFooterVerbatim.js";
|
|
15
13
|
import { parseFooter, parseHeader } from "./headerFooterParser.js";
|
|
16
14
|
import { normalizeHeaderFooterReferences } from "./headerFooterReferenceNormalization.js";
|
|
17
|
-
import {
|
|
15
|
+
import { assignHeaderFooterVerbatimXml, refreshHeaderFooterVerbatimFingerprint } from "./headerFooterVerbatim.js";
|
|
18
16
|
import { extractMetafileRaster, isMetafileMimeType } from "./metafileRaster.js";
|
|
19
|
-
import {
|
|
17
|
+
import { DocxModelValidationError, formatDocumentModelIssues, validateFolioDocumentModel } from "./modelValidation.js";
|
|
18
|
+
import { parseNumbering } from "./numberingParser.js";
|
|
20
19
|
import { normalizeNumberingReferences } from "./numberingReferenceNormalization.js";
|
|
20
|
+
import { RELATIONSHIP_TYPES, parseRelationships, resolveRelativePath } from "./relsParser.js";
|
|
21
21
|
import { normalizeRenderedPageBreakHints } from "./renderedPageBreakNormalization.js";
|
|
22
22
|
import { parseSettings } from "./settingsParser.js";
|
|
23
23
|
import { parseStylesPackage } from "./styleParser.js";
|
|
24
|
+
import { applyThemeFontLang, parseTheme } from "./themeParser.js";
|
|
24
25
|
import { normalizeTrackedMoveRanges } from "./trackedMoveRangeNormalization.js";
|
|
25
|
-
import { DocxEncryptionError } from "./encryption/errors.js";
|
|
26
26
|
import { getMediaMimeType, mediaToDataUrl, unzipDocx } from "./unzip.js";
|
|
27
27
|
import { TaggedError } from "better-result";
|
|
28
28
|
//#region src/docx/parser.ts
|
package/dist/docx/rezip.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { isAllowedExternalWatermarkImageUrl } from "../watermark/index.js";
|
|
2
|
+
import { withoutOrphanCommentRanges } from "./commentRangeIntegrity.js";
|
|
3
|
+
import { applyReplyThreadMarkers } from "./commentReplyMarkers.js";
|
|
4
4
|
import { parseEndnotes, parseFootnotes } from "./footnoteParser.js";
|
|
5
5
|
import { assertValidFolioDocumentModel } from "./modelValidation.js";
|
|
6
|
-
import { isPreservableDocxEntry } from "./unzip.js";
|
|
7
|
-
import { applyReplyThreadMarkers } from "./commentReplyMarkers.js";
|
|
8
|
-
import { withoutOrphanCommentRanges } from "./commentRangeIntegrity.js";
|
|
9
6
|
import { isNewDataUrlDrawing } from "./newImage.js";
|
|
7
|
+
import { parseNumbering } from "./numberingParser.js";
|
|
8
|
+
import { RELATIONSHIP_TYPES, parseRelationships, resolveRelativePath } from "./relsParser.js";
|
|
10
9
|
import { buildParagraphOffsetIndex, buildPatchedNoteXml, buildPatchedNumberingXml, collectChangedNumberingDefs, collectParaIds } from "./selectiveXmlPatch.js";
|
|
11
|
-
import { escapeXml } from "./serializer/xmlUtils.js";
|
|
12
10
|
import { ensureThreadedCommentParaIds, serializeComments, serializeCommentsExtended } from "./serializer/commentSerializer.js";
|
|
13
11
|
import { serializeDocument } from "./serializer/documentSerializer.js";
|
|
12
|
+
import { serializeFontTableXml } from "./serializer/fontTableSerializer.js";
|
|
14
13
|
import { serializeHeaderFooter } from "./serializer/headerFooterSerializer.js";
|
|
15
14
|
import { serializeEndnotes, serializeFootnotes } from "./serializer/noteSerializer.js";
|
|
16
15
|
import { serializeNumberingXml } from "./serializer/numberingSerializer.js";
|
|
17
|
-
import { serializeFontTableXml } from "./serializer/fontTableSerializer.js";
|
|
18
16
|
import { serializeSettingsXml } from "./serializer/settingsSerializer.js";
|
|
19
17
|
import { serializeStylesXml } from "./serializer/stylesSerializer.js";
|
|
20
18
|
import { serializeThemeXml } from "./serializer/themeSerializer.js";
|
|
21
|
-
import {
|
|
19
|
+
import { escapeXml } from "./serializer/xmlUtils.js";
|
|
20
|
+
import { isPreservableDocxEntry } from "./unzip.js";
|
|
21
|
+
import { findChild, getChildElements, matchesName, parseXml } from "./xmlParser.js";
|
|
22
22
|
import { panic } from "better-result";
|
|
23
23
|
import JSZip from "jszip";
|
|
24
24
|
//#region src/docx/rezip.ts
|