@docx-editor.dev/editor-api 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -64,7 +64,7 @@ stack intact. There is no `save()`: the host saves as it already did.
64
64
  ```ts
65
65
  import { DocxEditor } from '@docx-editor.dev/editor-api/browser';
66
66
 
67
- const runtime = DocxEditor.createBrowser(editor);
67
+ const runtime = DocxEditor.createBrowser(editor, { author: 'Demo Reviewer' });
68
68
  await runtime.run(async (context) => {
69
69
  const heading = context.document.body.paragraphs.getFirstOrNullObject();
70
70
  heading.load('text');
@@ -78,6 +78,22 @@ await runtime.run(async (context) => {
78
78
  Import it from `/browser` deliberately: reaching a live editor means reaching the painted engine,
79
79
  and a server holding bytes should not pay for that.
80
80
 
81
+ `author` is optional for source compatibility and ordinary edits, but required by
82
+ `Range.insertComment()` and `Comment.reply()`. A missing identity refuses with `NotSupported`; a
83
+ live comment write also requires the Pro review module and a writable editing mode. There is no
84
+ static comment-write capability because those conditions are dynamic, so callers should handle the
85
+ typed refusal from the call or `sync()`.
86
+
87
+ `range.insertComment(text)` creates a top-level comment over that exact range and returns the new
88
+ `Comment`. Collapsed ranges create insertion-point comments. Empty text and ranges crossing table
89
+ cells are refused; duplicate author names are ordinary OOXML and are not deduplicated.
90
+
91
+ `Comment.delete()` removes a root comment, its replies, and its anchors. `CommentReply.delete()`
92
+ removes only that reply and preserves the parent and siblings. Several deletes queued before one
93
+ `sync()` are one atomic transaction and one browser Undo unit. Browser comment writes require the
94
+ Pro review module and a writable, attached editor; server writes are provided by this Pro-licensed
95
+ runtime. Root creation follows the same browser gate and is one Undo unit.
96
+
81
97
  ## Programming model
82
98
 
83
99
  - A property you did not `load()` throws instead of answering `undefined`, so a typo fails at
@@ -89,6 +105,9 @@ and a server holding bytes should not pay for that.
89
105
  syncs deliberately, hand it to `context.trackedObjects`.
90
106
  - `getFirstOrNullObject` / `getLastOrNullObject` answer an object whose `isNullObject` is
91
107
  `true`, which is the difference between "no such heading" and a crash.
108
+ - Review timestamps come from untrusted, optional OOXML attributes. `Comment.creationDate`,
109
+ `CommentReply.creationDate`, and `Revision.date` are `Date | null`; narrow `null` before calling
110
+ `Date` methods.
92
111
 
93
112
  `runtime.capabilities` says what the host behind a runtime can do: `save` is false in the
94
113
  browser; `selection`, `scrolling` and `layout` are false on a server. It is frozen for the
@@ -135,9 +154,10 @@ The editor packages above are Apache 2.0. This one is not — see below.
135
154
  This package is licensed under the
136
155
  [EigenPal Pro Evaluation License 1.0](https://github.com/eigenpal/docx-editor/blob/main/packages/editor-api/LICENSE.md).
137
156
  You may read, run and modify it internally, free of charge, to evaluate whether it fits your
138
- application. Production use — a live or customer-facing environment, live or business-operational
139
- data, or the package embedded in something you offer to others — requires a written commercial
140
- agreement, and so does redistribution.
157
+ application. Browser comment creation, replies, and deletions also require `@docx-editor.dev/pro`,
158
+ under the same evaluation-only production boundary. Production use — a live or customer-facing environment, live
159
+ or business-operational data, or either package embedded in something you offer to others —
160
+ requires a written commercial agreement, and so does redistribution.
141
161
 
142
162
  > [!IMPORTANT]
143
163
  > Commercial licensing: **[licensing@eigenpal.com](mailto:licensing@eigenpal.com)**.
@@ -5,7 +5,7 @@
5
5
  * ```ts
6
6
  * import { DocxEditor } from '@docx-editor.dev/editor-api/browser';
7
7
  *
8
- * const runtime = DocxEditor.createBrowser(editor);
8
+ * const runtime = DocxEditor.createBrowser(editor, { author: 'Demo Reviewer' });
9
9
  * await runtime.run(async (context) => { … });
10
10
  * ```
11
11
  *
@@ -21,18 +21,34 @@
21
21
  * @packageDocumentation
22
22
  * @public
23
23
  */
24
+ import { y as DocxEditorRuntime, C as CreateServerOptions, D as DocxEditorServerRuntime } from './server-BaHNZNu1.mjs';
25
+ export { B as BesideLocation, a as Body, b as BodyInsertParagraphLocation, c as BodyInsertTextLocation, d as Bookmark, e as BookmarkCollection, f as ClientObject, g as ClientResult, h as Comment, i as CommentCollection, j as CommentReply, k as CommentReplyCollection, l as ContentControl, m as ContentControlCollection, n as ContentControlLockState, o as ContentControlSubtype, p as ContentControlValue, q as Document, r as DocumentCapabilities, s as DocumentLimits, t as DocumentXmlLimits, u as DocumentZipLimits, v as DocxEditorError, w as DocxEditorErrorCode, x as DocxEditorErrorInit, F as Font, H as HeaderFooterType, I as InsertLocation, L as List, z as ListCollection, A as ListItem, E as LoadOption, G as LoadQueryOptions, N as NoteItem, J as NoteItemCollection, K as NoteItemType, P as PageOrientation, M as PageSetup, O as Paragraph, Q as ParagraphAlignment, R as ParagraphCollection, S as ParagraphInsertTextLocation, T as Range, U as RangeCollection, V as RangeInsertTextLocation, W as RequestContext, X as Revision, Y as RevisionCollection, Z as RevisionType, _ as RunCallback, $ as SearchOptions, a0 as Section, a1 as SectionCollection, a2 as SelectionMode, a3 as TrackedObjects, a4 as isDocxEditorError } from './server-BaHNZNu1.mjs';
24
26
  import { DocxEditorInstance } from '@docx-editor.dev/core/editor';
25
- import { y as DocxEditorRuntime, C as CreateServerOptions, D as DocxEditorServerRuntime } from './server-C3dcanDU.mjs';
26
- export { B as BesideLocation, a as Body, b as BodyInsertParagraphLocation, c as BodyInsertTextLocation, d as Bookmark, e as BookmarkCollection, f as ClientObject, g as ClientResult, h as Comment, i as CommentCollection, j as CommentReply, k as CommentReplyCollection, l as ContentControl, m as ContentControlCollection, n as ContentControlLockState, o as ContentControlSubtype, p as ContentControlValue, q as Document, r as DocumentCapabilities, s as DocumentLimits, t as DocumentXmlLimits, u as DocumentZipLimits, v as DocxEditorError, w as DocxEditorErrorCode, x as DocxEditorErrorInit, F as Font, H as HeaderFooterType, I as InsertLocation, L as List, z as ListCollection, A as ListItem, E as LoadOption, G as LoadQueryOptions, N as NoteItem, J as NoteItemCollection, K as NoteItemType, P as PageOrientation, M as PageSetup, O as Paragraph, Q as ParagraphAlignment, R as ParagraphCollection, S as ParagraphInsertTextLocation, T as Range, U as RangeCollection, V as RangeInsertTextLocation, W as RequestContext, X as Revision, Y as RevisionCollection, Z as RevisionType, _ as RunCallback, $ as SearchOptions, a0 as Section, a1 as SectionCollection, a2 as SelectionMode, a3 as TrackedObjects, a4 as isDocxEditorError } from './server-C3dcanDU.mjs';
27
27
  import '@docx-editor.dev/core/automation';
28
28
 
29
+ /**
30
+ * How `DocxEditor.createBrowser` borrows a live editor.
31
+ *
32
+ * @public
33
+ */
34
+ interface CreateBrowserOptions {
35
+ /**
36
+ * Who comments this runtime writes are recorded as.
37
+ *
38
+ * Required to reply to a comment: `CT_TrackChange` makes `@w:author` mandatory, and the editor
39
+ * does not expose a signed-in identity to automation. Omitted means comment writes refuse with
40
+ * `NotSupported`; ordinary document reads and writes are unaffected.
41
+ */
42
+ readonly author?: string;
43
+ }
44
+
29
45
  /**
30
46
  * The same document automation, for a page that already has an editor open.
31
47
  *
32
48
  * ```ts
33
49
  * import { DocxEditor } from '@docx-editor.dev/editor-api/browser';
34
50
  *
35
- * const runtime = DocxEditor.createBrowser(editor);
51
+ * const runtime = DocxEditor.createBrowser(editor, { author: 'Demo Reviewer' });
36
52
  * await runtime.run(async (context) => { … });
37
53
  * ```
38
54
  *
@@ -55,8 +71,13 @@ import '@docx-editor.dev/core/automation';
55
71
  * @public
56
72
  */
57
73
  interface DocxEditorNamespace {
58
- /** A runtime over an editor that is already open. The editor keeps its own lifetime. */
59
- createBrowser(editor: DocxEditorInstance): DocxEditorRuntime;
74
+ /**
75
+ * A runtime over an editor that is already open. The editor keeps its own lifetime.
76
+ *
77
+ * Pass `author` when the runtime may reply to comments. Identity is explicit because the editor
78
+ * does not publish a signed-in user; without one, comment writes refuse with `NotSupported`.
79
+ */
80
+ createBrowser(editor: DocxEditorInstance, options?: CreateBrowserOptions): DocxEditorRuntime;
60
81
  /** A runtime over DOCX bytes. Additionally offers `save()`. */
61
82
  createServer(bytes: Uint8Array, options?: CreateServerOptions): Promise<DocxEditorServerRuntime>;
62
83
  }
@@ -71,10 +92,13 @@ interface DocxEditorNamespace {
71
92
  * ```ts
72
93
  * import { DocxEditor } from '@docx-editor.dev/editor-api/browser';
73
94
  *
74
- * const runtime = DocxEditor.createBrowser(editor);
95
+ * const runtime = DocxEditor.createBrowser(editor, { author: 'Demo Reviewer' });
75
96
  * await runtime.run(async (context) => {
76
97
  * const paragraphs = context.document.paragraphs;
77
- * paragraphs.load('text');
98
+ * paragraphs.load('items');
99
+ * await context.sync();
100
+ *
101
+ * for (const paragraph of paragraphs.items) paragraph.load('text');
78
102
  * await context.sync();
79
103
  * });
80
104
  * ```
@@ -83,4 +107,4 @@ interface DocxEditorNamespace {
83
107
  */
84
108
  declare const DocxEditor: DocxEditorNamespace;
85
109
 
86
- export { CreateServerOptions, DocxEditor, type DocxEditorNamespace, DocxEditorRuntime, DocxEditorServerRuntime };
110
+ export { type CreateBrowserOptions, CreateServerOptions, DocxEditor, type DocxEditorNamespace, DocxEditorRuntime, DocxEditorServerRuntime };
package/dist/browser.d.ts CHANGED
@@ -5,7 +5,7 @@
5
5
  * ```ts
6
6
  * import { DocxEditor } from '@docx-editor.dev/editor-api/browser';
7
7
  *
8
- * const runtime = DocxEditor.createBrowser(editor);
8
+ * const runtime = DocxEditor.createBrowser(editor, { author: 'Demo Reviewer' });
9
9
  * await runtime.run(async (context) => { … });
10
10
  * ```
11
11
  *
@@ -21,18 +21,34 @@
21
21
  * @packageDocumentation
22
22
  * @public
23
23
  */
24
+ import { y as DocxEditorRuntime, C as CreateServerOptions, D as DocxEditorServerRuntime } from './server-BaHNZNu1.js';
25
+ export { B as BesideLocation, a as Body, b as BodyInsertParagraphLocation, c as BodyInsertTextLocation, d as Bookmark, e as BookmarkCollection, f as ClientObject, g as ClientResult, h as Comment, i as CommentCollection, j as CommentReply, k as CommentReplyCollection, l as ContentControl, m as ContentControlCollection, n as ContentControlLockState, o as ContentControlSubtype, p as ContentControlValue, q as Document, r as DocumentCapabilities, s as DocumentLimits, t as DocumentXmlLimits, u as DocumentZipLimits, v as DocxEditorError, w as DocxEditorErrorCode, x as DocxEditorErrorInit, F as Font, H as HeaderFooterType, I as InsertLocation, L as List, z as ListCollection, A as ListItem, E as LoadOption, G as LoadQueryOptions, N as NoteItem, J as NoteItemCollection, K as NoteItemType, P as PageOrientation, M as PageSetup, O as Paragraph, Q as ParagraphAlignment, R as ParagraphCollection, S as ParagraphInsertTextLocation, T as Range, U as RangeCollection, V as RangeInsertTextLocation, W as RequestContext, X as Revision, Y as RevisionCollection, Z as RevisionType, _ as RunCallback, $ as SearchOptions, a0 as Section, a1 as SectionCollection, a2 as SelectionMode, a3 as TrackedObjects, a4 as isDocxEditorError } from './server-BaHNZNu1.js';
24
26
  import { DocxEditorInstance } from '@docx-editor.dev/core/editor';
25
- import { y as DocxEditorRuntime, C as CreateServerOptions, D as DocxEditorServerRuntime } from './server-C3dcanDU.js';
26
- export { B as BesideLocation, a as Body, b as BodyInsertParagraphLocation, c as BodyInsertTextLocation, d as Bookmark, e as BookmarkCollection, f as ClientObject, g as ClientResult, h as Comment, i as CommentCollection, j as CommentReply, k as CommentReplyCollection, l as ContentControl, m as ContentControlCollection, n as ContentControlLockState, o as ContentControlSubtype, p as ContentControlValue, q as Document, r as DocumentCapabilities, s as DocumentLimits, t as DocumentXmlLimits, u as DocumentZipLimits, v as DocxEditorError, w as DocxEditorErrorCode, x as DocxEditorErrorInit, F as Font, H as HeaderFooterType, I as InsertLocation, L as List, z as ListCollection, A as ListItem, E as LoadOption, G as LoadQueryOptions, N as NoteItem, J as NoteItemCollection, K as NoteItemType, P as PageOrientation, M as PageSetup, O as Paragraph, Q as ParagraphAlignment, R as ParagraphCollection, S as ParagraphInsertTextLocation, T as Range, U as RangeCollection, V as RangeInsertTextLocation, W as RequestContext, X as Revision, Y as RevisionCollection, Z as RevisionType, _ as RunCallback, $ as SearchOptions, a0 as Section, a1 as SectionCollection, a2 as SelectionMode, a3 as TrackedObjects, a4 as isDocxEditorError } from './server-C3dcanDU.js';
27
27
  import '@docx-editor.dev/core/automation';
28
28
 
29
+ /**
30
+ * How `DocxEditor.createBrowser` borrows a live editor.
31
+ *
32
+ * @public
33
+ */
34
+ interface CreateBrowserOptions {
35
+ /**
36
+ * Who comments this runtime writes are recorded as.
37
+ *
38
+ * Required to reply to a comment: `CT_TrackChange` makes `@w:author` mandatory, and the editor
39
+ * does not expose a signed-in identity to automation. Omitted means comment writes refuse with
40
+ * `NotSupported`; ordinary document reads and writes are unaffected.
41
+ */
42
+ readonly author?: string;
43
+ }
44
+
29
45
  /**
30
46
  * The same document automation, for a page that already has an editor open.
31
47
  *
32
48
  * ```ts
33
49
  * import { DocxEditor } from '@docx-editor.dev/editor-api/browser';
34
50
  *
35
- * const runtime = DocxEditor.createBrowser(editor);
51
+ * const runtime = DocxEditor.createBrowser(editor, { author: 'Demo Reviewer' });
36
52
  * await runtime.run(async (context) => { … });
37
53
  * ```
38
54
  *
@@ -55,8 +71,13 @@ import '@docx-editor.dev/core/automation';
55
71
  * @public
56
72
  */
57
73
  interface DocxEditorNamespace {
58
- /** A runtime over an editor that is already open. The editor keeps its own lifetime. */
59
- createBrowser(editor: DocxEditorInstance): DocxEditorRuntime;
74
+ /**
75
+ * A runtime over an editor that is already open. The editor keeps its own lifetime.
76
+ *
77
+ * Pass `author` when the runtime may reply to comments. Identity is explicit because the editor
78
+ * does not publish a signed-in user; without one, comment writes refuse with `NotSupported`.
79
+ */
80
+ createBrowser(editor: DocxEditorInstance, options?: CreateBrowserOptions): DocxEditorRuntime;
60
81
  /** A runtime over DOCX bytes. Additionally offers `save()`. */
61
82
  createServer(bytes: Uint8Array, options?: CreateServerOptions): Promise<DocxEditorServerRuntime>;
62
83
  }
@@ -71,10 +92,13 @@ interface DocxEditorNamespace {
71
92
  * ```ts
72
93
  * import { DocxEditor } from '@docx-editor.dev/editor-api/browser';
73
94
  *
74
- * const runtime = DocxEditor.createBrowser(editor);
95
+ * const runtime = DocxEditor.createBrowser(editor, { author: 'Demo Reviewer' });
75
96
  * await runtime.run(async (context) => {
76
97
  * const paragraphs = context.document.paragraphs;
77
- * paragraphs.load('text');
98
+ * paragraphs.load('items');
99
+ * await context.sync();
100
+ *
101
+ * for (const paragraph of paragraphs.items) paragraph.load('text');
78
102
  * await context.sync();
79
103
  * });
