@usejunior/docx-core 0.18.0 → 0.20.1
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/.tsbuildinfo +1 -1
- package/dist/core-types.d.ts +1 -139
- package/dist/core-types.d.ts.map +1 -1
- package/dist/core-types.js +1 -3
- package/dist/core-types.js.map +1 -1
- package/dist/generation/emit/borders.d.ts +14 -0
- package/dist/generation/emit/borders.d.ts.map +1 -0
- package/dist/generation/emit/borders.js +45 -0
- package/dist/generation/emit/borders.js.map +1 -0
- package/dist/generation/emit/properties.d.ts +1 -1
- package/dist/generation/emit/properties.d.ts.map +1 -1
- package/dist/generation/emit/properties.js +4 -0
- package/dist/generation/emit/properties.js.map +1 -1
- package/dist/generation/emit/table.d.ts.map +1 -1
- package/dist/generation/emit/table.js +3 -31
- package/dist/generation/emit/table.js.map +1 -1
- package/dist/generation/index.d.ts +1 -1
- package/dist/generation/index.d.ts.map +1 -1
- package/dist/generation/types.d.ts +9 -0
- package/dist/generation/types.d.ts.map +1 -1
- package/dist/generation/types.js.map +1 -1
- package/dist/generation/validate-spec.d.ts.map +1 -1
- package/dist/generation/validate-spec.js +2 -0
- package/dist/generation/validate-spec.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -1
- package/dist/integration/generation-probes.d.ts +36 -2
- package/dist/integration/generation-probes.d.ts.map +1 -1
- package/dist/integration/generation-probes.js +137 -15
- package/dist/integration/generation-probes.js.map +1 -1
- package/dist/integration/libreoffice-oracle.js +1 -1
- package/dist/integration/synthetic-docx-fixture.d.ts.map +1 -1
- package/dist/integration/synthetic-docx-fixture.js +37 -20
- package/dist/integration/synthetic-docx-fixture.js.map +1 -1
- package/dist/primitives/accept_ai_edits.js +14 -2
- package/dist/primitives/accept_ai_edits.js.map +1 -1
- package/dist/primitives/accept_changes.d.ts +7 -0
- package/dist/primitives/accept_changes.d.ts.map +1 -1
- package/dist/primitives/accept_changes.js +92 -4
- package/dist/primitives/accept_changes.js.map +1 -1
- package/dist/primitives/bookmarks.d.ts +1 -0
- package/dist/primitives/bookmarks.d.ts.map +1 -1
- package/dist/primitives/bookmarks.js +1 -1
- package/dist/primitives/bookmarks.js.map +1 -1
- package/dist/primitives/comments.d.ts +31 -4
- package/dist/primitives/comments.d.ts.map +1 -1
- package/dist/primitives/comments.js +111 -12
- package/dist/primitives/comments.js.map +1 -1
- package/dist/primitives/document.d.ts +47 -1
- package/dist/primitives/document.d.ts.map +1 -1
- package/dist/primitives/document.js +198 -13
- package/dist/primitives/document.js.map +1 -1
- package/dist/primitives/document_view-headings.d.ts +3 -1
- package/dist/primitives/document_view-headings.d.ts.map +1 -1
- package/dist/primitives/document_view-headings.js +5 -5
- package/dist/primitives/document_view-headings.js.map +1 -1
- package/dist/primitives/document_view.d.ts +2 -0
- package/dist/primitives/document_view.d.ts.map +1 -1
- package/dist/primitives/document_view.js +18 -4
- package/dist/primitives/document_view.js.map +1 -1
- package/dist/primitives/field_evaluation.d.ts +70 -0
- package/dist/primitives/field_evaluation.d.ts.map +1 -0
- package/dist/primitives/field_evaluation.js +462 -0
- package/dist/primitives/field_evaluation.js.map +1 -0
- package/dist/primitives/footnotes.d.ts +17 -3
- package/dist/primitives/footnotes.d.ts.map +1 -1
- package/dist/primitives/footnotes.js +64 -17
- package/dist/primitives/footnotes.js.map +1 -1
- package/dist/primitives/formatting_tags.js +2 -2
- package/dist/primitives/formatting_tags.js.map +1 -1
- package/dist/primitives/index.d.ts +8 -1
- package/dist/primitives/index.d.ts.map +1 -1
- package/dist/primitives/index.js +8 -1
- package/dist/primitives/index.js.map +1 -1
- package/dist/primitives/merge_runs.d.ts +3 -1
- package/dist/primitives/merge_runs.d.ts.map +1 -1
- package/dist/primitives/merge_runs.js +12 -2
- package/dist/primitives/merge_runs.js.map +1 -1
- package/dist/primitives/namespaces.d.ts +12 -2
- package/dist/primitives/namespaces.d.ts.map +1 -1
- package/dist/primitives/namespaces.js +13 -2
- package/dist/primitives/namespaces.js.map +1 -1
- package/dist/primitives/note_conversion.d.ts +11 -0
- package/dist/primitives/note_conversion.d.ts.map +1 -0
- package/dist/primitives/note_conversion.js +12 -0
- package/dist/primitives/note_conversion.js.map +1 -0
- package/dist/primitives/opc-target.d.ts +24 -0
- package/dist/primitives/opc-target.d.ts.map +1 -0
- package/dist/primitives/opc-target.js +99 -0
- package/dist/primitives/opc-target.js.map +1 -0
- package/dist/primitives/paragraph_numbering.d.ts +40 -0
- package/dist/primitives/paragraph_numbering.d.ts.map +1 -0
- package/dist/primitives/paragraph_numbering.js +198 -0
- package/dist/primitives/paragraph_numbering.js.map +1 -0
- package/dist/primitives/reject_changes.d.ts +7 -0
- package/dist/primitives/reject_changes.d.ts.map +1 -1
- package/dist/primitives/reject_changes.js +133 -10
- package/dist/primitives/reject_changes.js.map +1 -1
- package/dist/primitives/sectPrAudit.d.ts +18 -1
- package/dist/primitives/sectPrAudit.d.ts.map +1 -1
- package/dist/primitives/sectPrAudit.js +120 -34
- package/dist/primitives/sectPrAudit.js.map +1 -1
- package/dist/primitives/sections.d.ts +134 -0
- package/dist/primitives/sections.d.ts.map +1 -0
- package/dist/primitives/sections.js +644 -0
- package/dist/primitives/sections.js.map +1 -0
- package/dist/primitives/serialize_html.d.ts.map +1 -1
- package/dist/primitives/serialize_html.js +18 -7
- package/dist/primitives/serialize_html.js.map +1 -1
- package/dist/primitives/styles.d.ts +60 -0
- package/dist/primitives/styles.d.ts.map +1 -1
- package/dist/primitives/styles.js +206 -25
- package/dist/primitives/styles.js.map +1 -1
- package/dist/primitives/symbol_run_content.d.ts +42 -0
- package/dist/primitives/symbol_run_content.d.ts.map +1 -0
- package/dist/primitives/symbol_run_content.js +79 -0
- package/dist/primitives/symbol_run_content.js.map +1 -0
- package/dist/primitives/text.d.ts +29 -0
- package/dist/primitives/text.d.ts.map +1 -1
- package/dist/primitives/text.js +354 -44
- package/dist/primitives/text.js.map +1 -1
- package/dist/primitives/track-changes-emitter.d.ts +9 -0
- package/dist/primitives/track-changes-emitter.d.ts.map +1 -1
- package/dist/primitives/track-changes-emitter.js +40 -2
- package/dist/primitives/track-changes-emitter.js.map +1 -1
- package/dist/primitives/validate_document.d.ts.map +1 -1
- package/dist/primitives/validate_document.js +22 -1
- package/dist/primitives/validate_document.js.map +1 -1
- package/dist/shared/docx/DocxArchive.d.ts.map +1 -1
- package/dist/shared/docx/DocxArchive.js +7 -0
- package/dist/shared/docx/DocxArchive.js.map +1 -1
- package/dist/shared/field-semantics.d.ts +26 -0
- package/dist/shared/field-semantics.d.ts.map +1 -0
- package/dist/shared/field-semantics.js +232 -0
- package/dist/shared/field-semantics.js.map +1 -0
- package/dist/shared/field-structure.d.ts +14 -0
- package/dist/shared/field-structure.d.ts.map +1 -1
- package/dist/shared/field-structure.js +98 -7
- package/dist/shared/field-structure.js.map +1 -1
- package/package.json +3 -5
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export declare const OOXML: {
|
|
2
2
|
readonly W_NS: "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
|
|
3
|
+
readonly A_NS: "http://schemas.openxmlformats.org/drawingml/2006/main";
|
|
3
4
|
readonly REL_NS: "http://schemas.openxmlformats.org/package/2006/relationships";
|
|
4
5
|
readonly R_NS: "http://schemas.openxmlformats.org/officeDocument/2006/relationships";
|
|
5
6
|
readonly HYPERLINK_REL_TYPE: "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink";
|
|
@@ -15,6 +16,7 @@ export declare const W: {
|
|
|
15
16
|
readonly r: "r";
|
|
16
17
|
readonly t: "t";
|
|
17
18
|
readonly pPr: "pPr";
|
|
19
|
+
readonly pBdr: "pBdr";
|
|
18
20
|
readonly rPr: "rPr";
|
|
19
21
|
readonly bookmarkStart: "bookmarkStart";
|
|
20
22
|
readonly bookmarkEnd: "bookmarkEnd";
|
|
@@ -30,6 +32,14 @@ export declare const W: {
|
|
|
30
32
|
readonly rFonts: "rFonts";
|
|
31
33
|
readonly b: "b";
|
|
32
34
|
readonly i: "i";
|
|
35
|
+
readonly caps: "caps";
|
|
36
|
+
readonly smallCaps: "smallCaps";
|
|
37
|
+
readonly strike: "strike";
|
|
38
|
+
readonly emboss: "emboss";
|
|
39
|
+
readonly imprint: "imprint";
|
|
40
|
+
readonly outline: "outline";
|
|
41
|
+
readonly shadow: "shadow";
|
|
42
|
+
readonly vanish: "vanish";
|
|
33
43
|
readonly u: "u";
|
|
34
44
|
readonly highlight: "highlight";
|
|
35
45
|
readonly sz: "sz";
|
|
@@ -82,6 +92,7 @@ export declare const W: {
|
|
|
82
92
|
readonly bottom: "bottom";
|
|
83
93
|
readonly left: "left";
|
|
84
94
|
readonly right: "right";
|
|
95
|
+
readonly between: "between";
|
|
85
96
|
readonly end: "end";
|
|
86
97
|
readonly val: "val";
|
|
87
98
|
readonly hRule: "hRule";
|
|
@@ -108,8 +119,6 @@ export declare const W: {
|
|
|
108
119
|
readonly qFormat: "qFormat";
|
|
109
120
|
readonly bCs: "bCs";
|
|
110
121
|
readonly iCs: "iCs";
|
|
111
|
-
readonly caps: "caps";
|
|
112
|
-
readonly smallCaps: "smallCaps";
|
|
113
122
|
readonly keepNext: "keepNext";
|
|
114
123
|
readonly keepLines: "keepLines";
|
|
115
124
|
readonly pageBreakBefore: "pageBreakBefore";
|
|
@@ -137,6 +146,7 @@ export declare const W: {
|
|
|
137
146
|
readonly drawing: "drawing";
|
|
138
147
|
readonly pict: "pict";
|
|
139
148
|
readonly object: "object";
|
|
149
|
+
readonly contentPart: "contentPart";
|
|
140
150
|
readonly del: "del";
|
|
141
151
|
readonly moveFrom: "moveFrom";
|
|
142
152
|
readonly font: "font";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespaces.d.ts","sourceRoot":"","sources":["../../src/primitives/namespaces.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"namespaces.d.ts","sourceRoot":"","sources":["../../src/primitives/namespaces.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK;;;;;;;;;;CAmBR,CAAC;AAEX,eAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8KJ,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export const OOXML = {
|
|
2
2
|
// Main WordprocessingML namespace.
|
|
3
3
|
W_NS: 'http://schemas.openxmlformats.org/wordprocessingml/2006/main',
|
|
4
|
+
// DrawingML namespace used by theme parts.
|
|
5
|
+
A_NS: 'http://schemas.openxmlformats.org/drawingml/2006/main',
|
|
4
6
|
// Relationships, package, etc. kept for future parts.
|
|
5
7
|
REL_NS: 'http://schemas.openxmlformats.org/package/2006/relationships',
|
|
6
8
|
// Relationship namespace used inside .rels parts (document relationships).
|
|
@@ -23,6 +25,7 @@ export const W = {
|
|
|
23
25
|
r: 'r',
|
|
24
26
|
t: 't',
|
|
25
27
|
pPr: 'pPr',
|
|
28
|
+
pBdr: 'pBdr',
|
|
26
29
|
rPr: 'rPr',
|
|
27
30
|
bookmarkStart: 'bookmarkStart',
|
|
28
31
|
bookmarkEnd: 'bookmarkEnd',
|
|
@@ -40,6 +43,14 @@ export const W = {
|
|
|
40
43
|
rFonts: 'rFonts',
|
|
41
44
|
b: 'b',
|
|
42
45
|
i: 'i',
|
|
46
|
+
caps: 'caps',
|
|
47
|
+
smallCaps: 'smallCaps',
|
|
48
|
+
strike: 'strike',
|
|
49
|
+
emboss: 'emboss',
|
|
50
|
+
imprint: 'imprint',
|
|
51
|
+
outline: 'outline',
|
|
52
|
+
shadow: 'shadow',
|
|
53
|
+
vanish: 'vanish',
|
|
43
54
|
u: 'u',
|
|
44
55
|
highlight: 'highlight',
|
|
45
56
|
sz: 'sz',
|
|
@@ -95,6 +106,7 @@ export const W = {
|
|
|
95
106
|
bottom: 'bottom',
|
|
96
107
|
left: 'left',
|
|
97
108
|
right: 'right',
|
|
109
|
+
between: 'between',
|
|
98
110
|
end: 'end',
|
|
99
111
|
val: 'val',
|
|
100
112
|
hRule: 'hRule',
|
|
@@ -123,8 +135,6 @@ export const W = {
|
|
|
123
135
|
qFormat: 'qFormat',
|
|
124
136
|
bCs: 'bCs',
|
|
125
137
|
iCs: 'iCs',
|
|
126
|
-
caps: 'caps',
|
|
127
|
-
smallCaps: 'smallCaps',
|
|
128
138
|
keepNext: 'keepNext',
|
|
129
139
|
keepLines: 'keepLines',
|
|
130
140
|
pageBreakBefore: 'pageBreakBefore',
|
|
@@ -158,6 +168,7 @@ export const W = {
|
|
|
158
168
|
drawing: 'drawing',
|
|
159
169
|
pict: 'pict',
|
|
160
170
|
object: 'object',
|
|
171
|
+
contentPart: 'contentPart',
|
|
161
172
|
// Revision wrappers
|
|
162
173
|
del: 'del',
|
|
163
174
|
moveFrom: 'moveFrom',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"namespaces.js","sourceRoot":"","sources":["../../src/primitives/namespaces.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"namespaces.js","sourceRoot":"","sources":["../../src/primitives/namespaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ConvertCommentsToFootnotesOptions, type ConvertCommentsToFootnotesReport } from './document.js';
|
|
2
|
+
export type ConvertCommentsToFootnotesResult = {
|
|
3
|
+
buffer: Buffer;
|
|
4
|
+
report: ConvertCommentsToFootnotesReport;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Convert comments on an isolated in-memory document and return a new DOCX.
|
|
8
|
+
* The caller's source buffer and file remain unchanged when preflight fails.
|
|
9
|
+
*/
|
|
10
|
+
export declare function convertCommentsToFootnotes(source: Buffer, options?: ConvertCommentsToFootnotesOptions): Promise<ConvertCommentsToFootnotesResult>;
|
|
11
|
+
//# sourceMappingURL=note_conversion.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"note_conversion.d.ts","sourceRoot":"","sources":["../../src/primitives/note_conversion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,iCAAiC,EAAE,KAAK,gCAAgC,EAAE,MAAM,eAAe,CAAC;AAE5H,MAAM,MAAM,gCAAgC,GAAG;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,gCAAgC,CAAC;CAC1C,CAAC;AAEF;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,iCAAsC,GAC9C,OAAO,CAAC,gCAAgC,CAAC,CAK3C"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DocxDocument } from './document.js';
|
|
2
|
+
/**
|
|
3
|
+
* Convert comments on an isolated in-memory document and return a new DOCX.
|
|
4
|
+
* The caller's source buffer and file remain unchanged when preflight fails.
|
|
5
|
+
*/
|
|
6
|
+
export async function convertCommentsToFootnotes(source, options = {}) {
|
|
7
|
+
const document = await DocxDocument.load(source);
|
|
8
|
+
const report = await document.convertCommentsToFootnotes(options);
|
|
9
|
+
const { buffer } = await document.toBuffer({ cleanBookmarks: true, preserveOriginalBookmarks: true });
|
|
10
|
+
return { buffer, report };
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=note_conversion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"note_conversion.js","sourceRoot":"","sources":["../../src/primitives/note_conversion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAiF,MAAM,eAAe,CAAC;AAO5H;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,MAAc,EACd,UAA6C,EAAE;IAE/C,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAClE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,CAAC;IACtG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export type OpcRelationshipTargetMode = 'Internal' | 'External';
|
|
2
|
+
export type OpcRelationshipTargetIssue = 'empty_target' | 'invalid_target_mode' | 'external_target_not_allowed' | 'invalid_encoding' | 'unsafe_target' | 'package_escape' | 'empty_resolved_target' | 'invalid_external_target';
|
|
3
|
+
export declare class OpcRelationshipTargetError extends Error {
|
|
4
|
+
readonly issue: OpcRelationshipTargetIssue;
|
|
5
|
+
constructor(issue: OpcRelationshipTargetIssue, message: string);
|
|
6
|
+
}
|
|
7
|
+
export interface NormalizeOpcRelationshipTargetOptions {
|
|
8
|
+
ownerPart: string;
|
|
9
|
+
target: string;
|
|
10
|
+
targetMode?: string | null;
|
|
11
|
+
allowExternal?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export interface NormalizedOpcRelationshipTarget {
|
|
14
|
+
mode: OpcRelationshipTargetMode;
|
|
15
|
+
target: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Normalize one OPC relationship target under SafeDocX package-containment
|
|
19
|
+
* policy. Internal targets are decoded once, checked for ambiguous or unsafe
|
|
20
|
+
* URI/path forms, and resolved relative to the owning part. External targets
|
|
21
|
+
* are accepted only when the caller opts in.
|
|
22
|
+
*/
|
|
23
|
+
export declare function normalizeOpcRelationshipTarget(options: NormalizeOpcRelationshipTargetOptions): NormalizedOpcRelationshipTarget;
|
|
24
|
+
//# sourceMappingURL=opc-target.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opc-target.d.ts","sourceRoot":"","sources":["../../src/primitives/opc-target.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,yBAAyB,GAAG,UAAU,GAAG,UAAU,CAAC;AAEhE,MAAM,MAAM,0BAA0B,GAClC,cAAc,GACd,qBAAqB,GACrB,6BAA6B,GAC7B,kBAAkB,GAClB,eAAe,GACf,gBAAgB,GAChB,uBAAuB,GACvB,yBAAyB,CAAC;AAE9B,qBAAa,0BAA2B,SAAQ,KAAK;IAEjD,QAAQ,CAAC,KAAK,EAAE,0BAA0B;gBAAjC,KAAK,EAAE,0BAA0B,EAC1C,OAAO,EAAE,MAAM;CAKlB;AAED,MAAM,WAAW,qCAAqC;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,yBAAyB,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;CAChB;AA6FD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,qCAAqC,GAC7C,+BAA+B,CAsBjC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { posix } from 'node:path';
|
|
2
|
+
export class OpcRelationshipTargetError extends Error {
|
|
3
|
+
issue;
|
|
4
|
+
constructor(issue, message) {
|
|
5
|
+
super(message);
|
|
6
|
+
this.issue = issue;
|
|
7
|
+
this.name = 'OpcRelationshipTargetError';
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
function targetMode(value) {
|
|
11
|
+
if (value === null || value === undefined || value === 'Internal') {
|
|
12
|
+
return 'Internal';
|
|
13
|
+
}
|
|
14
|
+
if (value === 'External')
|
|
15
|
+
return 'External';
|
|
16
|
+
throw new OpcRelationshipTargetError('invalid_target_mode', `invalid relationship TargetMode '${value}'`);
|
|
17
|
+
}
|
|
18
|
+
function normalizeInternalTarget(ownerPart, target) {
|
|
19
|
+
if (!target) {
|
|
20
|
+
throw new OpcRelationshipTargetError('empty_target', 'empty internal relationship target');
|
|
21
|
+
}
|
|
22
|
+
if (target.includes('\\') || /[\u0000-\u001f\u007f?#]/u.test(target)) {
|
|
23
|
+
throw new OpcRelationshipTargetError('unsafe_target', `unsafe internal relationship target '${target}'`);
|
|
24
|
+
}
|
|
25
|
+
let decoded = target;
|
|
26
|
+
for (let pass = 0; pass <= target.length; pass++) {
|
|
27
|
+
if (/%(?:2f|5c)/iu.test(decoded)) {
|
|
28
|
+
throw new OpcRelationshipTargetError('unsafe_target', `encoded path separator in internal relationship target '${target}'`);
|
|
29
|
+
}
|
|
30
|
+
let next;
|
|
31
|
+
try {
|
|
32
|
+
next = decodeURIComponent(decoded);
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
throw new OpcRelationshipTargetError('invalid_encoding', `invalid encoded relationship target '${target}'`);
|
|
36
|
+
}
|
|
37
|
+
const rawSegments = decoded.split('/');
|
|
38
|
+
const nextSegments = next.split('/');
|
|
39
|
+
if (next.includes('\\') ||
|
|
40
|
+
/[\u0000-\u001f\u007f?#]/u.test(next) ||
|
|
41
|
+
next.startsWith('//') ||
|
|
42
|
+
next.includes(':') ||
|
|
43
|
+
nextSegments.some((segment, index) => (segment === '.' || segment === '..') && rawSegments[index] !== segment)) {
|
|
44
|
+
throw new OpcRelationshipTargetError('unsafe_target', `unsafe internal relationship target '${target}'`);
|
|
45
|
+
}
|
|
46
|
+
decoded = next;
|
|
47
|
+
if (!/%[0-9a-f]{2}/iu.test(decoded))
|
|
48
|
+
break;
|
|
49
|
+
if (pass === target.length) {
|
|
50
|
+
throw new OpcRelationshipTargetError('invalid_encoding', `excessively nested encoded relationship target '${target}'`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
const decodedSegments = decoded.split('/');
|
|
54
|
+
const segments = decoded.startsWith('/')
|
|
55
|
+
? []
|
|
56
|
+
: posix.dirname(ownerPart).split('/').filter(Boolean);
|
|
57
|
+
for (const segment of decodedSegments) {
|
|
58
|
+
if (!segment || segment === '.')
|
|
59
|
+
continue;
|
|
60
|
+
if (segment === '..') {
|
|
61
|
+
if (segments.length === 0) {
|
|
62
|
+
throw new OpcRelationshipTargetError('package_escape', `relationship target escapes the package root: '${target}'`);
|
|
63
|
+
}
|
|
64
|
+
segments.pop();
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
segments.push(segment);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (segments.length === 0) {
|
|
71
|
+
throw new OpcRelationshipTargetError('empty_resolved_target', `empty resolved relationship target '${target}'`);
|
|
72
|
+
}
|
|
73
|
+
return segments.join('/');
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Normalize one OPC relationship target under SafeDocX package-containment
|
|
77
|
+
* policy. Internal targets are decoded once, checked for ambiguous or unsafe
|
|
78
|
+
* URI/path forms, and resolved relative to the owning part. External targets
|
|
79
|
+
* are accepted only when the caller opts in.
|
|
80
|
+
*/
|
|
81
|
+
export function normalizeOpcRelationshipTarget(options) {
|
|
82
|
+
const mode = targetMode(options.targetMode);
|
|
83
|
+
if (mode === 'External') {
|
|
84
|
+
if (!options.allowExternal) {
|
|
85
|
+
throw new OpcRelationshipTargetError('external_target_not_allowed', `external relationship target is not allowed: '${options.target}'`);
|
|
86
|
+
}
|
|
87
|
+
try {
|
|
88
|
+
return { mode, target: new URL(options.target).href };
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
throw new OpcRelationshipTargetError('invalid_external_target', `unsafe external relationship target '${options.target}'`);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
mode,
|
|
96
|
+
target: normalizeInternalTarget(options.ownerPart, options.target),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=opc-target.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opc-target.js","sourceRoot":"","sources":["../../src/primitives/opc-target.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type RevisionContext } from './track-changes-emitter.js';
|
|
2
|
+
export type DirectParagraphNumbering = {
|
|
3
|
+
numId: string;
|
|
4
|
+
ilvl: number;
|
|
5
|
+
};
|
|
6
|
+
export type ParagraphNumberingMutation = {
|
|
7
|
+
paragraphId: string;
|
|
8
|
+
numbering: DirectParagraphNumbering | null;
|
|
9
|
+
};
|
|
10
|
+
export type ParagraphNumberingMutationResult = {
|
|
11
|
+
paragraphId: string;
|
|
12
|
+
changed: boolean;
|
|
13
|
+
previous: DirectParagraphNumbering | null;
|
|
14
|
+
current: DirectParagraphNumbering | null;
|
|
15
|
+
warning?: string;
|
|
16
|
+
};
|
|
17
|
+
export type ParagraphNumberingMutationErrorCode = 'PARAGRAPH_NOT_FOUND' | 'INCOMPLETE_NUMBERING' | 'NUMBERING_PART_MISSING' | 'NUMBERING_INSTANCE_NOT_FOUND' | 'ABSTRACT_NUMBERING_NOT_FOUND' | 'NUMBERING_LEVEL_NOT_FOUND' | 'INVALID_NUMBERING_REFERENCE';
|
|
18
|
+
export declare class ParagraphNumberingMutationError extends Error {
|
|
19
|
+
readonly code: ParagraphNumberingMutationErrorCode;
|
|
20
|
+
constructor(code: ParagraphNumberingMutationErrorCode, message: string);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Read only the paragraph's direct `w:numPr`; style-inherited numbering is not
|
|
24
|
+
* considered.
|
|
25
|
+
*
|
|
26
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.3.1.19
|
|
27
|
+
* @see #653
|
|
28
|
+
*/
|
|
29
|
+
export declare function getDirectParagraphNumbering(doc: Document, paragraphId: string): DirectParagraphNumbering | null;
|
|
30
|
+
/**
|
|
31
|
+
* Mutate one paragraph's direct list reference while preserving the numbering
|
|
32
|
+
* definitions and unrelated paragraph properties.
|
|
33
|
+
*
|
|
34
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.3.1.19
|
|
35
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.9.18
|
|
36
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.9.3
|
|
37
|
+
* @see #653
|
|
38
|
+
*/
|
|
39
|
+
export declare function setDirectParagraphNumbering(documentDoc: Document, numberingDoc: Document | null, mutation: ParagraphNumberingMutation, ctx?: RevisionContext): ParagraphNumberingMutationResult;
|
|
40
|
+
//# sourceMappingURL=paragraph_numbering.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paragraph_numbering.d.ts","sourceRoot":"","sources":["../../src/primitives/paragraph_numbering.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,MAAM,wBAAwB,GAAG;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,wBAAwB,GAAG,IAAI,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAC1C,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAAC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mCAAmC,GAC3C,qBAAqB,GACrB,sBAAsB,GACtB,wBAAwB,GACxB,8BAA8B,GAC9B,8BAA8B,GAC9B,2BAA2B,GAC3B,6BAA6B,CAAC;AAElC,qBAAa,+BAAgC,SAAQ,KAAK;aAEtC,IAAI,EAAE,mCAAmC;gBAAzC,IAAI,EAAE,mCAAmC,EACzD,OAAO,EAAE,MAAM;CAKlB;AAkCD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,QAAQ,EACb,WAAW,EAAE,MAAM,GAClB,wBAAwB,GAAG,IAAI,CAgBjC;AA4FD;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,QAAQ,EACrB,YAAY,EAAE,QAAQ,GAAG,IAAI,EAC7B,QAAQ,EAAE,0BAA0B,EACpC,GAAG,CAAC,EAAE,eAAe,GACpB,gCAAgC,CA6ElC"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { findParagraphByBookmarkId } from './bookmarks.js';
|
|
2
|
+
import { getDirectChildrenByName } from './dom-helpers.js';
|
|
3
|
+
import { OOXML, W } from './namespaces.js';
|
|
4
|
+
import { parseNumberingXml } from './numbering.js';
|
|
5
|
+
import { buildPPrChangeElement, } from './track-changes-emitter.js';
|
|
6
|
+
export class ParagraphNumberingMutationError extends Error {
|
|
7
|
+
code;
|
|
8
|
+
constructor(code, message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.code = code;
|
|
11
|
+
this.name = 'ParagraphNumberingMutationError';
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function getWAttr(el, localName) {
|
|
15
|
+
return el.getAttributeNS(OOXML.W_NS, localName)
|
|
16
|
+
|| el.getAttribute(`w:${localName}`)
|
|
17
|
+
|| el.getAttribute(localName)
|
|
18
|
+
|| null;
|
|
19
|
+
}
|
|
20
|
+
function parseDirectNumberingFromParagraph(paragraph) {
|
|
21
|
+
const pPr = getDirectChildrenByName(paragraph, W.pPr)[0] ?? null;
|
|
22
|
+
const numPr = pPr ? getDirectChildrenByName(pPr, W.numPr)[0] ?? null : null;
|
|
23
|
+
if (!numPr)
|
|
24
|
+
return { value: null, complete: true };
|
|
25
|
+
const numIdEl = getDirectChildrenByName(numPr, W.numId)[0] ?? null;
|
|
26
|
+
const ilvlEl = getDirectChildrenByName(numPr, W.ilvl)[0] ?? null;
|
|
27
|
+
const numId = numIdEl ? getWAttr(numIdEl, W.val) : null;
|
|
28
|
+
const ilvlText = ilvlEl ? getWAttr(ilvlEl, W.val) : null;
|
|
29
|
+
const ilvl = ilvlText !== null ? Number(ilvlText) : Number.NaN;
|
|
30
|
+
if (numId === null
|
|
31
|
+
|| !/^[1-9]\d*$/.test(numId)
|
|
32
|
+
|| !Number.isSafeInteger(ilvl)
|
|
33
|
+
|| ilvl < 0) {
|
|
34
|
+
return { value: null, complete: false };
|
|
35
|
+
}
|
|
36
|
+
return { value: { numId, ilvl }, complete: true };
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Read only the paragraph's direct `w:numPr`; style-inherited numbering is not
|
|
40
|
+
* considered.
|
|
41
|
+
*
|
|
42
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.3.1.19
|
|
43
|
+
* @see #653
|
|
44
|
+
*/
|
|
45
|
+
export function getDirectParagraphNumbering(doc, paragraphId) {
|
|
46
|
+
const paragraph = findParagraphByBookmarkId(doc, paragraphId);
|
|
47
|
+
if (!paragraph) {
|
|
48
|
+
throw new ParagraphNumberingMutationError('PARAGRAPH_NOT_FOUND', `Paragraph '${paragraphId}' was not found.`);
|
|
49
|
+
}
|
|
50
|
+
const parsed = parseDirectNumberingFromParagraph(paragraph);
|
|
51
|
+
if (!parsed.complete) {
|
|
52
|
+
throw new ParagraphNumberingMutationError('INCOMPLETE_NUMBERING', `Paragraph '${paragraphId}' has an incomplete or invalid direct w:numPr.`);
|
|
53
|
+
}
|
|
54
|
+
return parsed.value;
|
|
55
|
+
}
|
|
56
|
+
function validateRequestedNumbering(numberingDoc, requested) {
|
|
57
|
+
if (!/^[1-9]\d*$/.test(requested.numId)
|
|
58
|
+
|| !Number.isSafeInteger(requested.ilvl)
|
|
59
|
+
|| requested.ilvl < 0) {
|
|
60
|
+
throw new ParagraphNumberingMutationError('INVALID_NUMBERING_REFERENCE', 'numId must be a positive decimal string and ilvl must be a non-negative safe integer.');
|
|
61
|
+
}
|
|
62
|
+
if (!numberingDoc) {
|
|
63
|
+
throw new ParagraphNumberingMutationError('NUMBERING_PART_MISSING', 'The document has no word/numbering.xml part.');
|
|
64
|
+
}
|
|
65
|
+
const model = parseNumberingXml(numberingDoc);
|
|
66
|
+
const instance = model.nums.get(requested.numId);
|
|
67
|
+
if (!instance) {
|
|
68
|
+
throw new ParagraphNumberingMutationError('NUMBERING_INSTANCE_NOT_FOUND', `Numbering instance '${requested.numId}' was not found in word/numbering.xml.`);
|
|
69
|
+
}
|
|
70
|
+
const abstract = model.abstractNums.get(instance.abstractNumId);
|
|
71
|
+
if (!abstract) {
|
|
72
|
+
throw new ParagraphNumberingMutationError('ABSTRACT_NUMBERING_NOT_FOUND', `Numbering instance '${requested.numId}' references missing abstract numbering '${instance.abstractNumId}'.`);
|
|
73
|
+
}
|
|
74
|
+
if (!abstract.levels.has(requested.ilvl)) {
|
|
75
|
+
throw new ParagraphNumberingMutationError('NUMBERING_LEVEL_NOT_FOUND', `Numbering instance '${requested.numId}' has no level ${requested.ilvl}.`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
function ensureParagraphProperties(paragraph) {
|
|
79
|
+
const existing = getDirectChildrenByName(paragraph, W.pPr)[0];
|
|
80
|
+
if (existing)
|
|
81
|
+
return existing;
|
|
82
|
+
const pPr = paragraph.ownerDocument.createElementNS(OOXML.W_NS, `w:${W.pPr}`);
|
|
83
|
+
paragraph.insertBefore(pPr, paragraph.firstChild);
|
|
84
|
+
return pPr;
|
|
85
|
+
}
|
|
86
|
+
function insertNumPrInSchemaOrder(pPr, numPr) {
|
|
87
|
+
const successors = new Set([
|
|
88
|
+
'suppressLineNumbers',
|
|
89
|
+
'pBdr',
|
|
90
|
+
'shd',
|
|
91
|
+
'tabs',
|
|
92
|
+
'suppressAutoHyphens',
|
|
93
|
+
'kinsoku',
|
|
94
|
+
'wordWrap',
|
|
95
|
+
'overflowPunct',
|
|
96
|
+
'topLinePunct',
|
|
97
|
+
'autoSpaceDE',
|
|
98
|
+
'autoSpaceDN',
|
|
99
|
+
'bidi',
|
|
100
|
+
'adjustRightInd',
|
|
101
|
+
'snapToGrid',
|
|
102
|
+
W.spacing,
|
|
103
|
+
W.ind,
|
|
104
|
+
'contextualSpacing',
|
|
105
|
+
'mirrorIndents',
|
|
106
|
+
'suppressOverlap',
|
|
107
|
+
W.jc,
|
|
108
|
+
'textDirection',
|
|
109
|
+
'textAlignment',
|
|
110
|
+
'textboxTightWrap',
|
|
111
|
+
'outlineLvl',
|
|
112
|
+
'divId',
|
|
113
|
+
'cnfStyle',
|
|
114
|
+
W.rPr,
|
|
115
|
+
W.sectPr,
|
|
116
|
+
'pPrChange',
|
|
117
|
+
]);
|
|
118
|
+
const successor = Array.from(pPr.children)
|
|
119
|
+
.find((child) => successors.has(child.localName));
|
|
120
|
+
if (successor)
|
|
121
|
+
pPr.insertBefore(numPr, successor);
|
|
122
|
+
else
|
|
123
|
+
pPr.appendChild(numPr);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Mutate one paragraph's direct list reference while preserving the numbering
|
|
127
|
+
* definitions and unrelated paragraph properties.
|
|
128
|
+
*
|
|
129
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.3.1.19
|
|
130
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.9.18
|
|
131
|
+
* @conformance ECMA-376 edition 5, Part 1 § 17.9.3
|
|
132
|
+
* @see #653
|
|
133
|
+
*/
|
|
134
|
+
export function setDirectParagraphNumbering(documentDoc, numberingDoc, mutation, ctx) {
|
|
135
|
+
const paragraph = findParagraphByBookmarkId(documentDoc, mutation.paragraphId);
|
|
136
|
+
if (!paragraph) {
|
|
137
|
+
throw new ParagraphNumberingMutationError('PARAGRAPH_NOT_FOUND', `Paragraph '${mutation.paragraphId}' was not found.`);
|
|
138
|
+
}
|
|
139
|
+
if (mutation.numbering) {
|
|
140
|
+
validateRequestedNumbering(numberingDoc, mutation.numbering);
|
|
141
|
+
}
|
|
142
|
+
const parsedPrevious = parseDirectNumberingFromParagraph(paragraph);
|
|
143
|
+
const existingPPr = getDirectChildrenByName(paragraph, W.pPr)[0] ?? null;
|
|
144
|
+
const existingNumPrs = existingPPr
|
|
145
|
+
? getDirectChildrenByName(existingPPr, W.numPr)
|
|
146
|
+
: [];
|
|
147
|
+
if (!mutation.numbering && existingNumPrs.length === 0) {
|
|
148
|
+
return {
|
|
149
|
+
paragraphId: mutation.paragraphId,
|
|
150
|
+
changed: false,
|
|
151
|
+
previous: null,
|
|
152
|
+
current: null,
|
|
153
|
+
warning: 'The paragraph has no direct w:numPr; style-inherited numbering was not changed.',
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
if (mutation.numbering
|
|
157
|
+
&& parsedPrevious.complete
|
|
158
|
+
&& parsedPrevious.value?.numId === mutation.numbering.numId
|
|
159
|
+
&& parsedPrevious.value.ilvl === mutation.numbering.ilvl
|
|
160
|
+
&& existingNumPrs.length === 1) {
|
|
161
|
+
return {
|
|
162
|
+
paragraphId: mutation.paragraphId,
|
|
163
|
+
changed: false,
|
|
164
|
+
previous: parsedPrevious.value,
|
|
165
|
+
current: parsedPrevious.value,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
const oldPPr = existingPPr ? existingPPr.cloneNode(true) : null;
|
|
169
|
+
const pPr = mutation.numbering
|
|
170
|
+
? ensureParagraphProperties(paragraph)
|
|
171
|
+
: existingPPr;
|
|
172
|
+
for (const stale of getDirectChildrenByName(pPr, W.numPr)) {
|
|
173
|
+
pPr.removeChild(stale);
|
|
174
|
+
}
|
|
175
|
+
if (mutation.numbering) {
|
|
176
|
+
const numPr = documentDoc.createElementNS(OOXML.W_NS, `w:${W.numPr}`);
|
|
177
|
+
const ilvl = documentDoc.createElementNS(OOXML.W_NS, `w:${W.ilvl}`);
|
|
178
|
+
ilvl.setAttributeNS(OOXML.W_NS, `w:${W.val}`, String(mutation.numbering.ilvl));
|
|
179
|
+
const numId = documentDoc.createElementNS(OOXML.W_NS, `w:${W.numId}`);
|
|
180
|
+
numId.setAttributeNS(OOXML.W_NS, `w:${W.val}`, mutation.numbering.numId);
|
|
181
|
+
numPr.appendChild(ilvl);
|
|
182
|
+
numPr.appendChild(numId);
|
|
183
|
+
insertNumPrInSchemaOrder(pPr, numPr);
|
|
184
|
+
}
|
|
185
|
+
if (ctx) {
|
|
186
|
+
for (const stale of getDirectChildrenByName(pPr, 'pPrChange')) {
|
|
187
|
+
pPr.removeChild(stale);
|
|
188
|
+
}
|
|
189
|
+
pPr.appendChild(buildPPrChangeElement(oldPPr, ctx));
|
|
190
|
+
}
|
|
191
|
+
return {
|
|
192
|
+
paragraphId: mutation.paragraphId,
|
|
193
|
+
changed: true,
|
|
194
|
+
previous: parsedPrevious.complete ? parsedPrevious.value : null,
|
|
195
|
+
current: mutation.numbering,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
//# sourceMappingURL=paragraph_numbering.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paragraph_numbering.js","sourceRoot":"","sources":["../../src/primitives/paragraph_numbering.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,13 @@ export type RejectChangesResult = {
|
|
|
23
23
|
deletionsRestored: number;
|
|
24
24
|
movesReverted: number;
|
|
25
25
|
propertyChangesReverted: number;
|
|
26
|
+
/**
|
|
27
|
+
* Row-level revision markers left in place because this engine cannot resolve
|
|
28
|
+
* them. A non-zero count means the output still holds tracked-change markup
|
|
29
|
+
* and does not match what a word processor would project. Reported separately
|
|
30
|
+
* from the resolved counters: a preserved marker is not a reverted change.
|
|
31
|
+
*/
|
|
32
|
+
unresolvedRowRevisions: number;
|
|
26
33
|
};
|
|
27
34
|
/**
|
|
28
35
|
* Reject all tracked changes in the document body or story root, restoring
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reject_changes.d.ts","sourceRoot":"","sources":["../../src/primitives/reject_changes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAsB1D,MAAM,MAAM,mBAAmB,GAAG;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"reject_changes.d.ts","sourceRoot":"","sources":["../../src/primitives/reject_changes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAsB1D,MAAM,MAAM,mBAAmB,GAAG;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,EAAE,MAAM,CAAC;IAChC;;;;;OAKG;IACH,sBAAsB,EAAE,MAAM,CAAC;CAChC,CAAC;AA4WF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,QAAQ,EACb,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,cAAc,CAAA;CAAE,GACjC,mBAAmB,CA6PrB"}
|