@docx-editor.dev/editor-api 2.10.0 → 2.12.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/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import {createServerAutomationHost}from'@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 s(n){throw new u(n)}var B=Symbol("docx-editor.runtime.internals"),mt=Symbol("docx-editor.runtime.release"),gt=Symbol("docx-editor.runtime.rebind");function H(n){return n[B]}var oe=new Set(["select","expand","top","skip"]),ne=/^[A-Za-z][A-Za-z0-9]*$/;function wt(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):s({code:"InvalidArgument",target:t}),o=[];for(let r of e)(typeof r!="string"||!ne.test(r))&&s({code:"InvalidArgument",target:t}),o.includes(r)||o.push(r);return o.length===0&&s({code:"InvalidArgument",target:t}),o}function Tt(n,t){return (typeof n!="number"||!Number.isInteger(n)||n<0)&&s({code:"InvalidArgument",target:t}),n}function re(n,t){n===void 0||Array.isArray(n)&&n.length===0||s({code:"InvalidArgument",target:t});}function Et(n,t){if(n===void 0)return {select:[]};if(typeof n=="string"||Array.isArray(n))return {select:wt(n,t)};(typeof n!="object"||n===null)&&s({code:"InvalidArgument",target:t});let e=n;for(let o of Object.keys(e))oe.has(o)||s({code:"InvalidArgument",target:`${t}.${o}`});return re(e.expand,`${t}.expand`),{select:wt(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[B],this.#o=e,this.#n=o.nullable===true,this.#e.register(this);}get context(){return this.#t}get isNullObject(){return this.#o.isReleased&&s({code:"InvalidObjectPath",target:this.#o.label}),this.#n?(this.#o.isPending&&s({code:"PropertyNotLoaded",target:`${this.#o.label}.isNullObject`}),this.#o.isNull):false}load(t){return this.requireAddressable(),this.onLoad(Et(t,this.#o.label)),this}get path(){return this.#o}get internals(){return this.#e}handle(){return this.#o.handle()}requireAddressable(){this.#o.isAddressable||s({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)&&s({code:"InvalidObjectPath",target:this.#o.label}),this.#r.has(t)||s({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[B];}};var Ot=class n{#t=false;#e;#o;constructor(t){this.#o=t;}get value(){return this.#t||s({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 b(n,t){if(n.kind!=="text")throw O(t);return n.text}function f(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 x(n,t){if(n.kind!=="span")throw O(t);return n.span}function ft(n,t){if(n.kind!=="spans")throw O(t);return n.spans}function Pt(n,t){if(n.kind!=="font")throw O(t);return n.font}function kt(n,t){if(n.kind!=="paragraphFormat")throw O(t);return n.format}function st(n,t){if(n.kind!=="style")throw O(t);return n.name}function yt(n,t){if(n.kind!=="number")throw O(t);return n.value}function M(n,t){if(n.kind!=="flag")throw O(t);return n.value}function It(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;s({code:"InvalidObjectPath",target:this.label});}handle(){let t=this.address();return t.kind!=="handle"&&s({code:"InvalidObjectPath",target:this.label}),t.handle}span(){let t=this.address();return t.kind!=="span"&&s({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 qt(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","unsupported-revision":"NotImplemented","ambiguous-document":"GeneralException","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 Nt(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 $t(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 Dt(n,t){if(Array.isArray(n)){for(let e of n)t(e);return}t(n);}var at=class{#t;#e;constructor(t,e){this.#t=t,this.#e=e;}add(t){this.#t.assertUsable(),Dt(t,e=>{this.#o(e),this.#t.track(e);});}remove(t){this.#t.assertUsable(),Dt(t,e=>{this.#o(e),this.#t.untrack(e);});}#o(t){this.#e(t)||s({code:"InvalidObjectPath"});}};var dt=class n{#t;#e=new xt;#o=new Set;#n=new Set;#r;#a;#i;#s=false;#d=null;constructor(t){this.#t=t,this.#r={host:t.host,capabilities:t.capabilities,...t.author===void 0?{}:{author:t.author},revisionTextView:t.revisionTextView,queue:this.#e,session:t.id,roots:()=>t.roots(),assertUsable:e=>{this.#t.assertLive(e),this.#s&&s({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 at(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.#a}async sync(){this.#r.assertUsable();let t=this.#e.take();if(t.length===0)return;let e=qt(t),r=e.hasWrite&&this.#d!==null?this.#d:void 0,i={operations:e.operations,...r===void 0?{}:{expectedRevision:r}},a=this.#t.host.execute(i);if(!a.ok)throw Nt(a,t,r);$t(t,a),(e.hasRead||e.hasWrite)&&(this.#d=a.revision);}get[B](){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[B];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.#s){this.#s=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)||s({code:"InvalidArgument",target:`${e}.${o}`});return n.select}var Q=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:a=>{this.setLoadedProperty("items",this.#n(a,o,r,i));}});}edge(t,e,o){let r=`${this.path.label}.${e}()`,i=this.promised(r,o),a=this.listing();if(!a){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:()=>a,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:a}=t,d=this.size(e,r);if(d===0){i||s({code:"ItemNotFound",target:r}),a.hydrateNull();return}let c=this.addressAt(e,r,o==="first"?0:d-1);c||s({code:"ItemNotFound",target:r}),a.hydrateAddress(c);}#n(t,e,o,r){let i=this.size(t,e),a=r===void 0?i:Math.min(i,o+r),d=[];for(let c=o;c<a;c+=1){let g=this.addressAt(t,e,c);g&&d.push(this.itemAt(`${e}[${String(c)}]`,g));}return d}},y=class extends Q{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 se=["Replace","Start","End"],ae=["Start","End"],de=["Replace","Start","End"],le=["Before","After"],ce=["Replace","Start","End","Before","After"],pe=["Select","Start","End"];function X(n,t,e){return (typeof n!="string"||!t.includes(n))&&s({code:"InvalidArgument",target:e}),n}var Ft=(n,t)=>X(n,se,t),Bt=(n,t)=>X(n,ae,t),Ht=(n,t)=>X(n,de,t),Mt=(n,t)=>X(n,le,t),St=(n,t)=>X(n,ce,t),At=(n,t)=>n===void 0?"Select":X(n,pe,t);function C(n,t){return typeof n!="string"&&s({code:"InvalidArgument",target:t}),/[\r\n\v\f\u2028\u2029]/.test(n)&&s({code:"InvalidArgument",target:t}),n}var p=class extends T{revisionTextView(){return H(this.context).revisionTextView}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,L=class n extends p{#t;static at(t,e,o){return o.kind!=="handle"&&s({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=Vt(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"&&s({code:"InvalidArgument",target:o});let i=this.#e(),a=R.promised(this.context,o,false);return this.commandAnswering(o,()=>({op:"insertListParagraph",list:i,where:e==="Start"||e==="Before"?"start":"end",text:r}),d=>{a.hydrateAddress({kind:"handle",handle:f(d,o)});}),a}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()}},K=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=L.promised(this.context,e,false);return this.enqueue({sort:"read",label:e,plan:()=>({op:"getListById",body:r,id:o}),settle:a=>{i.hydrateAddress({kind:"handle",handle:f(a,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)}},Z=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=Vt(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"&&s({code:"InvalidObjectPath",target:this.path.label}),t.handle}};function Vt(n,t){return (!Number.isInteger(n)||n<0||n>he)&&s({code:"InvalidArgument",target:t}),n}function ue(n,t){return (!Number.isInteger(n)||n<=0)&&s({code:"InvalidArgument",target:t}),n}function E(n,t){let e=n.address();return t==="span"?(e.kind!=="span"&&s({code:"InvalidObjectPath",target:n.label}),{start:e.span.start,end:e.span.end}):(e.kind!=="handle"&&s({code:"InvalidObjectPath",target:n.label}),t==="body"?{body:e.handle}:{paragraph:e.handle})}function Y(n,t){return (typeof n!="string"||n.trim().length===0||n.length>255)&&s({code:"InvalidArgument",target:t}),n}var me=["bold","italic","color","name","size"],I=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",Wt(t,`${this.path.label}.bold`));}get italic(){return this.loadedProperty("italic")}set italic(t){this.#o("italic",Wt(t,`${this.path.label}.italic`));}get color(){return this.loadedProperty("color")}set color(t){this.#o("color",zt(t,`${this.path.label}.color`));}get name(){return this.loadedProperty("name")}set name(t){this.#o("name",zt(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=Pt(r,o);for(let a of e)this.setLoadedProperty(a,i[a]);});}#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 Wt(n,t){return typeof n!="boolean"&&s({code:"InvalidArgument",target:t}),n}function ge(n,t){return (typeof n!="number"||!Number.isFinite(n))&&s({code:"InvalidArgument",target:t}),n}function zt(n,t){return (typeof n!="string"||n.length===0)&&s({code:"InvalidArgument",target:t}),n}var fe=16,R=class n extends p{#t;#e;#o;#n;static at(t,e,o){return o.kind!=="handle"&&s({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",Y(t,`${this.path.label}.style`));}get font(){return this.#t??=I.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",J(t,`${this.path.label}.firstLineIndent`));}get leftIndent(){return this.loadedProperty("leftIndent")}set leftIndent(t){this.#r("leftIndent",J(t,`${this.path.label}.leftIndent`));}get rightIndent(){return this.loadedProperty("rightIndent")}set rightIndent(t){this.#r("rightIndent",J(t,`${this.path.label}.rightIndent`));}get lineSpacing(){return this.loadedProperty("lineSpacing")}set lineSpacing(t){this.#r("lineSpacing",J(t,`${this.path.label}.lineSpacing`));}get spaceBefore(){return this.loadedProperty("spaceBefore")}set spaceBefore(t){this.#r("spaceBefore",J(t,`${this.path.label}.spaceBefore`));}get spaceAfter(){return this.loadedProperty("spaceAfter")}set spaceAfter(t){this.#r("spaceAfter",J(t,`${this.path.label}.spaceAfter`));}get list(){return this.#e??=this.#a(`${this.path.label}.list`),this.#e}get listItem(){return this.#o??=Z.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=Ht(e,o),a=this.#i(),d=m.promised(this.context,o,false);return this.commandAnswering(o,()=>i==="Replace"?{op:"replaceSpan",span:{paragraph:a},text:r}:{op:"insertText",at:{paragraph:a,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=Mt(e,o),a=this.#i(),d=n.promised(this.context,o,false);return this.commandAnswering(o,()=>({op:"insertParagraph",anchor:{paragraph:a},where:i==="Before"?"before":"after",text:r}),c=>{c.kind!=="handle"&&s({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),a=Ut(e,`${r}.trimDelimiters`),d=Ut(o,`${r}.trimSpacing`),c=this.#i(),g=S.answered(this.context,r,this.path);return this.commandAnswering(r,()=>({op:"splitParagraph",paragraph:c,delimiters:i,...a?{trimDelimiters:true}:{},...d?{trimSpacing:true}:{}}),j=>{g.fill(j,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,projection:this.revisionTextView()})),e.includes("uniqueLocalId")&&this.loadTextInto("uniqueLocalId",()=>({op:"getParagraphId",paragraph:o}));let r=Gt.filter(a=>e.includes(a));if(r.length===0)return;let i=`${this.path.label}.paragraphFormat`;this.read(i,()=>({op:"getParagraphFormat",paragraph:{paragraph:o}}),a=>{let d=kt(a,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}),a=>{A(a,i);});}#a(t){let e=this.#i(),o=L.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)||s({code:"InvalidArgument",target:t}),n}function J(n,t){return (typeof n!="number"||!Number.isFinite(n))&&s({code:"InvalidArgument",target:t}),n}function xe(n,t){(!Array.isArray(n)||n.length===0||n.length>fe)&&s({code:"InvalidArgument",target:t});for(let e of n)(typeof e!="string"||e.length===0)&&s({code:"InvalidArgument",target:t});return [...n]}function Ut(n,t){return n!==void 0&&typeof n!="boolean"&&s({code:"InvalidArgument",target:t}),n===true}var v=class n extends Q{#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)}},S=class n extends Q{#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 Qt(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 a=Number(t[4]),d=Number(t[5]),c=Number(t[6]);if(a>23||d>59||c>59)return null;let g=t[7],j=g===void 0?0:Number(g.padEnd(3,"0").slice(0,3));if(Number.isNaN(j))return null;let G=`${t[1]}-${t[2]}-${t[3]}T${t[4]}:${t[5]}:${t[6]}.${String(j).padStart(3,"0")}Z`,ht=Date.parse(G);if(Number.isNaN(ht))return null;let h=t[8];if(h==="Z")return new Date(ht);let F=Number(h.slice(1,3)),U=Number(h.slice(4,6));if(U>59||F>14||F===14&&U!==0)return null;let Rt=h[0]==="+"?1:-1,ut=new Date(ht-Rt*(F*36e5+U*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 a=`${this.path.label}.creationDate`;this.read(a,()=>({op:"getCommentDate",comment:r}),d=>{this.setLoadedProperty("creationDate",Qt(b(d,a)));});}if(!o.includes("resolved"))return;let i=`${this.path.label}.resolved`;this.read(i,()=>({op:"getCommentResolved",comment:r}),a=>{this.setLoadedProperty("resolved",M(a,i));});}commentHandle(){return this.requireAddressable(),this.path.handle()}},V=class n extends Ct{static at(t,e,o){return o.kind!=="handle"&&s({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 V.at(this.context,t,e)}promised(t,e){return V.promised(this.context,t,e)}},q=class n extends Ct{#t;static at(t,e,o){return o.kind!=="handle"&&s({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"&&s({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)&&s({code:"InvalidArgument",target:e});let o=this.internals.author;(typeof o!="string"||o.trim().length===0)&&s({code:"NotSupported",target:e});let r=this.commentHandle(),i=V.promised(this.context,e,false);return this.commandAnswering(e,()=>({op:"replyToComment",comment:r,text:t,author:o}),a=>{i.hydrateAddress({kind:"handle",handle:f(a,e)});}),i}onLoad(t){this.loadCommentFields(t,["resolved"]);}},N=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 q.at(this.context,t,e)}promised(t,e){return q.promised(this.context,t,e)}},_=class n extends p{static at(t,e,o){return o.kind!=="handle"&&s({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",Qt(b(i,r)));});}#t(){return this.requireAddressable(),this.path.handle()}},$=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;}acceptAll(){let t=this.#t;this.commandOn("acceptAll",()=>({op:"acceptAllRevisions",body:t}));}rejectAll(){let t=this.#t;this.commandOn("rejectAll",()=>({op:"rejectAllRevisions",body:t}));}listing(){return {op:"getRevisions",body:this.#t}}itemAt(t,e){return _.at(this.context,t,e)}promised(t,e){return _.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"&&s({code:"InvalidArgument",target:t});for(let[o,r]of Object.entries(n))Ce.has(o)||s({code:"InvalidArgument",target:`${t}.${o}`}),r!==void 0&&typeof r!="boolean"&&s({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"&&s({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??=I.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=Y(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)&&s({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??=D.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"&&s({code:"InvalidArgument",target:o});let r=vt(e,o),i=this.#n();return S.of(this.context,o,this.path,()=>({op:"search",scope:i,text:t,options:{...r??{},projection:this.revisionTextView()}}))}insertText(t,e){let o=`${this.path.label}.insertText`,r=C(t,o),i=St(e,o),a=this.#n(),d=n.promised(this.context,o,false);return this.commandAnswering(o,()=>i==="Replace"?{op:"replaceSpan",span:a,text:r}:{op:"insertText",at:i==="Start"||i==="Before"?a.start:a.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)&&s({code:"InvalidArgument",target:e});let o=this.internals.author;(typeof o!="string"||o.trim().length===0)&&s({code:"NotSupported",target:e});let r=this.#n(),i=q.promised(this.context,e,false);return this.commandAnswering(e,()=>({op:"insertComment",span:r,text:t,author:o}),a=>{a.kind!=="handle"&&s({code:"GeneralException",target:e}),i.hydrateAddress(a);}),i}insertParagraph(t,e){let o=`${this.path.label}.insertParagraph`,r=C(t,o),i=St(e,o);i!=="Before"&&i!=="After"&&s({code:"InvalidArgument",target:o});let a=this.#n(),d=i==="Before"?a.start.paragraph:a.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}),g=>{g.kind!=="handle"&&s({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||s({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,projection:this.revisionTextView()}),a=>{this.setLoadedProperty("text",b(a,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",st(r,o));});}#n(){return this.requireAddressable(),this.path.span()}};var tt=class n extends p{#t;static at(t,e,o){return o.kind!=="handle"&&s({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||s({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()}},D=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 tt.at(this.context,t,e)}promised(t,e){return tt.promised(this.context,t,e)}};var Kt=4096,W=class n extends p{#t=new Map;#e;#o;static at(t,e,o){return o.kind!=="handle"&&s({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.#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.#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=Re(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":s({code:"InvalidArgument",target:o}),a=this.#i(),d=m.promised(this.context,o,false);return this.commandAnswering(o,()=>({op:"insertContentControlText",contentControl:a,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"&&s({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}),a=>{this.setLoadedProperty("isBound",M(a,i));});}if(e.includes("text")&&this.loadTextInto("text",()=>({op:"getContentControlText",contentControl:o,projection:this.revisionTextView()})),e.includes("cannotDelete")||e.includes("cannotEdit")){let i=`${this.path.label}.lock`;this.read(i,()=>({op:"getContentControlLock",contentControl:o}),a=>{this.setLoadedProperty("lock",b(a,i));});}if(e.includes("placeholderShown")){let i=`${this.path.label}.placeholderShown`;this.read(i,()=>({op:"getContentControlPlaceholderShown",contentControl:o}),a=>{this.setLoadedProperty("placeholderShown",M(a,i));});}if(!e.includes("temporary"))return;let r=`${this.path.label}.temporary`;this.read(r,()=>({op:"getContentControlTemporary",contentControl:o}),i=>{this.setLoadedProperty("temporary",M(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}));}#a(t,e,o){(typeof t!="boolean"||typeof e!="boolean")&&s({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)||s({code:"InvalidArgument",target:e});let o=this.#t,r=W.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=Xt(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=Xt(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 W.at(this.context,t,e)}promised(t,e){return W.promised(this.context,t,e)}};function jt(n,t){return (typeof n!="string"||n.length>Kt)&&s({code:"InvalidArgument",target:t}),n}function Xt(n,t){let e=jt(n,t);return e.length===0&&s({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 s({code:"InvalidArgument",target:t})}}function Re(n,t){(typeof n!="object"||n===null)&&s({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>Kt)&&s({code:"InvalidArgument",target:t}),e.kind==="text"?{kind:"text",text:o}:{kind:"listItem",value:o}}if(e.kind==="checkbox")return typeof e.checked!="boolean"&&s({code:"InvalidArgument",target:t}),{kind:"checkbox",checked:e.checked};if(e.kind==="date")return (typeof e.iso!="string"||e.iso.length>64)&&s({code:"InvalidArgument",target:t}),{kind:"date",iso:e.iso};s({code:"InvalidArgument",target:t});}var k=class n extends p{#t;#e;#o;#n;#r;#a;static main(t,e){return new n(t,l.of(e,H(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.#s();return this.#e??=D.of(this.context,`${this.path.label}.bookmarks`,this.path,()=>({op:"getBookmarks",scope:{body:t}})),this.#e}get font(){return this.#o??=I.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=Y(t,e);this.requireAddressable(),this.command("style",()=>({op:"setStyle",span:E(this.path,"body"),name:o}));}get lists(){return this.#n??=K.of(this.context,`${this.path.label}.lists`,this.path,this.#s()),this.#n}get contentControls(){return this.#r??=w.of(this.context,`${this.path.label}.contentControls`,this.path,{body:this.#s()}),this.#r}getComments(){let t=`${this.path.label}.getComments`,e=this.#s();return N.of(this.context,t,this.path,()=>({op:"getComments",scope:{body:e}}))}get revisions(){return this.#a??=$.of(this.context,`${this.path.label}.revisions`,this.path,this.#s()),this.#a}search(t,e){let o=`${this.path.label}.search`;typeof t!="string"&&s({code:"InvalidArgument",target:o});let r=vt(e,o),i=this.#s();return S.of(this.context,o,this.path,()=>({op:"search",scope:{body:i},text:t,options:{...r??{},projection:this.revisionTextView()}}))}clear(){let t=this.#s();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),a=this.#s(),d=m.promised(this.context,o,false);return this.commandAnswering(o,()=>i==="Replace"?{op:"replaceSpan",span:{body:a},text:r}:{op:"insertText",at:{body:a,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=Bt(e,o),a=this.#s(),d=R.promised(this.context,o,false);return this.commandAnswering(o,()=>({op:"insertParagraph",anchor:{body:a,at:i==="Start"?"first":"last"},where:i==="Start"?"before":"after",text:r}),c=>{c.kind!=="handle"&&s({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.#s();this.loadTextInto("text",()=>({op:"getText",target:o,projection:this.revisionTextView()}));}e.includes("style")&&this.#i();}#i(){let t=`${this.path.label}.style`;this.requireAddressable(),this.read(t,()=>({op:"getStyle",span:E(this.path,"body")}),e=>{this.setLoadedProperty("style",st(e,t));});}#s(){return this.requireAddressable(),this.path.handle()}};function Oe(n){return n==="endnote"?"Endnote":"Footnote"}var et=class n extends p{#t;static at(t,e,o){return o.kind!=="handle"&&s({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=k.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`,a="footnote";return this.read(i,()=>({op:"getNoteKind",note:e}),d=>{a=b(d,i)==="endnote"?"endnote":"footnote";}),this.read(t,()=>({op:"getNotes",document:r,noteKind:a}),d=>{let c=P(d,t),g=c.findIndex(G=>G.ref===e.ref),j=g<0?void 0:c[g+1];j||s({code:"ItemNotFound",target:t}),o.hydrateAddress({kind:"handle",handle:j});}),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,projection:this.revisionTextView()}));}if(e.includes("type")){let o=`${this.path.label}.type`,r=this.#e();this.read(o,()=>({op:"getNoteKind",note:r}),i=>{this.setLoadedProperty("type",Oe(b(i,o)));});}}#e(){return this.requireAddressable(),this.path.handle()}},z=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)}};var Pe=Object.freeze({Primary:"default",FirstPage:"first",EvenPages:"even"}),ke=["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",ot(t,`${this.path.label}.pageWidth`));}get pageHeight(){return this.loadedProperty("pageHeight")}set pageHeight(t){this.#e("pageHeight",ot(t,`${this.path.label}.pageHeight`));}get orientation(){return this.loadedProperty("orientation")}set orientation(t){let e=`${this.path.label}.orientation`;t!=="Portrait"&&t!=="Landscape"&&s({code:"InvalidArgument",target:e}),this.#e("orientation",t==="Portrait"?"portrait":"landscape");}get topMargin(){return this.loadedProperty("topMargin")}set topMargin(t){this.#e("topMargin",ot(t,`${this.path.label}.topMargin`));}get bottomMargin(){return this.loadedProperty("bottomMargin")}set bottomMargin(t){this.#e("bottomMargin",ot(t,`${this.path.label}.bottomMargin`));}get leftMargin(){return this.loadedProperty("leftMargin")}set leftMargin(t){this.#e("leftMargin",ot(t,`${this.path.label}.leftMargin`));}get rightMargin(){return this.loadedProperty("rightMargin")}set rightMargin(t){this.#e("rightMargin",ot(t,`${this.path.label}.rightMargin`));}onLoad(t){let e=this.selection(t,ke);if(e.length===0)return;let o=`${this.path.label}.pageSetup`,r=this.#o();this.read(o,()=>({op:"getPageSetup",section:r}),i=>{let a=It(i,o);for(let d of e)this.setLoadedProperty(d,d==="orientation"?a.orientation==="landscape"?"Landscape":"Portrait":a[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}),a=>{A(a,i);});}#o(){this.requireAddressable();let t=this.path.address();return t.kind!=="handle"&&s({code:"InvalidObjectPath",target:this.path.label}),t.handle}},nt=class n extends p{#t;#e;static at(t,e,o){return o.kind!=="handle"&&s({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??=k.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 a=P(i,t),d=a.findIndex(g=>g.ref===e.ref),c=d<0?void 0:a[d+1];c||s({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&&s({code:"InvalidArgument",target:r});let a=this.#n(),d=k.promisedStory(this.context,r);return this.read(r,()=>({op:"getFurniture",section:a,kind:t,variant:i}),c=>{d.hydrateAddress({kind:"handle",handle:f(c,r)});}),d}#n(){return this.requireAddressable(),this.path.handle()}},rt=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 nt.at(this.context,t,e)}promised(t,e){return nt.promised(this.context,t,e)}};function ot(n,t){return (typeof n!="number"||!Number.isFinite(n)||n<0)&&s({code:"InvalidArgument",target:t}),n}var it=class n extends p{#t;#e;#o;#n;#r;#a;#i;#s;static open(t){return new n(t)}constructor(t){super(t,l.of("document",H(t).roots().document));}get body(){return this.#t??=k.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??=rt.of(this.context,"document.sections",this.path,()=>({op:"getSections",document:t})),this.#o}get contentControls(){return this.#a??=w.of(this.context,"document.contentControls",this.path,{body:this.internals.roots().body}),this.#a}get comments(){return this.#n??=N.of(this.context,"document.comments",this.path,()=>({op:"getComments",scope:{body:this.internals.roots().body}})),this.#n}get revisions(){return this.#r??=$.of(this.context,"document.revisions",this.path,this.internals.roots().body),this.#r}get footnotes(){let t=this.path.handle();return this.#i??=z.of(this.context,"document.footnotes",this.path,()=>({op:"getNotes",document:t,noteKind:"footnote"})),this.#i}get endnotes(){let t=this.path.handle();return this.#s??=z.of(this.context,"document.endnotes",this.path,()=>({op:"getNotes",document:t,noteKind:"endnote"})),this.#s}onLoad(t){this.selection(t,[]);}};function Yt(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=n.revisionTextView??"allMarkup";r!=="allMarkup"&&r!=="original"&&s({code:"InvalidArgument",target:"revisionTextView"});let i=false,a=null,d=h=>{i&&s({code:"RuntimeDisposed",...h===void 0?{}:{target:h}});},c=()=>{if(a)return a;d("document");let h=Zt(t.execute({operations:[{op:"getDocument"}]}),"document"),F=Zt(t.execute({operations:[{op:"getBody",document:h}]}),"document.body");return a={document:h,body:F},a},g={host:t,capabilities:e,...o===void 0?{}:{author:o},revisionTextView:r,id:{},roots:c,assertLive:d,openDocument:h=>it.open(h)};try{c();}catch{a=null;}async function j(h,F){d();let U=typeof h=="function"?h:F,Rt=typeof h=="function"?[]:Array.isArray(h)?h:[h];typeof U!="function"&&s({code:"InvalidArgument",target:"run"});let{context:ut,adopt:_t,finish:te}=dt.begin(g);try{return _t(Rt),await U(ut)}finally{te();}}let G={capabilities:e,run:j,dispose(){i||(i=true,a=null,t.dispose());}};return n.save?{...G,async save(){d("save"),e.save||s({code:"NotSupported",target:"save"});let h=t.save();if(!h.ok)throw bt(h.error,{target:"save"});return h.bytes}}:G}function Zt(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)}async function Jt(n,t={}){let e=createServerAutomationHost(n,{...t.limits===void 0?{}:{limits:t.limits}});return e.ok||s({code:"InvalidArgument",target:"createServer"}),Yt({host:e.host,save:true,...t.author===void 0?{}:{author:t.author},...t.revisionTextView===void 0?{}:{revisionTextView:t.revisionTextView}})}var Lr=Object.freeze({createServer:Jt});export{k as Body,tt as Bookmark,D as BookmarkCollection,T as ClientObject,Ot as ClientResult,q as Comment,N as CommentCollection,V as CommentReply,ct as CommentReplyCollection,W as ContentControl,w as ContentControlCollection,it as Document,Lr as DocxEditor,u as DocxEditorError,I as Font,L as List,K as ListCollection,Z as ListItem,et as NoteItem,z as NoteItemCollection,pt as PageSetup,R as Paragraph,v as ParagraphCollection,m as Range,S as RangeCollection,dt as RequestContext,_ as Revision,$ as RevisionCollection,nt as Section,rt as SectionCollection,at as TrackedObjects,ee as isDocxEditorError};
1
+ import {createServerAutomationHost}from'@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 oe(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 B=Symbol("docx-editor.runtime.internals"),mt=Symbol("docx-editor.runtime.release"),gt=Symbol("docx-editor.runtime.rebind");function H(n){return n[B]}var ne=new Set(["select","expand","top","skip"]),re=/^[A-Za-z][A-Za-z0-9]*$/;function Tt(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"||!re.test(r))&&a({code:"InvalidArgument",target:t}),o.includes(r)||o.push(r);return o.length===0&&a({code:"InvalidArgument",target:t}),o}function Et(n,t){return (typeof n!="number"||!Number.isInteger(n)||n<0)&&a({code:"InvalidArgument",target:t}),n}function ie(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:Tt(n,t)};(typeof n!="object"||n===null)&&a({code:"InvalidArgument",target:t});let e=n;for(let o of Object.keys(e))ne.has(o)||a({code:"InvalidArgument",target:`${t}.${o}`});return ie(e.expand,`${t}.expand`),{select:Tt(e.select,`${t}.select`),...e.top===void 0?{}:{top:Et(e.top,`${t}.top`)},...e.skip===void 0?{}:{skip:Et(e.skip,`${t}.skip`)}}}var T=class{#t;#e;#o;#n;#r=new Map;constructor(t,e,o={}){this.#t=t,this.#e=t[B],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[B];}};var Rt=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 y(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 Pt(n,t){if(n.kind!=="font")throw R(t);return n.font}function St(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 bt(n,t){if(n.kind!=="number")throw R(t);return n.value}function M(n,t){if(n.kind!=="flag")throw R(t);return n.value}function kt(n,t){if(n.kind!=="pageSetup")throw R(t);return n.setup}function C(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 ae=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","unsupported-revision":"NotImplemented","ambiguous-document":"GeneralException","conflicting-operations":"ConflictingChanges","document-unavailable":"DocumentUnavailable"});function yt(n,t={}){let e=ae[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 yt(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 Ft(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(),Ft(t,e=>{this.#o(e),this.#t.track(e);});}remove(t){this.#t.assertUsable(),Ft(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},revisionTextView:t.revisionTextView,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[B](){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[B];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 Q=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}},b=class extends Q{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 se=["Replace","Start","End"],de=["Start","End"],le=["Replace","Start","End"],ce=["Before","After"],pe=["Replace","Start","End","Before","After"],he=["Select","Start","End"];function X(n,t,e){return (typeof n!="string"||!t.includes(n))&&a({code:"InvalidArgument",target:e}),n}var Bt=(n,t)=>X(n,se,t),Ht=(n,t)=>X(n,de,t),Mt=(n,t)=>X(n,le,t),Vt=(n,t)=>X(n,ce,t),It=(n,t)=>X(n,pe,t),Ct=(n,t)=>n===void 0?"Select":X(n,he,t);function A(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{revisionTextView(){return H(this.context).revisionTextView}loadTextInto(t,e){let o=`${this.path.label}.${t}`;this.enqueue({sort:"read",label:o,plan:e,settle:r=>{this.setLoadedProperty(t,y(r,o));}});}command(t,e){let o=`${this.path.label}.${t}`;this.enqueue({sort:"write",label:o,plan:e,settle:r=>C(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 ue=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=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=A(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",bt(r,e));});}#e(){return this.requireAddressable(),this.path.handle()}},K=class n extends b{#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=me(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:f(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)}},Z=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=>{C(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",bt(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>ue)&&a({code:"InvalidArgument",target:t}),n}function me(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 Y(n,t){return (typeof n!="string"||n.trim().length===0||n.length>255)&&a({code:"InvalidArgument",target:t}),n}var ge=["bold","italic","color","name","size"],k=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",Ut(t,`${this.path.label}.bold`));}get italic(){return this.loadedProperty("italic")}set italic(t){this.#o("italic",Ut(t,`${this.path.label}.italic`));}get color(){return this.loadedProperty("color")}set color(t){this.#o("color",zt(t,`${this.path.label}.color`));}get name(){return this.loadedProperty("name")}set name(t){this.#o("name",zt(t,`${this.path.label}.name`));}get size(){return this.loadedProperty("size")}set size(t){this.#o("size",fe(t,`${this.path.label}.size`));}onLoad(t){let e=this.selection(t,ge);if(e.length===0)return;let o=`${this.path.label}.font`;this.read(o,()=>({op:"getFont",span:this.#n()}),r=>{let i=Pt(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=>{C(i,r);});}#n(){return this.requireAddressable(),E(this.path,this.#t)}};function Ut(n,t){return typeof n!="boolean"&&a({code:"InvalidArgument",target:t}),n}function fe(n,t){return (typeof n!="number"||!Number.isFinite(n))&&a({code:"InvalidArgument",target:t}),n}function zt(n,t){return (typeof n!="string"||n.length===0)&&a({code:"InvalidArgument",target:t}),n}var be=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",Y(t,`${this.path.label}.style`));}get font(){return this.#t??=k.of(this.context,`${this.path.label}.font`,this.path,"paragraph"),this.#t}get alignment(){return this.loadedProperty("alignment")}set alignment(t){this.#r("alignment",xe(t,`${this.path.label}.alignment`));}get firstLineIndent(){return this.loadedProperty("firstLineIndent")}set firstLineIndent(t){this.#r("firstLineIndent",J(t,`${this.path.label}.firstLineIndent`));}get leftIndent(){return this.loadedProperty("leftIndent")}set leftIndent(t){this.#r("leftIndent",J(t,`${this.path.label}.leftIndent`));}get rightIndent(){return this.loadedProperty("rightIndent")}set rightIndent(t){this.#r("rightIndent",J(t,`${this.path.label}.rightIndent`));}get lineSpacing(){return this.loadedProperty("lineSpacing")}set lineSpacing(t){this.#r("lineSpacing",J(t,`${this.path.label}.lineSpacing`));}get spaceBefore(){return this.loadedProperty("spaceBefore")}set spaceBefore(t){this.#r("spaceBefore",J(t,`${this.path.label}.spaceBefore`));}get spaceAfter(){return this.loadedProperty("spaceAfter")}set spaceAfter(t){this.#r("spaceAfter",J(t,`${this.path.label}.spaceAfter`));}get list(){return this.#e??=this.#s(`${this.path.label}.list`),this.#e}get listItem(){return this.#o??=Z.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=A(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=A(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=Ce(t,r),s=Qt(e,`${r}.trimDelimiters`),d=Qt(o,`${r}.trimSpacing`),c=this.#i(),g=I.answered(this.context,r,this.path);return this.commandAnswering(r,()=>({op:"splitParagraph",paragraph:c,delimiters:i,...s?{trimDelimiters:true}:{},...d?{trimSpacing:true}:{}}),j=>{g.fill(j,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,projection:this.revisionTextView()})),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=St(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=>{C(s,i);});}#s(t){let e=this.#i(),o=L.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 xe(n,t){return ye.includes(n)||a({code:"InvalidArgument",target:t}),n}function J(n,t){return (typeof n!="number"||!Number.isFinite(n))&&a({code:"InvalidArgument",target:t}),n}function Ce(n,t){(!Array.isArray(n)||n.length===0||n.length>be)&&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 Q{#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)}},I=class n extends Q{#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],j=g===void 0?0:Number(g.padEnd(3,"0").slice(0,3));if(Number.isNaN(j))return null;let z=`${t[1]}-${t[2]}-${t[3]}T${t[4]}:${t[5]}:${t[6]}.${String(j).padStart(3,"0")}Z`,ht=Date.parse(z);if(Number.isNaN(ht))return null;let h=t[8];if(h==="Z")return new Date(ht);let F=Number(h.slice(1,3)),G=Number(h.slice(4,6));if(G>59||F>14||F===14&&G!==0)return null;let Ot=h[0]==="+"?1:-1,ut=new Date(ht-Ot*(F*36e5+G*6e4));return Number.isNaN(ut.getTime())?null:ut}var At=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(y(d,s)));});}if(!o.includes("resolved"))return;let i=`${this.path.label}.resolved`;this.read(i,()=>({op:"getCommentResolved",comment:r}),s=>{this.setLoadedProperty("resolved",M(s,i));});}commentHandle(){return this.requireAddressable(),this.path.handle()}},V=class n extends At{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 b{#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 V.at(this.context,t,e)}promised(t,e){return V.promised(this.context,t,e)}},q=class n extends At{#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=>{C(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=V.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"]);}},N=class n extends b{#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 q.at(this.context,t,e)}promised(t,e){return q.promised(this.context,t,e)}},_=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(y(i,r)));});}#t(){return this.requireAddressable(),this.path.handle()}},$=class n extends b{#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;}acceptAll(){let t=this.#t;this.commandOn("acceptAll",()=>({op:"acceptAllRevisions",body:t}));}rejectAll(){let t=this.#t;this.commandOn("rejectAll",()=>({op:"rejectAllRevisions",body:t}));}listing(){return {op:"getRevisions",body:this.#t}}itemAt(t,e){return _.at(this.context,t,e)}promised(t,e){return _.promised(this.context,t,e)}commandOn(t,e){let o=`${this.path.label}.${t}`;this.enqueue({sort:"write",label:o,plan:e,settle:r=>{C(r,o);}});}};var ve=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))ve.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??=k.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=Y(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??=D.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 I.of(this.context,o,this.path,()=>({op:"search",scope:i,text:t,options:{...r??{},projection:this.revisionTextView()}}))}insertText(t,e){let o=`${this.path.label}.insertText`,r=A(t,o),i=It(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=q.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=A(t,o),i=It(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=Ct(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,projection:this.revisionTextView()}),s=>{this.setLoadedProperty("text",y(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",at(r,o));});}#n(){return this.requireAddressable(),this.path.span()}};var tt=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=Ct(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",y(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()}},D=class n extends b{#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 tt.at(this.context,t,e)}promised(t,e){return tt.promised(this.context,t,e)}};var Zt=4096,W=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=Oe(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=Re(t,e),r=this.#i();this.command("setValue",()=>({op:"setContentControlValue",contentControl:r,value:o}));}insertText(t,e){let o=`${this.path.label}.insertText`,r=A(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",M(s,i));});}if(e.includes("text")&&this.loadTextInto("text",()=>({op:"getContentControlText",contentControl:o,projection:this.revisionTextView()})),e.includes("cannotDelete")||e.includes("cannotEdit")){let i=`${this.path.label}.lock`;this.read(i,()=>({op:"getContentControlLock",contentControl:o}),s=>{this.setLoadedProperty("lock",y(s,i));});}if(e.includes("placeholderShown")){let i=`${this.path.label}.placeholderShown`;this.read(i,()=>({op:"getContentControlPlaceholderShown",contentControl:o}),s=>{this.setLoadedProperty("placeholderShown",M(s,i));});}if(!e.includes("temporary"))return;let r=`${this.path.label}.temporary`;this.read(r,()=>({op:"getContentControlTemporary",contentControl:o}),i=>{this.setLoadedProperty("temporary",M(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 b{#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=W.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 W.at(this.context,t,e)}promised(t,e){return W.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 Oe(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 Re(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 S=class n extends p{#t;#e;#o;#n;#r;#s;static main(t,e){return new n(t,l.of(e,H(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??=D.of(this.context,`${this.path.label}.bookmarks`,this.path,()=>({op:"getBookmarks",scope:{body:t}})),this.#e}get font(){return this.#o??=k.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=Y(t,e);this.requireAddressable(),this.command("style",()=>({op:"setStyle",span:E(this.path,"body"),name:o}));}get lists(){return this.#n??=K.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 N.of(this.context,t,this.path,()=>({op:"getComments",scope:{body:e}}))}get revisions(){return this.#s??=$.of(this.context,`${this.path.label}.revisions`,this.path,this.#a()),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 I.of(this.context,o,this.path,()=>({op:"search",scope:{body:i},text:t,options:{...r??{},projection:this.revisionTextView()}}))}clear(){let t=this.#a();this.commandDiscarding("clear",()=>({op:"replaceSpan",span:{body:t},text:""}));}insertText(t,e){let o=`${this.path.label}.insertText`,r=A(t,o),i=Bt(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=A(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,projection:this.revisionTextView()}));}e.includes("style")&&this.#i();}#i(){let t=`${this.path.label}.style`;this.requireAddressable(),this.read(t,()=>({op:"getStyle",span:E(this.path,"body")}),e=>{this.setLoadedProperty("style",at(e,t));});}#a(){return this.requireAddressable(),this.path.handle()}};function Pe(n){return n==="endnote"?"Endnote":"Footnote"}var et=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=S.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=y(d,i)==="endnote"?"endnote":"footnote";}),this.read(t,()=>({op:"getNotes",document:r,noteKind:s}),d=>{let c=P(d,t),g=c.findIndex(z=>z.ref===e.ref),j=g<0?void 0:c[g+1];j||a({code:"ItemNotFound",target:t}),o.hydrateAddress({kind:"handle",handle:j});}),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,projection:this.revisionTextView()}));}if(e.includes("type")){let o=`${this.path.label}.type`,r=this.#e();this.read(o,()=>({op:"getNoteKind",note:r}),i=>{this.setLoadedProperty("type",Pe(y(i,o)));});}}#e(){return this.requireAddressable(),this.path.handle()}},U=class n extends b{#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)}};var Se=Object.freeze({Primary:"default",FirstPage:"first",EvenPages:"even"}),ke=["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",ot(t,`${this.path.label}.pageWidth`));}get pageHeight(){return this.loadedProperty("pageHeight")}set pageHeight(t){this.#e("pageHeight",ot(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",ot(t,`${this.path.label}.topMargin`));}get bottomMargin(){return this.loadedProperty("bottomMargin")}set bottomMargin(t){this.#e("bottomMargin",ot(t,`${this.path.label}.bottomMargin`));}get leftMargin(){return this.loadedProperty("leftMargin")}set leftMargin(t){this.#e("leftMargin",ot(t,`${this.path.label}.leftMargin`));}get rightMargin(){return this.loadedProperty("rightMargin")}set rightMargin(t){this.#e("rightMargin",ot(t,`${this.path.label}.rightMargin`));}onLoad(t){let e=this.selection(t,ke);if(e.length===0)return;let o=`${this.path.label}.pageSetup`,r=this.#o();this.read(o,()=>({op:"getPageSetup",section:r}),i=>{let s=kt(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=>{C(s,i);});}#o(){this.requireAddressable();let t=this.path.address();return t.kind!=="handle"&&a({code:"InvalidObjectPath",target:this.path.label}),t.handle}},nt=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??=S.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=Se[e];i===void 0&&a({code:"InvalidArgument",target:r});let s=this.#n(),d=S.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()}},rt=class n extends b{#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 nt.at(this.context,t,e)}promised(t,e){return nt.promised(this.context,t,e)}};function ot(n,t){return (typeof n!="number"||!Number.isFinite(n)||n<0)&&a({code:"InvalidArgument",target:t}),n}var it=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",H(t).roots().document));}get body(){return this.#t??=S.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??=rt.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??=N.of(this.context,"document.comments",this.path,()=>({op:"getComments",scope:{body:this.internals.roots().body}})),this.#n}get revisions(){return this.#r??=$.of(this.context,"document.revisions",this.path,this.internals.roots().body),this.#r}get footnotes(){let t=this.path.handle();return this.#i??=U.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??=U.of(this.context,"document.endnotes",this.path,()=>({op:"getNotes",document:t,noteKind:"endnote"})),this.#a}onLoad(t){this.selection(t,[]);}};function Jt(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=n.revisionTextView??"allMarkup";r!=="allMarkup"&&r!=="original"&&a({code:"InvalidArgument",target:"revisionTextView"});let i=false,s=null,d=h=>{i&&a({code:"RuntimeDisposed",...h===void 0?{}:{target:h}});},c=()=>{if(s)return s;d("document");let h=Yt(t.execute({operations:[{op:"getDocument"}]}),"document"),F=Yt(t.execute({operations:[{op:"getBody",document:h}]}),"document.body");return s={document:h,body:F},s},g={host:t,capabilities:e,...o===void 0?{}:{author:o},revisionTextView:r,id:{},roots:c,assertLive:d,openDocument:h=>it.open(h)};try{c();}catch{s=null;}async function j(h,F){d();let G=typeof h=="function"?h:F,Ot=typeof h=="function"?[]:Array.isArray(h)?h:[h];typeof G!="function"&&a({code:"InvalidArgument",target:"run"});let{context:ut,adopt:te,finish:ee}=dt.begin(g);try{return te(Ot),await G(ut)}finally{ee();}}let z={capabilities:e,run:j,dispose(){i||(i=true,s=null,t.dispose());}};return n.save?{...z,async save(){d("save"),e.save||a({code:"NotSupported",target:"save"});let h=t.save();if(!h.ok)throw yt(h.error,{target:"save"});return h.bytes}}:z}function Yt(n,t){let e=n.results[0];if(e?.status==="error")throw yt(e.error,{target:t});if(e?.status!=="ok")throw new u({code:"GeneralException",target:t});return f(e.value,t)}function je(n){if(n){for(let t of n)if(t.collaboration)return t.collaboration}}async function Lt(n,t={}){let e=je(t.modules),o=createServerAutomationHost(n,{...t.limits===void 0?{}:{limits:t.limits},...e===void 0?{}:{collaborationModel:e}});return o.ok||a({code:"InvalidArgument",target:"createServer"}),Jt({host:o.host,save:true,...t.author===void 0?{}:{author:t.author},...t.revisionTextView===void 0?{}:{revisionTextView:t.revisionTextView}})}function _t(n,t,e={}){return Lt(n,{...e,modules:[...e.modules??[],{id:"collaboration",collaboration:{session:t}}]})}var Tr=Object.freeze({createServer:Lt,createCollaborative:_t});export{S as Body,tt as Bookmark,D as BookmarkCollection,T as ClientObject,Rt as ClientResult,q as Comment,N as CommentCollection,V as CommentReply,ct as CommentReplyCollection,W as ContentControl,w as ContentControlCollection,it as Document,Tr as DocxEditor,u as DocxEditorError,k as Font,L as List,K as ListCollection,Z as ListItem,et as NoteItem,U as NoteItemCollection,pt as PageSetup,O as Paragraph,v as ParagraphCollection,m as Range,I as RangeCollection,dt as RequestContext,_ as Revision,$ as RevisionCollection,nt as Section,rt as SectionCollection,st as TrackedObjects,oe as isDocxEditorError};
@@ -1,3 +1,4 @@
1
+ import { CollaborationModuleContribution } from '@docx-editor.dev/core/collaboration';
1
2
  import { AutomationOperation, AutomationValue, AutomationHandle, AutomationHost, AutomationCapabilities, AutomationSpan } from '@docx-editor.dev/core/automation';