80
104
  * ```
@@ -83,4 +107,4 @@ interface DocxEditorNamespace {
83
107
  */
84
108
  declare const DocxEditor: DocxEditorNamespace;
85
109
 
86
- export { CreateServerOptions, DocxEditor, type DocxEditorNamespace, DocxEditorRuntime, DocxEditorServerRuntime };
110
+ export { type CreateBrowserOptions, CreateServerOptions, DocxEditor, type DocxEditorNamespace, DocxEditorRuntime, DocxEditorServerRuntime };
package/dist/browser.js CHANGED
@@ -1 +1 @@
1
- 'use strict';var editor=require('@docx-editor.dev/core/editor'),automation=require('@docx-editor.dev/core/automation');var Lt=Object.freeze({PropertyNotLoaded:"the property has not been loaded. Call load(...) and await context.sync() before reading it.",ValueNotLoaded:"the result has not been filled in yet. Await context.sync() before reading it.",InvalidObjectPath:"the object cannot be addressed. An object an item accessor answered is usable after the next await context.sync(); an object whose run has ended is released for good, unless context.trackedObjects.add(...) kept it.",ObjectInUse:"the object still belongs to a run that has not finished. Await that run before passing the object to another one.",InvalidArgument:"the argument is not one this API accepts.",ItemNotFound:"the collection has no such item.",NotSupported:"this document host does not support that operation.",NotImplemented:"this version does not implement that yet.",ConflictingChanges:"two changes in this batch affect the same paragraph. Split them across two context.sync() calls.",InvalidRequestContext:"the request context has finished. Start another run to continue.",RuntimeDisposed:"the runtime has been disposed.",StaleDocument:"the document changed after this context read it, so nothing was applied.",DocumentUnavailable:"the document is not available right now.",GeneralException:"the document could not complete the request."}),u=class extends Error{code;target;expectedRevision;actualRevision;constructor(t){let e=t.target?`${Lt[t.code]} (${t.target})`:Lt[t.code];super(e),this.name="DocxEditorError",this.code=t.code,t.target!==void 0&&(this.target=t.target),t.expectedRevision!==void 0&&(this.expectedRevision=t.expectedRevision),t.actualRevision!==void 0&&(this.actualRevision=t.actualRevision);}};function ee(n){return n instanceof u?true:typeof n=="object"&&n!==null&&n.name==="DocxEditorError"&&typeof n.code=="string"}function a(n){throw new u(n)}var D=Symbol("docx-editor.runtime.internals"),lt=Symbol("docx-editor.runtime.release"),ct=Symbol("docx-editor.runtime.rebind");function ot(n){return n[D]}var oe=new Set(["select","expand","top","skip"]),ne=/^[A-Za-z][A-Za-z0-9]*$/;function At(n,t){if(n===void 0)return [];let e=typeof n=="string"?n.split(",").map(r=>r.trim()):Array.isArray(n)?n.map(r=>typeof r=="string"?r.trim():r):a({code:"InvalidArgument",target:t}),o=[];for(let r of e)(typeof r!="string"||!ne.test(r))&&a({code:"InvalidArgument",target:t}),o.includes(r)||o.push(r);return o.length===0&&a({code:"InvalidArgument",target:t}),o}function jt(n,t){return (typeof n!="number"||!Number.isInteger(n)||n<0)&&a({code:"InvalidArgument",target:t}),n}function wt(n,t){if(n===void 0)return {select:[],expand:[]};if(typeof n=="string"||Array.isArray(n))return {select:At(n,t),expand:[]};(typeof n!="object"||n===null)&&a({code:"InvalidArgument",target:t});let e=n;for(let o of Object.keys(e))oe.has(o)||a({code:"InvalidArgument",target:`${t}.${o}`});return {select:At(e.select,`${t}.select`),expand:At(e.expand,`${t}.expand`),...e.top===void 0?{}:{top:jt(e.top,`${t}.top`)},...e.skip===void 0?{}:{skip:jt(e.skip,`${t}.skip`)}}}var w=class{#t;#e;#o;#n;#i=new Map;constructor(t,e,o={}){this.#t=t,this.#e=t[D],this.#o=e,this.#n=o.nullable===true,this.#e.register(this);}get context(){return this.#t}get isNullObject(){return this.#o.isReleased&&a({code:"InvalidObjectPath",target:this.#o.label}),this.#n?(this.#o.isPending&&a({code:"PropertyNotLoaded",target:`${this.#o.label}.isNullObject`}),this.#o.isNull):false}load(t){return this.requireAddressable(),this.onLoad(wt(t,this.#o.label)),this}get path(){return this.#o}get internals(){return this.#e}handle(){return this.#o.handle()}requireAddressable(){this.#o.isAddressable||a({code:"InvalidObjectPath",target:this.#o.label}),this.#e.assertUsable(this.#o.label);}enqueue(t){this.requireAddressable(),this.#e.queue.push(t);}loadedProperty(t){return this.#o.isReleased&&!this.#i.has(t)&&a({code:"InvalidObjectPath",target:this.#o.label}),this.#i.has(t)||a({code:"PropertyNotLoaded",target:`${this.#o.label}.${t}`}),this.#i.get(t)}hasLoadedProperty(t){return this.#i.has(t)}setLoadedProperty(t,e){this.#i.set(t,e);}[lt](){this.#o.release();}[ct](t){this.#t=t,this.#e=t[D];}};var Ct=class n{#t=false;#e;#o;constructor(t){this.#o=t;}get value(){return this.#t||a({code:"ValueNotLoaded",target:this.#o}),this.#e}get isLoaded(){return this.#t}static create(t){let e=new n(t);return {result:e,fill(o){e.#t=true,e.#e=o;}}}};function O(n){return new u({code:"GeneralException",target:n})}function x(n,t){if(n.kind!=="text")throw O(t);return n.text}function g(n,t){if(n.kind!=="handle")throw O(t);return n.handle}function P(n,t){if(n.kind!=="handles")throw O(t);return n.handles}function f(n,t){if(n.kind!=="span")throw O(t);return n.span}function pt(n,t){if(n.kind!=="spans")throw O(t);return n.spans}function vt(n,t){if(n.kind!=="font")throw O(t);return n.font}function Rt(n,t){if(n.kind!=="paragraphFormat")throw O(t);return n.format}function nt(n,t){if(n.kind!=="style")throw O(t);return n.name}function ht(n,t){if(n.kind!=="number")throw O(t);return n.value}function B(n,t){if(n.kind!=="flag")throw O(t);return n.value}function Ot(n,t){if(n.kind!=="pageSetup")throw O(t);return n.setup}function A(n,t){if(n.kind!=="applied")throw O(t)}var l=class n{label;#t;#e;constructor(t,e,o=null){this.label=t,this.#t=e,this.#e=o;}static of(t,e){return new n(t,{status:"resolved",address:{kind:"handle",handle:e}})}static ofSpan(t,e){return new n(t,{status:"resolved",address:{kind:"span",span:e}})}static pending(t){return new n(t,{status:"pending"})}static derived(t,e){return new n(t,{status:"pending"},e)}get state(){return this.#e?this.#e.state:this.#t}get isAddressable(){return this.state.status==="resolved"}get isPending(){return this.state.status==="pending"}get isNull(){return this.state.status==="null"}get isReleased(){return this.state.status==="released"}address(){let t=this.state;if(t.status==="resolved")return t.address;a({code:"InvalidObjectPath",target:this.label});}handle(){let t=this.address();return t.kind!=="handle"&&a({code:"InvalidObjectPath",target:this.label}),t.handle}span(){let t=this.address();return t.kind!=="span"&&a({code:"InvalidObjectPath",target:this.label}),t.span}resolveTo(t){this.#o({kind:"handle",handle:t});}resolveToSpan(t){this.#o({kind:"span",span:t});}resolveNull(){this.#t.status!=="released"&&(this.#t={status:"null"});}release(){this.#e||(this.#t={status:"released"});}#o(t){this.#t.status!=="released"&&(this.#t={status:"resolved",address:t});}};function Et(n){let t=[],e=false,o=false;for(let r of n)t.push(r.plan()),r.sort==="write"?o=true:e=true;return {operations:t,hasRead:e,hasWrite:o}}var re=Object.freeze({"stale-revision":"StaleDocument","invalid-handle":"InvalidObjectPath","invalid-offset":"InvalidArgument","unsupported-capability":"NotSupported",disposed:"RuntimeDisposed","transaction-refused":"GeneralException","unknown-operation":"NotSupported","unsupported-content":"InvalidArgument","conflicting-operations":"ConflictingChanges","document-unavailable":"DocumentUnavailable"});function ut(n,t={}){let e=re[n.code]??"GeneralException",o=e==="StaleDocument";return new u({code:e,...t.target===void 0?{}:{target:t.target},...o&&t.expectedRevision!==void 0?{expectedRevision:t.expectedRevision}:{},...o&&t.actualRevision!==void 0?{actualRevision:t.actualRevision}:{}})}function Tt(n,t,e){for(let o=0;o<n.results.length;o+=1){let r=n.results[o];if(r?.status!=="error")continue;let i=t[o]?.label;return ut(r.error,{...i===void 0?{}:{target:i},...e===void 0?{}:{expectedRevision:e},actualRevision:n.revision})}return new u({code:"GeneralException"})}function qt(n,t){if(t.results.length!==n.length)throw new u({code:"GeneralException"});for(let e=0;e<n.length;e+=1){let o=t.results[e],r=n[e];if(o.status!=="ok")throw new u({code:"GeneralException",target:r.label});r.settle(o.value);}}var mt=class{#t=[];get size(){return this.#t.length}get pending(){return this.#t}push(t){this.#t.push(t);}take(){let t=this.#t;return this.#t=[],t}clear(){this.#t=[];}};function Nt(n,t){if(Array.isArray(n)){for(let e of n)t(e);return}t(n);}var rt=class{#t;#e;constructor(t,e){this.#t=t,this.#e=e;}add(t){this.#t.assertUsable(),Nt(t,e=>{this.#o(e),this.#t.track(e);});}remove(t){this.#t.assertUsable(),Nt(t,e=>{this.#o(e),this.#t.untrack(e);});}#o(t){this.#e(t)||a({code:"InvalidObjectPath"});}};var it=class n{#t;#e=new mt;#o=new Set;#n=new Set;#i;#a;#r;#s=false;#d=null;constructor(t){this.#t=t,this.#i={host:t.host,capabilities:t.capabilities,...t.author===void 0?{}:{author:t.author},queue:this.#e,session:t.id,roots:()=>t.roots(),assertUsable:e=>{this.#t.assertLive(e),this.#s&&a({code:"InvalidRequestContext",...e===void 0?{}:{target:e}});},isFinished:()=>this.#s,readRevision:()=>this.#d,register:e=>{this.#o.add(e);},track:e=>{this.#n.add(e);},untrack:e=>{this.#n.delete(e);},isTracked:e=>this.#n.has(e),disown:e=>{this.#o.delete(e),this.#n.delete(e);}},this.#a=new rt(this.#i,e=>this.#o.has(e));}get document(){return this.#i.assertUsable("document"),this.#r??=this.#t.openDocument(this),this.#r}get capabilities(){return this.#t.capabilities}get trackedObjects(){return this.#a}async sync(){this.#i.assertUsable();let t=this.#e.take();if(t.length===0)return;let e=Et(t),r=e.hasWrite&&this.#d!==null?this.#d:void 0,i={operations:e.operations,...r===void 0?{}:{expectedRevision:r}},s=this.#t.host.execute(i);if(!s.ok)throw Tt(s,t,r);qt(t,s),(e.hasRead||e.hasWrite)&&(this.#d=s.revision);}get[D](){return this.#i}static begin(t){let e=new n(t);return {context:e,adopt(o){for(let r of o)e.#l(r);},finish(){e.#p();}}}#l(t){let e=t.context;if(e===this)return;let o=e[D];if(o.session!==this.#t.id)throw new u({code:"InvalidObjectPath"});if(!o.isFinished())throw new u({code:"ObjectInUse"});if(!o.isTracked(t))throw new u({code:"InvalidObjectPath"});let r=o.readRevision();o.disown(t),t[ct](this),this.#o.add(t),this.#n.add(t),r!==null&&this.#c(r);}#c(t){this.#d=this.#d===null?t:Math.min(this.#d,t);}#p(){if(!this.#s){this.#s=true,this.#e.clear();for(let t of this.#o)this.#n.has(t)||t[lt]();this.#o.clear();}}};function at(n,t,e){if(n.select.length===0)return t;for(let o of n.select)t.includes(o)||a({code:"InvalidArgument",target:`${e}.${o}`});return n.select}var M=class extends w{#t;#e=[];constructor(t,e){super(t,e);}get items(){return this.loadedProperty("items")}fill(t,e){this.setLoadedProperty("items",this.#n(t,e,0,void 0)),this.#t={value:t,label:e};let o=this.#e.splice(0,this.#e.length);for(let r of o)this.#o(r,t);}onLoad(t){at(t,["items"],this.path.label);let e=this.listing();if(!e)return;let o=`${this.path.label}.items`,r=t.skip??0,i=t.top;this.enqueue({sort:"read",label:o,plan:()=>e,settle:s=>{this.setLoadedProperty("items",this.#n(s,o,r,i));}});}edge(t,e,o){let r=`${this.path.label}.${e}()`,i=this.promised(r,o),s=this.listing();if(!s){let d={edge:t,target:r,nullable:o,item:i};return this.#t?this.#o(d,this.#t.value):this.#e.push(d),i}return this.enqueue({sort:"read",label:r,plan:()=>s,settle:d=>{this.#o({edge:t,target:r,nullable:o,item:i},d);}}),i}#o(t,e){let{edge:o,target:r,nullable:i,item:s}=t,d=this.size(e,r);if(d===0){i||a({code:"ItemNotFound",target:r}),s.hydrateNull();return}let c=this.addressAt(e,r,o==="first"?0:d-1);c||a({code:"ItemNotFound",target:r}),s.hydrateAddress(c);}#n(t,e,o,r){let i=this.size(t,e),s=r===void 0?i:Math.min(i,o+r),d=[];for(let c=o;c<s;c+=1){let b=this.addressAt(t,e,c);b&&d.push(this.itemAt(`${e}[${String(c)}]`,b));}return d}},y=class extends M{size(t,e){return P(t,e).length}addressAt(t,e,o){let r=P(t,e)[o];return r?{kind:"handle",handle:r}:void 0}};var ie=["Replace","Start","End"],ae=["Start","End"],se=["Replace","Start","End"],de=["Before","After"],le=["Replace","Start","End","Before","After"],ce=["Select","Start","End"];function V(n,t,e){return (typeof n!="string"||!t.includes(n))&&a({code:"InvalidArgument",target:e}),n}var Dt=(n,t)=>V(n,ie,t),$t=(n,t)=>V(n,ae,t),Ft=(n,t)=>V(n,se,t),Ht=(n,t)=>V(n,de,t),Pt=(n,t)=>V(n,le,t),gt=(n,t)=>n===void 0?"Select":V(n,ce,t);function C(n,t){return typeof n!="string"&&a({code:"InvalidArgument",target:t}),/[\r\n\v\f\u2028\u2029]/.test(n)&&a({code:"InvalidArgument",target:t}),n}var p=class extends w{loadTextInto(t,e){let o=`${this.path.label}.${t}`;this.enqueue({sort:"read",label:o,plan:e,settle:r=>{this.setLoadedProperty(t,x(r,o));}});}command(t,e){let o=`${this.path.label}.${t}`;this.enqueue({sort:"write",label:o,plan:e,settle:r=>A(r,o)});}commandDiscarding(t,e){let o=`${this.path.label}.${t}`;this.enqueue({sort:"write",label:o,plan:e,settle:()=>{}});}commandAnswering(t,e,o){this.enqueue({sort:"write",label:t,plan:e,settle:o});}read(t,e,o){this.enqueue({sort:"read",label:t,plan:e,settle:o});}selection(t,e){return at(t,e,this.path.label)}onLoad(t){this.selection(t,[]);}};var pe=8,L=class n extends p{#t;static at(t,e,o){return o.kind!=="handle"&&a({code:"InvalidObjectPath",target:e}),new n(t,l.of(e,o.handle),false)}static promised(t,e,o){return new n(t,l.pending(e),o)}constructor(t,e,o){super(t,e,{nullable:o});}hydrateAddress(t){t.kind==="handle"?this.path.resolveTo(t.handle):this.path.resolveNull();}hydrateNull(){this.path.resolveNull();}get id(){return this.loadedProperty("id")}get paragraphs(){return this.#t??=v.overListing(this.context,`${this.path.label}.paragraphs`,this.path,()=>({op:"getListParagraphs",list:this.#e()})),this.#t}getLevelParagraphs(t){let e=`${this.path.label}.getLevelParagraphs`,o=Bt(t,e),r=this.#e();return v.overListing(this.context,e,this.path,()=>({op:"getListParagraphs",list:r,level:o}))}insertParagraph(t,e){let o=`${this.path.label}.insertParagraph`,r=C(t,o);e!=="Start"&&e!=="End"&&e!=="Before"&&e!=="After"&&a({code:"InvalidArgument",target:o});let i=this.#e(),s=R.promised(this.context,o,false);return this.commandAnswering(o,()=>({op:"insertListParagraph",list:i,where:e==="Start"||e==="Before"?"start":"end",text:r}),d=>{s.hydrateAddress({kind:"handle",handle:g(d,o)});}),s}onLoad(t){if(!this.selection(t,["id"]).includes("id"))return;let e=`${this.path.label}.id`,o=this.#e();this.read(e,()=>({op:"getListId",list:o}),r=>{this.setLoadedProperty("id",ht(r,e));});}#e(){return this.requireAddressable(),this.path.handle()}},W=class n extends y{#t;static of(t,e,o,r){return new n(t,l.derived(e,o),r)}constructor(t,e,o){super(t,e),this.#t=o;}getFirst(){return this.edge("first","getFirst",false)}getById(t){let e=`${this.path.label}.getById`,o=he(t,e),r=this.#t,i=L.promised(this.context,e,false);return this.enqueue({sort:"read",label:e,plan:()=>({op:"getListById",body:r,id:o}),settle:s=>{i.hydrateAddress({kind:"handle",handle:g(s,e)});}}),i}listing(){return {op:"getLists",body:this.#t}}itemAt(t,e){return L.at(this.context,t,e)}promised(t,e){return L.promised(this.context,t,e)}},U=class n extends p{static of(t,e,o){return new n(t,l.derived(e,o))}constructor(t,e){super(t,e);}get level(){return this.loadedProperty("level")}set level(t){let e=`${this.path.label}.level`,o=Bt(t,e),r=this.#t();this.commandAnswering(e,()=>({op:"setListLevel",paragraph:r,level:o}),i=>{A(i,e);});}onLoad(t){if(!this.selection(t,["level"]).includes("level"))return;let e=`${this.path.label}.level`,o=this.#t();this.read(e,()=>({op:"getListLevel",paragraph:o}),r=>{this.setLoadedProperty("level",ht(r,e));});}#t(){this.requireAddressable();let t=this.path.address();return t.kind!=="handle"&&a({code:"InvalidObjectPath",target:this.path.label}),t.handle}};function Bt(n,t){return (!Number.isInteger(n)||n<0||n>pe)&&a({code:"InvalidArgument",target:t}),n}function he(n,t){return (!Number.isInteger(n)||n<=0)&&a({code:"InvalidArgument",target:t}),n}function E(n,t){let e=n.address();return t==="span"?(e.kind!=="span"&&a({code:"InvalidObjectPath",target:n.label}),{start:e.span.start,end:e.span.end}):(e.kind!=="handle"&&a({code:"InvalidObjectPath",target:n.label}),t==="body"?{body:e.handle}:{paragraph:e.handle})}function z(n,t){return (typeof n!="string"||n.trim().length===0||n.length>255)&&a({code:"InvalidArgument",target:t}),n}var ue=["bold","italic","color","name","size"],S=class n extends p{#t;#e;static of(t,e,o,r){return new n(t,l.derived(e,o),r)}constructor(t,e,o){super(t,e),this.#t=o;}get bold(){return this.loadedProperty("bold")}set bold(t){this.#o("bold",Mt(t,`${this.path.label}.bold`));}get italic(){return this.loadedProperty("italic")}set italic(t){this.#o("italic",Mt(t,`${this.path.label}.italic`));}get color(){return this.loadedProperty("color")}set color(t){this.#o("color",Vt(t,`${this.path.label}.color`));}get name(){return this.loadedProperty("name")}set name(t){this.#o("name",Vt(t,`${this.path.label}.name`));}get size(){return this.loadedProperty("size")}set size(t){this.#o("size",me(t,`${this.path.label}.size`));}onLoad(t){let e=this.selection(t,ue);if(e.length===0)return;let o=`${this.path.label}.font`;this.read(o,()=>({op:"getFont",span:this.#n()}),r=>{let i=vt(r,o);for(let s of e)this.setLoadedProperty(s,i[s]);});}#o(t,e){if(this.requireAddressable(),this.#e){this.#e[t]=e;return}let o={[t]:e};this.#e=o;let r=`${this.path.label}.${t}`;this.commandAnswering(this.path.label,()=>(this.#e=void 0,{op:"setFont",span:this.#n(),font:o}),i=>{A(i,r);});}#n(){return this.requireAddressable(),E(this.path,this.#t)}};function Mt(n,t){return typeof n!="boolean"&&a({code:"InvalidArgument",target:t}),n}function me(n,t){return (typeof n!="number"||!Number.isFinite(n))&&a({code:"InvalidArgument",target:t}),n}function Vt(n,t){return (typeof n!="string"||n.length===0)&&a({code:"InvalidArgument",target:t}),n}var G=class n extends p{#t;static at(t,e,o){return o.kind!=="handle"&&a({code:"InvalidObjectPath",target:e}),new n(t,l.of(e,o.handle),false)}static promised(t,e,o){return new n(t,l.pending(e),o)}constructor(t,e,o){super(t,e,{nullable:o});}hydrateAddress(t){t.kind==="handle"?this.path.resolveTo(t.handle):this.path.resolveNull();}hydrateNull(){this.path.resolveNull();}get name(){return this.loadedProperty("name")}get range(){return this.#t??=this.#e(`${this.path.label}.range`),this.#t}select(t){let e=`${this.path.label}.select`,o=gt(t,e);this.requireAddressable(),this.internals.capabilities.selection||a({code:"NotSupported",target:e});let r=this.#o(),i=h.promised(this.context,e,false);this.read(`${e}.range`,()=>({op:"getBookmarkRange",bookmark:r}),s=>{i.hydrateAddress({kind:"span",span:f(s,e)});}),i.select(o);}onLoad(t){if(!this.selection(t,["name"]).includes("name"))return;let e=`${this.path.label}.name`,o=this.#o();this.read(e,()=>({op:"getBookmarkName",bookmark:o}),r=>{this.setLoadedProperty("name",x(r,e));});}#e(t){let e=this.#o(),o=h.promised(this.context,t,false);return this.read(t,()=>({op:"getBookmarkRange",bookmark:e}),r=>{o.hydrateAddress({kind:"span",span:f(r,t)});}),o}#o(){return this.requireAddressable(),this.path.handle()}},Q=class n extends y{#t;static of(t,e,o,r){return new n(t,l.derived(e,o),r)}constructor(t,e,o){super(t,e),this.#t=o;}listing(){return this.#t()}itemAt(t,e){return G.at(this.context,t,e)}promised(t,e){return G.promised(this.context,t,e)}};var ge=new Set(["matchCase","matchWholeWord","ignorePunct","ignoreSpace","matchWildcards"]);function ft(n,t){if(n===void 0)return;typeof n!="object"&&a({code:"InvalidArgument",target:t});for(let[o,r]of Object.entries(n))ge.has(o)||a({code:"InvalidArgument",target:`${t}.${o}`}),r!==void 0&&typeof r!="boolean"&&a({code:"InvalidArgument",target:`${t}.${o}`});let e={...n.matchCase===void 0?{}:{matchCase:n.matchCase},...n.matchWholeWord===void 0?{}:{matchWholeWord:n.matchWholeWord},...n.ignorePunct===void 0?{}:{ignorePunct:n.ignorePunct},...n.ignoreSpace===void 0?{}:{ignoreSpace:n.ignoreSpace},...n.matchWildcards===void 0?{}:{matchWildcards:n.matchWildcards}};return Object.keys(e).length===0?void 0:e}var h=class n extends p{#t;#e;#o;static at(t,e,o){return o.kind!=="span"&&a({code:"InvalidObjectPath",target:e}),new n(t,l.ofSpan(e,o.span),false)}static promised(t,e,o){return new n(t,l.pending(e),o)}constructor(t,e,o){super(t,e,{nullable:o});}hydrateAddress(t){t.kind==="span"?this.path.resolveToSpan(t.span):this.path.resolveNull();}hydrateNull(){this.path.resolveNull();}get text(){return this.loadedProperty("text")}get font(){return this.#e??=S.of(this.context,`${this.path.label}.font`,this.path,"span"),this.#e}get paragraphs(){return this.#t??=v.of(this.context,`${this.path.label}.paragraphs`,this.path),this.#t}get style(){return this.loadedProperty("style")}set style(t){let e=`${this.path.label}.style`,o=z(t,e);this.requireAddressable(),this.command("style",()=>({op:"setStyle",span:E(this.path,"span"),name:o}));}get hyperlink(){return this.loadedProperty("hyperlink")}set hyperlink(t){let e=`${this.path.label}.hyperlink`;(typeof t!="string"||t.length>2048)&&a({code:"InvalidArgument",target:e});let o=this.#n();this.command("hyperlink",()=>({op:"setHyperlink",span:o,target:t}));}get bookmarks(){let t=this.#n();return this.#o??=Q.of(this.context,`${this.path.label}.bookmarks`,this.path,()=>({op:"getBookmarks",scope:{start:t.start,end:t.end}})),this.#o}search(t,e){let o=`${this.path.label}.search`;typeof t!="string"&&a({code:"InvalidArgument",target:o});let r=ft(e,o),i=this.#n();return k.of(this.context,o,this.path,()=>({op:"search",scope:i,text:t,...r===void 0?{}:{options:r}}))}insertText(t,e){let o=`${this.path.label}.insertText`,r=C(t,o),i=Pt(e,o),s=this.#n(),d=n.promised(this.context,o,false);return this.commandAnswering(o,()=>i==="Replace"?{op:"replaceSpan",span:s,text:r}:{op:"insertText",at:i==="Start"||i==="Before"?s.start:s.end,text:r},c=>{d.hydrateAddress({kind:"span",span:f(c,o)});}),d}insertParagraph(t,e){let o=`${this.path.label}.insertParagraph`,r=C(t,o),i=Pt(e,o);i!=="Before"&&i!=="After"&&a({code:"InvalidArgument",target:o});let s=this.#n(),d=i==="Before"?s.start.paragraph:s.end.paragraph,c=R.promised(this.context,o,false);return this.commandAnswering(o,()=>({op:"insertParagraph",anchor:{paragraph:d},where:i==="Before"?"before":"after",text:r}),b=>{b.kind!=="handle"&&a({code:"GeneralException",target:o}),c.hydrateAddress({kind:"handle",handle:b.handle});}),c}select(t){let e=`${this.path.label}.select`,o=gt(t,e);this.requireAddressable(),this.internals.capabilities.selection||a({code:"NotSupported",target:e});let r=this.#n();this.command("select",()=>({op:"selectSpan",span:r,mode:o==="Select"?"select":o==="Start"?"start":"end"}));}onLoad(t){let e=this.selection(t,["text","style","hyperlink"]);if(e.includes("hyperlink")){let r=this.#n();this.loadTextInto("hyperlink",()=>({op:"getHyperlink",span:r}));}if(e.includes("text")){let r=this.#n(),i=`${this.path.label}.text`;this.read(i,()=>({op:"getSpanText",span:r}),s=>{this.setLoadedProperty("text",x(s,i));});}if(!e.includes("style"))return;let o=`${this.path.label}.style`;this.requireAddressable(),this.read(o,()=>({op:"getStyle",span:E(this.path,"span")}),r=>{this.setLoadedProperty("style",nt(r,o));});}#n(){return this.requireAddressable(),this.path.span()}};var fe=16,R=class n extends p{#t;#e;#o;#n;static at(t,e,o){return o.kind!=="handle"&&a({code:"InvalidObjectPath",target:e}),new n(t,l.of(e,o.handle),false)}static promised(t,e,o){return new n(t,l.pending(e),o)}constructor(t,e,o){super(t,e,{nullable:o});}hydrateAddress(t){t.kind==="handle"?this.path.resolveTo(t.handle):this.path.resolveNull();}hydrateNull(){this.path.resolveNull();}get text(){return this.loadedProperty("text")}get uniqueLocalId(){return this.loadedProperty("uniqueLocalId")}get style(){return this.loadedProperty("style")}set style(t){this.#i("style",z(t,`${this.path.label}.style`));}get font(){return this.#t??=S.of(this.context,`${this.path.label}.font`,this.path,"paragraph"),this.#t}get alignment(){return this.loadedProperty("alignment")}set alignment(t){this.#i("alignment",be(t,`${this.path.label}.alignment`));}get firstLineIndent(){return this.loadedProperty("firstLineIndent")}set firstLineIndent(t){this.#i("firstLineIndent",X(t,`${this.path.label}.firstLineIndent`));}get leftIndent(){return this.loadedProperty("leftIndent")}set leftIndent(t){this.#i("leftIndent",X(t,`${this.path.label}.leftIndent`));}get rightIndent(){return this.loadedProperty("rightIndent")}set rightIndent(t){this.#i("rightIndent",X(t,`${this.path.label}.rightIndent`));}get lineSpacing(){return this.loadedProperty("lineSpacing")}set lineSpacing(t){this.#i("lineSpacing",X(t,`${this.path.label}.lineSpacing`));}get spaceBefore(){return this.loadedProperty("spaceBefore")}set spaceBefore(t){this.#i("spaceBefore",X(t,`${this.path.label}.spaceBefore`));}get spaceAfter(){return this.loadedProperty("spaceAfter")}set spaceAfter(t){this.#i("spaceAfter",X(t,`${this.path.label}.spaceAfter`));}get list(){return this.#e??=this.#a(`${this.path.label}.list`),this.#e}get listItem(){return this.#o??=U.of(this.context,`${this.path.label}.listItem`,this.path),this.#o}clear(){let t=this.#r();this.commandDiscarding("clear",()=>({op:"replaceSpan",span:{paragraph:t},text:""}));}delete(){let t=this.#r();this.command("delete",()=>({op:"deleteParagraph",paragraph:t}));}insertText(t,e){let o=`${this.path.label}.insertText`,r=C(t,o),i=Ft(e,o),s=this.#r(),d=h.promised(this.context,o,false);return this.commandAnswering(o,()=>i==="Replace"?{op:"replaceSpan",span:{paragraph:s},text:r}:{op:"insertText",at:{paragraph:s,at:i==="Start"?"start":"end"},text:r},c=>{d.hydrateAddress({kind:"span",span:f(c,o)});}),d}insertParagraph(t,e){let o=`${this.path.label}.insertParagraph`,r=C(t,o),i=Ht(e,o),s=this.#r(),d=n.promised(this.context,o,false);return this.commandAnswering(o,()=>({op:"insertParagraph",anchor:{paragraph:s},where:i==="Before"?"before":"after",text:r}),c=>{c.kind!=="handle"&&a({code:"GeneralException",target:o}),d.hydrateAddress({kind:"handle",handle:c.handle});}),d}split(t,e,o){let r=`${this.path.label}.split`,i=xe(t,r),s=Ut(e,`${r}.trimDelimiters`),d=Ut(o,`${r}.trimSpacing`),c=this.#r(),b=k.answered(this.context,r,this.path);return this.commandAnswering(r,()=>({op:"splitParagraph",paragraph:c,delimiters:i,...s?{trimDelimiters:true}:{},...d?{trimSpacing:true}:{}}),N=>{b.fill(N,r);}),b}onLoad(t){let e=this.selection(t,["text","uniqueLocalId",...Wt]),o=this.#r();e.includes("text")&&this.loadTextInto("text",()=>({op:"getText",target:o})),e.includes("uniqueLocalId")&&this.loadTextInto("uniqueLocalId",()=>({op:"getParagraphId",paragraph:o}));let r=Wt.filter(s=>e.includes(s));if(r.length===0)return;let i=`${this.path.label}.paragraphFormat`;this.read(i,()=>({op:"getParagraphFormat",paragraph:{paragraph:o}}),s=>{let d=Rt(s,i);for(let c of r)this.setLoadedProperty(c,d[c]);});}#i(t,e){if(this.requireAddressable(),this.#n){this.#n[t]=e;return}let o={[t]:e};this.#n=o;let r=this.#r(),i=`${this.path.label}.${t}`;this.commandAnswering(`${this.path.label}.paragraphFormat`,()=>(this.#n=void 0,{op:"setParagraphFormat",paragraph:{paragraph:r},format:o}),s=>{A(s,i);});}#a(t){let e=this.#r(),o=L.promised(this.context,t,false);return this.read(t,()=>({op:"getParagraphList",paragraph:e}),r=>{o.hydrateAddress({kind:"handle",handle:g(r,t)});}),o}#r(){return this.requireAddressable(),this.path.handle()}},Wt=["style","alignment","firstLineIndent","leftIndent","rightIndent","lineSpacing","spaceBefore","spaceAfter"],ye=["Left","Centered","Right","Justified"];function be(n,t){return ye.includes(n)||a({code:"InvalidArgument",target:t}),n}function X(n,t){return (typeof n!="number"||!Number.isFinite(n))&&a({code:"InvalidArgument",target:t}),n}function xe(n,t){(!Array.isArray(n)||n.length===0||n.length>fe)&&a({code:"InvalidArgument",target:t});for(let e of n)(typeof e!="string"||e.length===0)&&a({code:"InvalidArgument",target:t});return [...n]}function Ut(n,t){return n!==void 0&&typeof n!="boolean"&&a({code:"InvalidArgument",target:t}),n===true}var v=class n extends M{#t;static of(t,e,o){return new n(t,l.derived(e,o),null)}static overListing(t,e,o,r){return new n(t,l.derived(e,o),r)}constructor(t,e,o){super(t,e),this.#t=o;}getFirst(){return this.edge("first","getFirst",false)}getLast(){return this.edge("last","getLast",false)}getFirstOrNullObject(){return this.edge("first","getFirstOrNullObject",true)}getLastOrNullObject(){return this.edge("last","getLastOrNullObject",true)}listing(){if(this.#t)return this.#t();let t=this.path.address();return t.kind==="handle"?{op:"getParagraphs",body:t.handle}:{op:"getSpanParagraphs",span:t.span}}size(t,e){return P(t,e).length}addressAt(t,e,o){let r=P(t,e)[o];return r?{kind:"handle",handle:r}:void 0}itemAt(t,e){return R.at(this.context,t,e)}promised(t,e){return R.promised(this.context,t,e)}},k=class n extends M{#t;static of(t,e,o,r){return new n(t,l.derived(e,o),r)}static answered(t,e,o){return new n(t,l.derived(e,o),null)}constructor(t,e,o){super(t,e),this.#t=o;}getFirst(){return this.edge("first","getFirst",false)}getLast(){return this.edge("last","getLast",false)}getFirstOrNullObject(){return this.edge("first","getFirstOrNullObject",true)}listing(){return this.#t?this.#t():null}size(t,e){return pt(t,e).length}addressAt(t,e,o){let r=pt(t,e)[o];return r?{kind:"span",span:r}:void 0}itemAt(t,e){return h.at(this.context,t,e)}promised(t,e){return h.promised(this.context,t,e)}};var Gt=4096,$=class n extends p{#t=new Map;#e;#o;static at(t,e,o){return o.kind!=="handle"&&a({code:"InvalidObjectPath",target:e}),new n(t,l.of(e,o.handle),false)}static promised(t,e,o){return new n(t,l.pending(e),o)}constructor(t,e,o){super(t,e,{nullable:o});}hydrateAddress(t){t.kind==="handle"?this.path.resolveTo(t.handle):this.path.resolveNull();}hydrateNull(){this.path.resolveNull();}get id(){return this.loadedProperty("id")}get tag(){return this.loadedProperty("tag")}set tag(t){this.#i("tag",{tag:It(t,`${this.path.label}.tag`)});}get title(){return this.loadedProperty("title")}set title(t){this.#i("title",{title:It(t,`${this.path.label}.title`)});}get subtype(){return this.loadedProperty("subtype")}get cannotDelete(){let t=this.loadedProperty("lock");return t==="sdtLocked"||t==="sdtContentLocked"}set cannotDelete(t){this.#a(t,this.cannotEdit,`${this.path.label}.cannotDelete`);}get cannotEdit(){let t=this.loadedProperty("lock");return t==="contentLocked"||t==="sdtContentLocked"}set cannotEdit(t){this.#a(this.cannotDelete,t,`${this.path.label}.cannotEdit`);}get placeholderShown(){return this.loadedProperty("placeholderShown")}get temporary(){return this.loadedProperty("temporary")}get text(){return this.loadedProperty("text")}get paragraphs(){return this.#e??=v.overListing(this.context,`${this.path.label}.paragraphs`,this.path,()=>({op:"getContentControlParagraphs",contentControl:this.#r()})),this.#e}get contentControls(){return this.#o??=j.of(this.context,`${this.path.label}.contentControls`,this.path,{contentControl:this.#r()}),this.#o}getRange(t){let e=`${this.path.label}.getRange`,o=Ae(t??"Whole",e),r=this.#t.get(o);if(r)return r;let i=this.#n(e,o);return this.#t.set(o,i),i}setValue(t){let e=`${this.path.label}.setValue`,o=Ce(t,e),r=this.#r();this.command("setValue",()=>({op:"setContentControlValue",contentControl:r,value:o}));}insertText(t,e){let o=`${this.path.label}.insertText`,r=C(t,o),i=e==="Replace"?"replace":e==="Start"?"start":e==="End"?"end":a({code:"InvalidArgument",target:o}),s=this.#r(),d=h.promised(this.context,o,false);return this.commandAnswering(o,()=>({op:"insertContentControlText",contentControl:s,text:r,at:i}),c=>{d.hydrateAddress({kind:"span",span:f(c,o)});}),d}delete(t){let e=`${this.path.label}.delete`;typeof t!="boolean"&&a({code:"InvalidArgument",target:e});let o=this.#r();this.command("delete",()=>({op:"deleteContentControl",contentControl:o,keepContent:t}));}onLoad(t){let e=this.selection(t,["id","tag","title","subtype","text","cannotDelete","cannotEdit","placeholderShown","temporary"]),o=this.#r();if(e.includes("id")&&this.loadTextInto("id",()=>({op:"getContentControlFileId",contentControl:o})),e.includes("tag")&&this.loadTextInto("tag",()=>({op:"getContentControlTag",contentControl:o})),e.includes("title")&&this.loadTextInto("title",()=>({op:"getContentControlTitle",contentControl:o})),e.includes("subtype")&&this.loadTextInto("subtype",()=>({op:"getContentControlSubtype",contentControl:o})),e.includes("text")&&this.loadTextInto("text",()=>({op:"getContentControlText",contentControl:o})),e.includes("cannotDelete")||e.includes("cannotEdit")){let i=`${this.path.label}.lock`;this.read(i,()=>({op:"getContentControlLock",contentControl:o}),s=>{this.setLoadedProperty("lock",x(s,i));});}if(e.includes("placeholderShown")){let i=`${this.path.label}.placeholderShown`;this.read(i,()=>({op:"getContentControlPlaceholderShown",contentControl:o}),s=>{this.setLoadedProperty("placeholderShown",B(s,i));});}if(!e.includes("temporary"))return;let r=`${this.path.label}.temporary`;this.read(r,()=>({op:"getContentControlTemporary",contentControl:o}),i=>{this.setLoadedProperty("temporary",B(i,r));});}#n(t,e){let o=this.#r(),r=h.promised(this.context,t,false);return this.read(t,()=>({op:"getContentControlRange",contentControl:o,location:e}),i=>{r.hydrateAddress({kind:"span",span:f(i,t)});}),r}#i(t,e){let o=this.#r();this.command(t,()=>({op:"setContentControlProperties",contentControl:o,...e}));}#a(t,e,o){(typeof t!="boolean"||typeof e!="boolean")&&a({code:"InvalidArgument",target:o});let r=t&&e?"sdtContentLocked":t?"sdtLocked":e?"contentLocked":"unlocked",i=this.#r();this.command(o,()=>({op:"setContentControlProperties",contentControl:i,lock:r}));}#r(){return this.requireAddressable(),this.path.handle()}},j=class n extends y{#t;#e;static of(t,e,o,r){return new n(t,l.derived(e,o),r,()=>({op:"getContentControls",scope:r}))}constructor(t,e,o,r){super(t,e),this.#t=o,this.#e=r;}getFirst(){return this.edge("first","getFirst",false)}getFirstOrNullObject(){return this.edge("first","getFirstOrNullObject",true)}getById(t){let e=`${this.path.label}.getById`;Number.isInteger(t)||a({code:"InvalidArgument",target:e});let o=this.#t,r=$.promised(this.context,e,false);return this.enqueue({sort:"read",label:e,plan:()=>({op:"getContentControlById",scope:o,id:t}),settle:i=>{r.hydrateAddress({kind:"handle",handle:g(i,e)});}}),r}getByTag(t){let e=`${this.path.label}.getByTag`,o=zt(t,e),r=this.#t;return new n(this.context,l.derived(e,this.path),r,()=>({op:"getContentControlsByTag",scope:r,tag:o}))}getByTitle(t){let e=`${this.path.label}.getByTitle`,o=zt(t,e),r=this.#t;return new n(this.context,l.derived(e,this.path),r,()=>({op:"getContentControlsByTitle",scope:r,title:o}))}listing(){return this.#e()}itemAt(t,e){return $.at(this.context,t,e)}promised(t,e){return $.promised(this.context,t,e)}};function It(n,t){return (typeof n!="string"||n.length>Gt)&&a({code:"InvalidArgument",target:t}),n}function zt(n,t){let e=It(n,t);return e.length===0&&a({code:"InvalidArgument",target:t}),e}function Ae(n,t){switch(n){case "Whole":return "whole";case "Content":return "content";case "Start":return "start";case "End":return "end";case "Before":return "before";case "After":return "after";default:return a({code:"InvalidArgument",target:t})}}function Ce(n,t){(typeof n!="object"||n===null)&&a({code:"InvalidArgument",target:t});let e=n;if(e.kind==="text"||e.kind==="listItem"){let o=e.kind==="text"?e.text:e.value;return (typeof o!="string"||o.length>Gt)&&a({code:"InvalidArgument",target:t}),e.kind==="text"?{kind:"text",text:o}:{kind:"listItem",value:o}}if(e.kind==="checkbox")return typeof e.checked!="boolean"&&a({code:"InvalidArgument",target:t}),{kind:"checkbox",checked:e.checked};if(e.kind==="date")return (typeof e.iso!="string"||e.iso.length>64)&&a({code:"InvalidArgument",target:t}),{kind:"date",iso:e.iso};a({code:"InvalidArgument",target:t});}function Qt(n){if(n.length===0)return null;let t=new Date(n);return Number.isNaN(t.getTime())?null:t}var yt=class extends p{hydrateAddress(t){t.kind==="handle"?this.path.resolveTo(t.handle):this.path.resolveNull();}hydrateNull(){this.path.resolveNull();}get authorName(){return this.loadedProperty("authorName")}get creationDate(){return this.loadedProperty("creationDate")}get id(){return this.loadedProperty("id")}get text(){return this.loadedProperty("text")}loadCommentFields(t,e){let o=this.selection(t,["authorName","creationDate","id","text",...e]),r=this.commentHandle();if(o.includes("authorName")&&this.loadTextInto("authorName",()=>({op:"getCommentAuthor",comment:r})),o.includes("text")&&this.loadTextInto("text",()=>({op:"getCommentText",comment:r})),o.includes("id")&&this.loadTextInto("id",()=>({op:"getCommentId",comment:r})),o.includes("creationDate")){let s=`${this.path.label}.creationDate`;this.read(s,()=>({op:"getCommentDate",comment:r}),d=>{this.setLoadedProperty("creationDate",Qt(x(d,s)));});}if(!o.includes("resolved"))return;let i=`${this.path.label}.resolved`;this.read(i,()=>({op:"getCommentResolved",comment:r}),s=>{this.setLoadedProperty("resolved",B(s,i));});}commentHandle(){return this.requireAddressable(),this.path.handle()}},F=class n extends yt{static at(t,e,o){return o.kind!=="handle"&&a({code:"InvalidObjectPath",target:e}),new n(t,l.of(e,o.handle),false)}static promised(t,e,o){return new n(t,l.pending(e),o)}constructor(t,e,o){super(t,e,{nullable:o});}onLoad(t){this.loadCommentFields(t,[]);}},st=class n extends y{#t;static of(t,e,o,r){return new n(t,l.derived(e,o),r)}constructor(t,e,o){super(t,e),this.#t=o;}getFirst(){return this.edge("first","getFirst",false)}listing(){return this.#t()}itemAt(t,e){return F.at(this.context,t,e)}promised(t,e){return F.promised(this.context,t,e)}},K=class n extends yt{#t;static at(t,e,o){return o.kind!=="handle"&&a({code:"InvalidObjectPath",target:e}),new n(t,l.of(e,o.handle),false)}static promised(t,e,o){return new n(t,l.pending(e),o)}constructor(t,e,o){super(t,e,{nullable:o});}get resolved(){return this.loadedProperty("resolved")}set resolved(t){let e=`${this.path.label}.resolved`;typeof t!="boolean"&&a({code:"InvalidArgument",target:e});let o=this.commentHandle();this.commandAnswering(e,()=>({op:"setCommentResolved",comment:o,resolved:t}),r=>{A(r,e);});}get replies(){return this.#t??=st.of(this.context,`${this.path.label}.replies`,this.path,()=>({op:"getCommentReplies",comment:this.commentHandle()})),this.#t}getRange(){let t=`${this.path.label}.getRange`,e=this.commentHandle(),o=h.promised(this.context,t,false);return this.read(t,()=>({op:"getCommentRange",comment:e}),r=>{o.hydrateAddress({kind:"span",span:f(r,t)});}),o}reply(t){let e=`${this.path.label}.reply`;(typeof t!="string"||t.length===0)&&a({code:"InvalidArgument",target:e});let o=this.internals.author;(typeof o!="string"||o.trim().length===0)&&a({code:"NotSupported",target:e});let r=this.commentHandle(),i=F.promised(this.context,e,false);return this.commandAnswering(e,()=>({op:"replyToComment",comment:r,text:t,author:o}),s=>{i.hydrateAddress({kind:"handle",handle:g(s,e)});}),i}onLoad(t){this.loadCommentFields(t,["resolved"]);}},T=class n extends y{#t;static of(t,e,o,r){return new n(t,l.derived(e,o),r)}constructor(t,e,o){super(t,e),this.#t=o;}getFirst(){return this.edge("first","getFirst",false)}listing(){return this.#t()}itemAt(t,e){return K.at(this.context,t,e)}promised(t,e){return K.promised(this.context,t,e)}},Y=class n extends p{static at(t,e,o){return o.kind!=="handle"&&a({code:"InvalidObjectPath",target:e}),new n(t,l.of(e,o.handle),false)}static promised(t,e,o){return new n(t,l.pending(e),o)}constructor(t,e,o){super(t,e,{nullable:o});}hydrateAddress(t){t.kind==="handle"?this.path.resolveTo(t.handle):this.path.resolveNull();}hydrateNull(){this.path.resolveNull();}get author(){return this.loadedProperty("author")}get date(){return this.loadedProperty("date")}get type(){return this.loadedProperty("type")}get range(){let t=`${this.path.label}.range`,e=this.#t(),o=h.promised(this.context,t,false);return this.read(t,()=>({op:"getRevisionRange",revision:e}),r=>{o.hydrateAddress({kind:"span",span:f(r,t)});}),o}accept(){let t=this.#t();this.command("accept",()=>({op:"acceptRevision",revision:t}));}reject(){let t=this.#t();this.command("reject",()=>({op:"rejectRevision",revision:t}));}onLoad(t){let e=this.selection(t,["author","date","type"]),o=this.#t();if(e.includes("author")&&this.loadTextInto("author",()=>({op:"getRevisionAuthor",revision:o})),e.includes("type")&&this.loadTextInto("type",()=>({op:"getRevisionType",revision:o})),!e.includes("date"))return;let r=`${this.path.label}.date`;this.read(r,()=>({op:"getRevisionDate",revision:o}),i=>{this.setLoadedProperty("date",Qt(x(i,r)));});}#t(){return this.requireAddressable(),this.path.handle()}},q=class n extends y{#t;#e;static of(t,e,o,r,i){return new n(t,l.derived(e,o),r,i)}constructor(t,e,o,r){super(t,e),this.#t=o,this.#e=r;}acceptAll(){let t=this.#e;this.commandOn("acceptAll",()=>({op:"acceptAllRevisions",document:t}));}rejectAll(){let t=this.#e;this.commandOn("rejectAll",()=>({op:"rejectAllRevisions",document:t}));}listing(){return {op:"getRevisions",body:this.#t}}itemAt(t,e){return Y.at(this.context,t,e)}promised(t,e){return Y.promised(this.context,t,e)}commandOn(t,e){let o=`${this.path.label}.${t}`;this.enqueue({sort:"write",label:o,plan:e,settle:r=>{A(r,o);}});}};var I=class n extends p{#t;#e;#o;#n;#i;static main(t,e){return new n(t,l.of(e,ot(t).roots().body))}static promisedStory(t,e){return new n(t,l.pending(e))}hydrateAddress(t){t.kind==="handle"?this.path.resolveTo(t.handle):this.path.resolveNull();}constructor(t,e){super(t,e);}get text(){return this.loadedProperty("text")}get paragraphs(){return this.#t??=this.paragraphsUnder(`${this.path.label}.paragraphs`),this.#t}get font(){return this.#e??=S.of(this.context,`${this.path.label}.font`,this.path,"body"),this.#e}paragraphsUnder(t){return v.of(this.context,t,this.path)}get style(){return this.loadedProperty("style")}set style(t){let e=`${this.path.label}.style`,o=z(t,e);this.requireAddressable(),this.command("style",()=>({op:"setStyle",span:E(this.path,"body"),name:o}));}get lists(){return this.#o??=W.of(this.context,`${this.path.label}.lists`,this.path,this.#r()),this.#o}get contentControls(){return this.#n??=j.of(this.context,`${this.path.label}.contentControls`,this.path,{body:this.#r()}),this.#n}getComments(){let t=`${this.path.label}.getComments`,e=this.#r();return T.of(this.context,t,this.path,()=>({op:"getComments",scope:{body:e}}))}get revisions(){return this.#i??=q.of(this.context,`${this.path.label}.revisions`,this.path,this.#r(),this.internals.roots().document),this.#i}search(t,e){let o=`${this.path.label}.search`;typeof t!="string"&&a({code:"InvalidArgument",target:o});let r=ft(e,o),i=this.#r();return k.of(this.context,o,this.path,()=>({op:"search",scope:{body:i},text:t,...r===void 0?{}:{options:r}}))}clear(){let t=this.#r();this.commandDiscarding("clear",()=>({op:"replaceSpan",span:{body:t},text:""}));}insertText(t,e){let o=`${this.path.label}.insertText`,r=C(t,o),i=Dt(e,o),s=this.#r(),d=h.promised(this.context,o,false);return this.commandAnswering(o,()=>i==="Replace"?{op:"replaceSpan",span:{body:s},text:r}:{op:"insertText",at:{body:s,at:i==="Start"?"start":"end"},text:r},c=>{d.hydrateAddress({kind:"span",span:f(c,o)});}),d}insertParagraph(t,e){let o=`${this.path.label}.insertParagraph`,r=C(t,o),i=$t(e,o),s=this.#r(),d=R.promised(this.context,o,false);return this.commandAnswering(o,()=>({op:"insertParagraph",anchor:{body:s,at:i==="Start"?"first":"last"},where:i==="Start"?"before":"after",text:r}),c=>{c.kind!=="handle"&&a({code:"GeneralException",target:o}),d.hydrateAddress({kind:"handle",handle:c.handle});}),d}onLoad(t){let e=this.selection(t,["text","style"]);if(e.includes("text")){let o=this.#r();this.loadTextInto("text",()=>({op:"getText",target:o}));}e.includes("style")&&this.#a();}#a(){let t=`${this.path.label}.style`;this.requireAddressable(),this.read(t,()=>({op:"getStyle",span:E(this.path,"body")}),e=>{this.setLoadedProperty("style",nt(e,t));});}#r(){return this.requireAddressable(),this.path.handle()}};function ve(n){return n==="endnote"?"Endnote":"Footnote"}var Z=class n extends p{#t;static at(t,e,o){return o.kind!=="handle"&&a({code:"InvalidObjectPath",target:e}),new n(t,l.of(e,o.handle),false)}static promised(t,e,o){return new n(t,l.pending(e),o)}constructor(t,e,o){super(t,e,{nullable:o});}hydrateAddress(t){t.kind==="handle"?this.path.resolveTo(t.handle):this.path.resolveNull();}hydrateNull(){this.path.resolveNull();}get type(){return this.loadedProperty("type")}get body(){if(this.#t)return this.#t;let t=`${this.path.label}.body`,e=this.#e(),o=I.promisedStory(this.context,t);return this.read(t,()=>({op:"getNoteBody",note:e}),r=>{o.hydrateAddress({kind:"handle",handle:g(r,t)});}),this.#t=o,o}delete(){let t=this.#e();this.command("delete",()=>({op:"deleteNote",note:t}));}getNext(){let t=`${this.path.label}.getNext`,e=this.#e(),o=n.promised(this.context,t,false),r=this.internals.roots().document,i=`${t}.type`,s="footnote";return this.read(i,()=>({op:"getNoteKind",note:e}),d=>{s=x(d,i)==="endnote"?"endnote":"footnote";}),this.read(t,()=>({op:"getNotes",document:r,noteKind:s}),d=>{let c=P(d,t),b=c.findIndex(St=>St.ref===e.ref),N=b<0?void 0:c[b+1];N||a({code:"ItemNotFound",target:t}),o.hydrateAddress({kind:"handle",handle:N});}),o}onLoad(t){if(!this.selection(t,["type"]).includes("type"))return;let e=`${this.path.label}.type`,o=this.#e();this.read(e,()=>({op:"getNoteKind",note:o}),r=>{this.setLoadedProperty("type",ve(x(r,e)));});}#e(){return this.requireAddressable(),this.path.handle()}},H=class n extends y{#t;static of(t,e,o,r){return new n(t,l.derived(e,o),r)}constructor(t,e,o){super(t,e),this.#t=o;}getFirst(){return this.edge("first","getFirst",false)}listing(){return this.#t()}itemAt(t,e){return Z.at(this.context,t,e)}promised(t,e){return Z.promised(this.context,t,e)}};var Re=Object.freeze({Primary:"default",FirstPage:"first",EvenPages:"even"}),Oe=["pageWidth","pageHeight","orientation","topMargin","rightMargin","bottomMargin","leftMargin"],dt=class n extends p{#t;static of(t,e,o){return new n(t,l.derived(e,o))}constructor(t,e){super(t,e);}get pageWidth(){return this.loadedProperty("pageWidth")}set pageWidth(t){this.#e("pageWidth",J(t,`${this.path.label}.pageWidth`));}get pageHeight(){return this.loadedProperty("pageHeight")}set pageHeight(t){this.#e("pageHeight",J(t,`${this.path.label}.pageHeight`));}get orientation(){return this.loadedProperty("orientation")}set orientation(t){let e=`${this.path.label}.orientation`;t!=="Portrait"&&t!=="Landscape"&&a({code:"InvalidArgument",target:e}),this.#e("orientation",t==="Portrait"?"portrait":"landscape");}get topMargin(){return this.loadedProperty("topMargin")}set topMargin(t){this.#e("topMargin",J(t,`${this.path.label}.topMargin`));}get bottomMargin(){return this.loadedProperty("bottomMargin")}set bottomMargin(t){this.#e("bottomMargin",J(t,`${this.path.label}.bottomMargin`));}get leftMargin(){return this.loadedProperty("leftMargin")}set leftMargin(t){this.#e("leftMargin",J(t,`${this.path.label}.leftMargin`));}get rightMargin(){return this.loadedProperty("rightMargin")}set rightMargin(t){this.#e("rightMargin",J(t,`${this.path.label}.rightMargin`));}onLoad(t){let e=this.selection(t,Oe);if(e.length===0)return;let o=`${this.path.label}.pageSetup`,r=this.#o();this.read(o,()=>({op:"getPageSetup",section:r}),i=>{let s=Ot(i,o);for(let d of e)this.setLoadedProperty(d,d==="orientation"?s.orientation==="landscape"?"Landscape":"Portrait":s[d]);});}#e(t,e){if(this.requireAddressable(),this.#t){this.#t[t]=e;return}let o={[t]:e};this.#t=o;let r=this.#o(),i=`${this.path.label}.${t}`;this.commandAnswering(`${this.path.label}.pageSetup`,()=>(this.#t=void 0,{op:"setPageSetup",section:r,setup:o}),s=>{A(s,i);});}#o(){this.requireAddressable();let t=this.path.address();return t.kind!=="handle"&&a({code:"InvalidObjectPath",target:this.path.label}),t.handle}},_=class n extends p{#t;#e;static at(t,e,o){return o.kind!=="handle"&&a({code:"InvalidObjectPath",target:e}),new n(t,l.of(e,o.handle),false)}static promised(t,e,o){return new n(t,l.pending(e),o)}constructor(t,e,o){super(t,e,{nullable:o});}hydrateAddress(t){t.kind==="handle"?this.path.resolveTo(t.handle):this.path.resolveNull();}hydrateNull(){this.path.resolveNull();}get body(){return this.#e??=I.main(this.context,`${this.path.label}.body`),this.#e}get pageSetup(){return this.#t??=dt.of(this.context,`${this.path.label}.pageSetup`,this.path),this.#t}getHeader(t){return this.#o("header",t,"getHeader")}getFooter(t){return this.#o("footer",t,"getFooter")}getNext(){let t=`${this.path.label}.getNext`,e=this.#n(),o=n.promised(this.context,t,false),r=this.internals.roots().document;return this.read(t,()=>({op:"getSections",document:r}),i=>{let s=P(i,t),d=s.findIndex(b=>b.ref===e.ref),c=d<0?void 0:s[d+1];c||a({code:"ItemNotFound",target:t}),o.hydrateAddress({kind:"handle",handle:c});}),o}onLoad(t){this.selection(t,[]);}#o(t,e,o){let r=`${this.path.label}.${o}`,i=Re[e];i===void 0&&a({code:"InvalidArgument",target:r});let s=this.#n(),d=I.promisedStory(this.context,r);return this.read(r,()=>({op:"getFurniture",section:s,kind:t,variant:i}),c=>{d.hydrateAddress({kind:"handle",handle:g(c,r)});}),d}#n(){return this.requireAddressable(),this.path.handle()}},tt=class n extends y{#t;static of(t,e,o,r){return new n(t,l.derived(e,o),r)}constructor(t,e,o){super(t,e),this.#t=o;}getFirst(){return this.edge("first","getFirst",false)}listing(){return this.#t()}itemAt(t,e){return _.at(this.context,t,e)}promised(t,e){return _.promised(this.context,t,e)}};function J(n,t){return (typeof n!="number"||!Number.isFinite(n)||n<0)&&a({code:"InvalidArgument",target:t}),n}var et=class n extends p{#t;#e;#o;#n;#i;#a;#r;#s;static open(t){return new n(t)}constructor(t){super(t,l.of("document",ot(t).roots().document));}get body(){return this.#t??=I.main(this.context,"document.body"),this.#t}get paragraphs(){return this.#e??=this.body.paragraphsUnder("document.paragraphs"),this.#e}get sections(){let t=this.path.handle();return this.#o??=tt.of(this.context,"document.sections",this.path,()=>({op:"getSections",document:t})),this.#o}get contentControls(){return this.#a??=j.of(this.context,"document.contentControls",this.path,{body:this.internals.roots().body}),this.#a}get comments(){return this.#n??=T.of(this.context,"document.comments",this.path,()=>({op:"getComments",scope:{body:this.internals.roots().body}})),this.#n}get revisions(){return this.#i??=q.of(this.context,"document.revisions",this.path,this.internals.roots().body,this.path.handle()),this.#i}get footnotes(){let t=this.path.handle();return this.#r??=H.of(this.context,"document.footnotes",this.path,()=>({op:"getNotes",document:t,noteKind:"footnote"})),this.#r}get endnotes(){let t=this.path.handle();return this.#s??=H.of(this.context,"document.endnotes",this.path,()=>({op:"getNotes",document:t,noteKind:"endnote"})),this.#s}onLoad(t){this.selection(t,[]);}};function bt(n){let t=n.host,e=t.capabilities,o=typeof n.author=="string"&&n.author.trim().length>0?n.author:void 0,r=false,i=null,s=m=>{r&&a({code:"RuntimeDisposed",...m===void 0?{}:{target:m}});},d=()=>{if(i)return i;s("document");let m=Xt(t.execute({operations:[{op:"getDocument"}]}),"document"),xt=Xt(t.execute({operations:[{op:"getBody",document:m}]}),"document.body");return i={document:m,body:xt},i},c={host:t,capabilities:e,...o===void 0?{}:{author:o},id:{},roots:d,assertLive:s,openDocument:m=>et.open(m)};try{d();}catch{i=null;}async function b(m,xt){s();let kt=typeof m=="function"?m:xt,Zt=typeof m=="function"?[]:Array.isArray(m)?m:[m];typeof kt!="function"&&a({code:"InvalidArgument",target:"run"});let{context:Jt,adopt:_t,finish:te}=it.begin(c);try{return _t(Zt),await kt(Jt)}finally{te();}}let N={capabilities:e,run:b,dispose(){r||(r=true,i=null,t.dispose());}};return n.save?{...N,async save(){s("save"),e.save||a({code:"NotSupported",target:"save"});let m=t.save();if(!m.ok)throw ut(m.error,{target:"save"});return m.bytes}}:N}function Xt(n,t){let e=n.results[0];if(e?.status==="error")throw ut(e.error,{target:t});if(e?.status!=="ok")throw new u({code:"GeneralException",target:t});return g(e.value,t)}function Kt(n){return bt({host:editor.createBrowserAutomationHost(n),save:false})}async function Yt(n,t={}){let e=automation.createServerAutomationHost(n,{...t.limits===void 0?{}:{limits:t.limits}});return e.ok||a({code:"InvalidArgument",target:"createServer"}),bt({host:e.host,save:true,...t.author===void 0?{}:{author:t.author}})}var wr=Object.freeze({createBrowser:Kt,createServer:Yt});exports.Body=I;exports.Bookmark=G;exports.BookmarkCollection=Q;exports.ClientObject=w;exports.ClientResult=Ct;exports.Comment=K;exports.CommentCollection=T;exports.CommentReply=F;exports.CommentReplyCollection=st;exports.ContentControl=$;exports.ContentControlCollection=j;exports.Document=et;exports.DocxEditor=wr;exports.DocxEditorError=u;exports.Font=S;exports.List=L;exports.ListCollection=W;exports.ListItem=U;exports.NoteItem=Z;exports.NoteItemCollection=H;exports.PageSetup=dt;exports.Paragraph=R;exports.ParagraphCollection=v;exports.Range=h;exports.RangeCollection=k;exports.RequestContext=it;exports.Revision=Y;exports.RevisionCollection=q;exports.Section=_;exports.SectionCollection=tt;exports.TrackedObjects=rt;exports.isDocxEditorError=ee;
1
+ 'use strict';var editor=require('@docx-editor.dev/core/editor'),automation=require('@docx-editor.dev/core/automation');var wt=Object.freeze({PropertyNotLoaded:"the property has not been loaded. Call load(...) and await context.sync() before reading it.",ValueNotLoaded:"the result has not been filled in yet. Await context.sync() before reading it.",InvalidObjectPath:"the object cannot be addressed. An object an item accessor answered is usable after the next await context.sync(); an object whose run has ended is released for good, unless context.trackedObjects.add(...) kept it.",ObjectInUse:"the object still belongs to a run that has not finished. Await that run before passing the object to another one.",InvalidArgument:"the argument is not one this API accepts.",ItemNotFound:"the collection has no such item.",NotSupported:"this document host does not support that operation.",NotImplemented:"this version does not implement that yet.",ConflictingChanges:"two changes in this batch affect the same paragraph. Split them across two context.sync() calls.",InvalidRequestContext:"the request context has finished. Start another run to continue.",RuntimeDisposed:"the runtime has been disposed.",StaleDocument:"the document changed after this context read it, so nothing was applied.",DocumentUnavailable:"the document is not available right now.",GeneralException:"the document could not complete the request."}),u=class extends Error{code;target;expectedRevision;actualRevision;constructor(t){let e=t.target?`${wt[t.code]} (${t.target})`:wt[t.code];super(e),this.name="DocxEditorError",this.code=t.code,t.target!==void 0&&(this.target=t.target),t.expectedRevision!==void 0&&(this.expectedRevision=t.expectedRevision),t.actualRevision!==void 0&&(this.actualRevision=t.actualRevision);}};function ee(n){return n instanceof u?true:typeof n=="object"&&n!==null&&n.name==="DocxEditorError"&&typeof n.code=="string"}function a(n){throw new u(n)}var F=Symbol("docx-editor.runtime.internals"),mt=Symbol("docx-editor.runtime.release"),gt=Symbol("docx-editor.runtime.rebind");function it(n){return n[F]}var oe=new Set(["select","expand","top","skip"]),ne=/^[A-Za-z][A-Za-z0-9]*$/;function Et(n,t){if(n===void 0)return [];let e=typeof n=="string"?n.split(",").map(r=>r.trim()):Array.isArray(n)?n.map(r=>typeof r=="string"?r.trim():r):a({code:"InvalidArgument",target:t}),o=[];for(let r of e)(typeof r!="string"||!ne.test(r))&&a({code:"InvalidArgument",target:t}),o.includes(r)||o.push(r);return o.length===0&&a({code:"InvalidArgument",target:t}),o}function Tt(n,t){return (typeof n!="number"||!Number.isInteger(n)||n<0)&&a({code:"InvalidArgument",target:t}),n}function re(n,t){n===void 0||Array.isArray(n)&&n.length===0||a({code:"InvalidArgument",target:t});}function qt(n,t){if(n===void 0)return {select:[]};if(typeof n=="string"||Array.isArray(n))return {select:Et(n,t)};(typeof n!="object"||n===null)&&a({code:"InvalidArgument",target:t});let e=n;for(let o of Object.keys(e))oe.has(o)||a({code:"InvalidArgument",target:`${t}.${o}`});return re(e.expand,`${t}.expand`),{select:Et(e.select,`${t}.select`),...e.top===void 0?{}:{top:Tt(e.top,`${t}.top`)},...e.skip===void 0?{}:{skip:Tt(e.skip,`${t}.skip`)}}}var T=class{#t;#e;#o;#n;#r=new Map;constructor(t,e,o={}){this.#t=t,this.#e=t[F],this.#o=e,this.#n=o.nullable===true,this.#e.register(this);}get context(){return this.#t}get isNullObject(){return this.#o.isReleased&&a({code:"InvalidObjectPath",target:this.#o.label}),this.#n?(this.#o.isPending&&a({code:"PropertyNotLoaded",target:`${this.#o.label}.isNullObject`}),this.#o.isNull):false}load(t){return this.requireAddressable(),this.onLoad(qt(t,this.#o.label)),this}get path(){return this.#o}get internals(){return this.#e}handle(){return this.#o.handle()}requireAddressable(){this.#o.isAddressable||a({code:"InvalidObjectPath",target:this.#o.label}),this.#e.assertUsable(this.#o.label);}enqueue(t){this.requireAddressable(),this.#e.queue.push(t);}loadedProperty(t){return this.#o.isReleased&&!this.#r.has(t)&&a({code:"InvalidObjectPath",target:this.#o.label}),this.#r.has(t)||a({code:"PropertyNotLoaded",target:`${this.#o.label}.${t}`}),this.#r.get(t)}hasLoadedProperty(t){return this.#r.has(t)}setLoadedProperty(t,e){this.#r.set(t,e);}[mt](){this.#o.release();}[gt](t){this.#t=t,this.#e=t[F];}};var Pt=class n{#t=false;#e;#o;constructor(t){this.#o=t;}get value(){return this.#t||a({code:"ValueNotLoaded",target:this.#o}),this.#e}get isLoaded(){return this.#t}static create(t){let e=new n(t);return {result:e,fill(o){e.#t=true,e.#e=o;}}}};function R(n){return new u({code:"GeneralException",target:n})}function b(n,t){if(n.kind!=="text")throw R(t);return n.text}function f(n,t){if(n.kind!=="handle")throw R(t);return n.handle}function P(n,t){if(n.kind!=="handles")throw R(t);return n.handles}function x(n,t){if(n.kind!=="span")throw R(t);return n.span}function ft(n,t){if(n.kind!=="spans")throw R(t);return n.spans}function It(n,t){if(n.kind!=="font")throw R(t);return n.font}function kt(n,t){if(n.kind!=="paragraphFormat")throw R(t);return n.format}function at(n,t){if(n.kind!=="style")throw R(t);return n.name}function yt(n,t){if(n.kind!=="number")throw R(t);return n.value}function H(n,t){if(n.kind!=="flag")throw R(t);return n.value}function St(n,t){if(n.kind!=="pageSetup")throw R(t);return n.setup}function A(n,t){if(n.kind!=="applied")throw R(t)}var l=class n{label;#t;#e;constructor(t,e,o=null){this.label=t,this.#t=e,this.#e=o;}static of(t,e){return new n(t,{status:"resolved",address:{kind:"handle",handle:e}})}static ofSpan(t,e){return new n(t,{status:"resolved",address:{kind:"span",span:e}})}static pending(t){return new n(t,{status:"pending"})}static derived(t,e){return new n(t,{status:"pending"},e)}get state(){return this.#e?this.#e.state:this.#t}get isAddressable(){return this.state.status==="resolved"}get isPending(){return this.state.status==="pending"}get isNull(){return this.state.status==="null"}get isReleased(){return this.state.status==="released"}address(){let t=this.state;if(t.status==="resolved")return t.address;a({code:"InvalidObjectPath",target:this.label});}handle(){let t=this.address();return t.kind!=="handle"&&a({code:"InvalidObjectPath",target:this.label}),t.handle}span(){let t=this.address();return t.kind!=="span"&&a({code:"InvalidObjectPath",target:this.label}),t.span}resolveTo(t){this.#o({kind:"handle",handle:t});}resolveToSpan(t){this.#o({kind:"span",span:t});}resolveNull(){this.#t.status!=="released"&&(this.#t={status:"null"});}release(){this.#e||(this.#t={status:"released"});}#o(t){this.#t.status!=="released"&&(this.#t={status:"resolved",address:t});}};function Nt(n){let t=[],e=false,o=false;for(let r of n)t.push(r.plan()),r.sort==="write"?o=true:e=true;return {operations:t,hasRead:e,hasWrite:o}}var ie=Object.freeze({"stale-revision":"StaleDocument","invalid-handle":"InvalidObjectPath","invalid-offset":"InvalidArgument","unsupported-capability":"NotSupported",disposed:"RuntimeDisposed","transaction-refused":"GeneralException","unknown-operation":"NotSupported","unsupported-content":"InvalidArgument","conflicting-operations":"ConflictingChanges","document-unavailable":"DocumentUnavailable"});function bt(n,t={}){let e=ie[n.code]??"GeneralException",o=e==="StaleDocument";return new u({code:e,...t.target===void 0?{}:{target:t.target},...o&&t.expectedRevision!==void 0?{expectedRevision:t.expectedRevision}:{},...o&&t.actualRevision!==void 0?{actualRevision:t.actualRevision}:{}})}function $t(n,t,e){for(let o=0;o<n.results.length;o+=1){let r=n.results[o];if(r?.status!=="error")continue;let i=t[o]?.label;return bt(r.error,{...i===void 0?{}:{target:i},...e===void 0?{}:{expectedRevision:e},actualRevision:n.revision})}return new u({code:"GeneralException"})}function Dt(n,t){if(t.results.length!==n.length)throw new u({code:"GeneralException"});for(let e=0;e<n.length;e+=1){let o=t.results[e],r=n[e];if(o.status!=="ok")throw new u({code:"GeneralException",target:r.label});r.settle(o.value);}}var xt=class{#t=[];get size(){return this.#t.length}get pending(){return this.#t}push(t){this.#t.push(t);}take(){let t=this.#t;return this.#t=[],t}clear(){this.#t=[];}};function Bt(n,t){if(Array.isArray(n)){for(let e of n)t(e);return}t(n);}var st=class{#t;#e;constructor(t,e){this.#t=t,this.#e=e;}add(t){this.#t.assertUsable(),Bt(t,e=>{this.#o(e),this.#t.track(e);});}remove(t){this.#t.assertUsable(),Bt(t,e=>{this.#o(e),this.#t.untrack(e);});}#o(t){this.#e(t)||a({code:"InvalidObjectPath"});}};var dt=class n{#t;#e=new xt;#o=new Set;#n=new Set;#r;#s;#i;#a=false;#d=null;constructor(t){this.#t=t,this.#r={host:t.host,capabilities:t.capabilities,...t.author===void 0?{}:{author:t.author},queue:this.#e,session:t.id,roots:()=>t.roots(),assertUsable:e=>{this.#t.assertLive(e),this.#a&&a({code:"InvalidRequestContext",...e===void 0?{}:{target:e}});},isFinished:()=>this.#a,readRevision:()=>this.#d,register:e=>{this.#o.add(e);},track:e=>{this.#n.add(e);},untrack:e=>{this.#n.delete(e);},isTracked:e=>this.#n.has(e),disown:e=>{this.#o.delete(e),this.#n.delete(e);}},this.#s=new st(this.#r,e=>this.#o.has(e));}get document(){return this.#r.assertUsable("document"),this.#i??=this.#t.openDocument(this),this.#i}get capabilities(){return this.#t.capabilities}get trackedObjects(){return this.#s}async sync(){this.#r.assertUsable();let t=this.#e.take();if(t.length===0)return;let e=Nt(t),r=e.hasWrite&&this.#d!==null?this.#d:void 0,i={operations:e.operations,...r===void 0?{}:{expectedRevision:r}},s=this.#t.host.execute(i);if(!s.ok)throw $t(s,t,r);Dt(t,s),(e.hasRead||e.hasWrite)&&(this.#d=s.revision);}get[F](){return this.#r}static begin(t){let e=new n(t);return {context:e,adopt(o){for(let r of o)e.#l(r);},finish(){e.#p();}}}#l(t){let e=t.context;if(e===this)return;let o=e[F];if(o.session!==this.#t.id)throw new u({code:"InvalidObjectPath"});if(!o.isFinished())throw new u({code:"ObjectInUse"});if(!o.isTracked(t))throw new u({code:"InvalidObjectPath"});let r=o.readRevision();o.disown(t),t[gt](this),this.#o.add(t),this.#n.add(t),r!==null&&this.#c(r);}#c(t){this.#d=this.#d===null?t:Math.min(this.#d,t);}#p(){if(!this.#a){this.#a=true,this.#e.clear();for(let t of this.#o)this.#n.has(t)||t[mt]();this.#o.clear();}}};function lt(n,t,e){if(n.select.length===0)return t;for(let o of n.select)t.includes(o)||a({code:"InvalidArgument",target:`${e}.${o}`});return n.select}var U=class extends T{#t;#e=[];constructor(t,e){super(t,e);}get items(){return this.loadedProperty("items")}fill(t,e){this.setLoadedProperty("items",this.#n(t,e,0,void 0)),this.#t={value:t,label:e};let o=this.#e.splice(0,this.#e.length);for(let r of o)this.#o(r,t);}onLoad(t){lt(t,["items"],this.path.label);let e=this.listing();if(!e)return;let o=`${this.path.label}.items`,r=t.skip??0,i=t.top;this.enqueue({sort:"read",label:o,plan:()=>e,settle:s=>{this.setLoadedProperty("items",this.#n(s,o,r,i));}});}edge(t,e,o){let r=`${this.path.label}.${e}()`,i=this.promised(r,o),s=this.listing();if(!s){let d={edge:t,target:r,nullable:o,item:i};return this.#t?this.#o(d,this.#t.value):this.#e.push(d),i}return this.enqueue({sort:"read",label:r,plan:()=>s,settle:d=>{this.#o({edge:t,target:r,nullable:o,item:i},d);}}),i}#o(t,e){let{edge:o,target:r,nullable:i,item:s}=t,d=this.size(e,r);if(d===0){i||a({code:"ItemNotFound",target:r}),s.hydrateNull();return}let c=this.addressAt(e,r,o==="first"?0:d-1);c||a({code:"ItemNotFound",target:r}),s.hydrateAddress(c);}#n(t,e,o,r){let i=this.size(t,e),s=r===void 0?i:Math.min(i,o+r),d=[];for(let c=o;c<s;c+=1){let g=this.addressAt(t,e,c);g&&d.push(this.itemAt(`${e}[${String(c)}]`,g));}return d}},y=class extends U{size(t,e){return P(t,e).length}addressAt(t,e,o){let r=P(t,e)[o];return r?{kind:"handle",handle:r}:void 0}};var ae=["Replace","Start","End"],se=["Start","End"],de=["Replace","Start","End"],le=["Before","After"],ce=["Replace","Start","End","Before","After"],pe=["Select","Start","End"];function G(n,t,e){return (typeof n!="string"||!t.includes(n))&&a({code:"InvalidArgument",target:e}),n}var Ft=(n,t)=>G(n,ae,t),Ht=(n,t)=>G(n,se,t),Mt=(n,t)=>G(n,de,t),Vt=(n,t)=>G(n,le,t),Lt=(n,t)=>G(n,ce,t),At=(n,t)=>n===void 0?"Select":G(n,pe,t);function C(n,t){return typeof n!="string"&&a({code:"InvalidArgument",target:t}),/[\r\n\v\f\u2028\u2029]/.test(n)&&a({code:"InvalidArgument",target:t}),n}var p=class extends T{loadTextInto(t,e){let o=`${this.path.label}.${t}`;this.enqueue({sort:"read",label:o,plan:e,settle:r=>{this.setLoadedProperty(t,b(r,o));}});}command(t,e){let o=`${this.path.label}.${t}`;this.enqueue({sort:"write",label:o,plan:e,settle:r=>A(r,o)});}commandDiscarding(t,e){let o=`${this.path.label}.${t}`;this.enqueue({sort:"write",label:o,plan:e,settle:()=>{}});}commandAnswering(t,e,o){this.enqueue({sort:"write",label:t,plan:e,settle:o});}read(t,e,o){this.enqueue({sort:"read",label:t,plan:e,settle:o});}selection(t,e){return lt(t,e,this.path.label)}onLoad(t){this.selection(t,[]);}};var he=8,j=class n extends p{#t;static at(t,e,o){return o.kind!=="handle"&&a({code:"InvalidObjectPath",target:e}),new n(t,l.of(e,o.handle),false)}static promised(t,e,o){return new n(t,l.pending(e),o)}constructor(t,e,o){super(t,e,{nullable:o});}hydrateAddress(t){t.kind==="handle"?this.path.resolveTo(t.handle):this.path.resolveNull();}hydrateNull(){this.path.resolveNull();}get id(){return this.loadedProperty("id")}get paragraphs(){return this.#t??=v.overListing(this.context,`${this.path.label}.paragraphs`,this.path,()=>({op:"getListParagraphs",list:this.#e()})),this.#t}getLevelParagraphs(t){let e=`${this.path.label}.getLevelParagraphs`,o=Wt(t,e),r=this.#e();return v.overListing(this.context,e,this.path,()=>({op:"getListParagraphs",list:r,level:o}))}insertParagraph(t,e){let o=`${this.path.label}.insertParagraph`,r=C(t,o);e!=="Start"&&e!=="End"&&e!=="Before"&&e!=="After"&&a({code:"InvalidArgument",target:o});let i=this.#e(),s=O.promised(this.context,o,false);return this.commandAnswering(o,()=>({op:"insertListParagraph",list:i,where:e==="Start"||e==="Before"?"start":"end",text:r}),d=>{s.hydrateAddress({kind:"handle",handle:f(d,o)});}),s}onLoad(t){if(!this.selection(t,["id"]).includes("id"))return;let e=`${this.path.label}.id`,o=this.#e();this.read(e,()=>({op:"getListId",list:o}),r=>{this.setLoadedProperty("id",yt(r,e));});}#e(){return this.requireAddressable(),this.path.handle()}},Q=class n extends y{#t;static of(t,e,o,r){return new n(t,l.derived(e,o),r)}constructor(t,e,o){super(t,e),this.#t=o;}getFirst(){return this.edge("first","getFirst",false)}getById(t){let e=`${this.path.label}.getById`,o=ue(t,e),r=this.#t,i=j.promised(this.context,e,false);return this.enqueue({sort:"read",label:e,plan:()=>({op:"getListById",body:r,id:o}),settle:s=>{i.hydrateAddress({kind:"handle",handle:f(s,e)});}}),i}listing(){return {op:"getLists",body:this.#t}}itemAt(t,e){return j.at(this.context,t,e)}promised(t,e){return j.promised(this.context,t,e)}},X=class n extends p{static of(t,e,o){return new n(t,l.derived(e,o))}constructor(t,e){super(t,e);}get level(){return this.loadedProperty("level")}set level(t){let e=`${this.path.label}.level`,o=Wt(t,e),r=this.#t();this.commandAnswering(e,()=>({op:"setListLevel",paragraph:r,level:o}),i=>{A(i,e);});}onLoad(t){if(!this.selection(t,["level"]).includes("level"))return;let e=`${this.path.label}.level`,o=this.#t();this.read(e,()=>({op:"getListLevel",paragraph:o}),r=>{this.setLoadedProperty("level",yt(r,e));});}#t(){this.requireAddressable();let t=this.path.address();return t.kind!=="handle"&&a({code:"InvalidObjectPath",target:this.path.label}),t.handle}};function Wt(n,t){return (!Number.isInteger(n)||n<0||n>he)&&a({code:"InvalidArgument",target:t}),n}function ue(n,t){return (!Number.isInteger(n)||n<=0)&&a({code:"InvalidArgument",target:t}),n}function q(n,t){let e=n.address();return t==="span"?(e.kind!=="span"&&a({code:"InvalidObjectPath",target:n.label}),{start:e.span.start,end:e.span.end}):(e.kind!=="handle"&&a({code:"InvalidObjectPath",target:n.label}),t==="body"?{body:e.handle}:{paragraph:e.handle})}function K(n,t){return (typeof n!="string"||n.trim().length===0||n.length>255)&&a({code:"InvalidArgument",target:t}),n}var me=["bold","italic","color","name","size"],S=class n extends p{#t;#e;static of(t,e,o,r){return new n(t,l.derived(e,o),r)}constructor(t,e,o){super(t,e),this.#t=o;}get bold(){return this.loadedProperty("bold")}set bold(t){this.#o("bold",zt(t,`${this.path.label}.bold`));}get italic(){return this.loadedProperty("italic")}set italic(t){this.#o("italic",zt(t,`${this.path.label}.italic`));}get color(){return this.loadedProperty("color")}set color(t){this.#o("color",Ut(t,`${this.path.label}.color`));}get name(){return this.loadedProperty("name")}set name(t){this.#o("name",Ut(t,`${this.path.label}.name`));}get size(){return this.loadedProperty("size")}set size(t){this.#o("size",ge(t,`${this.path.label}.size`));}onLoad(t){let e=this.selection(t,me);if(e.length===0)return;let o=`${this.path.label}.font`;this.read(o,()=>({op:"getFont",span:this.#n()}),r=>{let i=It(r,o);for(let s of e)this.setLoadedProperty(s,i[s]);});}#o(t,e){if(this.requireAddressable(),this.#e){this.#e[t]=e;return}let o={[t]:e};this.#e=o;let r=`${this.path.label}.${t}`;this.commandAnswering(this.path.label,()=>(this.#e=void 0,{op:"setFont",span:this.#n(),font:o}),i=>{A(i,r);});}#n(){return this.requireAddressable(),q(this.path,this.#t)}};function zt(n,t){return typeof n!="boolean"&&a({code:"InvalidArgument",target:t}),n}function ge(n,t){return (typeof n!="number"||!Number.isFinite(n))&&a({code:"InvalidArgument",target:t}),n}function Ut(n,t){return (typeof n!="string"||n.length===0)&&a({code:"InvalidArgument",target:t}),n}var fe=16,O=class n extends p{#t;#e;#o;#n;static at(t,e,o){return o.kind!=="handle"&&a({code:"InvalidObjectPath",target:e}),new n(t,l.of(e,o.handle),false)}static promised(t,e,o){return new n(t,l.pending(e),o)}constructor(t,e,o){super(t,e,{nullable:o});}hydrateAddress(t){t.kind==="handle"?this.path.resolveTo(t.handle):this.path.resolveNull();}hydrateNull(){this.path.resolveNull();}get text(){return this.loadedProperty("text")}get uniqueLocalId(){return this.loadedProperty("uniqueLocalId")}get style(){return this.loadedProperty("style")}set style(t){this.#r("style",K(t,`${this.path.label}.style`));}get font(){return this.#t??=S.of(this.context,`${this.path.label}.font`,this.path,"paragraph"),this.#t}get alignment(){return this.loadedProperty("alignment")}set alignment(t){this.#r("alignment",be(t,`${this.path.label}.alignment`));}get firstLineIndent(){return this.loadedProperty("firstLineIndent")}set firstLineIndent(t){this.#r("firstLineIndent",Z(t,`${this.path.label}.firstLineIndent`));}get leftIndent(){return this.loadedProperty("leftIndent")}set leftIndent(t){this.#r("leftIndent",Z(t,`${this.path.label}.leftIndent`));}get rightIndent(){return this.loadedProperty("rightIndent")}set rightIndent(t){this.#r("rightIndent",Z(t,`${this.path.label}.rightIndent`));}get lineSpacing(){return this.loadedProperty("lineSpacing")}set lineSpacing(t){this.#r("lineSpacing",Z(t,`${this.path.label}.lineSpacing`));}get spaceBefore(){return this.loadedProperty("spaceBefore")}set spaceBefore(t){this.#r("spaceBefore",Z(t,`${this.path.label}.spaceBefore`));}get spaceAfter(){return this.loadedProperty("spaceAfter")}set spaceAfter(t){this.#r("spaceAfter",Z(t,`${this.path.label}.spaceAfter`));}get list(){return this.#e??=this.#s(`${this.path.label}.list`),this.#e}get listItem(){return this.#o??=X.of(this.context,`${this.path.label}.listItem`,this.path),this.#o}clear(){let t=this.#i();this.commandDiscarding("clear",()=>({op:"replaceSpan",span:{paragraph:t},text:""}));}delete(){let t=this.#i();this.command("delete",()=>({op:"deleteParagraph",paragraph:t}));}insertText(t,e){let o=`${this.path.label}.insertText`,r=C(t,o),i=Mt(e,o),s=this.#i(),d=m.promised(this.context,o,false);return this.commandAnswering(o,()=>i==="Replace"?{op:"replaceSpan",span:{paragraph:s},text:r}:{op:"insertText",at:{paragraph:s,at:i==="Start"?"start":"end"},text:r},c=>{d.hydrateAddress({kind:"span",span:x(c,o)});}),d}insertParagraph(t,e){let o=`${this.path.label}.insertParagraph`,r=C(t,o),i=Vt(e,o),s=this.#i(),d=n.promised(this.context,o,false);return this.commandAnswering(o,()=>({op:"insertParagraph",anchor:{paragraph:s},where:i==="Before"?"before":"after",text:r}),c=>{c.kind!=="handle"&&a({code:"GeneralException",target:o}),d.hydrateAddress({kind:"handle",handle:c.handle});}),d}split(t,e,o){let r=`${this.path.label}.split`,i=xe(t,r),s=Qt(e,`${r}.trimDelimiters`),d=Qt(o,`${r}.trimSpacing`),c=this.#i(),g=L.answered(this.context,r,this.path);return this.commandAnswering(r,()=>({op:"splitParagraph",paragraph:c,delimiters:i,...s?{trimDelimiters:true}:{},...d?{trimSpacing:true}:{}}),k=>{g.fill(k,r);}),g}onLoad(t){let e=this.selection(t,["text","uniqueLocalId",...Gt]),o=this.#i();e.includes("text")&&this.loadTextInto("text",()=>({op:"getText",target:o})),e.includes("uniqueLocalId")&&this.loadTextInto("uniqueLocalId",()=>({op:"getParagraphId",paragraph:o}));let r=Gt.filter(s=>e.includes(s));if(r.length===0)return;let i=`${this.path.label}.paragraphFormat`;this.read(i,()=>({op:"getParagraphFormat",paragraph:{paragraph:o}}),s=>{let d=kt(s,i);for(let c of r)this.setLoadedProperty(c,d[c]);});}#r(t,e){if(this.requireAddressable(),this.#n){this.#n[t]=e;return}let o={[t]:e};this.#n=o;let r=this.#i(),i=`${this.path.label}.${t}`;this.commandAnswering(`${this.path.label}.paragraphFormat`,()=>(this.#n=void 0,{op:"setParagraphFormat",paragraph:{paragraph:r},format:o}),s=>{A(s,i);});}#s(t){let e=this.#i(),o=j.promised(this.context,t,false);return this.read(t,()=>({op:"getParagraphList",paragraph:e}),r=>{o.hydrateAddress({kind:"handle",handle:f(r,t)});}),o}#i(){return this.requireAddressable(),this.path.handle()}},Gt=["style","alignment","firstLineIndent","leftIndent","rightIndent","lineSpacing","spaceBefore","spaceAfter"],ye=["Left","Centered","Right","Justified"];function be(n,t){return ye.includes(n)||a({code:"InvalidArgument",target:t}),n}function Z(n,t){return (typeof n!="number"||!Number.isFinite(n))&&a({code:"InvalidArgument",target:t}),n}function xe(n,t){(!Array.isArray(n)||n.length===0||n.length>fe)&&a({code:"InvalidArgument",target:t});for(let e of n)(typeof e!="string"||e.length===0)&&a({code:"InvalidArgument",target:t});return [...n]}function Qt(n,t){return n!==void 0&&typeof n!="boolean"&&a({code:"InvalidArgument",target:t}),n===true}var v=class n extends U{#t;static of(t,e,o){return new n(t,l.derived(e,o),null)}static overListing(t,e,o,r){return new n(t,l.derived(e,o),r)}constructor(t,e,o){super(t,e),this.#t=o;}getFirst(){return this.edge("first","getFirst",false)}getLast(){return this.edge("last","getLast",false)}getFirstOrNullObject(){return this.edge("first","getFirstOrNullObject",true)}getLastOrNullObject(){return this.edge("last","getLastOrNullObject",true)}listing(){if(this.#t)return this.#t();let t=this.path.address();return t.kind==="handle"?{op:"getParagraphs",body:t.handle}:{op:"getSpanParagraphs",span:t.span}}size(t,e){return P(t,e).length}addressAt(t,e,o){let r=P(t,e)[o];return r?{kind:"handle",handle:r}:void 0}itemAt(t,e){return O.at(this.context,t,e)}promised(t,e){return O.promised(this.context,t,e)}},L=class n extends U{#t;static of(t,e,o,r){return new n(t,l.derived(e,o),r)}static answered(t,e,o){return new n(t,l.derived(e,o),null)}constructor(t,e,o){super(t,e),this.#t=o;}getFirst(){return this.edge("first","getFirst",false)}getLast(){return this.edge("last","getLast",false)}getFirstOrNullObject(){return this.edge("first","getFirstOrNullObject",true)}listing(){return this.#t?this.#t():null}size(t,e){return ft(t,e).length}addressAt(t,e,o){let r=ft(t,e)[o];return r?{kind:"span",span:r}:void 0}itemAt(t,e){return m.at(this.context,t,e)}promised(t,e){return m.promised(this.context,t,e)}};function Ae(n,t){return t<1||t>12?0:t===2?n%4===0&&n%100!==0||n%400===0?29:28:t===4||t===6||t===9||t===11?30:31}function Xt(n){if(n.length===0)return null;let t=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,9}))?(Z|[+-]\d{2}:\d{2})$/.exec(n.trim());if(!t)return null;let e=Number(t[1]),o=Number(t[2]),r=Number(t[3]),i=Ae(e,o);if(e===0||i===0||r<1||r>i)return null;let s=Number(t[4]),d=Number(t[5]),c=Number(t[6]);if(s>23||d>59||c>59)return null;let g=t[7],k=g===void 0?0:Number(g.padEnd(3,"0").slice(0,3));if(Number.isNaN(k))return null;let ht=`${t[1]}-${t[2]}-${t[3]}T${t[4]}:${t[5]}:${t[6]}.${String(k).padStart(3,"0")}Z`,h=Date.parse(ht);if(Number.isNaN(h))return null;let E=t[8];if(E==="Z")return new Date(h);let z=Number(E.slice(1,3)),rt=Number(E.slice(4,6));if(rt>59||z>14||z===14&&rt!==0)return null;let Rt=E[0]==="+"?1:-1,ut=new Date(h-Rt*(z*36e5+rt*6e4));return Number.isNaN(ut.getTime())?null:ut}var Ct=class extends p{hydrateAddress(t){t.kind==="handle"?this.path.resolveTo(t.handle):this.path.resolveNull();}hydrateNull(){this.path.resolveNull();}get authorName(){return this.loadedProperty("authorName")}get creationDate(){return this.loadedProperty("creationDate")}get id(){return this.loadedProperty("id")}get text(){return this.loadedProperty("text")}delete(){let t=this.commentHandle();this.command("delete",()=>({op:"deleteComment",comment:t}));}loadCommentFields(t,e){let o=this.selection(t,["authorName","creationDate","id","text",...e]),r=this.commentHandle();if(o.includes("authorName")&&this.loadTextInto("authorName",()=>({op:"getCommentAuthor",comment:r})),o.includes("text")&&this.loadTextInto("text",()=>({op:"getCommentText",comment:r})),o.includes("id")&&this.loadTextInto("id",()=>({op:"getCommentId",comment:r})),o.includes("creationDate")){let s=`${this.path.label}.creationDate`;this.read(s,()=>({op:"getCommentDate",comment:r}),d=>{this.setLoadedProperty("creationDate",Xt(b(d,s)));});}if(!o.includes("resolved"))return;let i=`${this.path.label}.resolved`;this.read(i,()=>({op:"getCommentResolved",comment:r}),s=>{this.setLoadedProperty("resolved",H(s,i));});}commentHandle(){return this.requireAddressable(),this.path.handle()}},M=class n extends Ct{static at(t,e,o){return o.kind!=="handle"&&a({code:"InvalidObjectPath",target:e}),new n(t,l.of(e,o.handle),false)}static promised(t,e,o){return new n(t,l.pending(e),o)}constructor(t,e,o){super(t,e,{nullable:o});}onLoad(t){this.loadCommentFields(t,[]);}},ct=class n extends y{#t;static of(t,e,o,r){return new n(t,l.derived(e,o),r)}constructor(t,e,o){super(t,e),this.#t=o;}getFirst(){return this.edge("first","getFirst",false)}listing(){return this.#t()}itemAt(t,e){return M.at(this.context,t,e)}promised(t,e){return M.promised(this.context,t,e)}},N=class n extends Ct{#t;static at(t,e,o){return o.kind!=="handle"&&a({code:"InvalidObjectPath",target:e}),new n(t,l.of(e,o.handle),false)}static promised(t,e,o){return new n(t,l.pending(e),o)}constructor(t,e,o){super(t,e,{nullable:o});}get resolved(){return this.loadedProperty("resolved")}set resolved(t){let e=`${this.path.label}.resolved`;typeof t!="boolean"&&a({code:"InvalidArgument",target:e});let o=this.commentHandle();this.commandAnswering(e,()=>({op:"setCommentResolved",comment:o,resolved:t}),r=>{A(r,e);});}get replies(){return this.#t??=ct.of(this.context,`${this.path.label}.replies`,this.path,()=>({op:"getCommentReplies",comment:this.commentHandle()})),this.#t}getRange(){let t=`${this.path.label}.getRange`,e=this.commentHandle(),o=m.promised(this.context,t,false);return this.read(t,()=>({op:"getCommentRange",comment:e}),r=>{o.hydrateAddress({kind:"span",span:x(r,t)});}),o}reply(t){let e=`${this.path.label}.reply`;(typeof t!="string"||t.length===0)&&a({code:"InvalidArgument",target:e});let o=this.internals.author;(typeof o!="string"||o.trim().length===0)&&a({code:"NotSupported",target:e});let r=this.commentHandle(),i=M.promised(this.context,e,false);return this.commandAnswering(e,()=>({op:"replyToComment",comment:r,text:t,author:o}),s=>{i.hydrateAddress({kind:"handle",handle:f(s,e)});}),i}onLoad(t){this.loadCommentFields(t,["resolved"]);}},$=class n extends y{#t;static of(t,e,o,r){return new n(t,l.derived(e,o),r)}constructor(t,e,o){super(t,e),this.#t=o;}getFirst(){return this.edge("first","getFirst",false)}listing(){return this.#t()}itemAt(t,e){return N.at(this.context,t,e)}promised(t,e){return N.promised(this.context,t,e)}},Y=class n extends p{static at(t,e,o){return o.kind!=="handle"&&a({code:"InvalidObjectPath",target:e}),new n(t,l.of(e,o.handle),false)}static promised(t,e,o){return new n(t,l.pending(e),o)}constructor(t,e,o){super(t,e,{nullable:o});}hydrateAddress(t){t.kind==="handle"?this.path.resolveTo(t.handle):this.path.resolveNull();}hydrateNull(){this.path.resolveNull();}get author(){return this.loadedProperty("author")}get date(){return this.loadedProperty("date")}get type(){return this.loadedProperty("type")}get range(){let t=`${this.path.label}.range`,e=this.#t(),o=m.promised(this.context,t,false);return this.read(t,()=>({op:"getRevisionRange",revision:e}),r=>{o.hydrateAddress({kind:"span",span:x(r,t)});}),o}accept(){let t=this.#t();this.command("accept",()=>({op:"acceptRevision",revision:t}));}reject(){let t=this.#t();this.command("reject",()=>({op:"rejectRevision",revision:t}));}onLoad(t){let e=this.selection(t,["author","date","type"]),o=this.#t();if(e.includes("author")&&this.loadTextInto("author",()=>({op:"getRevisionAuthor",revision:o})),e.includes("type")&&this.loadTextInto("type",()=>({op:"getRevisionType",revision:o})),!e.includes("date"))return;let r=`${this.path.label}.date`;this.read(r,()=>({op:"getRevisionDate",revision:o}),i=>{this.setLoadedProperty("date",Xt(b(i,r)));});}#t(){return this.requireAddressable(),this.path.handle()}},D=class n extends y{#t;#e;static of(t,e,o,r,i){return new n(t,l.derived(e,o),r,i)}constructor(t,e,o,r){super(t,e),this.#t=o,this.#e=r;}acceptAll(){let t=this.#e;this.commandOn("acceptAll",()=>({op:"acceptAllRevisions",document:t}));}rejectAll(){let t=this.#e;this.commandOn("rejectAll",()=>({op:"rejectAllRevisions",document:t}));}listing(){return {op:"getRevisions",body:this.#t}}itemAt(t,e){return Y.at(this.context,t,e)}promised(t,e){return Y.promised(this.context,t,e)}commandOn(t,e){let o=`${this.path.label}.${t}`;this.enqueue({sort:"write",label:o,plan:e,settle:r=>{A(r,o);}});}};var Ce=new Set(["matchCase","matchWholeWord","ignorePunct","ignoreSpace","matchWildcards"]);function vt(n,t){if(n===void 0)return;typeof n!="object"&&a({code:"InvalidArgument",target:t});for(let[o,r]of Object.entries(n))Ce.has(o)||a({code:"InvalidArgument",target:`${t}.${o}`}),r!==void 0&&typeof r!="boolean"&&a({code:"InvalidArgument",target:`${t}.${o}`});let e={...n.matchCase===void 0?{}:{matchCase:n.matchCase},...n.matchWholeWord===void 0?{}:{matchWholeWord:n.matchWholeWord},...n.ignorePunct===void 0?{}:{ignorePunct:n.ignorePunct},...n.ignoreSpace===void 0?{}:{ignoreSpace:n.ignoreSpace},...n.matchWildcards===void 0?{}:{matchWildcards:n.matchWildcards}};return Object.keys(e).length===0?void 0:e}var m=class n extends p{#t;#e;#o;static at(t,e,o){return o.kind!=="span"&&a({code:"InvalidObjectPath",target:e}),new n(t,l.ofSpan(e,o.span),false)}static promised(t,e,o){return new n(t,l.pending(e),o)}constructor(t,e,o){super(t,e,{nullable:o});}hydrateAddress(t){t.kind==="span"?this.path.resolveToSpan(t.span):this.path.resolveNull();}hydrateNull(){this.path.resolveNull();}get text(){return this.loadedProperty("text")}get font(){return this.#e??=S.of(this.context,`${this.path.label}.font`,this.path,"span"),this.#e}get paragraphs(){return this.#t??=v.of(this.context,`${this.path.label}.paragraphs`,this.path),this.#t}get style(){return this.loadedProperty("style")}set style(t){let e=`${this.path.label}.style`,o=K(t,e);this.requireAddressable(),this.command("style",()=>({op:"setStyle",span:q(this.path,"span"),name:o}));}get hyperlink(){return this.loadedProperty("hyperlink")}set hyperlink(t){let e=`${this.path.label}.hyperlink`;(typeof t!="string"||t.length>2048)&&a({code:"InvalidArgument",target:e});let o=this.#n();this.command("hyperlink",()=>({op:"setHyperlink",span:o,target:t}));}get bookmarks(){let t=this.#n();return this.#o??=B.of(this.context,`${this.path.label}.bookmarks`,this.path,()=>({op:"getBookmarks",scope:{start:t.start,end:t.end}})),this.#o}search(t,e){let o=`${this.path.label}.search`;typeof t!="string"&&a({code:"InvalidArgument",target:o});let r=vt(e,o),i=this.#n();return L.of(this.context,o,this.path,()=>({op:"search",scope:i,text:t,...r===void 0?{}:{options:r}}))}insertText(t,e){let o=`${this.path.label}.insertText`,r=C(t,o),i=Lt(e,o),s=this.#n(),d=n.promised(this.context,o,false);return this.commandAnswering(o,()=>i==="Replace"?{op:"replaceSpan",span:s,text:r}:{op:"insertText",at:i==="Start"||i==="Before"?s.start:s.end,text:r},c=>{d.hydrateAddress({kind:"span",span:x(c,o)});}),d}insertComment(t){let e=`${this.path.label}.insertComment`;(typeof t!="string"||t.length===0)&&a({code:"InvalidArgument",target:e});let o=this.internals.author;(typeof o!="string"||o.trim().length===0)&&a({code:"NotSupported",target:e});let r=this.#n(),i=N.promised(this.context,e,false);return this.commandAnswering(e,()=>({op:"insertComment",span:r,text:t,author:o}),s=>{s.kind!=="handle"&&a({code:"GeneralException",target:e}),i.hydrateAddress(s);}),i}insertParagraph(t,e){let o=`${this.path.label}.insertParagraph`,r=C(t,o),i=Lt(e,o);i!=="Before"&&i!=="After"&&a({code:"InvalidArgument",target:o});let s=this.#n(),d=i==="Before"?s.start.paragraph:s.end.paragraph,c=O.promised(this.context,o,false);return this.commandAnswering(o,()=>({op:"insertParagraph",anchor:{paragraph:d},where:i==="Before"?"before":"after",text:r}),g=>{g.kind!=="handle"&&a({code:"GeneralException",target:o}),c.hydrateAddress({kind:"handle",handle:g.handle});}),c}select(t){let e=`${this.path.label}.select`,o=At(t,e);this.requireAddressable(),this.internals.capabilities.selection||a({code:"NotSupported",target:e});let r=this.#n();this.command("select",()=>({op:"selectSpan",span:r,mode:o==="Select"?"select":o==="Start"?"start":"end"}));}onLoad(t){let e=this.selection(t,["text","style","hyperlink"]);if(e.includes("hyperlink")){let r=this.#n();this.loadTextInto("hyperlink",()=>({op:"getHyperlink",span:r}));}if(e.includes("text")){let r=this.#n(),i=`${this.path.label}.text`;this.read(i,()=>({op:"getSpanText",span:r}),s=>{this.setLoadedProperty("text",b(s,i));});}if(!e.includes("style"))return;let o=`${this.path.label}.style`;this.requireAddressable(),this.read(o,()=>({op:"getStyle",span:q(this.path,"span")}),r=>{this.setLoadedProperty("style",at(r,o));});}#n(){return this.requireAddressable(),this.path.span()}};var J=class n extends p{#t;static at(t,e,o){return o.kind!=="handle"&&a({code:"InvalidObjectPath",target:e}),new n(t,l.of(e,o.handle),false)}static promised(t,e,o){return new n(t,l.pending(e),o)}constructor(t,e,o){super(t,e,{nullable:o});}hydrateAddress(t){t.kind==="handle"?this.path.resolveTo(t.handle):this.path.resolveNull();}hydrateNull(){this.path.resolveNull();}get name(){return this.loadedProperty("name")}get range(){return this.#t??=this.#e(`${this.path.label}.range`),this.#t}select(t){let e=`${this.path.label}.select`,o=At(t,e);this.requireAddressable(),this.internals.capabilities.selection||a({code:"NotSupported",target:e});let r=this.#o();this.command("select",()=>({op:"selectBookmark",bookmark:r,mode:o==="Select"?"select":o==="Start"?"start":"end"}));}onLoad(t){if(!this.selection(t,["name"]).includes("name"))return;let e=`${this.path.label}.name`,o=this.#o();this.read(e,()=>({op:"getBookmarkName",bookmark:o}),r=>{this.setLoadedProperty("name",b(r,e));});}#e(t){let e=this.#o(),o=m.promised(this.context,t,false);return this.read(t,()=>({op:"getBookmarkRange",bookmark:e}),r=>{o.hydrateAddress({kind:"span",span:x(r,t)});}),o}#o(){return this.requireAddressable(),this.path.handle()}},B=class n extends y{#t;static of(t,e,o,r){return new n(t,l.derived(e,o),r)}constructor(t,e,o){super(t,e),this.#t=o;}listing(){return this.#t()}itemAt(t,e){return J.at(this.context,t,e)}promised(t,e){return J.promised(this.context,t,e)}};var Zt=4096,V=class n extends p{#t=new Map;#e;#o;static at(t,e,o){return o.kind!=="handle"&&a({code:"InvalidObjectPath",target:e}),new n(t,l.of(e,o.handle),false)}static promised(t,e,o){return new n(t,l.pending(e),o)}constructor(t,e,o){super(t,e,{nullable:o});}hydrateAddress(t){t.kind==="handle"?this.path.resolveTo(t.handle):this.path.resolveNull();}hydrateNull(){this.path.resolveNull();}get id(){return this.loadedProperty("id")}get tag(){return this.loadedProperty("tag")}set tag(t){this.#r("tag",{tag:jt(t,`${this.path.label}.tag`)});}get title(){return this.loadedProperty("title")}set title(t){this.#r("title",{title:jt(t,`${this.path.label}.title`)});}get subtype(){return this.loadedProperty("subtype")}get isBound(){return this.loadedProperty("isBound")}get cannotDelete(){let t=this.loadedProperty("lock");return t==="sdtLocked"||t==="sdtContentLocked"}set cannotDelete(t){this.#s(t,this.cannotEdit,`${this.path.label}.cannotDelete`);}get cannotEdit(){let t=this.loadedProperty("lock");return t==="contentLocked"||t==="sdtContentLocked"}set cannotEdit(t){this.#s(this.cannotDelete,t,`${this.path.label}.cannotEdit`);}get placeholderShown(){return this.loadedProperty("placeholderShown")}get temporary(){return this.loadedProperty("temporary")}get text(){return this.loadedProperty("text")}get paragraphs(){return this.#e??=v.overListing(this.context,`${this.path.label}.paragraphs`,this.path,()=>({op:"getContentControlParagraphs",contentControl:this.#i()})),this.#e}get contentControls(){return this.#o??=w.of(this.context,`${this.path.label}.contentControls`,this.path,{contentControl:this.#i()}),this.#o}getRange(t){let e=`${this.path.label}.getRange`,o=ve(t??"Whole",e),r=this.#t.get(o);if(r)return r;let i=this.#n(e,o);return this.#t.set(o,i),i}setValue(t){let e=`${this.path.label}.setValue`,o=Oe(t,e),r=this.#i();this.command("setValue",()=>({op:"setContentControlValue",contentControl:r,value:o}));}insertText(t,e){let o=`${this.path.label}.insertText`,r=C(t,o),i=e==="Replace"?"replace":e==="Start"?"start":e==="End"?"end":a({code:"InvalidArgument",target:o}),s=this.#i(),d=m.promised(this.context,o,false);return this.commandAnswering(o,()=>({op:"insertContentControlText",contentControl:s,text:r,at:i}),c=>{d.hydrateAddress({kind:"span",span:x(c,o)});}),d}delete(t){let e=`${this.path.label}.delete`;typeof t!="boolean"&&a({code:"InvalidArgument",target:e});let o=this.#i();this.command("delete",()=>({op:"deleteContentControl",contentControl:o,keepContent:t}));}onLoad(t){let e=this.selection(t,["id","tag","title","subtype","isBound","text","cannotDelete","cannotEdit","placeholderShown","temporary"]),o=this.#i();if(e.includes("id")&&this.loadTextInto("id",()=>({op:"getContentControlFileId",contentControl:o})),e.includes("tag")&&this.loadTextInto("tag",()=>({op:"getContentControlTag",contentControl:o})),e.includes("title")&&this.loadTextInto("title",()=>({op:"getContentControlTitle",contentControl:o})),e.includes("subtype")&&this.loadTextInto("subtype",()=>({op:"getContentControlSubtype",contentControl:o})),e.includes("isBound")){let i=`${this.path.label}.isBound`;this.read(i,()=>({op:"getContentControlIsBound",contentControl:o}),s=>{this.setLoadedProperty("isBound",H(s,i));});}if(e.includes("text")&&this.loadTextInto("text",()=>({op:"getContentControlText",contentControl:o})),e.includes("cannotDelete")||e.includes("cannotEdit")){let i=`${this.path.label}.lock`;this.read(i,()=>({op:"getContentControlLock",contentControl:o}),s=>{this.setLoadedProperty("lock",b(s,i));});}if(e.includes("placeholderShown")){let i=`${this.path.label}.placeholderShown`;this.read(i,()=>({op:"getContentControlPlaceholderShown",contentControl:o}),s=>{this.setLoadedProperty("placeholderShown",H(s,i));});}if(!e.includes("temporary"))return;let r=`${this.path.label}.temporary`;this.read(r,()=>({op:"getContentControlTemporary",contentControl:o}),i=>{this.setLoadedProperty("temporary",H(i,r));});}#n(t,e){let o=this.#i(),r=m.promised(this.context,t,false);return this.read(t,()=>({op:"getContentControlRange",contentControl:o,location:e}),i=>{r.hydrateAddress({kind:"span",span:x(i,t)});}),r}#r(t,e){let o=this.#i();this.command(t,()=>({op:"setContentControlProperties",contentControl:o,...e}));}#s(t,e,o){(typeof t!="boolean"||typeof e!="boolean")&&a({code:"InvalidArgument",target:o});let r=t&&e?"sdtContentLocked":t?"sdtLocked":e?"contentLocked":"unlocked",i=this.#i();this.command(o,()=>({op:"setContentControlProperties",contentControl:i,lock:r}));}#i(){return this.requireAddressable(),this.path.handle()}},w=class n extends y{#t;#e;static of(t,e,o,r){return new n(t,l.derived(e,o),r,()=>({op:"getContentControls",scope:r}))}constructor(t,e,o,r){super(t,e),this.#t=o,this.#e=r;}getFirst(){return this.edge("first","getFirst",false)}getFirstOrNullObject(){return this.edge("first","getFirstOrNullObject",true)}getById(t){let e=`${this.path.label}.getById`;Number.isInteger(t)||a({code:"InvalidArgument",target:e});let o=this.#t,r=V.promised(this.context,e,false);return this.enqueue({sort:"read",label:e,plan:()=>({op:"getContentControlById",scope:o,id:t}),settle:i=>{r.hydrateAddress({kind:"handle",handle:f(i,e)});}}),r}getByTag(t){let e=`${this.path.label}.getByTag`,o=Kt(t,e),r=this.#t;return new n(this.context,l.derived(e,this.path),r,()=>({op:"getContentControlsByTag",scope:r,tag:o}))}getByTitle(t){let e=`${this.path.label}.getByTitle`,o=Kt(t,e),r=this.#t;return new n(this.context,l.derived(e,this.path),r,()=>({op:"getContentControlsByTitle",scope:r,title:o}))}listing(){return this.#e()}itemAt(t,e){return V.at(this.context,t,e)}promised(t,e){return V.promised(this.context,t,e)}};function jt(n,t){return (typeof n!="string"||n.length>Zt)&&a({code:"InvalidArgument",target:t}),n}function Kt(n,t){let e=jt(n,t);return e.length===0&&a({code:"InvalidArgument",target:t}),e}function ve(n,t){switch(n){case "Whole":return "whole";case "Content":return "content";case "Start":return "start";case "End":return "end";case "Before":return "before";case "After":return "after";default:return a({code:"InvalidArgument",target:t})}}function Oe(n,t){(typeof n!="object"||n===null)&&a({code:"InvalidArgument",target:t});let e=n;if(e.kind==="text"||e.kind==="listItem"){let o=e.kind==="text"?e.text:e.value;return (typeof o!="string"||o.length>Zt)&&a({code:"InvalidArgument",target:t}),e.kind==="text"?{kind:"text",text:o}:{kind:"listItem",value:o}}if(e.kind==="checkbox")return typeof e.checked!="boolean"&&a({code:"InvalidArgument",target:t}),{kind:"checkbox",checked:e.checked};if(e.kind==="date")return (typeof e.iso!="string"||e.iso.length>64)&&a({code:"InvalidArgument",target:t}),{kind:"date",iso:e.iso};a({code:"InvalidArgument",target:t});}var I=class n extends p{#t;#e;#o;#n;#r;#s;static main(t,e){return new n(t,l.of(e,it(t).roots().body))}static promisedStory(t,e){return new n(t,l.pending(e))}hydrateAddress(t){t.kind==="handle"?this.path.resolveTo(t.handle):this.path.resolveNull();}constructor(t,e){super(t,e);}get text(){return this.loadedProperty("text")}get paragraphs(){return this.#t??=this.paragraphsUnder(`${this.path.label}.paragraphs`),this.#t}get bookmarks(){let t=this.#a();return this.#e??=B.of(this.context,`${this.path.label}.bookmarks`,this.path,()=>({op:"getBookmarks",scope:{body:t}})),this.#e}get font(){return this.#o??=S.of(this.context,`${this.path.label}.font`,this.path,"body"),this.#o}paragraphsUnder(t){return v.of(this.context,t,this.path)}get style(){return this.loadedProperty("style")}set style(t){let e=`${this.path.label}.style`,o=K(t,e);this.requireAddressable(),this.command("style",()=>({op:"setStyle",span:q(this.path,"body"),name:o}));}get lists(){return this.#n??=Q.of(this.context,`${this.path.label}.lists`,this.path,this.#a()),this.#n}get contentControls(){return this.#r??=w.of(this.context,`${this.path.label}.contentControls`,this.path,{body:this.#a()}),this.#r}getComments(){let t=`${this.path.label}.getComments`,e=this.#a();return $.of(this.context,t,this.path,()=>({op:"getComments",scope:{body:e}}))}get revisions(){return this.#s??=D.of(this.context,`${this.path.label}.revisions`,this.path,this.#a(),this.internals.roots().document),this.#s}search(t,e){let o=`${this.path.label}.search`;typeof t!="string"&&a({code:"InvalidArgument",target:o});let r=vt(e,o),i=this.#a();return L.of(this.context,o,this.path,()=>({op:"search",scope:{body:i},text:t,...r===void 0?{}:{options:r}}))}clear(){let t=this.#a();this.commandDiscarding("clear",()=>({op:"replaceSpan",span:{body:t},text:""}));}insertText(t,e){let o=`${this.path.label}.insertText`,r=C(t,o),i=Ft(e,o),s=this.#a(),d=m.promised(this.context,o,false);return this.commandAnswering(o,()=>i==="Replace"?{op:"replaceSpan",span:{body:s},text:r}:{op:"insertText",at:{body:s,at:i==="Start"?"start":"end"},text:r},c=>{d.hydrateAddress({kind:"span",span:x(c,o)});}),d}insertParagraph(t,e){let o=`${this.path.label}.insertParagraph`,r=C(t,o),i=Ht(e,o),s=this.#a(),d=O.promised(this.context,o,false);return this.commandAnswering(o,()=>({op:"insertParagraph",anchor:{body:s,at:i==="Start"?"first":"last"},where:i==="Start"?"before":"after",text:r}),c=>{c.kind!=="handle"&&a({code:"GeneralException",target:o}),d.hydrateAddress({kind:"handle",handle:c.handle});}),d}onLoad(t){let e=this.selection(t,["text","style"]);if(e.includes("text")){let o=this.#a();this.loadTextInto("text",()=>({op:"getText",target:o}));}e.includes("style")&&this.#i();}#i(){let t=`${this.path.label}.style`;this.requireAddressable(),this.read(t,()=>({op:"getStyle",span:q(this.path,"body")}),e=>{this.setLoadedProperty("style",at(e,t));});}#a(){return this.requireAddressable(),this.path.handle()}};function Re(n){return n==="endnote"?"Endnote":"Footnote"}var _=class n extends p{#t;static at(t,e,o){return o.kind!=="handle"&&a({code:"InvalidObjectPath",target:e}),new n(t,l.of(e,o.handle),false)}static promised(t,e,o){return new n(t,l.pending(e),o)}constructor(t,e,o){super(t,e,{nullable:o});}hydrateAddress(t){t.kind==="handle"?this.path.resolveTo(t.handle):this.path.resolveNull();}hydrateNull(){this.path.resolveNull();}get type(){return this.loadedProperty("type")}get text(){return this.loadedProperty("text")}get body(){if(this.#t)return this.#t;let t=`${this.path.label}.body`,e=this.#e(),o=I.promisedStory(this.context,t);return this.read(t,()=>({op:"getNoteBody",note:e}),r=>{o.hydrateAddress({kind:"handle",handle:f(r,t)});}),this.#t=o,o}delete(){let t=this.#e();this.command("delete",()=>({op:"deleteNote",note:t}));}getNext(){let t=`${this.path.label}.getNext`,e=this.#e(),o=n.promised(this.context,t,false),r=this.internals.roots().document,i=`${t}.type`,s="footnote";return this.read(i,()=>({op:"getNoteKind",note:e}),d=>{s=b(d,i)==="endnote"?"endnote":"footnote";}),this.read(t,()=>({op:"getNotes",document:r,noteKind:s}),d=>{let c=P(d,t),g=c.findIndex(ht=>ht.ref===e.ref),k=g<0?void 0:c[g+1];k||a({code:"ItemNotFound",target:t}),o.hydrateAddress({kind:"handle",handle:k});}),o}onLoad(t){let e=this.selection(t,["text","type"]);if(e.includes("text")){let o=this.#e();this.loadTextInto("text",()=>({op:"getNoteText",note:o}));}if(e.includes("type")){let o=`${this.path.label}.type`,r=this.#e();this.read(o,()=>({op:"getNoteKind",note:r}),i=>{this.setLoadedProperty("type",Re(b(i,o)));});}}#e(){return this.requireAddressable(),this.path.handle()}},W=class n extends y{#t;static of(t,e,o,r){return new n(t,l.derived(e,o),r)}constructor(t,e,o){super(t,e),this.#t=o;}getFirst(){return this.edge("first","getFirst",false)}listing(){return this.#t()}itemAt(t,e){return _.at(this.context,t,e)}promised(t,e){return _.promised(this.context,t,e)}};var Pe=Object.freeze({Primary:"default",FirstPage:"first",EvenPages:"even"}),Ie=["pageWidth","pageHeight","orientation","topMargin","rightMargin","bottomMargin","leftMargin"],pt=class n extends p{#t;static of(t,e,o){return new n(t,l.derived(e,o))}constructor(t,e){super(t,e);}get pageWidth(){return this.loadedProperty("pageWidth")}set pageWidth(t){this.#e("pageWidth",tt(t,`${this.path.label}.pageWidth`));}get pageHeight(){return this.loadedProperty("pageHeight")}set pageHeight(t){this.#e("pageHeight",tt(t,`${this.path.label}.pageHeight`));}get orientation(){return this.loadedProperty("orientation")}set orientation(t){let e=`${this.path.label}.orientation`;t!=="Portrait"&&t!=="Landscape"&&a({code:"InvalidArgument",target:e}),this.#e("orientation",t==="Portrait"?"portrait":"landscape");}get topMargin(){return this.loadedProperty("topMargin")}set topMargin(t){this.#e("topMargin",tt(t,`${this.path.label}.topMargin`));}get bottomMargin(){return this.loadedProperty("bottomMargin")}set bottomMargin(t){this.#e("bottomMargin",tt(t,`${this.path.label}.bottomMargin`));}get leftMargin(){return this.loadedProperty("leftMargin")}set leftMargin(t){this.#e("leftMargin",tt(t,`${this.path.label}.leftMargin`));}get rightMargin(){return this.loadedProperty("rightMargin")}set rightMargin(t){this.#e("rightMargin",tt(t,`${this.path.label}.rightMargin`));}onLoad(t){let e=this.selection(t,Ie);if(e.length===0)return;let o=`${this.path.label}.pageSetup`,r=this.#o();this.read(o,()=>({op:"getPageSetup",section:r}),i=>{let s=St(i,o);for(let d of e)this.setLoadedProperty(d,d==="orientation"?s.orientation==="landscape"?"Landscape":"Portrait":s[d]);});}#e(t,e){if(this.requireAddressable(),this.#t){this.#t[t]=e;return}let o={[t]:e};this.#t=o;let r=this.#o(),i=`${this.path.label}.${t}`;this.commandAnswering(`${this.path.label}.pageSetup`,()=>(this.#t=void 0,{op:"setPageSetup",section:r,setup:o}),s=>{A(s,i);});}#o(){this.requireAddressable();let t=this.path.address();return t.kind!=="handle"&&a({code:"InvalidObjectPath",target:this.path.label}),t.handle}},et=class n extends p{#t;#e;static at(t,e,o){return o.kind!=="handle"&&a({code:"InvalidObjectPath",target:e}),new n(t,l.of(e,o.handle),false)}static promised(t,e,o){return new n(t,l.pending(e),o)}constructor(t,e,o){super(t,e,{nullable:o});}hydrateAddress(t){t.kind==="handle"?this.path.resolveTo(t.handle):this.path.resolveNull();}hydrateNull(){this.path.resolveNull();}get body(){return this.#e??=I.main(this.context,`${this.path.label}.body`),this.#e}get pageSetup(){return this.#t??=pt.of(this.context,`${this.path.label}.pageSetup`,this.path),this.#t}getHeader(t){return this.#o("header",t,"getHeader")}getFooter(t){return this.#o("footer",t,"getFooter")}getNext(){let t=`${this.path.label}.getNext`,e=this.#n(),o=n.promised(this.context,t,false),r=this.internals.roots().document;return this.read(t,()=>({op:"getSections",document:r}),i=>{let s=P(i,t),d=s.findIndex(g=>g.ref===e.ref),c=d<0?void 0:s[d+1];c||a({code:"ItemNotFound",target:t}),o.hydrateAddress({kind:"handle",handle:c});}),o}onLoad(t){this.selection(t,[]);}#o(t,e,o){let r=`${this.path.label}.${o}`,i=Pe[e];i===void 0&&a({code:"InvalidArgument",target:r});let s=this.#n(),d=I.promisedStory(this.context,r);return this.read(r,()=>({op:"getFurniture",section:s,kind:t,variant:i}),c=>{d.hydrateAddress({kind:"handle",handle:f(c,r)});}),d}#n(){return this.requireAddressable(),this.path.handle()}},ot=class n extends y{#t;static of(t,e,o,r){return new n(t,l.derived(e,o),r)}constructor(t,e,o){super(t,e),this.#t=o;}getFirst(){return this.edge("first","getFirst",false)}listing(){return this.#t()}itemAt(t,e){return et.at(this.context,t,e)}promised(t,e){return et.promised(this.context,t,e)}};function tt(n,t){return (typeof n!="number"||!Number.isFinite(n)||n<0)&&a({code:"InvalidArgument",target:t}),n}var nt=class n extends p{#t;#e;#o;#n;#r;#s;#i;#a;static open(t){return new n(t)}constructor(t){super(t,l.of("document",it(t).roots().document));}get body(){return this.#t??=I.main(this.context,"document.body"),this.#t}get paragraphs(){return this.#e??=this.body.paragraphsUnder("document.paragraphs"),this.#e}get sections(){let t=this.path.handle();return this.#o??=ot.of(this.context,"document.sections",this.path,()=>({op:"getSections",document:t})),this.#o}get contentControls(){return this.#s??=w.of(this.context,"document.contentControls",this.path,{body:this.internals.roots().body}),this.#s}get comments(){return this.#n??=$.of(this.context,"document.comments",this.path,()=>({op:"getComments",scope:{body:this.internals.roots().body}})),this.#n}get revisions(){return this.#r??=D.of(this.context,"document.revisions",this.path,this.internals.roots().body,this.path.handle()),this.#r}get footnotes(){let t=this.path.handle();return this.#i??=W.of(this.context,"document.footnotes",this.path,()=>({op:"getNotes",document:t,noteKind:"footnote"})),this.#i}get endnotes(){let t=this.path.handle();return this.#a??=W.of(this.context,"document.endnotes",this.path,()=>({op:"getNotes",document:t,noteKind:"endnote"})),this.#a}onLoad(t){this.selection(t,[]);}};function Ot(n){let t=n.host,e=Object.freeze({...t.capabilities,save:n.save&&t.capabilities.save}),o=typeof n.author=="string"&&n.author.trim().length>0?n.author:void 0,r=false,i=null,s=h=>{r&&a({code:"RuntimeDisposed",...h===void 0?{}:{target:h}});},d=()=>{if(i)return i;s("document");let h=Yt(t.execute({operations:[{op:"getDocument"}]}),"document"),E=Yt(t.execute({operations:[{op:"getBody",document:h}]}),"document.body");return i={document:h,body:E},i},c={host:t,capabilities:e,...o===void 0?{}:{author:o},id:{},roots:d,assertLive:s,openDocument:h=>nt.open(h)};try{d();}catch{i=null;}async function g(h,E){s();let z=typeof h=="function"?h:E,rt=typeof h=="function"?[]:Array.isArray(h)?h:[h];typeof z!="function"&&a({code:"InvalidArgument",target:"run"});let{context:Rt,adopt:ut,finish:te}=dt.begin(c);try{return ut(rt),await z(Rt)}finally{te();}}let k={capabilities:e,run:g,dispose(){r||(r=true,i=null,t.dispose());}};return n.save?{...k,async save(){s("save"),e.save||a({code:"NotSupported",target:"save"});let h=t.save();if(!h.ok)throw bt(h.error,{target:"save"});return h.bytes}}:k}function Yt(n,t){let e=n.results[0];if(e?.status==="error")throw bt(e.error,{target:t});if(e?.status!=="ok")throw new u({code:"GeneralException",target:t});return f(e.value,t)}function Jt(n,t={}){return Ot({host:editor.createBrowserAutomationHost(n),save:false,...t.author===void 0?{}:{author:t.author}})}async function _t(n,t={}){let e=automation.createServerAutomationHost(n,{...t.limits===void 0?{}:{limits:t.limits}});return e.ok||a({code:"InvalidArgument",target:"createServer"}),Ot({host:e.host,save:true,...t.author===void 0?{}:{author:t.author}})}var Nr=Object.freeze({createBrowser:Jt,createServer:_t});exports.Body=I;exports.Bookmark=J;exports.BookmarkCollection=B;exports.ClientObject=T;exports.ClientResult=Pt;exports.Comment=N;exports.CommentCollection=$;exports.CommentReply=M;exports.CommentReplyCollection=ct;exports.ContentControl=V;exports.ContentControlCollection=w;exports.Document=nt;exports.DocxEditor=Nr;exports.DocxEditorError=u;exports.Font=S;exports.List=j;exports.ListCollection=Q;exports.ListItem=X;exports.NoteItem=_;exports.NoteItemCollection=W;exports.PageSetup=pt;exports.Paragraph=O;exports.ParagraphCollection=v;exports.Range=m;exports.RangeCollection=L;exports.RequestContext=dt;exports.Revision=Y;exports.RevisionCollection=D;exports.Section=et;exports.SectionCollection=ot;exports.TrackedObjects=st;exports.isDocxEditorError=ee;