2
3
 
3
4
  /** Whether an action reads or writes. Drives the conditional-revision rule in `sync()`. */
@@ -2006,6 +2007,16 @@ declare class Body extends ModelObject {
2006
2007
  protected onLoad(request: ResolvedLoadOptions): void;
2007
2008
  }
2008
2009
 
2010
+ /**
2011
+ * Capability module accepted by {@link createServer}. Collaboration attaches
2012
+ * through a collaboration contribution. Other contributions are ignored here.
2013
+ *
2014
+ * @public
2015
+ */
2016
+ interface EditorModule {
2017
+ readonly id: string;
2018
+ readonly collaboration?: CollaborationModuleContribution;
2019
+ }
2009
2020
  /** Resource limits for the DOCX archive. */
2010
2021
  interface DocumentZipLimits {
2011
2022
  /** Most entries the archive may contain. */
@@ -2048,6 +2059,11 @@ interface DocumentLimits {
2048
2059
  * @public
2049
2060
  */
2050
2061
  interface CreateServerOptions {
2062
+ /**
2063
+ * Capability modules to register. Collaboration attaches only through a
2064
+ * collaboration contribution on this list.
2065
+ */
2066
+ readonly modules?: readonly EditorModule[];
2051
2067
  /**
2052
2068
  * Tighter budgets for the bounded reader — zip ratio, part count, XML depth.
2053
2069
  *
@@ -2070,5 +2086,7 @@ interface CreateServerOptions {
2070
2086
  */
2071
2087
  readonly revisionTextView?: RevisionTextView;
2072
2088
  }
2089
+ /** Options for {@link createCollaborative}. @public */
2090
+ type CreateCollaborativeOptions = CreateServerOptions;
2073
2091
 
2074
- export { type RunCallback as $, ListItem as A, type BesideLocation as B, type CreateServerOptions as C, type DocxEditorServerRuntime as D, type LoadOption as E, Font as F, type LoadQueryOptions as G, type HeaderFooterType as H, type InsertLocation as I, NoteItemCollection as J, type NoteItemType as K, List as L, PageSetup as M, NoteItem as N, Paragraph as O, type PageOrientation as P, type ParagraphAlignment as Q, ParagraphCollection as R, type ParagraphInsertTextLocation as S, Range as T, RangeCollection as U, type RangeInsertTextLocation as V, RequestContext as W, Revision as X, RevisionCollection as Y, type RevisionTextView as Z, type RevisionType as _, Body as a, type SearchOptions as a0, Section as a1, SectionCollection as a2, type SelectionMode as a3, TrackedObjects as a4, isDocxEditorError as a5, type BodyInsertParagraphLocation as b, type BodyInsertTextLocation as c, Bookmark as d, BookmarkCollection as e, ClientObject as f, ClientResult as g, Comment as h, CommentCollection as i, CommentReply as j, CommentReplyCollection as k, ContentControl as l, ContentControlCollection as m, type ContentControlLockState as n, type ContentControlSubtype as o, type ContentControlValue as p, Document as q, type DocumentCapabilities as r, type DocumentLimits as s, type DocumentXmlLimits as t, type DocumentZipLimits as u, DocxEditorError as v, type DocxEditorErrorCode as w, type DocxEditorErrorInit as x, type DocxEditorRuntime as y, ListCollection as z };
2092
+ export { type RevisionTextView as $, ListCollection as A, type BesideLocation as B, type CreateServerOptions as C, type DocxEditorServerRuntime as D, type EditorModule as E, Font as F, ListItem as G, type HeaderFooterType as H, type InsertLocation as I, type LoadOption as J, type LoadQueryOptions as K, List as L, NoteItemCollection as M, NoteItem as N, type NoteItemType as O, type PageOrientation as P, PageSetup as Q, Paragraph as R, type ParagraphAlignment as S, ParagraphCollection as T, type ParagraphInsertTextLocation as U, Range as V, RangeCollection as W, type RangeInsertTextLocation as X, RequestContext as Y, Revision as Z, RevisionCollection as _, type CreateCollaborativeOptions as a, type RevisionType as a0, type RunCallback as a1, type SearchOptions as a2, Section as a3, SectionCollection as a4, type SelectionMode as a5, TrackedObjects as a6, isDocxEditorError as a7, Body as b, type BodyInsertParagraphLocation as c, type BodyInsertTextLocation as d, Bookmark as e, BookmarkCollection as f, ClientObject as g, ClientResult as h, Comment as i, CommentCollection as j, CommentReply as k, CommentReplyCollection as l, ContentControl as m, ContentControlCollection as n, type ContentControlLockState as o, type ContentControlSubtype as p, type ContentControlValue as q, Document as r, type DocumentCapabilities as s, type DocumentLimits as t, type DocumentXmlLimits as u, type DocumentZipLimits as v, DocxEditorError as w, type DocxEditorErrorCode as x, type DocxEditorErrorInit as y, type DocxEditorRuntime as z };
@@ -1,3 +1,4 @@
1
+ import { CollaborationModuleContribution } from '@docx-editor.dev/core/collaboration';
1
2
  import { AutomationOperation, AutomationValue, AutomationHandle, AutomationHost, AutomationCapabilities, AutomationSpan } from '@docx-editor.dev/core/automation';
2
3
 
3
4
  /** Whether an action reads or writes. Drives the conditional-revision rule in `sync()`. */
@@ -2006,6 +2007,16 @@ declare class Body extends ModelObject {
2006
2007
  protected onLoad(request: ResolvedLoadOptions): void;
2007
2008
  }
2008
2009
 
2010
+ /**
2011
+ * Capability module accepted by {@link createServer}. Collaboration attaches
2012
+ * through a collaboration contribution. Other contributions are ignored here.
2013
+ *
2014
+ * @public
2015
+ */
2016
+ interface EditorModule {
2017
+ readonly id: string;
2018
+ readonly collaboration?: CollaborationModuleContribution;
2019
+ }
2009
2020
  /** Resource limits for the DOCX archive. */
2010
2021
  interface DocumentZipLimits {
2011
2022
  /** Most entries the archive may contain. */
@@ -2048,6 +2059,11 @@ interface DocumentLimits {
2048
2059
  * @public
2049
2060
  */
2050
2061
  interface CreateServerOptions {
2062
+ /**
2063
+ * Capability modules to register. Collaboration attaches only through a
2064
+ * collaboration contribution on this list.
2065
+ */
2066
+ readonly modules?: readonly EditorModule[];
2051
2067
  /**
2052
2068
  * Tighter budgets for the bounded reader — zip ratio, part count, XML depth.
2053
2069
  *
@@ -2070,5 +2086,7 @@ interface CreateServerOptions {
2070
2086
  */
2071
2087
  readonly revisionTextView?: RevisionTextView;
2072
2088
  }
2089
+ /** Options for {@link createCollaborative}. @public */
2090
+ type CreateCollaborativeOptions = CreateServerOptions;
2073
2091
 
2074
- export { type RunCallback as $, ListItem as A, type BesideLocation as B, type CreateServerOptions as C, type DocxEditorServerRuntime as D, type LoadOption as E, Font as F, type LoadQueryOptions as G, type HeaderFooterType as H, type InsertLocation as I, NoteItemCollection as J, type NoteItemType as K, List as L, PageSetup as M, NoteItem as N, Paragraph as O, type PageOrientation as P, type ParagraphAlignment as Q, ParagraphCollection as R, type ParagraphInsertTextLocation as S, Range as T, RangeCollection as U, type RangeInsertTextLocation as V, RequestContext as W, Revision as X, RevisionCollection as Y, type RevisionTextView as Z, type RevisionType as _, Body as a, type SearchOptions as a0, Section as a1, SectionCollection as a2, type SelectionMode as a3, TrackedObjects as a4, isDocxEditorError as a5, type BodyInsertParagraphLocation as b, type BodyInsertTextLocation as c, Bookmark as d, BookmarkCollection as e, ClientObject as f, ClientResult as g, Comment as h, CommentCollection as i, CommentReply as j, CommentReplyCollection as k, ContentControl as l, ContentControlCollection as m, type ContentControlLockState as n, type ContentControlSubtype as o, type ContentControlValue as p, Document as q, type DocumentCapabilities as r, type DocumentLimits as s, type DocumentXmlLimits as t, type DocumentZipLimits as u, DocxEditorError as v, type DocxEditorErrorCode as w, type DocxEditorErrorInit as x, type DocxEditorRuntime as y, ListCollection as z };
2092
+ export { type RevisionTextView as $, ListCollection as A, type BesideLocation as B, type CreateServerOptions as C, type DocxEditorServerRuntime as D, type EditorModule as E, Font as F, ListItem as G, type HeaderFooterType as H, type InsertLocation as I, type LoadOption as J, type LoadQueryOptions as K, List as L, NoteItemCollection as M, NoteItem as N, type NoteItemType as O, type PageOrientation as P, PageSetup as Q, Paragraph as R, type ParagraphAlignment as S, ParagraphCollection as T, type ParagraphInsertTextLocation as U, Range as V, RangeCollection as W, type RangeInsertTextLocation as X, RequestContext as Y, Revision as Z, RevisionCollection as _, type CreateCollaborativeOptions as a, type RevisionType as a0, type RunCallback as a1, type SearchOptions as a2, Section as a3, SectionCollection as a4, type SelectionMode as a5, TrackedObjects as a6, isDocxEditorError as a7, Body as b, type BodyInsertParagraphLocation as c, type BodyInsertTextLocation as d, Bookmark as e, BookmarkCollection as f, ClientObject as g, ClientResult as h, Comment as i, CommentCollection as j, CommentReply as k, CommentReplyCollection as l, ContentControl as m, ContentControlCollection as n, type ContentControlLockState as o, type ContentControlSubtype as p, type ContentControlValue as q, Document as r, type DocumentCapabilities as s, type DocumentLimits as t, type DocumentXmlLimits as u, type DocumentZipLimits as v, DocxEditorError as w, type DocxEditorErrorCode as x, type DocxEditorErrorInit as y, type DocxEditorRuntime as z };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docx-editor.dev/editor-api",
3
- "version": "2.10.0",
3
+ "version": "2.12.0",
4
4
  "description": "Document automation for DOCX: a batching object model that drives a document from a server or from an editor already open in a page",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.js",
@@ -75,6 +75,6 @@
75
75
  "access": "public"
76
76
  },
77
77
  "peerDependencies": {
78
- "@docx-editor.dev/core": "~2.10.0"
78
+ "@docx-editor.dev/core": "~2.12.0"
79
79
  }
80
80
  }