@docx-editor.dev/core 2.0.1 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -33
- package/dist/automation.cjs +1 -1
- package/dist/automation.d.cts +2 -2
- package/dist/automation.d.ts +2 -2
- package/dist/automation.js +1 -1
- package/dist/binding.cjs +1 -1
- package/dist/binding.d.cts +14 -8
- package/dist/binding.d.ts +14 -8
- package/dist/binding.js +1 -1
- package/dist/chunk-2DTQDAN7.js +2 -0
- package/dist/chunk-3JKQE4QJ.cjs +2 -0
- package/dist/chunk-4WWEDTTE.js +2 -0
- package/dist/chunk-6WIIHJFY.js +1 -0
- package/dist/chunk-7VQ7YLW3.cjs +1 -0
- package/dist/chunk-BS554B6D.cjs +2 -0
- package/dist/chunk-BZK64YU3.cjs +10 -0
- package/dist/chunk-F2VQQW5R.cjs +12 -0
- package/dist/chunk-GQQOL4PV.js +1 -0
- package/dist/chunk-JQFDLZXQ.cjs +2 -0
- package/dist/chunk-O2WQY7IT.cjs +5 -0
- package/dist/chunk-PC76F2HR.cjs +1 -0
- package/dist/chunk-QRAUDDVY.js +2 -0
- package/dist/chunk-RKNH4ZFT.js +12 -0
- package/dist/chunk-STCITBJK.js +12 -0
- package/dist/chunk-TBBXCC7D.js +5 -0
- package/dist/chunk-TSXT537P.cjs +12 -0
- package/dist/chunk-Y7TA7TPF.js +10 -0
- package/dist/contracts/editor.d.cts +6 -6
- package/dist/contracts/editor.d.ts +6 -6
- package/dist/contracts/interaction.d.cts +6 -6
- package/dist/contracts/interaction.d.ts +6 -6
- package/dist/contracts/modules.cjs +1 -1
- package/dist/contracts/modules.d.cts +30 -3
- package/dist/contracts/modules.d.ts +30 -3
- package/dist/contracts/modules.js +1 -1
- package/dist/{tree-package-store-DOKMtCnh.d.cts → custom-node-writes-YqISlSRl.d.cts} +181 -4
- package/dist/{tree-package-store-D5S7VKs5.d.ts → custom-node-writes-ttKuYd0M.d.ts} +181 -4
- package/dist/{editor-D0UDock4.d.cts → editor-B93PggnR.d.cts} +24 -5
- package/dist/{editor-C1QRi1v4.d.ts → editor-CFsSrxGR.d.ts} +24 -5
- package/dist/editor.cjs +1 -1
- package/dist/editor.css +1368 -279
- package/dist/editor.d.cts +19 -19
- package/dist/editor.d.ts +19 -19
- package/dist/editor.js +1 -1
- package/dist/{image-resources-BJnTpG66.d.ts → image-resources-C_YnqPhn.d.ts} +19 -11
- package/dist/{image-resources-BpIydXtU.d.cts → image-resources-DwpNnTg3.d.cts} +19 -11
- package/dist/{index-CrW-IxXt.d.cts → index-DQhDm4o0.d.cts} +34 -13
- package/dist/{index-ZqBEOrTV.d.ts → index-DTbKoFJL.d.ts} +34 -13
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +13 -13
- package/dist/index.d.ts +13 -13
- package/dist/index.js +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.d.cts +869 -819
- package/dist/layout.d.ts +869 -819
- package/dist/layout.js +1 -1
- package/dist/output.cjs +1 -1
- package/dist/output.d.cts +4 -4
- package/dist/output.d.ts +4 -4
- package/dist/output.js +1 -1
- package/dist/{protocol-oxHaWmt4.d.ts → protocol-BWVA3Q1p.d.ts} +56 -2
- package/dist/{protocol-CAkOBBGE.d.cts → protocol-FAz_nPm_.d.cts} +56 -2
- package/dist/review-reads-CsoXSvUg.d.ts +401 -0
- package/dist/review-reads-qW0jvdF1.d.cts +401 -0
- package/dist/{review-support-DS8DYX2a.d.cts → review-support-D64Wu236.d.cts} +37 -5
- package/dist/{review-support-Fy3vdIea.d.ts → review-support-nsLXC9jf.d.ts} +37 -5
- package/dist/{semantic-cell-selection-DsmHmLJ5.d.ts → semantic-cell-selection-D_8RbPII.d.ts} +2 -2
- package/dist/{semantic-cell-selection-CZjBSmMv.d.cts → semantic-cell-selection-DwLB71fF.d.cts} +2 -2
- package/dist/{semantic-interaction-Dy-dCUFF.d.ts → semantic-interaction-CXH2wFqi.d.ts} +1 -1
- package/dist/{semantic-interaction-D-Dszxrn.d.cts → semantic-interaction-DqcEonqD.d.cts} +1 -1
- package/dist/{semantic-paint-drawings-BA3z9jl8.d.ts → semantic-paint-drawings-B5Wk2so5.d.ts} +1 -1
- package/dist/{semantic-paint-drawings-D7qbB0E2.d.cts → semantic-paint-drawings-x8g44lD_.d.cts} +1 -1
- package/dist/{semantic-records-CJR3BvHs.d.cts → semantic-records-COVFW5aS.d.cts} +77 -4
- package/dist/{semantic-records-CWodBJsz.d.ts → semantic-records-zTC0_1zi.d.ts} +77 -4
- package/dist/{shaped-measurer-CNIT_svZ.d.cts → shaped-measurer-AFnFxoot.d.cts} +1 -1
- package/dist/{shaped-measurer-B-TAtcQU.d.ts → shaped-measurer-CZXL-a6v.d.ts} +1 -1
- package/dist/store.cjs +1 -1
- package/dist/store.d.cts +223 -317
- package/dist/store.d.ts +223 -317
- package/dist/store.js +1 -1
- package/dist/{tree-op-types-CwOeiaQ8.d.ts → tree-op-types-DWLCllG7.d.ts} +80 -25
- package/dist/{tree-op-types-DMiW6nIH.d.cts → tree-op-types-UOXlRUqQ.d.cts} +80 -25
- package/dist/{tree-session-CiUel5Kz.d.ts → tree-session-BtVFXsF6.d.ts} +45 -7
- package/dist/{tree-session-D47_imvR.d.cts → tree-session-DxIOHUOD.d.cts} +45 -7
- package/dist/{tree-store-CxifqwIv.d.cts → tree-store-B1lEkdXc.d.cts} +1 -1
- package/dist/{tree-store-hLtjeyWE.d.ts → tree-store-BscFPB7x.d.ts} +1 -1
- package/package.json +10 -5
- package/dist/chunk-5KSCB2OZ.js +0 -2
- package/dist/chunk-BSC44TIT.js +0 -5
- package/dist/chunk-DLPL5DAG.js +0 -12
- package/dist/chunk-DOEIARE2.js +0 -2
- package/dist/chunk-G7YCQBZE.cjs +0 -5
- package/dist/chunk-HR7K3W6A.js +0 -1
- package/dist/chunk-HVAV2JSN.js +0 -11
- package/dist/chunk-MYH2HCUJ.cjs +0 -2
- package/dist/chunk-NSM75TN6.cjs +0 -1
- package/dist/chunk-PHDVKUWZ.js +0 -1
- package/dist/chunk-QADYGK5L.cjs +0 -12
- package/dist/chunk-RNBHTPW7.js +0 -10
- package/dist/chunk-UD2ZXLFI.cjs +0 -2
- package/dist/chunk-VYAVK2AH.cjs +0 -1
- package/dist/chunk-YUK46A2N.cjs +0 -11
- package/dist/chunk-ZMIX42J7.cjs +0 -10
- package/dist/chunk-ZT55Q52J.cjs +0 -2
- package/dist/chunk-ZUALAR4M.js +0 -2
- package/dist/note-properties-CnmCoory.d.cts +0 -68
- package/dist/note-properties-m75hmP70.d.ts +0 -68
package/dist/chunk-MYH2HCUJ.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
'use strict';var chunkZMIX42J7_cjs=require('./chunk-ZMIX42J7.cjs'),fflate=require('fflate');var xt=["extension","capability","command","query","schema","dependencyKey","runtimePort","result","origin"],Ot=/^[a-z0-9]+(?:-[a-z0-9]+)*(?:\.[a-z0-9]+(?:-[a-z0-9]+)*)+$/,Nt=/^@[a-z0-9.-]+\/[a-z0-9.-]+(?:#[a-z0-9]+(?:[/._-][a-z0-9]+)*)?$/;function Ve(e){return Ot.test(e)||Nt.test(e)}function W(e,t){if(!Ve(e))throw new Error(`invalid ${t??"registry"} id ${JSON.stringify(e)}: must be reverse-domain (dev.docx-editor.core.x) or package-owned (@scope/pkg#kind/name)`)}var Rt=/^(\d+)\.(\d+)\.(\d+)$/;function P(e){let t=Rt.exec(e);if(!t)throw new Error(`invalid semantic version: ${JSON.stringify(e)}`);return {major:Number(t[1]),minor:Number(t[2]),patch:Number(t[3])}}function J(e,t){return e.major!==t.major?e.major<t.major?-1:1:e.minor!==t.minor?e.minor<t.minor?-1:1:e.patch!==t.patch?e.patch<t.patch?-1:1:0}function Y(e,t){let n=P(e),r=t.trim();if(r==="*")return true;if(r.startsWith("^")){let o=P(r.slice(1));return J(n,o)<0?false:o.major>0?n.major===o.major:o.minor>0?n.major===0&&n.minor===o.minor:n.major===0&&n.minor===0}if(r.includes(" ")){let o=r.split(/\s+/);if(o.length!==2)throw new Error(`unsupported version range: ${JSON.stringify(t)}`);let s=true;for(let i of o){let a=i.startsWith(">=")?">=":i.startsWith("<")?"<":null;if(!a)throw new Error(`unsupported version range: ${JSON.stringify(t)}`);let d=P(i.slice(a.length)),l=J(n,d);a===">="?s=s&&l>=0:s=s&&l<0;}return s}return J(n,P(r))===0}var g=class extends Error{constructor(n,r,o=[]){super(r);this.code=n;this.responsible=o;this.name="RegistryError";}code;responsible},he=(e,t)=>`${e}:${t}`;function bt(e,t={}){let n=new Map;for(let l of e){if(W(l.id,"extension"),Ke(l.version,l.id),n.has(l.id))throw new g("duplicate-extension",`duplicate extension id ${l.id}`,[l.id]);n.set(l.id,l);for(let c of l.contributions)W(c.id,c.kind),Ke(c.version,`${l.id} \u2192 ${c.id}`),c.replaces&&It(c.replaces.targetRange,`${l.id} \u2192 replaces ${c.replaces.targetId}`);}for(let l of e){for(let c of l.dependencies??[])if(!n.has(c))throw new g("missing-dependency",`${l.id} requires missing extension ${c}`,[l.id,c]);for(let c of l.conflicts??[])if(n.has(c)){let p=[l.id,c].sort();throw new g("conflict",`extensions ${p[0]} and ${p[1]} conflict`,p)}}Et(n);let r=new Set(t.availablePorts??[]);for(let l of e)for(let c of l.contributions)c.kind==="runtimePort"&&r.add(c.id);for(let l of e)for(let c of l.requiredPorts??[])if(!r.has(c))throw new g("missing-port",`${l.id} requires unavailable port ${c}`,[l.id,c]);let o=new Map,s=new Map,i=new Map;for(let l of e)for(let c of l.contributions){let p=he(c.kind,c.id);if(c.replaces){let u=he(c.kind,c.replaces.targetId),m=i.get(u)??[];m.push({ext:l.id,c}),i.set(u,m);continue}if(s.has(p)){let u=[o.get(p),l.id].sort();throw new g("id-collision",`${c.kind} id ${c.id} registered by both ${u[0]} and ${u[1]}`,u)}s.set(p,c),o.set(p,l.id);}let a=new Map(s);for(let[l,c]of i){let p=s.get(l);if(!p){let f=c[0];throw new g("replacement-target-missing",`${f.ext} replaces missing target ${f.c.replaces.targetId}`,[f.ext,f.c.replaces.targetId])}let u=p.replaceable??{kind:"none"};for(let{ext:f,c:y}of c){if(!Y(p.version,y.replaces.targetRange))throw new g("replacement-version-mismatch",`${f} replaces ${y.replaces.targetId}@${p.version} outside range ${y.replaces.targetRange}`,[f,y.replaces.targetId]);if(u.kind==="none")throw new g("unauthorized-replacement",`${y.replaces.targetId} does not authorize replacement (attempted by ${f})`,[f,y.replaces.targetId])}let m=Ct(p,c);a.set(l,m);}return {extensions:n,contributions:a,get:(l,c)=>a.get(he(l,c))}}function Ct(e,t){let n=e.replaceable??{kind:"none"};if(t.length===1)return t[0].c;if(n.kind==="priority"){let o=[...t].sort((a,d)=>(d.c.replaces.priority??0)-(a.c.replaces.priority??0)),s=o[0].c.replaces.priority??0,i=o.filter(a=>(a.c.replaces.priority??0)===s);if(i.length>1){let a=i.map(d=>d.ext).sort();throw new g("ambiguous-replacement",`multiple replacers of ${e.id} share top priority ${s}: ${a.join(", ")}`,a)}return o[0].c}let r=t.map(o=>o.ext).sort();throw new g("ambiguous-replacement",`multiple replacers of ${e.id}: ${r.join(", ")}`,r)}function Et(e){let o=new Map,s=[],i=a=>{o.set(a,1),s.push(a);let d=[...e.get(a)?.dependencies??[]].sort();for(let l of d){let c=o.get(l)??0;if(c===1){let p=s.indexOf(l),u=[...s.slice(p),l];throw new g("dependency-cycle",`dependency cycle: ${u.join(" -> ")}`,u)}c===0&&i(l);}s.pop(),o.set(a,2);};for(let a of [...e.keys()].sort())(o.get(a)??0)===0&&i(a);}function Ke(e,t){try{P(e);}catch{throw new g("invalid-version",`invalid version ${JSON.stringify(e)} in ${t}`,[t])}}function It(e,t){try{Y("0.0.0",e);}catch{throw new g("invalid-version",`invalid version range ${JSON.stringify(e)} in ${t}`,[t])}}var k=class extends Error{constructor(t){super(t),this.name="BudgetError";}},D=class e{constructor(t,n){this.label=t;this.capacity=n;this.used=new chunkZMIX42J7_cjs.G(`${t}.budget`,n);}label;capacity;used;children=new Set;activeReservations=0;cleanups=[];disposed=false;carveAmount=0;parent;get inUse(){return this.used.current}get available(){return this.used.remaining}get isDisposed(){return this.disposed}reserve(t){this.assertLive(),this.used.add(t),this.activeReservations+=1;let n=false,r=this;return {amount:t,get released(){return n},release(){n||(n=true,r.used.release(t),r.activeReservations-=1);}}}child(t,n){this.assertLive(),this.used.add(n);let r=new e(t,n);return r.parent=this,r.carveAmount=n,this.children.add(r),r}onRelease(t){this.assertLive(),this.cleanups.push(t);}dispose(){if(this.disposed)return;if(this.children.size>0)throw new k(`${this.label}: cannot release with ${this.children.size} child budget(s) outstanding`);if(this.activeReservations>0)throw new k(`${this.label}: cannot release with ${this.activeReservations} reservation(s) outstanding`);let t=[];for(let n=this.cleanups.length-1;n>=0;n--)try{this.cleanups[n]();}catch(r){t.push(r);}if(this.disposed=true,this.parent&&(this.parent.children.delete(this),this.parent.used.release(this.carveAmount),this.parent=void 0),t.length>0)throw new k(`${this.label}: ${t.length} cleanup error(s); first: ${String(t[0])}`)}assertLive(){if(this.disposed)throw new k(`${this.label}: budget already released`)}};var q=class extends Error{constructor(n,r){super(r?`cancelled: ${r}`:"cancelled");this.derivedOnly=n;this.name="CancellationError";}derivedOnly},M=class{_cancelled=false;_phase="pre-publication";_reason;cancel(t){this._cancelled=true,t!==void 0&&(this._reason=t);}markPublished(){this._phase="post-publication";}get isCancelled(){return this._cancelled}get phase(){return this._phase}get isPublished(){return this._phase==="post-publication"}get derivedOnly(){return this._cancelled&&this._phase==="post-publication"}get token(){let t=this;return {get isCancelled(){return t._cancelled},get phase(){return t._phase},get derivedOnly(){return t.derivedOnly},checkpoint(){if(t._cancelled)throw new q(t.derivedOnly,t._reason)}}}};var Q=class extends Error{constructor(n){super(`runtime port not available: ${n}`);this.portId=n;this.name="PortResolutionError";}portId},xe=class{ports=new Map;provide(t,n){return this.ports.set(t,n),this}has(t){return this.ports.has(t)}resolve(t){if(!this.ports.has(t))throw new Q(t);return this.ports.get(t)}missing(t){return t.filter(n=>!this.ports.has(n))}availablePorts(){return [...this.ports.keys()]}clock(){return this.resolve(chunkZMIX42J7_cjs.w.clock)}identity(){return this.resolve(chunkZMIX42J7_cjs.w.identity)}},Oe=class{constructor(t=0,n=1){this.step=n;this.t=t;}step;t;now(){let t=this.t;return this.t+=this.step,t}},Ne=class{constructor(t="id"){this.prefix=t;}prefix;n=0;newId(){return this.n+=1,`${this.prefix}-${this.n}`}};function vt(e){let t=chunkZMIX42J7_cjs.B(e.limits),n=Object.freeze({...e.config??{}}),r=e.capacity??t.maxDecompressedBytes,o=e.id??"op",s={id:o,limits:t,config:n,ports:e.ports,budget:new D(`op:${o}`,r),cancellation:new M};return Object.freeze(s)}function Pt(e){e.budget.dispose();}var be=Object.freeze({maxRecursionDepth:{unit:"depth",phase:"xml-parse"},maxElementCount:{unit:"count",phase:"xml-parse"},maxPartCount:{unit:"count",phase:"package-read"},maxDecompressedBytes:{unit:"bytes",phase:"package-read"},maxCompressedBytes:{unit:"bytes",phase:"package-read"},maxCompressionRatio:{unit:"ratio",phase:"package-read"},maxChunkBytes:{unit:"bytes",phase:"package-read"},maxPaginationPasses:{unit:"passes",phase:"layout"},maxQueueDepth:{unit:"count",phase:"output"}}),je=Object.keys(be);function kt(e,t){return new chunkZMIX42J7_cjs.G(`${be[t].phase}:${t}`,e[t])}var Re=class{counter;current=0;peak=0;constructor(t){this.counter=new chunkZMIX42J7_cjs.G("memory",t);}allocate(t){this.counter.add(t),this.current+=t,this.current>this.peak&&(this.peak=this.current);}free(t){this.counter.release(t),this.current=Math.max(0,this.current-t);}get currentBytes(){return this.current}get peakBytes(){return this.peak}reset(){this.counter.release(this.current),this.current=0;}};function St(){for(let e of je){let t=chunkZMIX42J7_cjs.A[e],n=chunkZMIX42J7_cjs.z[e];if(!Number.isFinite(t)||t<=0)throw new Error(`default ${e} must be finite > 0`);if(!Number.isFinite(n)||n<=0)throw new Error(`ceiling ${e} must be finite > 0`);if(t>n)throw new Error(`default ${e} exceeds ceiling`)}}function B(e,t=new Set){let n=new WeakSet,r=o=>{if(o===null)return "null";let s=typeof o;if(s==="boolean")return o?"true":"false";if(s==="number"){let i=o;if(!Number.isFinite(i))throw new Error(`non-finite number is not comparable: ${i}`);return Object.is(i,-0)?"0":String(i)}if(s==="string")return JSON.stringify(o);if(s==="bigint")return `${o.toString()}n`;if(Array.isArray(o))return `[${o.map(r).join(",")}]`;if(s==="object"){let i=o;if(n.has(i))throw new Error("cannot canonicalize a cyclic structure");n.add(i);let d=Object.keys(i).filter(l=>!t.has(l)).sort().map(l=>`${JSON.stringify(l)}:${r(i[l])}`).join(",");return n.delete(i),`{${d}}`}throw new Error(`unsupported value type in comparator input: ${s}`)};return r(e)}function Ce(e,t){let n=B(e,t),r=0xcbf29ce484222325n,o=0x100000001b3n,s=0xffffffffffffffffn;for(let i=0;i<n.length;i++)r^=BigInt(n.charCodeAt(i)),r=r*o&s;return r.toString(16).padStart(16,"0")}var N="dev.docx-editor.core.comparator",Ee={authoredState:{id:`${N}.authored-state`,mode:"canonical-exact",ephemera:["revision","provenance","producedAt","commitId"],note:"canonical normalized authored records; ephemera excluded"},anchor:{id:`${N}.anchor`,mode:"exact",ephemera:[],note:"internal anchor identity/affinity compares exactly"},yjsStateVector:{id:`${N}.yjs-state-vector`,mode:"sync-optimization-only",ephemera:[],note:"exchange optimization only; never proves update or delete-set coverage"},shapedRun:{id:`${N}.shaped-run`,mode:"exact",ephemera:[],note:"glyph ids, clusters, and fixed-point advances compare exactly"},paginationFingerprint:{id:`${N}.pagination-fingerprint`,mode:"exact",ephemera:[],note:"page/column boundaries, break causes, fixed-point geometry compare exactly"},semanticTree:{id:`${N}.semantic-tree`,mode:"exact",ephemera:[],note:"reading order, roles, headings, alt text compare exactly"},hitTest:{id:`${N}.hit-test`,mode:"exact",ephemera:[],note:"resolved hit target and cluster affinity compare exactly"},pdfSemantics:{id:`${N}.pdf-semantics`,mode:"canonical-exact",ephemera:["objectNumber","producer","creationDate","modDate","subsetTag"],note:"canonical semantic PDF objects; container ephemera excluded"},rasterCheckpoint:{id:`${N}.raster-checkpoint`,mode:"tolerance",ephemera:[],note:"documented unavoidable raster comparison; explicit tolerance only"},benchmarkEvidence:{id:`${N}.benchmark-evidence`,mode:"sync-optimization-only",ephemera:[],note:"diagnostic evidence, not an equivalence basis"}};function Ie(e,t,n,r={}){let o=Ee[e];switch(o.mode){case "sync-optimization-only":throw new Error(`${o.id} is not an equivalence basis (${o.note})`);case "tolerance":{if(r.epsilon===void 0)throw new Error(`${o.id} requires an explicit epsilon`);return {equal:Ge(t,n,r.epsilon)}}case "exact":case "canonical-exact":{let s=o.mode==="canonical-exact"?new Set(o.ephemera):new Set,i=B(t,s),a=B(n,s);return i===a?{equal:true}:{equal:false,left:i,right:a}}}}function ve(e,t){let n=Ee[e];if(n.mode==="tolerance"||n.mode==="sync-optimization-only")throw new Error(`${n.id} has no canonical fingerprint (${n.mode})`);let r=n.mode==="canonical-exact"?new Set(n.ephemera):void 0;return Ce(t,r)}function Ge(e,t,n){return typeof e=="number"&&typeof t=="number"?Number.isFinite(e)&&Number.isFinite(t)&&Math.abs(e-t)<=n:Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.every((r,o)=>Ge(r,t[o],n)):false}var Xe=new Set([...chunkZMIX42J7_cjs.t,...chunkZMIX42J7_cjs.u]),ze=/^[0-9a-f]{16}$/,Tt=/^[0-9a-f]*$/;function Pe(e){let t=[],n=o=>t.push(o);e.formatVersion!==1&&n(`unsupported formatVersion ${e.formatVersion}`),e.documentId||n("documentId is required"),e.source.kind==="docx"&&!/^[0-9a-f]{64}$/.test(e.source.sha256)&&n("docx source requires a 64-hex sha256");let r=-1;e.steps.forEach((o,s)=>{let i=`step[${s}]`;Xe.has(o.origin)||n(`${i}: unknown origin ${o.origin}`),(!Number.isInteger(o.baseRevision)||o.baseRevision<0)&&n(`${i}: baseRevision must be a non-negative integer`),o.baseRevision<r&&n(`${i}: baseRevision regressed below ${r}`);let a=o.expect;a.outcome==="applied"?(a.committedRevision===void 0?n(`${i}: applied step needs committedRevision`):a.committedRevision<=o.baseRevision?n(`${i}: committedRevision ${a.committedRevision} must exceed baseRevision ${o.baseRevision}`):r=a.committedRevision,a.modelChange&&wt(a.modelChange,i,n)):(a.committedRevision!==void 0&&n(`${i}: ${a.outcome} step must not commit a revision`),a.authoredStateHash!==void 0&&n(`${i}: ${a.outcome} step must not change authored state`)),a.authoredStateHash!==void 0&&!ze.test(a.authoredStateHash)&&n(`${i}: authoredStateHash must be 16-hex`),a.outputHash!==void 0&&!ze.test(a.outputHash)&&n(`${i}: outputHash must be 16-hex`);});for(let o of [...e.snapshots??[],...e.updates??[]])o.documentId!==e.documentId&&n(`envelope documentId ${o.documentId} != ${e.documentId}`),Tt.test(o.bytesHex)||n("envelope bytesHex must be hex"),o.bytesHex.length!==o.byteLength*2&&n(`envelope byteLength ${o.byteLength} disagrees with ${o.bytesHex.length/2} decoded bytes`);return {valid:t.length===0,errors:t}}function wt(e,t,n){Xe.has(e.origin)||n(`${t}: modelChange origin ${e.origin} unknown`),e.toRevision<=e.fromRevision&&n(`${t}: modelChange revision must advance`);}function $t(e,t){let n=Pe(e);if(!n.valid)return {ok:false,mismatches:n.errors};let r=[];return t.init(e),e.steps.forEach((o,s)=>{let i=`step[${s}]`,a=t.applyStep(o),d=o.expect;if(a.outcome!==d.outcome){r.push(`${i}: outcome ${a.outcome} != expected ${d.outcome}`);return}if(d.outcome==="applied"&&(a.committedRevision!==d.committedRevision&&r.push(`${i}: revision ${a.committedRevision} != expected ${d.committedRevision}`),d.authoredStateHash!==void 0))if(a.authoredState===void 0)r.push(`${i}: store returned no authored state to hash`);else {Ie("authoredState",a.authoredState,a.authoredState).equal||r.push(`${i}: authored state is not self-consistent`);let c=We(a.authoredState);c!==d.authoredStateHash&&r.push(`${i}: authoredStateHash ${c} != expected ${d.authoredStateHash}`);}}),{ok:r.length===0,mismatches:r}}function We(e){return ve("authoredState",e)}var At=new Map([["embedRegular","regular"],["embedBold","bold"],["embedItalic","italic"],["embedBoldItalic","boldItalic"]]),_t=32;function qe(e,t){let n=t.replace(/[^0-9a-fA-F]/g,"");if(n.length!==32)return null;let r=new Uint8Array(16);for(let i=0;i<16;i+=1){let a=Number.parseInt(n.slice(i*2,i*2+2),16);if(Number.isNaN(a))return null;r[15-i]=a;}let o=new Uint8Array(e),s=Math.min(_t,o.length);for(let i=0;i<s;i+=1)o[i]=o[i]^r[i%16];return o}var ke=(e,t)=>{if(!(e.kind==="textValue"||!("attributes"in e))){for(let n of e.attributes??[])if(n.localName===t)return n.value}},Je=e=>e.kind==="textValue"?[]:e.children??[],Ye=e=>e.kind==="textValue"||!("localName"in e)?"":e.localName;function Ft(e,t,n){for(let r of e.relationships.get(t)??[]){if(r.id!==n)continue;if(r.targetMode==="External")return null;let o=chunkZMIX42J7_cjs.q(t,r.rawTarget);return o.ok?o.partName:null}return null}function Lt(e,t,n={}){if(!t)return [];let r=n.maxFontBytes??16*1024*1024,o=n.maxFonts??64,s=[],i=new Map,a=d=>{if(!(s.length>=o)){if(Ye(d)==="font"){let l=ke(d,"name");if(l&&l.length<=128)for(let c of Je(d)){if(s.length>=o)return;let p=At.get(Ye(c));if(!p)continue;let u=ke(c,"id"),m=ke(c,"fontKey");if(!u||!m)continue;let f=Ft(e,t.name,u);if(!f)continue;let y=e.partBytes.get(f);if(!y||y.length===0||y.length>r)continue;let I=i.get(f);if(I){s.push({family:l,style:p,bytes:I,partName:f});continue}let O=qe(y,m);O&&(i.set(f,O),s.push({family:l,style:p,bytes:O,partName:f}));}}for(let l of Je(d))a(l);}};return a(t.root),s}function Qe(e){if(e.kind!=="textValue")for(let t of e.children){if(t.kind==="textValue")continue;if(t.kind==="hyperlink"){let r=chunkZMIX42J7_cjs.Ra(t);if(r!==void 0&&r.length>0)return r}let n=Qe(t);if(n!==void 0)return n}}function Dt(e){let t="",n=false,r=o=>{if(!(n||o.kind==="textValue")){if(o.kind==="tab"||o.localName==="ptab"||o.localName==="tab"){n=true;return}if(o.kind==="text"||o.localName==="t"){for(let s of o.children)s.kind==="textValue"&&(t+=s.value);return}for(let s of o.children)r(s);}};return r(e),chunkZMIX42J7_cjs.zc(t)}function Mt(e,t,n,r){let o=n.filter(d=>{if(r.has(d.blockId))return false;let l=d.level+1;return l>=t.instruction.outlineStart&&l<=t.instruction.outlineEnd}),s=new Set(o.map(d=>d.blockId)),i=chunkZMIX42J7_cjs.uc(e),a=new Map;for(let d of o){let l=chunkZMIX42J7_cjs.zc(d.text),c=a.get(l);c?c.push(d.blockId):a.set(l,[d.blockId]);}return t.resultParagraphIds.map(d=>{let l=chunkZMIX42J7_cjs.Ea(e,d);if(!l||l.kind==="textValue")return null;let c=Qe(l),p=c===void 0?void 0:i.get(c);if(p&&s.has(p.paragraphId)){let f=a.get(chunkZMIX42J7_cjs.zc(o.find(I=>I.blockId===p.paragraphId)?.text??"")),y=f?.indexOf(p.paragraphId)??-1;return f&&y>=0&&f.splice(y,1),p.paragraphId}let u=Dt(l);if(u.length===0)return null;let m=a.get(u);return !m||m.length===0?null:m.shift()??null})}function R(e){return e.namespaceUri===chunkZMIX42J7_cjs.la?e.localName:`{${e.namespaceUri}}${e.localName}`}function v(e){let t=[];for(let n of e.attributes)t.push(n.namespaceUri===""||n.namespaceUri===chunkZMIX42J7_cjs.la?`${n.localName}=${n.value}`:`{${n.namespaceUri}}${n.localName}=${n.value}`);return t.sort(),t}function et(e,t){let n=v(e),r=n.length>0?`${R(e)}(${n.join(",")})`:R(e);if(t>=chunkZMIX42J7_cjs.ba)return r;let o=[];for(let s of e.children){if(s.kind==="textValue"){s.value!==""&&o.push(`#${s.value}`);continue}o.push(et(s,t+1));}return o.sort(),o.length>0?`${r}[${o.join(",")}]`:r}function Ze(e){if(!e)return [];let t=[];for(let n of e.children)n.namespaceUri===chunkZMIX42J7_cjs.la&&t.push(et(n,1));return t.sort(),t}function Se(e){if(e.kind==="textValue")return e.value;if(e.kind==="tab")return " ";if(e.kind==="hardBreak")return chunkZMIX42J7_cjs.Xb(e);if(e.kind==="drawing")return chunkZMIX42J7_cjs.ic();if(e.kind==="runProperties"||e.kind==="paragraphProperties"||e.kind==="generic")return "";if(e.kind==="hyperlink"||chunkZMIX42J7_cjs.Ib(e)){let n="",r=e.kind==="hyperlink"?e.children:chunkZMIX42J7_cjs.Kb(e)??[];for(let o of r)n+=Se(o);return n}let t="";for(let n of e.children)t+=Se(n);return t}function h(e,t){let n=new Map(e);for(let r of t.namespaceBindings)n.set(r.prefix,r.namespaceUri);return n}function H(e,t){try{return chunkZMIX42J7_cjs.va(e,t)}catch(n){if(n instanceof chunkZMIX42J7_cjs.pa&&n.reason==="undeclared-prefix")return `generic-refusal:undeclared-prefix:{${e.namespaceUri}}${e.localName}`;throw n}}function Te(e,t,n=chunkZMIX42J7_cjs.ua){if(e.kind==="textValue")return;if(e.kind==="runProperties"||e.kind==="paragraphProperties"){let o=h(n,e),s=[];for(let i of e.children)i.namespaceUri!==chunkZMIX42J7_cjs.la&&s.push(H(i,o));s.sort(),t.push(...s);return}if(e.kind==="generic"){t.push(H(e,n));return}if(chunkZMIX42J7_cjs.Ib(e)){t.push(chunkZMIX42J7_cjs.wa(e));return}if(e.kind==="bookmarkStart"||e.kind==="bookmarkEnd"){t.push(chunkZMIX42J7_cjs.va(e,n));return}if(e.kind==="drawing"){t.push(tt(e));return}if(chunkZMIX42J7_cjs.ka(e.kind))return;let r=h(n,e);for(let o of e.children)Te(o,t,r);}function Bt(e){return `hyperlink(${e.attributes.map(n=>`${n.namespaceUri}|${n.localName}=${n.value}`).sort().join(",")})`}function Ht(e){for(let t of e.children)if(t.kind==="pictureBlipFill")for(let n of t.children){if(n.kind!=="pictureBlip")continue;let r=n.attributes.find(s=>s.localName==="embed"&&s.namespaceUri===chunkZMIX42J7_cjs.oa)?.value,o=n.attributes.find(s=>s.localName==="link"&&s.namespaceUri===chunkZMIX42J7_cjs.oa)?.value;if(r!==void 0)return `embed=${r}`;if(o!==void 0)return `link=${o}`}}function Z(e,t,n){if(e.kind==="textValue")return `#${e.value}`;if(t>=chunkZMIX42J7_cjs.ba)return R(e);let r=h(n,e);if(e.kind==="generic")return H(e,r);let o=v(e),s=o.length>0?`${R(e)}(${o.join(",")})`:R(e),i=[];for(let a of e.children)a.kind!=="textValue"&&i.push(Z(a,t+1,r));return i.sort(),i.length>0?`${s}[${i.join(",")}]`:s}function Ut(e,t,n){let r=h(n,e),o=[];for(let s of e.children)if(s.kind!=="textValue"){if(s.kind==="pictureBlipFill"){let i=s.children,a=i.find(l=>l.kind==="pictureBlip"),d=i.filter(l=>l.kind!=="pictureBlip").map(l=>Z(l,t+1,r));if(d.sort(),a&&a.kind==="pictureBlip"){let l=v(a),c=l.length>0?`pictureBlip(${l.join(",")})`:"pictureBlip";o.push(d.length>0?`${c}[${d.join(",")}]`:c);}else for(let l of i)o.push(Z(l,t+1,r));continue}o.push(Z(s,t+1,r));}return o.sort(),o}function we(e,t,n){if(e.kind==="textValue")return `#${e.value}`;if(t>=chunkZMIX42J7_cjs.ba)return R(e);let r=h(n,e);if(e.kind==="drawingDocPr"){let a=v(e);return a.length>0?`docPr(${a.join(",")})`:"docPr"}if(e.kind==="picture"){let a=Ht(e),d=Ut(e,t+1,r),l=a===void 0?"picture":`picture(${a})`;return d.length>0?`${l}[${d.join(",")}]`:l}let o=v(e),s=o.length>0?`${R(e)}(${o.join(",")})`:R(e),i=[];for(let a of e.children){if(a.kind==="picture"){i.push(we(a,t+1,r));continue}if(a.kind==="generic"){i.push(H(a,r));continue}a.kind!=="textValue"&&i.push(we(a,t+1,r));}return i.length>0?`${s}[${i.join(",")}]`:s}function tt(e){let t=h(chunkZMIX42J7_cjs.ua,e),n=e.children.find(a=>a.kind==="inlineDrawing"||a.kind==="anchoredDrawing");if(!n||n.kind==="textValue")return `drawing(${v(e).join(",")})`;let r=h(t,n),o=v(n),s=o.length>0?`${n.kind}(${o.join(",")})`:n.kind,i=[];for(let a of n.children){if(a.kind==="generic"){i.push(H(a,r));continue}a.kind!=="textValue"&&i.push(we(a,1,r));}return i.length>0?`drawing[${s};${i.join(";")}]`:`drawing[${s}]`}function Vt(e,t,n){let r=e.children.find(c=>c.kind==="paragraphProperties"),o=[],s="",i=[],a=h(chunkZMIX42J7_cjs.ua,e),d=(c,p)=>{if(c.kind==="run"){let u=h(p,c),m=c.children.find(f=>f.kind==="runProperties");o.push(Ze(m)),s+=Se(c);for(let f of c.children)Te(f,i,u);return}if(c.kind==="drawing"){i.push(tt(c));return}if(c.kind==="hyperlink"){i.push(Bt(c));let u=h(p,c);for(let m of c.children)d(m,u);return}if(c.kind==="contentControl"){i.push(chunkZMIX42J7_cjs.wa({...c,children:c.children.filter(m=>m.kind!=="contentControlContent")}));let u=h(p,c);for(let m of c.children){if(m.kind!=="contentControlContent")continue;let f=h(u,m);for(let y of m.children)d(y,f);}return}Te(c,i,p);};for(let c of e.children)d(c,a);let l=chunkZMIX42J7_cjs.Gc(e);return {ordinal:t,path:n,paraId:l===null?null:l.toUpperCase(),text:s,paragraphProperties:Ze(r),runProperties:o,genericStructure:i}}function Kt(e){if(e.localName==="hdr"||e.localName==="ftr"||e.kind==="body")return e;for(let t of e.children)if(t.kind!=="textValue"&&(t.kind==="body"||t.localName==="hdr"||t.localName==="ftr"))return t;return e}function nt(e,t,n,r,o,s){if(s>chunkZMIX42J7_cjs.ba)return;let i=0;for(let a of e.children){if(a.kind==="textValue"){a.value.trim()!==""&&o.push(`${t}/#text ${a.value}`);continue}let d=t===""?String(i):`${t}/${i}`;if(i+=1,a.kind==="paragraph"){n.push(a),r.push(d),o.push(`${d} p`);continue}let l=v(a);o.push(l.length>0?`${d} ${R(a)}(${l.join(",")})`:`${d} ${R(a)}`),nt(a,d,n,r,o,s+1);}}function rt(e){let t=Kt(e.root),n=[],r=[],o=[];nt(t,"",n,r,o,0);let s=n.map((i,a)=>Vt(i,a,r[a]));return {partName:e.name,paragraphs:s,structure:o}}function jt(e){let t=[];for(let n of e){let r=rt(n);r&&t.push(r);}return {stories:t}}function Gt(e,t){let n=[],r=(s,i,a)=>{n.push({path:s,before:JSON.stringify(i)??"undefined",after:JSON.stringify(a)??"undefined"});};e.stories.length!==t.stories.length&&r("stories.length",e.stories.length,t.stories.length);let o=Math.min(e.stories.length,t.stories.length);for(let s=0;s<o;s+=1){let i=e.stories[s],a=t.stories[s],d=p=>`${i.partName}${p}`;i.paragraphs.length!==a.paragraphs.length&&r(d(".paragraphs.length"),i.paragraphs.length,a.paragraphs.length);let l=Math.min(i.paragraphs.length,a.paragraphs.length);for(let p=0;p<l;p+=1){let u=i.paragraphs[p],m=a.paragraphs[p];u.text!==m.text&&r(d(`.p[${p}].text`),u.text,m.text),u.path!==m.path&&r(d(`.p[${p}].path`),u.path,m.path),u.paraId!==m.paraId&&r(d(`.p[${p}].paraId`),u.paraId,m.paraId),JSON.stringify(u.paragraphProperties)!==JSON.stringify(m.paragraphProperties)&&r(d(`.p[${p}].paragraphProperties`),u.paragraphProperties,m.paragraphProperties),JSON.stringify(u.runProperties)!==JSON.stringify(m.runProperties)&&r(d(`.p[${p}].runProperties`),u.runProperties,m.runProperties),JSON.stringify(u.genericStructure)!==JSON.stringify(m.genericStructure)&&r(d(`.p[${p}].genericStructure`),u.genericStructure,m.genericStructure);}i.structure.length!==a.structure.length&&r(d(".structure.length"),i.structure.length,a.structure.length);let c=Math.min(i.structure.length,a.structure.length);for(let p=0;p<c;p+=1)i.structure[p]!==a.structure[p]&&r(d(`.structure[${p}]`),i.structure[p],a.structure[p]);}return n}var U="http://schemas.openxmlformats.org/wordprocessingml/2006/main",Wt="http://schemas.openxmlformats.org/package/2006/relationships",ot="http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering",w="application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml",Jt="application/vnd.openxmlformats-package.relationships+xml",Yt="http://schemas.openxmlformats.org/package/2006/content-types",it="/[Content_Types].xml",C="/word/numbering.xml",at=[{text:"\uF0B7",font:"Symbol"},{text:"o",font:"Courier New"},{text:"\uF0A7",font:"Wingdings"}],st=["decimal","lowerLetter","lowerRoman"],$e=9;function ut(e,t){let n=720*(t+1),r='<w:start w:val="1"/>';if(e==="bullet"){let i=at[t%at.length];return `<w:lvl w:ilvl="${t}">${r}<w:numFmt w:val="bullet"/><w:lvlText w:val="${i.text}"/><w:lvlJc w:val="left"/><w:pPr><w:ind w:left="${n}" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="${i.font}" w:hAnsi="${i.font}" w:hint="default"/></w:rPr></w:lvl>`}let o=st[t%st.length],s=o==="lowerRoman";return `<w:lvl w:ilvl="${t}">${r}<w:numFmt w:val="${o}"/><w:lvlText w:val="%${t+1}."/><w:lvlJc w:val="${s?"right":"left"}"/><w:pPr><w:ind w:left="${n}" w:hanging="${s?180:360}"/></w:pPr></w:lvl>`}function qt(e,t){let n=Array.from({length:$e},(r,o)=>ut(e,o)).join("");return `<w:abstractNum w:abstractNumId="${t}"><w:multiLevelType w:val="${e==="bullet"?"hybridMultilevel":"multilevel"}"/>${n}</w:abstractNum>`}function Qt(){let e=chunkZMIX42J7_cjs.Aa(`<w:numbering xmlns:w="${U}"></w:numbering>`,{name:C,contentType:w});return e.ok?e.part:null}var b=(e,t)=>{let n=[];for(let r of e.children)r.kind==="textValue"||r.localName!==t||r.namespaceUri===U&&n.push(r);return n},x=(e,t)=>e.attributes.find(n=>n.localName===t)?.value;function mt(e,t){let n=chunkZMIX42J7_cjs.Aa(`<w:numbering xmlns:w="${U}">${e}</w:numbering>`,{name:C,contentType:w});if(!n.ok)return null;let r=[];for(let o of n.part.root.children)o.kind!=="textValue"&&r.push(o);if(r.length!==t.length)return null;for(let o=0;o<t.length;o+=1){let s=r[o],i=t[o];if(s.namespaceUri!==U||s.localName!==i.localName||i.attribute&&x(s,i.attribute.localName)!==i.attribute.value)return null}return r}var lt=["numPicBullet","abstractNum","num","numIdMacAtCleanup"];function ct(e,t,n){let r=t.indexOf(n);if(r===-1)return e.length;let o=0;return e.forEach((s,i)=>{if(s.kind==="textValue")return;let a=t.indexOf(s.localName);a!==-1&&a<=r&&(o=i+1);}),o}function dt(e,t){let n=0;for(let r of e){let o=x(r,t);!o||!/^\d{1,9}$/.test(o)||(n=Math.max(n,Number(o)));}return n+1}function Zt(e,t){let n=e.parts.get(C),r=n??Qt();if(!r)return null;let o=r.root,s=b(o,"abstractNum"),i=b(o,"num"),a=t==="bullet"?"bullet":"decimal";for(let O of i){let $=x(O,"numId"),Fe=b(O,"abstractNumId")[0],Le=Fe?x(Fe,"val"):void 0;if(!$||!Le)continue;let De=s.find(V=>x(V,"abstractNumId")===Le);if(!De)continue;let Me=b(De,"lvl").find(V=>x(V,"ilvl")==="0"||x(V,"ilvl")===void 0),Be=Me?b(Me,"numFmt")[0]:void 0;if(Be&&x(Be,"val")===a)return {pkg:e,numId:$}}let d=dt(s,"abstractNumId"),l=dt(i,"numId"),c=mt(qt(t,d)+`<w:num w:numId="${l}"><w:abstractNumId w:val="${d}"/></w:num>`,[{localName:"abstractNum",attribute:{localName:"abstractNumId",value:String(d)}},{localName:"num",attribute:{localName:"numId",value:String(l)}}]);if(!c)return null;let p=chunkZMIX42J7_cjs.Ca(r),[u,m]=c.map(O=>ee(O,p));if(!u||!m)return null;let f=chunkZMIX42J7_cjs.Ha(r,o.id,ct(o.children,lt,"abstractNum"),[u]);if(!f.ok)return null;let y=chunkZMIX42J7_cjs.Ha(f.part,o.id,ct(f.part.root.children,lt,"num"),[m]);if(!y.ok)return null;let I=Object.freeze({...e,parts:new Map([...e.parts,[C,y.part]])});if(!n){let O=rn(I);if(!O)return null;let $=ln(O);if(!$)return null;I=$;}return {pkg:I,numId:String(l)}}var en=["nsid","multiLevelType","tmpl","name","styleLink","numStyleLink","lvl"];function ft(e){let t=x(e,"ilvl");return t===void 0||!/^\d{1,9}$/.test(t)?null:Number(t)}function tn(e,t){let n=0;return e.forEach((r,o)=>{if(r.kind!=="textValue"){if(r.localName==="lvl"&&r.namespaceUri===U){(ft(r)??0)<t&&(n=o+1);return}en.includes(r.localName)&&(n=o+1);}}),n}function nn(e,t,n,r){if(!Number.isInteger(n)||n<0||n>=$e||t.length===0||t.length>64)return null;let o=e.parts.get(C);if(!o)return null;let s=o.root,i=b(s,"num").find(f=>x(f,"numId")===t),a=i?b(i,"abstractNumId")[0]:void 0,d=a?x(a,"val"):void 0;if(!d)return null;let l=b(s,"abstractNum").find(f=>x(f,"abstractNumId")===d);if(!l||b(l,"numStyleLink").length>0)return null;let c=b(l,"lvl");if(c.some(f=>ft(f)===n))return e;if(c.length>=$e)return null;let p=mt(ut(r,n),[{localName:"lvl",attribute:{localName:"ilvl",value:String(n)}}]);if(!p)return null;let u=chunkZMIX42J7_cjs.Ca(o),m=chunkZMIX42J7_cjs.Ha(o,l.id,tn(l.children,n),[ee(p[0],u)]);return m.ok?Object.freeze({...e,parts:new Map([...e.parts,[C,m.part]])}):null}function ee(e,t){return e.kind==="textValue"?{...e,id:t()}:{...e,id:t(),children:e.children.map(n=>ee(n,t))}}function rn(e){let t=e.mainDocumentPart,n=on(t),r=e.parts.get(n),o=an(e),s=chunkZMIX42J7_cjs.Aa(`<Relationships xmlns="${Wt}"><Relationship Id="${o}" Type="${ot}" Target="numbering.xml"/></Relationships>`,{name:n,contentType:Jt});if(!s.ok)return null;let i=e.relationships.get(t)??[],a={ownerPart:t,id:o,type:ot,rawTarget:"numbering.xml",targetMode:"Internal",order:i.reduce((u,m)=>Math.max(u,m.order),-1)+1},d=new Map([...e.relationships,[t,[...i,a]]]);if(!r)return Object.freeze({...e,parts:new Map([...e.parts,[n,s.part]]),relationships:d});let l=chunkZMIX42J7_cjs.Ca(r),c=s.part.root.children[0];if(!c)return null;let p=chunkZMIX42J7_cjs.Ha(r,r.root.id,r.root.children.length,[ee(c,l)]);return p.ok?Object.freeze({...e,parts:new Map([...e.parts,[n,p.part]]),relationships:d}):null}function on(e){let t=e.lastIndexOf("/");return `${e.slice(0,t)}/_rels/${e.slice(t+1)}.rels`}function an(e){let t=0;for(let n of e.relationships.values())for(let r of n){let o=/^rId(\d{1,9})$/.exec(r.id);o&&(t=Math.max(t,Number(o[1])));}for(let n of e.externalTargets){let r=/^rId(\d{1,9})$/.exec(n.id);r&&(t=Math.max(t,Number(r[1])));}return `rId${t+1}`}var sn=`<Override PartName="${C}" ContentType="${w}"/>`;function ln(e){let t=e.contentTypes.overrides.get(chunkZMIX42J7_cjs.o(C));if(t===w)return e;if(t!==void 0)return null;let n=e.partBytes.get(it);if(!n)return null;let r=fflate.strFromU8(n),o=pt(r);if(!o)return null;let s=r.lastIndexOf(`</${o.rootName}>`);if(s===-1)return null;let i=r.slice(0,s)+sn+r.slice(s),a=pt(i);if(!a||a.rootName!==o.rootName)return null;let d=[...o.children,yt("Override",{PartName:C,ContentType:w})];return a.children.length!==d.length||a.children.some((l,c)=>l!==d[c])?null:Object.freeze({...e,partBytes:new Map([...e.partBytes,[it,fflate.strToU8(i)]]),contentTypes:Object.freeze({defaults:e.contentTypes.defaults,overrides:new Map([...e.contentTypes.overrides,[chunkZMIX42J7_cjs.o(C),w]])})})}function pt(e){let t=chunkZMIX42J7_cjs.ca(e);if(!t.ok)return null;let n=t.nodes.filter(a=>a.type==="element");if(n.length!==1)return null;let r=n[0],o=r.name.indexOf(":"),s=o===-1?"":r.name.slice(0,o);if(r.name.slice(o+1)!=="Types"||r.attributes[s?`xmlns:${s}`:"xmlns"]!==Yt)return null;let i=[];for(let a of r.children)a.type==="element"&&i.push(yt(a.name,a.attributes));return {rootName:r.name,children:i}}function yt(e,t){let n=Object.entries(t).map(([r,o])=>`${r}=${o}`).sort();return [e,...n].join("")}var gt=Object.freeze({trackRevisions:false,restrictedToTrackedChanges:false,doNotTrackMoves:false,doNotTrackFormatting:false});function cn(e){return e!=null&&e.kind!=="textValue"}function ht(e,t){for(let n of e.children)if(n.kind!=="textValue"&&n.namespaceUri===chunkZMIX42J7_cjs.la&&n.localName===t)return n;return null}function _e(e,t){for(let n of e.attributes)if(n.namespaceUri===chunkZMIX42J7_cjs.la&&n.localName===t)return n.value}function Ae(e,t){let n=ht(e,t);if(!n)return false;let r=_e(n,"val");return r===void 0?true:r!=="0"&&r!=="false"&&r!=="off"}function dn(e){if(!cn(e))return gt;let t=ht(e,"documentProtection"),n=t===null?void 0:_e(t,"enforcement"),r=n!==void 0&&n!=="0"&&n!=="false"&&n!=="off";return {trackRevisions:Ae(e,"trackRevisions"),restrictedToTrackedChanges:r&&t!==null&&_e(t,"edit")==="trackedChanges",doNotTrackMoves:Ae(e,"doNotTrackMoves"),doNotTrackFormatting:Ae(e,"doNotTrackFormatting")}}
|
|
2
|
-
exports.A=Ie;exports.B=ve;exports.C=Pe;exports.D=$t;exports.E=We;exports.F=qe;exports.G=Lt;exports.H=Mt;exports.I=rt;exports.J=jt;exports.K=Gt;exports.L=Zt;exports.M=nn;exports.N=gt;exports.O=dn;exports.a=xt;exports.b=Ve;exports.c=W;exports.d=P;exports.e=J;exports.f=Y;exports.g=g;exports.h=bt;exports.i=k;exports.j=D;exports.k=q;exports.l=M;exports.m=Q;exports.n=xe;exports.o=Oe;exports.p=Ne;exports.q=vt;exports.r=Pt;exports.s=be;exports.t=je;exports.u=kt;exports.v=Re;exports.w=St;exports.x=B;exports.y=Ce;exports.z=Ee;
|
package/dist/chunk-NSM75TN6.cjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
'use strict';var chunkZMIX42J7_cjs=require('./chunk-ZMIX42J7.cjs');var wt=Object.freeze(["default","first","even"]),dt=Object.freeze({kind:"body"});function E(r){switch(r.kind){case "body":return "body";case "note":return `note:${r.noteKind}:${String(r.noteId)}`;default:return `${r.kind}:${String(r.sectionIndex)}:${r.variant}`}}function Be(r){if(typeof r!="object"||r===null)return false;let e=r;return e.kind==="body"?true:e.kind==="note"?(e.noteKind==="footnote"||e.noteKind==="endnote")&&Number.isInteger(e.noteId):e.kind!=="header"&&e.kind!=="footer"?false:Number.isInteger(e.sectionIndex)&&e.sectionIndex>=0&&wt.includes(e.variant)}var Po=["getDocument","getBody","getParagraphs","getSpanParagraphs","getText","getSpanText","getParagraphId","search","getFont","getParagraphFormat","getStyle","getSections","getPageSetup","getFurniture","getNotes","getNoteBody","getNoteKind","getLists","getListId","getListById","getListParagraphs","getParagraphList","getListLevel","getHyperlink","getBookmarks","getBookmarkName","getBookmarkRange","getComments","getCommentReplies","getCommentId","getCommentAuthor","getCommentDate","getCommentText","getCommentRange","getCommentResolved","getRevisions","getRevisionType","getRevisionAuthor","getRevisionDate","getRevisionRange","getContentControls","getContentControlById","getContentControlsByTag","getContentControlsByTitle","getContentControlTag","getContentControlTitle","getContentControlFileId","getContentControlSubtype","getContentControlLock","getContentControlPlaceholderShown","getContentControlTemporary","getContentControlText","getContentControlParagraphs","getContentControlRange"],Cn=["insertText","replaceSpan","insertParagraph","splitParagraph","deleteParagraph","selectSpan","setFont","setParagraphFormat","setStyle","setPageSetup","deleteNote","setListLevel","insertListParagraph","setHyperlink","setCommentResolved","replyToComment","acceptRevision","rejectRevision","acceptAllRevisions","rejectAllRevisions","setContentControlValue","setContentControlProperties","deleteContentControl","insertContentControlText","insertContentControl"],Pn=["deleteNote","setCommentResolved","replyToComment"],wn=new Set(Pn);function _e(r){return wn.has(r.op)}var Tn=new Set(Cn);function Wt(r){return Tn.has(r.op)}function Nn(){let r=globalThis.crypto,e=r?.getRandomValues;if(typeof e!="function")throw new Error("automation: no secure random source. globalThis.crypto.getRandomValues is required to scope document handles to one host.");let s=e.call(r,new Uint8Array(16)),a="";for(let l of s)a+=l.toString(16).padStart(2,"0");return a}function Hn(r){return typeof r=="object"&&r!==null&&"kind"in r&&"ref"in r}function je(){let r=new Map,e=new Map,s=new Map,a=new Map,l=Nn(),u=null,y=(f,k)=>{let m=(a.get(f)??0)+1;a.set(f,m);let g=`${f}:${l}:${String(m)}`;return r.set(g,k),Object.freeze({kind:f,ref:g})},b=(f,k,m)=>{let g=`${f}\0${k}`,R=s.get(g);if(R)return Object.freeze({kind:f,ref:R});let A=y(f,m);return s.set(g,A.ref),A};return {document(){return u??=y("document",{kind:"document"}),u},body(f){return b("body",E(f),{kind:"body",story:f})},paragraph(f,k){let m=e.get(f);if(m)return Object.freeze({kind:"paragraph",ref:m});let g=y("paragraph",{kind:"paragraph",paragraphId:f,story:k});return e.set(f,g.ref),g},section(f){return b("section",String(f),{kind:"section",index:f})},note(f,k){return b("note",`${f}:${String(k)}`,{kind:"note",noteKind:f,noteId:k})},comment(f,k){return b("comment",`${E(k)}\0${f}`,{kind:"comment",commentId:f,story:k})},revision(f,k){return b("revision",`${E(k)}\0${f}`,{kind:"revision",revisionId:f,story:k})},bookmark(f,k){return b("bookmark",`${E(k)}\0${f}`,{kind:"bookmark",name:f,story:k})},list(f,k){return b("list",`${E(k)}\0${f}`,{kind:"list",numId:f,story:k})},contentControl(f,k){return b("contentControl",`${E(k)}\0${f}`,{kind:"contentControl",nodeId:f,story:k})},retarget(f,k){let m=e.get(f);if(!m||f===k)return;let g=r.get(m);!g||g.kind!=="paragraph"||(e.delete(f),r.set(m,{kind:"paragraph",paragraphId:k,story:g.story}),e.has(k)||e.set(k,m));},resolve(f,k){if(!Hn(f)||f.kind!==k||typeof f.ref!="string")return null;let m=r.get(f.ref);return !m||m.kind!==k?null:m}}}var Ln=255,Mn=Object.freeze({nameOf:()=>null,idOf:()=>null,defaultId:null,present:false});function Ke(r){let e=chunkZMIX42J7_cjs.Dc(r);if(!e)return Mn;let s=new Map,a=new Map,l=null;for(let u of chunkZMIX42J7_cjs.Cc(e).values())if(u.type==="paragraph"){if(s.set(u.styleId,u.name),u.name!==null){let y=u.name.trim().toLowerCase();a.has(y)||a.set(y,u.styleId);}u.isDefault&&l===null&&(l=u.styleId);}return Object.freeze({nameOf:u=>s.get(u)??null,idOf:u=>a.get(u.trim().toLowerCase())??null,defaultId:l,present:true})}function Tt(r,e,s){let a=chunkZMIX42J7_cjs.Ea(r,e);if(!a||a.kind!=="paragraph")return null;let l=En(chunkZMIX42J7_cjs.Id(chunkZMIX42J7_cjs.Gd(a),"pStyle"));return l!==null?s.nameOf(l):s.defaultId===null?null:s.nameOf(s.defaultId)}function En(r){if(!r)return null;for(let e of r.attributes)if(e.localName==="val")return e.value;return null}function Nt(r,e){if(typeof r!="string"||r.trim().length===0)return {ok:false,detail:"style: not a name"};if(r.length>Ln)return {ok:false,detail:"style: name too long"};if(!chunkZMIX42J7_cjs.W(r))return {ok:false,detail:"style: not valid XML text"};if(!e.present)return {ok:false,detail:"style: this document defines no styles"};let s=e.idOf(r);return s===null?{ok:false,detail:"style: this document defines no paragraph style with that name"}:{ok:true,styleId:s}}var De=20,Fn=31680,Bn=1999,_n=Object.freeze({bold:null,italic:null,name:null,size:null,color:null});function U(r,e){if(!r)return null;for(let s of r.attributes)if(s.localName===e)return s.value;return null}function $t(r){if(!r)return null;let e=U(r,"val");if(e===null)return true;let s=e.trim().toLowerCase();return !(s==="0"||s==="false"||s==="off"||s==="none")}function jn(r){if(r===null)return null;let e=r.trim();return /^[0-9a-fA-F]{6}$/.test(e)?`#${e.toUpperCase()}`:null}function Kn(r){if(r===null)return null;let e=Number(r.trim());return !Number.isFinite(e)||e<=0?null:e/2}function ct(r){if(r===null)return null;let e=Number(r.trim());return Number.isFinite(e)?e/De:null}function At(r){if(r.length===0)return null;let e=r[0];if(e===null)return null;for(let s of r)if(s!==e)return null;return e}function Ve(r,e){let s=[];for(let a of e)for(let l of chunkZMIX42J7_cjs.vf(r,a.paragraphId,a.start,a.end))s.push(chunkZMIX42J7_cjs.Hd(l));return s.length===0?_n:{bold:At(s.map(a=>$t(chunkZMIX42J7_cjs.Id(a,"b")))),italic:At(s.map(a=>$t(chunkZMIX42J7_cjs.Id(a,"i")))),name:At(s.map(a=>{let l=chunkZMIX42J7_cjs.Id(a,"rFonts"),u=U(l,"ascii");return u===null||u.length===0?null:u})),size:At(s.map(a=>Kn(U(chunkZMIX42J7_cjs.Id(a,"sz"),"val")))),color:At(s.map(a=>jn(U(chunkZMIX42J7_cjs.Id(a,"color"),"val"))))}}var zn=Object.freeze({left:"Left",start:"Left",center:"Centered",right:"Right",end:"Right",both:"Justified",distribute:"Justified"}),Dn=Object.freeze({Left:"left",Centered:"center",Right:"right",Justified:"both"});function Vn(r){let e=U(chunkZMIX42J7_cjs.Id(r,"jc"),"val");return e===null?"Unknown":zn[e.trim().toLowerCase()]??"Unknown"}function We(r,e,s){let a=chunkZMIX42J7_cjs.Ea(r,e);if(!a||a.kind!=="paragraph")return null;let l=chunkZMIX42J7_cjs.Gd(a),u=chunkZMIX42J7_cjs.Id(l,"spacing"),y=chunkZMIX42J7_cjs.Id(l,"ind");return {alignment:Vn(l),style:Tt(r,e,s),firstLineIndent:Wn(y),leftIndent:ct(U(y,"left")??U(y,"start")),rightIndent:ct(U(y,"right")??U(y,"end")),lineSpacing:ct(U(u,"line")),spaceBefore:ct(U(u,"before")),spaceAfter:ct(U(u,"after")),widowControl:$t(chunkZMIX42J7_cjs.Id(l,"widowControl"))}}function Wn(r){let e=ct(U(r,"firstLine"));if(e!==null)return e;let s=ct(U(r,"hanging"));return s===null?null:-s}function Ht(r,e){if(typeof r!="number"||!Number.isFinite(r))return {ok:false,detail:`${e}: not a measurement`};let s=Math.round(r*De);return Math.abs(s)>Fn?{ok:false,detail:`${e}: out of range`}:{ok:true,value:s}}function $e(r){let e=[];if(r.bold!==void 0){if(typeof r.bold!="boolean")return {ok:false,detail:"bold: not a boolean"};e.push({localName:"b",...r.bold?{}:{attributes:{val:"0"}}});}if(r.italic!==void 0){if(typeof r.italic!="boolean")return {ok:false,detail:"italic: not a boolean"};e.push({localName:"i",...r.italic?{}:{attributes:{val:"0"}}});}if(r.name!==void 0){let s=r.name;if(typeof s!="string"||s.length===0||s.length>128)return {ok:false,detail:"name: not a font name"};if(!chunkZMIX42J7_cjs.W(s))return {ok:false,detail:"name: not valid XML text"};e.push({localName:"rFonts",attributes:{ascii:s,hAnsi:s,cs:s}});}if(r.size!==void 0){let s=r.size;if(typeof s!="number"||!Number.isFinite(s)||s<=0)return {ok:false,detail:"size: not a positive number of points"};let a=Math.round(s*2);if(a<1||a>Bn)return {ok:false,detail:"size: out of range"};e.push({localName:"sz",attributes:{val:String(a)}}),e.push({localName:"szCs",attributes:{val:String(a)}});}if(r.color!==void 0){let s=r.color;if(typeof s!="string"||!/^#[0-9a-fA-F]{6}$/.test(s.trim()))return {ok:false,detail:"color: not a #RRGGBB triplet"};e.push({localName:"color",attributes:{val:s.trim().slice(1).toUpperCase()}});}return e.length===0?{ok:false,detail:"no formatting was asked for"}:{ok:true,value:e}}function Ue(r,e,s,a){let l=chunkZMIX42J7_cjs.Ea(r,e);if(!l||l.kind!=="paragraph")return {ok:false,detail:"not a paragraph"};let u=chunkZMIX42J7_cjs.Gd(l),y=[];if(s.style!==void 0){let A=Nt(s.style,a);if(!A.ok)return {ok:false,detail:A.detail};y.push({localName:"pStyle",attributes:{val:A.styleId}});}if(s.alignment!==void 0){let A=Dn[s.alignment];if(A===void 0)return {ok:false,detail:`alignment: ${String(s.alignment)}`};y.push({localName:"jc",attributes:{val:A}});}let b=chunkZMIX42J7_cjs.Id(u,"ind"),f=ze(b),k=false;if(s.firstLineIndent!==void 0){let A=Ht(s.firstLineIndent,"firstLineIndent");if(!A.ok)return A;delete f.firstLine,delete f.hanging,A.value<0?f.hanging=String(-A.value):f.firstLine=String(A.value),k=true;}for(let[A,T,C]of [["leftIndent","left","start"],["rightIndent","right","end"]]){let N=s[A];if(N===void 0)continue;let L=Ht(N,A);if(!L.ok)return L;delete f[C],f[T]=String(L.value),k=true;}k&&y.push({localName:"ind",attributes:f});let m=chunkZMIX42J7_cjs.Id(u,"spacing"),g=ze(m),R=false;for(let[A,T]of [["spaceBefore","before"],["spaceAfter","after"]]){let C=s[A];if(C===void 0)continue;let N=Ht(C,A);if(!N.ok)return N;if(N.value<0)return {ok:false,detail:`${A}: out of range`};g[T]=String(N.value),R=true;}if(s.lineSpacing!==void 0){let A=Ht(s.lineSpacing,"lineSpacing");if(!A.ok)return A;if(A.value<=0)return {ok:false,detail:"lineSpacing: out of range"};g.line=String(A.value),g.lineRule??="auto",R=true;}if(R&&y.push({localName:"spacing",attributes:g}),s.widowControl!==void 0){if(typeof s.widowControl!="boolean")return {ok:false,detail:"widowControl: not a boolean"};y.push({localName:"widowControl",...s.widowControl?{}:{attributes:{val:"0"}}});}return y.length===0?{ok:false,detail:"no formatting was asked for"}:{ok:true,value:chunkZMIX42J7_cjs.rf(chunkZMIX42J7_cjs.pf(r,e),y)}}function ze(r){let e=Object.create(null);if(!r)return e;for(let s of r.attributes)e[s.localName]=s.value;return e}var Ye=20,$n=63360;function at(r){return Math.round(r/Ye*100)/100}function Un(r,e){if(typeof r!="number"||!Number.isFinite(r))return null;let s=Math.round(r*Ye);return s>$n||s<0||s===0&&!e?null:s}var Yn=[["pageWidth","pageWidthTwips",false],["pageHeight","pageHeightTwips",false],["topMargin","marginTopTwips",true],["rightMargin","marginRightTwips",true],["bottomMargin","marginBottomTwips",true],["leftMargin","marginLeftTwips",true]];function Xe(r){if(typeof r!="object"||r===null)return {ok:false,reason:"that is not a page setup",detail:"not-an-object"};let e=r,s={},a=0;for(let[u,y,b]of Yn){let f=e[u];if(f===void 0)continue;let k=Un(f,b);if(k===null)return {ok:false,reason:`that is not a value for ${u}`,detail:String(f)};s[y]=k,a+=1;}let l=e.orientation;if(l!==void 0){if(l!=="portrait"&&l!=="landscape")return {ok:false,reason:"that is not an orientation",detail:String(l)};s.orientation=l,a+=1;}return a===0?{ok:false,reason:"that page setup names nothing to write",detail:"empty"}:{ok:true,value:s}}function Xn(r){let e=chunkZMIX42J7_cjs.Ke(r),s=e.widthTwips>e.heightTwips?"landscape":"portrait";return Object.freeze({pageWidth:at(e.widthTwips),pageHeight:at(e.heightTwips),orientation:s,topMargin:at(e.topTwips),rightMargin:at(e.rightTwips),bottomMargin:at(e.bottomTwips),leftMargin:at(e.leftTwips),headerDistance:at(e.headerTwips),footerDistance:at(e.footerTwips),gutter:at(e.gutterTwips)})}function Gn(r,e){if(!e)return null;let s=null,a=(l,u,y)=>{if(s!==null||l.kind==="textValue"||y>64)return;let b=l.kind==="paragraph"?l.id:u;if(l.id===e.id){s=b;return}for(let f of l.children)a(f,b,y+1);};return a(r.root,null,0),s}function Ge(r,e,s){let a=chunkZMIX42J7_cjs.Qb(e.root);return Object.freeze(a.map((l,u)=>{let y=s[u];return Object.freeze({index:u,markParagraphId:Gn(e,l),pageSetup:Xn(l),titlePage:y?.titlePage??false,evenAndOddHeaders:y?.evenAndOddHeaders??false})}))}var Yt="\r",Jn=Object.freeze({nameOf:()=>null,idOf:()=>null,defaultId:null,present:false}),Qn=Object.freeze([]),Zn=Object.freeze([]),Je=Object.freeze([]),qn=Object.freeze({package:null,body:null,story:()=>null,storyOf:()=>null,sections:()=>Zn,furniture:()=>Je,noteIds:()=>Object.freeze([]),styles:()=>Jn});function to(r){return r.kind==="textValue"?Qn:Object.freeze(r.children.filter(e=>e.kind!=="textValue").map(e=>{let s=[];chunkZMIX42J7_cjs.ye([e],s,0);let a=e.kind==="paragraph"?"paragraph":e.kind==="table"?"table":"other",l=e.kind==="paragraph"&&chunkZMIX42J7_cjs.Id(chunkZMIX42J7_cjs.Gd(e),"sectPr")!==void 0;return Object.freeze({id:e.id,kind:a,paragraphIds:Object.freeze(s.map(u=>u.id)),removable:a!=="other"&&!l})}))}function Ut(r,e,s,a,l){let u=chunkZMIX42J7_cjs.xe(a),y=Object.freeze(u.map(g=>g.id)),b=new Map,f=new Map;u.forEach((g,R)=>{b.set(g.id,R),f.set(g.id,g);});let k=new Map,m=g=>{if(!b.has(g))return null;let R=k.get(g);if(R!==void 0)return R;let A=chunkZMIX42J7_cjs.$e(e,g)??"";return k.set(g,A),A};return {story:r,part:e,root:a,scope:s,paragraphIds:y,blocks:to(a),has:g=>b.has(g),indexOf:g=>b.get(g)??-1,paragraph(g){let R=f.get(g);return R?{nodeId:g,paraId:chunkZMIX42J7_cjs.Gc(R),text:m(g)??""}:null},node:g=>f.get(g)??null,paragraphText:m,text:()=>y.map(g=>m(g)??"").join(Yt),styles:l}}function Qe(r){let e=r.parts.get(r.mainDocumentPart);if(!e)return qn;let s,a=()=>s??=Ke(r),l,u=()=>l??=chunkZMIX42J7_cjs.Rb(r),y,b=new Map,f=A=>{let T=u()[A.sectionIndex];return T?(A.kind==="header"?T.headers:T.footers).get(A.variant)??null:null},k=A=>{if(A.kind==="body"){let C=chunkZMIX42J7_cjs.we(e);return C?Ut(A,e,{kind:"body"},C,a):null}if(A.kind==="note"){let C=chunkZMIX42J7_cjs.Qd(r,A.noteKind);if(!C)return null;let N=chunkZMIX42J7_cjs.sd(C.root,A.noteId);return !N||!chunkZMIX42J7_cjs.id(N)?null:Ut(A,C,{kind:"notesPart",noteKind:A.noteKind},N,a)}let T=f(A);return T?Ut(A,T.part,{kind:"headerFooter",rId:T.rId},T.part.root,a):null},m=A=>{let T=E(A);if(b.has(T))return b.get(T)??null;let C=k(A);return b.set(T,C),C},g=A=>{if(m(dt)?.has(A))return dt;for(let[C]of u().entries())for(let N of ["header","footer"])for(let L of wt){let _={kind:N,sectionIndex:C,variant:L};if(m(_)?.has(A))return _}for(let C of ["footnote","endnote"])for(let N of R(C)){let L={kind:"note",noteKind:C,noteId:N};if(m(L)?.has(A))return L}return null},R=A=>{let T=chunkZMIX42J7_cjs.Qd(r,A);if(!T)return eo;let C=[];for(let N of chunkZMIX42J7_cjs.rd(T.root)){if(!chunkZMIX42J7_cjs.id(N))continue;let L=chunkZMIX42J7_cjs.gd(N);L!==null&&C.push(L);}return Object.freeze(C)};return {package:r,get body(){return m(dt)},story:m,storyOf:g,sections:()=>y??=Ge(r,e,u()),furniture(A){let T=u()[A];if(!T)return Je;let C=[];for(let N of ["header","footer"]){let L=N==="header"?T.headers:T.footers;for(let _ of wt){let J=L.get(_);J&&C.push(Object.freeze({kind:N,variant:_,declared:!J.inherited}));}}return Object.freeze(C)},noteIds:R,styles:a}}var eo=Object.freeze([]);function Z(r,e){return {ok:false,code:r,detail:e}}function q(r){return {ok:true,value:r}}function W(r,e,s,a){let l=s.resolve(r,e);if(!l||l.kind!=="body"&&l.kind!=="paragraph")return Z("invalid-handle",`not-a-${e}-handle`);let u=a.story(l.story);return u?q(u):Z("invalid-handle",`no-such-story:${E(l.story)}`)}function Y(r,e,s){let a=e.resolve(r,"paragraph");if(!a||a.kind!=="paragraph")return Z("invalid-handle","not-a-paragraph-handle");let l=s.story(a.story);if(!l)return Z("invalid-handle",`no-such-story:${E(a.story)}`);let u=l.indexOf(a.paragraphId);return u<0?Z("invalid-handle","paragraph-not-in-body"):q({story:a.story,paragraphId:a.paragraphId,index:u,offset:0})}function no(r,e,s){let a=Y(r.paragraph,e,s);if(!a.ok)return a;let u=(s.story(a.value.story)?.paragraphText(a.value.paragraphId)??"").length,{offset:y}=r;return !Number.isInteger(y)||y<0||y>u?Z("invalid-offset",`offset ${String(y)} outside 0..${String(u)}`):q({...a.value,offset:y})}function Lt(r,e,s){if("paragraph"in r){if(!("at"in r))return no(r,e,s);let b=Y(r.paragraph,e,s);if(!b.ok||r.at==="start")return b;let k=(s.story(b.value.story)?.paragraphText(b.value.paragraphId)??"").length;return q({...b.value,offset:k})}let a=W(r.body,"body",e,s);if(!a.ok)return a;let l=a.value.paragraphIds;if(l.length===0)return Z("invalid-offset","empty-story");if(r.at==="start")return q({story:a.value.story,paragraphId:l[0],index:0,offset:0});let u=l.length-1,y=l[u];return q({story:a.value.story,paragraphId:y,index:u,offset:(a.value.paragraphText(y)??"").length})}function oo(r,e){return r.index<e.index||r.index===e.index&&r.offset<=e.offset}function ro(r){let e=r.paragraphIds;if(e.length===0)return null;let s=e.length-1,a=e[s];return {start:{story:r.story,paragraphId:e[0],index:0,offset:0},end:{story:r.story,paragraphId:a,index:s,offset:(r.paragraphText(a)??"").length}}}function $(r,e,s){if("body"in r){let u=W(r.body,"body",e,s);return u.ok?q(ro(u.value)):u}if("paragraph"in r){let u=Y(r.paragraph,e,s);if(!u.ok)return u;let b=(s.story(u.value.story)?.paragraphText(u.value.paragraphId)??"").length;return q({start:u.value,end:{...u.value,offset:b}})}let a=Lt(r.start,e,s);if(!a.ok)return a;let l=Lt(r.end,e,s);return l.ok?E(a.value.story)!==E(l.value.story)?Z("invalid-handle","span-crosses-stories"):oo(a.value,l.value)?q({start:a.value,end:l.value}):Z("invalid-offset","span-start-after-end"):l}function st(r,e,s){if("body"in r)return W(r.body,"body",e,s);if("paragraph"in r)return W(r.paragraph,"paragraph",e,s);let a=r.start;return "paragraph"in a?W(a.paragraph,"paragraph",e,s):W(a.body,"body",e,s)}function Mt(r,e,s){if("paragraph"in r)return Y(r.paragraph,e,s);let a=W(r.body,"body",e,s);if(!a.ok)return a;let l=a.value.paragraphIds;if(l.length===0)return Z("invalid-offset","empty-story");let u=r.at==="first"?0:l.length-1;return q({story:a.value.story,paragraphId:l[u],index:u,offset:0})}function tt(r,e){return r?e.paragraphIds.slice(r.start.index,r.end.index+1):[]}function Xt(r,e){if(!r)return [];let s=tt(r,e),a=s.length-1;return s.map((l,u)=>{let y=(e.paragraphText(l)??"").length,b=u===0?r.start.offset:0,f=u===a?r.end.offset:y;return {paragraphId:l,start:b,end:f,whole:b===0&&f===y}})}function Ze(r,e,s){if(!r)return "";let a=tt(r,e);return a.length===1?(e.paragraphText(r.start.paragraphId)??"").slice(r.start.offset,r.end.offset):a.map((l,u)=>{let y=e.paragraphText(l)??"";return u===0?y.slice(r.start.offset):u===a.length-1?y.slice(0,r.end.offset):y}).join(s)}function Gt(r,e){return {start:{paragraph:e.paragraph(r.start.paragraphId,r.start.story),offset:r.start.offset},end:{paragraph:e.paragraph(r.end.paragraphId,r.end.story),offset:r.end.offset}}}var ao=256,qe=1e4;function Jt(r,e){if(r.kind!=="textValue"){for(let s of r.attributes)if(s.namespaceUri===chunkZMIX42J7_cjs.la&&s.localName===e)return s.value}}function so(r){return r.startsWith("_")}function Qt(r){let e=new Map,s=[],a=new Set;for(let l of r.paragraphIds){let u=r.node(l);if(u?.kind!=="paragraph")continue;let y=chunkZMIX42J7_cjs.Kd(u),b=f=>{if(f.kind!=="textValue"){if(f.kind==="bookmarkStart"){if(s.length>=qe||e.size>=qe)return;let k=Jt(f,"id"),m=Jt(f,"name");if(k===void 0||m===void 0||m.length===0||m.length>ao||so(m)||a.has(m)||e.has(k))return;let g=y.spanOf(f)?.start??0;e.set(k,{name:m,start:{paragraphId:l,offset:g}});return}if(f.kind==="bookmarkEnd"){let k=Jt(f,"id");if(k===void 0)return;let m=e.get(k);if(!m)return;e.delete(k),a.add(m.name);let g=y.spanOf(f)?.start??0;s.push(Object.freeze({name:m.name,start:m.start,end:{paragraphId:l,offset:g}}));return}for(let k of f.children)b(k);}};for(let f of u.children)b(f);}return Object.freeze(s)}function Zt(r,e){return Qt(r).find(s=>s.name===e)??null}function tn(r,e){let s=r.node(e);if(s?.kind!=="paragraph")return Object.freeze([]);let a=chunkZMIX42J7_cjs.Kd(s),l=[],u=(y,b)=>{if(!(y.kind==="textValue"||b>32)){if(chunkZMIX42J7_cjs.Qa(y)){let f=a.spanOf(y);f&&l.push(Object.freeze({id:y.id,paragraphId:e,start:f.start,end:f.end}));return}for(let f of y.children)u(f,b+1);}};for(let y of s.children)u(y,0);return Object.freeze(l)}function en(r,e,s){let a=chunkZMIX42J7_cjs.Ta(s,l=>chunkZMIX42J7_cjs.Pc(r,e,l));if(a.kind==="external")return a.href;if(a.kind==="internal"){let l=chunkZMIX42J7_cjs.Ra(s);return l===void 0||l.length===0?null:`#${l}`}return null}var ft=8;function nn(r){if(!r||r.kind==="textValue")return null;for(let e of r.attributes)if(e.namespaceUri===chunkZMIX42J7_cjs.la&&e.localName==="val")return e.value;return null}function on(r){let e=chunkZMIX42J7_cjs.Id(chunkZMIX42J7_cjs.Gd(r),"numPr");if(!e)return null;let s=nn(chunkZMIX42J7_cjs.Id(e,"numId"));if(s===null||!/^\d{1,10}$/.test(s)||s==="0")return null;let a=nn(chunkZMIX42J7_cjs.Id(e,"ilvl")),l=a===null?0:Number(a);return !Number.isInteger(l)||l<0||l>ft?null:{numId:s,level:l}}function Et(r){let e=new Map;for(let s of r.paragraphIds){let a=r.node(s);if(!a)continue;let l=on(a);if(!l)continue;let u=e.get(l.numId);u?u.push(s):e.set(l.numId,[s]);}return Object.freeze([...e].map(([s,a])=>Object.freeze({numId:s,paragraphIds:Object.freeze(a)})))}function vt(r,e){let s=r.node(e);return s?on(s):null}var io={insert:"Insert",delete:"Delete",replace:"Replace",moveFrom:"MovedFrom",moveTo:"MovedTo",format:"Property",paragraphMark:"ParagraphProperty"};function lo(r){return r.kind==="note"}function uo(r,e){return e.length===0?!lo(r.story):e.every(s=>r.has(s.start.paragraphId))}function qt(r){let e=[];for(let s of chunkZMIX42J7_cjs.Af(r.part)){if(s.readOnly||s.revisionKind==="structural"||!uo(r,s.ranges))continue;let a=io[s.revisionKind];a!==void 0&&e.push(Object.freeze({id:s.id,type:a,author:s.author,date:s.date??"",item:s}));}return Object.freeze(e)}function co(r,e){let s=r;for(let a=0;s!==void 0&&a<=64;a+=1){if(s.parentId===void 0)return s.range!==null;s=e.get(s.parentId);}return false}var po=Object.freeze({items:Object.freeze([]),roots:Object.freeze([]),byId:()=>null,textOf:()=>""});function rn(r,e){let s=r.parts.get(chunkZMIX42J7_cjs.if(r,e.part.name));if(!s)return po;let a=r.parts.get(chunkZMIX42J7_cjs.jf(r,e.part.name)),l=chunkZMIX42J7_cjs.Be(s),u=a?chunkZMIX42J7_cjs.Ce(a):new Map,y=chunkZMIX42J7_cjs.Ae(e.part).filter(g=>e.has(g.start.paragraphId)),b=chunkZMIX42J7_cjs.Bf(l,y,u),f=new Map(b.map(g=>[g.id,g])),k=b.filter(g=>co(g,f)),m=new Map(k.map(g=>[g.id,g]));return Object.freeze({items:Object.freeze(k),roots:Object.freeze(k.filter(g=>g.parentId===void 0)),byId:g=>m.get(g)??null,textOf:g=>{let R=m.get(g);return R?chunkZMIX42J7_cjs.xf(R.comment):""}})}var fo=1e4;function an(r,e){let s=[],a=e.kind==="contentControl"?chunkZMIX42J7_cjs.he(e):e;if(!a)return s;for(let l of chunkZMIX42J7_cjs.le(a))if(!(l.ancestors.length>0)){if(s.length>=fo)break;s.push(un(r,l.node));}return s}function sn(r,e){for(let s of chunkZMIX42J7_cjs.le(r.root))if(s.node.id===e)return un(r,s.node);return null}function dn(r,e){for(let s of chunkZMIX42J7_cjs.le(r.root))if(s.node.id===e)return s.node;return null}function te(r,e){let s=cn(e);if(s.length>0){let a=s[0],l=s[s.length-1],u=r.paragraphText(l);return u===null||!r.has(a)?null:{start:{paragraphId:a,offset:0},end:{paragraphId:l,offset:u.length}}}for(let a of r.paragraphIds){let l=r.node(a);if(!l||l.kind!=="paragraph"||!l.children.some(y=>y.id===e.id))continue;let u=chunkZMIX42J7_cjs.Kd(l).spanOf(e);return u?{start:{paragraphId:a,offset:u.start},end:{paragraphId:a,offset:u.end}}:null}return null}function ln(r){return chunkZMIX42J7_cjs.ne(r)}function un(r,e){return {nodeId:e.id,properties:chunkZMIX42J7_cjs.je(e),lock:chunkZMIX42J7_cjs.af(r.part,e.id),paragraphIds:cn(e)}}function cn(r){let e=chunkZMIX42J7_cjs.he(r);if(!e)return [];let s=[];return chunkZMIX42J7_cjs.ye(e.children,s,0),s.map(a=>a.id)}var bt=/[\r\n\v\f\u2028\u2029]/,mo=16,go=64,pn=/\s/;function yo(r,e,s){return Object.freeze(s===void 0?{code:r,message:e}:{code:r,message:e,detail:s})}function d(r,e,s){return {ok:false,error:yo(r,e,s)}}var B=Object.freeze({kind:"applied"});function I(r){return {ok:true,kind:"query",value:r}}function fn(r){let e=r.kind==="contentControl"?chunkZMIX42J7_cjs.he(r):r;return e?chunkZMIX42J7_cjs.le(e).map(s=>s.node):[]}var ho=new Set(["unlocked","sdtLocked","contentLocked","sdtContentLocked"]),ko=new Set(["whole","content","start","end","before","after"]),Ao=new Set(["richText","plainText","dropDownList","comboBox","date"]),vo=4096;function bo(r){let e=(l,u)=>({ok:false,code:"unsupported-content",message:l,detail:u});if(typeof r!="object"||r===null||!("kind"in r))return e("a control value states its kind","value");let s=r,a=s.kind;if(a==="text"||a==="listItem"){let l=a==="text"?s.text:s.value;return typeof l!="string"?e("that value is not a string",String(a)):l.length>vo?e("that value is too long",String(l.length)):{ok:true,value:a==="text"?{kind:"text",text:l}:{kind:"listItem",value:l}}}if(a==="checkbox"){let l=s.checked;return typeof l!="boolean"?e("a checkbox is checked or not","checked"):{ok:true,value:{kind:"checkbox",checked:l}}}if(a==="date"){let l=s.iso;return typeof l!="string"?e("a date is an ISO-8601 string","iso"):l.length>64?e("that is not a date",String(l.length)):{ok:true,value:{kind:"date",iso:l}}}return e("that is not a value any control accepts",String(a))}function Io(r,e){let s=[],a=0;for(;a<r.length;){let l=null;for(let u of e){let y=r.indexOf(u,a);y<0||(!l||y<l.start||y===l.start&&u.length>l.length)&&(l={start:y,length:u.length});}if(!l)break;s.push(l),a=l.start+l.length;}return s}function xo(r,e,s){let a=e[s]?.markParagraphId??null;if(a!==null)return a;let l=r.paragraphIds,u=l[l.length-1];return u===void 0||new Set(e.map(b=>b.markParagraphId).filter(b=>b!==null)).has(u)?null:u}function So(r,e){for(let s of [r.start,r.end]){let a=e.paragraphText(s.paragraphId);if(a===null||s.offset>a.length)return false}return true}function Ro(r,e,s){let a=e,l=s;for(;a<l&&pn.test(r[a]);)a+=1;for(;l>a&&pn.test(r[l-1]);)l-=1;return [a,l]}function mn(r){let{handles:e,capabilities:s}=r,a=r.reads,l=new Map,u=o=>{let t=E(o.story),n=l.get(t);if(n)return n;let i=new Map,c=o.paragraphIds.map(h=>{let v={id:h};return i.set(h,v),v}),p={reads:o,order:c,slotById:i,created:[],restructured:new Set,touched:new Set,formatted:new Set,selected:new Set,retargets:[]};return l.set(t,p),p},y=[],b=false,f=false,k=null,m=o=>k===null?(k=o,null):k===o?null:d("conflicting-operations","one batch writes into one story",`${E(k.reads.story)} then ${E(o.reads.story)}`),g=o=>{let t=a.package;return t===null?null:rn(t,o)},R=o=>{let t=e.resolve(o,"comment");if(!t||t.kind!=="comment")return {ok:false,planned:d("invalid-handle","that handle does not name a comment","comment")};let n=a.story(t.story);if(!n)return {ok:false,planned:d("invalid-handle","that story is not in this document")};let c=g(n)?.byId(t.commentId)??null;return c?{ok:true,reads:n,item:c}:{ok:false,planned:d("invalid-handle","this document no longer holds that comment",t.commentId)}},A=o=>{let t=e.resolve(o,"revision");if(!t||t.kind!=="revision")return {ok:false,planned:d("invalid-handle","that handle does not name a tracked change","revision")};let n=a.story(t.story);if(!n)return {ok:false,planned:d("invalid-handle","that story is not in this document")};let i=qt(n).find(c=>c.id===t.revisionId)??null;return i?{ok:true,reads:n,item:i}:{ok:false,planned:d("invalid-handle","this document no longer holds that tracked change",t.revisionId)}},T=(o,t)=>{let n=o.paragraphText(t.start.paragraphId),i=o.paragraphText(t.end.paragraphId);if(n===null||i===null)return null;let c={story:o.story,paragraphId:t.start.paragraphId,index:o.indexOf(t.start.paragraphId),offset:Math.min(t.start.offset,n.length)},p={story:o.story,paragraphId:t.end.paragraphId,index:o.indexOf(t.end.paragraphId),offset:Math.min(t.end.offset,i.length)};return G({start:c,end:p})},C=(o,t)=>o.order.indexOf(t),N=(o,t)=>o.selected.has(t)?d("conflicting-operations","this batch selects a paragraph it also edits",t):null,L=(o,t)=>{let n=N(o,t);return n||(o.restructured.has(t)||o.touched.has(t)?d("conflicting-operations","another operation in this batch already changes that paragraph",t):(o.restructured.add(t),o.touched.add(t),null))},_=(o,t)=>{let n=N(o,t);return n||(o.restructured.has(t)?d("conflicting-operations","another operation in this batch restructures that paragraph",t):(o.touched.add(t),null))},J=(o,t,n)=>{let i=`${n}:${t}`;if(o.formatted.has(i))return d("conflicting-operations","another operation in this batch already writes that formatting",t);let c=_(o,t);return c||(o.formatted.add(i),null)},D=(o,t)=>{let n={id:null};return o.order.splice(t,0,n),o.created.push(n),n},G=o=>Gt(o,e),nt=o=>o===null?null:a.story(o.start.story),It=(o,t,n,i)=>{if(i?.matchWildcards===true)return d("unsupported-capability","wildcard search is not implemented","matchWildcards");if(i?.ignorePunct===true)return d("unsupported-capability","ignoring punctuation is not implemented","ignorePunct");if(i?.ignoreSpace===true)return d("unsupported-capability","ignoring whitespace is not implemented","ignoreSpace");if(!chunkZMIX42J7_cjs.Lf(n))return d("unsupported-content","that is not a query this host will scan for","text");let c=i?.limit;if(c!==void 0&&(!Number.isInteger(c)||c<0))return d("invalid-offset","limit must be a non-negative integer",String(c));let p=Math.min(c??2e3,2e3),h=[],v=tt(t,o),x=v.length-1;for(let[P,w]of v.entries()){if(p<=0)break;let M=o.paragraphText(w)??"",O=chunkZMIX42J7_cjs.Mf(M,n,p,{matchCase:i?.matchCase===true,wholeWord:i?.matchWholeWord===true,...P===0&&t?{from:t.start.offset}:{},...P===x&&t?{to:t.end.offset}:{}});for(let S of O.matches){let V=e.paragraph(w,o.story);h.push({start:{paragraph:V,offset:S.start},end:{paragraph:V,offset:S.start+S.length}});}p-=O.matches.length;}return I({kind:"spans",spans:h})},xt=(o,t,n)=>{if(typeof n!="string")return d("unsupported-content","insertText needs text","text");if(bt.test(n))return d("unsupported-content","text carrying a paragraph mark is not written by this host","paragraph-mark-in-text");let i=m(o);if(i)return i;let c=_(o,t.paragraphId);if(c)return c;let p=n.length===0?[]:[{op:"insertText",paragraphId:t.paragraphId,offset:t.offset,text:n}],h=()=>({kind:"span",span:G({start:t,end:{...t,offset:t.offset+n.length}})});return {ok:true,kind:"command",ops:p,story:o.reads.story,answer:h}},ee=(o,t,n)=>{let i=o.reads;if(typeof n!="string")return d("unsupported-content","replaceSpan needs text","text");if(bt.test(n))return d("unsupported-content","text carrying a paragraph mark is not written by this host","paragraph-mark-in-text");let c=tt(t,i),p=t.start.paragraphId,h=[],v=m(o);if(v)return v;if(c.length===1){let w=_(o,p);if(w)return w;t.end.offset>t.start.offset&&h.push({op:"deleteText",paragraphId:p,start:t.start.offset,end:t.end.offset});}else {for(let O of c){let S=L(o,O);if(S)return S}let w=t.end.paragraphId,M=(i.paragraphText(p)??"").length;t.start.offset<M&&h.push({op:"deleteText",paragraphId:p,start:t.start.offset,end:M}),t.end.offset>0&&h.push({op:"deleteText",paragraphId:w,start:0,end:t.end.offset});for(let O of c.slice(1,-1))h.push({op:"deleteBlock",blockId:O});h.push({op:"joinParagraphs",firstId:p,secondId:w});for(let O of c.slice(1)){let S=o.slotById.get(O);S&&o.order.splice(C(o,S),1);}}n.length>0&&h.push({op:"insertText",paragraphId:p,offset:t.start.offset,text:n});let x={...t.start,paragraphId:p},P=()=>({kind:"span",span:G({start:x,end:{...x,offset:x.offset+n.length}})});return {ok:true,kind:"command",ops:h,story:o.reads.story,answer:P}},H=(o,t)=>{let n=o.reads;if(typeof t!="string")return d("unsupported-content","replaceSpan needs text","text");if(bt.test(t))return d("unsupported-content","text carrying a paragraph mark is not written by this host","paragraph-mark-in-text");let i=n.blocks,c=i.filter(S=>S.removable),p=i.filter(S=>!S.removable).flatMap(S=>S.paragraphIds),h=p.length===0?c.find(S=>S.kind==="paragraph"):void 0;if(!h&&p.length===0)return d("invalid-offset","that story holds no paragraph this host can write into","no-top-level-paragraph");let v=m(o);if(v)return v;for(let S of n.paragraphIds){let V=L(o,S);if(V)return V}let x=[],P=(h?[h.id]:[...p]).sort((S,V)=>n.indexOf(S)-n.indexOf(V)),w=P[0];for(let S of P){let V=(n.paragraphText(S)??"").length;V>0&&x.push({op:"deleteText",paragraphId:S,start:0,end:V});}for(let S of c)S.id!==h?.id&&x.push({op:"deleteBlock",blockId:S.id});t.length>0&&x.push({op:"insertText",paragraphId:w,offset:0,text:t});for(let S of c)if(S.id!==h?.id)for(let V of S.paragraphIds){let St=o.slotById.get(V);St&&o.order.splice(C(o,St),1);}let M={story:n.story,paragraphId:w,index:n.indexOf(w),offset:0},O=()=>({kind:"span",span:G({start:M,end:{...M,offset:t.length}})});return {ok:true,kind:"command",ops:x,story:n.story,answer:O}},j=(o,t,n,i)=>{let c=o.reads;if(typeof i!="string")return d("unsupported-content","insertParagraph needs text","text");if(bt.test(i))return d("unsupported-content","a paragraph mark inside a paragraph\u2019s text is not written by this host","paragraph-mark-in-text");let p=m(o);if(p)return p;let h=L(o,t.paragraphId);if(h)return h;let v=o.slotById.get(t.paragraphId);if(!v)return d("invalid-handle","that paragraph is not in the body");let x=(c.paragraphText(t.paragraphId)??"").length,P=[];n==="after"?(i.length>0&&P.push({op:"insertText",paragraphId:t.paragraphId,offset:x,text:i}),P.push({op:"splitParagraph",paragraphId:t.paragraphId,offset:x})):(i.length>0&&P.push({op:"insertText",paragraphId:t.paragraphId,offset:0,text:i}),P.push({op:"splitParagraph",paragraphId:t.paragraphId,offset:i.length}));let w=D(o,C(o,v)+1);n==="before"&&o.retargets.push({from:t.paragraphId,slot:w});let M=()=>{let O=n==="after"?w.id:t.paragraphId;return O===null?B:{kind:"handle",handle:e.paragraph(O,c.story)}};return {ok:true,kind:"command",ops:P,story:c.story,answer:M}},ot=(o,t,n,i,c)=>{let p=o.reads;if(!Array.isArray(n)||n.length===0)return d("unsupported-content","split needs at least one delimiter","delimiters");if(n.length>mo)return d("unsupported-content","too many delimiters",String(n.length));for(let K of n){if(typeof K!="string"||K.length===0)return d("unsupported-content","a delimiter must be a non-empty string","delimiters");if(K.length>go)return d("unsupported-content","that delimiter is too long","delimiters")}let h=m(o);if(h)return h;let v=L(o,t.paragraphId);if(v)return v;let x=o.slotById.get(t.paragraphId);if(!x)return d("invalid-handle","that paragraph is not in the body");let P=p.paragraphText(t.paragraphId)??"",w=Io(P,n),M=[],O=[],S=[];if(w.length===0)S.push(P);else if(i){for(let z of [...w].reverse())M.push({op:"deleteText",paragraphId:t.paragraphId,start:z.start,end:z.start+z.length});let K=0,it=0;for(let z of w){let _t=z.start-K;O.push(_t),S.push(P.slice(it,z.start)),it=z.start+z.length,K+=z.length;}S.push(P.slice(it));}else {let K=0;for(let it of w){let z=it.start+it.length;O.push(z),S.push(P.slice(K,z)),K=z;}S.push(P.slice(K));}O.length>0&&M.push({op:"splitParagraphMany",paragraphId:t.paragraphId,offsets:O});let V=[x];for(let K=0;K<O.length;K+=1)V.push(D(o,C(o,x)+1+K));let St=K=>{let it=K.story(p.story),z=[];return V.forEach((_t,Sn)=>{let jt=_t.id;if(jt===null)return;let Kt=it?.paragraphText(jt)??S[Sn]??"",[Rn,On]=c?Ro(Kt,0,Kt.length):[0,Kt.length],oe=e.paragraph(jt,p.story);z.push({start:{paragraph:oe,offset:Rn},end:{paragraph:oe,offset:On}});}),{kind:"spans",spans:z}};return {ok:true,kind:"command",ops:M,story:p.story,answer:St}},mt=(o,t)=>{let n=m(o);if(n)return n;let i=L(o,t.paragraphId);if(i)return i;let c=o.slotById.get(t.paragraphId);return c&&o.order.splice(C(o,c),1),{ok:true,kind:"command",ops:[{op:"deleteBlock",blockId:t.paragraphId}],story:o.reads.story,answer:()=>B}},lt=(o,t,n)=>{let i=o.reads,c=i.part,p=m(o);if(p)return p;let h=$e(n??{});if(!h.ok)return d("unsupported-content","that is not formatting this host writes",h.detail);let v=[];for(let x of Xt(t,i)){if(x.end<=x.start&&!x.whole)continue;let P=J(o,x.paragraphId,"runs");if(P)return P;for(let w of chunkZMIX42J7_cjs.uf(c,x.paragraphId,x.start,x.end,h.value))v.push({op:"setRunProperties",paragraphId:x.paragraphId,start:w.start,end:w.end,properties:w.properties,...w.targetRunIds?{targetRunIds:w.targetRunIds}:{}});x.whole&&v.push({op:"setParagraphMarkProperties",paragraphId:x.paragraphId,properties:chunkZMIX42J7_cjs.rf(chunkZMIX42J7_cjs.qf(c,x.paragraphId),h.value)});}return v.length===0?d("invalid-offset","that range covers no characters to format","collapsed-range"):{ok:true,kind:"command",ops:v,story:i.story,answer:()=>B}},gn=(o,t,n)=>{let i=o.reads,c=i.part,p=m(o);if(p)return p;let h=Nt(n,i.styles());if(!h.ok)return d("unsupported-content","that is not a style this document has",h.detail);let v={localName:"pStyle",attributes:{val:h.styleId}},x=[];for(let P of tt(t,i)){let w=J(o,P,"paragraph");if(w)return w;x.push({op:"setParagraphProperties",paragraphId:P,properties:chunkZMIX42J7_cjs.rf(chunkZMIX42J7_cjs.pf(c,P),v)});}return x.length===0?d("invalid-offset","that story holds no paragraph to style","empty-story"):{ok:true,kind:"command",ops:x,story:i.story,answer:()=>B}},yn=(o,t,n)=>{let i=o.reads,c=i.part,p=m(o);if(p)return p;let h=Ue(c,t.paragraphId,n??{},i.styles());if(!h.ok)return d("unsupported-content","that is not paragraph formatting this host writes",h.detail);let v=J(o,t.paragraphId,"paragraph");return v||{ok:true,kind:"command",ops:[{op:"setParagraphProperties",paragraphId:t.paragraphId,properties:h.value}],story:i.story,answer:()=>B}},hn=(o,t)=>{let n=a.body;if(!n)return d("document-unavailable","this host holds no document right now");let i=a.sections();if(!i[o])return d("invalid-handle","that section is not in this document");let p=Xe(t);if(!p.ok)return d("unsupported-content",p.reason,p.detail);let h=xo(n,i,o);if(h===null)return d("unsupported-content","that section holds no paragraph to address it by","no-anchor");let v=u(n),x=m(v);return x||{ok:true,kind:"command",ops:[{op:"setSectionProperties",...p.value,anchorParagraphId:h}],story:dt,answer:()=>B}},kn=(o,t)=>({ok:true,kind:"command",ops:[{op:"deleteNote",noteKind:o,noteId:t}],story:dt,lifecycle:true,answer:()=>B}),Ft=o=>{let t=e.resolve(o,"list");if(!t||t.kind!=="list")return d("invalid-handle","that handle does not name a list","list");let n=a.story(t.story);if(!n)return d("invalid-handle","that story is not in this document");let i=Et(n).find(c=>c.numId===t.numId);return i?{ok:true,plan:u(n),list:i}:d("invalid-handle","this story numbers nothing with that list",t.numId)},Bt=o=>{if(typeof o!="object"||o===null)return d("invalid-handle","that is not a scope a control lives in","scope");let t=o;if("body"in o){let n=W(t.body,"body",e,a);return n.ok?{reads:n.value,node:n.value.root}:d(n.code,"that handle does not name a body",n.detail)}if("contentControl"in o){let n=Q(t.contentControl);return "control"in n?{reads:n.reads,node:n.node}:n}return d("invalid-handle","that is not a scope a control lives in","scope")},Q=o=>{let t=e.resolve(o,"contentControl");if(!t||t.kind!=="contentControl")return d("invalid-handle","that handle does not name a content control","contentControl");let n=a.story(t.story);if(!n)return d("invalid-handle","that story is not in this document");let i=sn(n,t.nodeId),c=dn(n,t.nodeId);return !i||!c?d("invalid-handle","this document no longer holds that content control"):{reads:n,control:i,node:c}},An=(o,t,n)=>{if(!Number.isInteger(n)||n<0||n>ft)return d("invalid-offset",`a list level is 0 to ${String(ft)}`,String(n));if(!vt(o.reads,t))return d("unsupported-content","that paragraph is not in a list",t);let i=m(o);if(i)return i;let c=J(o,t,"paragraph");return c||{ok:true,kind:"command",ops:[{op:"setListLevel",paragraphId:t,level:n}],story:o.reads.story,answer:()=>B}},vn=(o,t,n,i)=>{if(n!=="start"&&n!=="end")return d("unknown-operation","a list takes an item at its start or its end",String(n));let c=o.reads,p=n==="start"?t.paragraphIds[0]:t.paragraphIds[t.paragraphIds.length-1];if(p===void 0)return d("invalid-handle","that list holds no paragraph");let h={story:c.story,paragraphId:p,index:c.indexOf(p)};return j(o,h,n==="start"?"before":"after",i)},ne=(o,t)=>{if(t.start.paragraphId!==t.end.paragraphId)return null;for(let n of tn(o,t.start.paragraphId))if(n.start<=t.start.offset&&n.end>=t.end.offset)return n;return null},bn=(o,t,n)=>{if(typeof n!="string")return d("unsupported-content","a hyperlink target is a string","target");let i=o.reads,c=ne(i,t),p=t.start.paragraphId===t.end.paragraphId&&t.start.offset===t.end.offset;if(n.length===0){if(!c)return d("unsupported-content","that text is not a link","no-link");let O=m(o);if(O)return O;let S=_(o,c.paragraphId);return S||{ok:true,kind:"command",ops:[{op:"removeHyperlink",linkId:c.id}],story:i.story,answer:()=>B}}let h={},v=null;if(n.startsWith("#")){let O=n.slice(1);if(O.length===0||!Zt(i,O))return d("unsupported-content","this document declares no such bookmark",n);h={anchor:O};}else {if(chunkZMIX42J7_cjs.Nc(n)===null)return d("unsupported-content","this engine will not author that target","target");v=n;}let x=m(o);if(x)return x;let P=O=>v===null?{ok:true,kind:"command",ops:[O(h)],story:i.story,answer:()=>B}:{ok:true,kind:"command",ops:[],relate:{url:v,ops:S=>[O({relationshipId:S})]},story:i.story,answer:()=>B};if(c){let O=_(o,c.paragraphId);return O||P(S=>({op:"setHyperlinkTarget",linkId:c.id,...S}))}if(p)return d("unsupported-content","a link with no text has nothing to click","collapsed");if(t.start.paragraphId!==t.end.paragraphId)return d("unsupported-content","a link lives inside one paragraph","crosses-paragraph-mark");let w=_(o,t.start.paragraphId);if(w)return w;let M=i.styles().idOf("hyperlink");return P(O=>({op:"insertHyperlink",paragraphId:t.start.paragraphId,start:t.start.offset,end:t.end.offset,...O,...M===null?{}:{styleId:M}}))},In=(o,t,n)=>{let i=o.reads;if(!s.selection||!r.select)return d("unsupported-capability","this host has no reader to move","selection");if(n!=="select"&&n!=="start"&&n!=="end")return d("unknown-operation","that is not a selection mode",String(n));let c=tt(t,i);for(let p of c)if(o.touched.has(p))return d("conflicting-operations","this batch edits a paragraph the selection covers",p);for(let p of c)o.selected.add(p);return y.push({range:t,mode:n}),{ok:true,kind:"command",ops:[],story:i.story,answer:()=>B}},xn=o=>{switch(o.op){case "getDocument":return I({kind:"handle",handle:e.document()});case "getBody":return e.resolve(o.document,"document")?a.body?I({kind:"handle",handle:e.body(dt)}):d("document-unavailable","this host holds no document right now"):d("invalid-handle","that handle does not name a document","document");case "getParagraphs":{let t=W(o.body,"body",e,a);return t.ok?I({kind:"handles",handles:t.value.paragraphIds.map(n=>e.paragraph(n,t.value.story))}):d(t.code,"that handle does not name a body",t.detail)}case "getSpanParagraphs":{let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);let n=st(o.span,e,a);return n.ok?I({kind:"handles",handles:tt(t.value,n.value).map(i=>e.paragraph(i,n.value.story))}):d(n.code,"that span is not a place",n.detail)}case "getText":{if(e.resolve(o.target,"body")){let c=W(o.target,"body",e,a);return c.ok?I({kind:"text",text:c.value.text()}):d(c.code,"that handle does not name a body",c.detail)}let n=Y(o.target,e,a);if(!n.ok)return d(n.code,"that handle does not name a body or a paragraph",n.detail);let i=a.story(n.value.story);return I({kind:"text",text:i?.paragraphText(n.value.paragraphId)??""})}case "getSpanText":{let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);let n=st(o.span,e,a);return n.ok?I({kind:"text",text:Ze(t.value,n.value,Yt)}):d(n.code,"that span is not a place",n.detail)}case "getParagraphId":{let t=Y(o.paragraph,e,a);if(!t.ok)return d(t.code,"that handle does not name a paragraph",t.detail);let i=a.story(t.value.story)?.paragraph(t.value.paragraphId);return I({kind:"text",text:i?.paraId??""})}case "search":{let t=$(o.scope,e,a);if(!t.ok)return d(t.code,"that is not a scope to search",t.detail);let n=st(o.scope,e,a);return n.ok?It(n.value,t.value,o.text,o.options):d(n.code,"that is not a scope to search",n.detail)}case "insertText":{let t=Lt(o.at,e,a);if(!t.ok)return d(t.code,"that is not a place to insert at",t.detail);let n=a.story(t.value.story);return n?xt(u(n),t.value,o.text):d("invalid-handle","that story is not in this document")}case "replaceSpan":{if("body"in o.span){let i=W(o.span.body,"body",e,a);return i.ok?H(u(i.value),o.text):d(i.code,"that handle does not name a body",i.detail)}let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);if(!t.value)return d("invalid-offset","that story holds no paragraph to write into","empty-story");let n=nt(t.value);return n?ee(u(n),t.value,o.text):d("invalid-handle","that story is not in this document")}case "insertParagraph":{let t=Mt(o.anchor,e,a);if(!t.ok)return d(t.code,"that is not a paragraph to insert beside",t.detail);if(o.where!=="before"&&o.where!=="after")return d("unknown-operation","that is not a place to insert",String(o.where));let n=a.story(t.value.story);return n?j(u(n),t.value,o.where,o.text):d("invalid-handle","that story is not in this document")}case "splitParagraph":{let t=Y(o.paragraph,e,a);if(!t.ok)return d(t.code,"that handle does not name a paragraph",t.detail);let n=a.story(t.value.story);return n?ot(u(n),t.value,o.delimiters,o.trimDelimiters===true,o.trimSpacing===true):d("invalid-handle","that story is not in this document")}case "getFont":{let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);let n=st(o.span,e,a);return n.ok?I({kind:"font",font:Ve(n.value.part,Xt(t.value,n.value))}):d(n.code,"that span is not a place",n.detail)}case "setFont":{let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);if(!t.value)return d("invalid-offset","that story holds no paragraph to format","empty-story");let n=nt(t.value);return n?lt(u(n),t.value,o.font):d("invalid-handle","that story is not in this document")}case "getStyle":{let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);let n=st(o.span,e,a);if(!n.ok)return d(n.code,"that span is not a place",n.detail);let i=n.value.part,c=n.value.styles(),p=tt(t.value,n.value).map(v=>Tt(i,v,c)),h=p.length>0&&p.every(v=>v!==null&&v===p[0])?p[0]:null;return I({kind:"style",name:h})}case "setStyle":{let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);if(!t.value)return d("invalid-offset","that story holds no paragraph to style","empty-story");let n=nt(t.value);return n?gn(u(n),t.value,o.name):d("invalid-handle","that story is not in this document")}case "getParagraphFormat":{let t=Mt(o.paragraph,e,a);if(!t.ok)return d(t.code,"that is not a paragraph",t.detail);let n=a.story(t.value.story);if(!n)return d("document-unavailable","this host holds no document right now");let i=We(n.part,t.value.paragraphId,n.styles());return i?I({kind:"paragraphFormat",format:i}):d("invalid-handle","that handle does not name a paragraph")}case "setParagraphFormat":{let t=Mt(o.paragraph,e,a);if(!t.ok)return d(t.code,"that is not a paragraph",t.detail);let n=a.story(t.value.story);return n?yn(u(n),t.value,o.format):d("invalid-handle","that story is not in this document")}case "deleteParagraph":{let t=Y(o.paragraph,e,a);if(!t.ok)return d(t.code,"that handle does not name a paragraph",t.detail);let n=a.story(t.value.story);return n?mt(u(n),t.value):d("invalid-handle","that story is not in this document")}case "getSections":return e.resolve(o.document,"document")?I({kind:"handles",handles:a.sections().map(t=>e.section(t.index))}):d("invalid-handle","that handle does not name a document","document");case "getPageSetup":{let t=e.resolve(o.section,"section");if(!t||t.kind!=="section")return d("invalid-handle","that handle does not name a section","section");let n=a.sections()[t.index];return n?I({kind:"pageSetup",setup:n.pageSetup}):d("invalid-handle","that section is not in this document")}case "setPageSetup":{let t=e.resolve(o.section,"section");return !t||t.kind!=="section"?d("invalid-handle","that handle does not name a section","section"):hn(t.index,o.setup)}case "getFurniture":{let t=e.resolve(o.section,"section");if(!t||t.kind!=="section")return d("invalid-handle","that handle does not name a section","section");if(o.kind!=="header"&&o.kind!=="footer")return d("unknown-operation","that is not furniture",String(o.kind));let n={kind:o.kind,sectionIndex:t.index,variant:o.variant};return Be(n)?a.story(n)?I({kind:"handle",handle:e.body(n)}):d("invalid-handle","this document declares no such header or footer",E(n)):d("unknown-operation","that is not a furniture variant",String(o.variant))}case "getNotes":{if(!e.resolve(o.document,"document"))return d("invalid-handle","that handle does not name a document","document");if(o.noteKind!=="footnote"&&o.noteKind!=="endnote")return d("unknown-operation","that is not a kind of note",String(o.noteKind));let t=o.noteKind;return I({kind:"handles",handles:a.noteIds(t).map(n=>e.note(t,n))})}case "getNoteBody":{let t=e.resolve(o.note,"note");if(!t||t.kind!=="note")return d("invalid-handle","that handle does not name a note","note");let n={kind:"note",noteKind:t.noteKind,noteId:t.noteId};return a.story(n)?I({kind:"handle",handle:e.body(n)}):d("invalid-handle","that note is not in this document",E(n))}case "getNoteKind":{let t=e.resolve(o.note,"note");return !t||t.kind!=="note"?d("invalid-handle","that handle does not name a note","note"):I({kind:"text",text:t.noteKind})}case "deleteNote":{let t=e.resolve(o.note,"note");return !t||t.kind!=="note"?d("invalid-handle","that handle does not name a note","note"):a.noteIds(t.noteKind).includes(t.noteId)?kn(t.noteKind,t.noteId):d("invalid-handle","that note is not in this document")}case "getLists":{let t=W(o.body,"body",e,a);return t.ok?I({kind:"handles",handles:Et(t.value).map(n=>e.list(n.numId,t.value.story))}):d(t.code,"that handle does not name a body",t.detail)}case "getListId":{let t=Ft(o.list);return "list"in t?I({kind:"number",value:Number(t.list.numId)}):t}case "getListById":{let t=W(o.body,"body",e,a);if(!t.ok)return d(t.code,"that handle does not name a body",t.detail);if(!Number.isInteger(o.id)||o.id<=0)return d("unsupported-content","a list is numbered from one",String(o.id));let n=String(o.id),i=Et(t.value).find(c=>c.numId===n);return i?I({kind:"handle",handle:e.list(i.numId,t.value.story)}):d("invalid-handle","no list in that story carries that number",n)}case "getListParagraphs":{let t=Ft(o.list);if(!("list"in t))return t;let n=o.level;if(n!==void 0&&(!Number.isInteger(n)||n<0||n>ft))return d("invalid-offset",`a list level is 0 to ${String(ft)}`,String(n));let i=t.plan.reads,c=n===void 0?t.list.paragraphIds:t.list.paragraphIds.filter(p=>vt(i,p)?.level===n);return I({kind:"handles",handles:c.map(p=>e.paragraph(p,i.story))})}case "getParagraphList":{let t=Y(o.paragraph,e,a);if(!t.ok)return d(t.code,"that handle does not name a paragraph",t.detail);let n=a.story(t.value.story);if(!n)return d("invalid-handle","that story is not in this document");let i=vt(n,t.value.paragraphId);return i?I({kind:"handle",handle:e.list(i.numId,n.story)}):d("unsupported-content","that paragraph is not in a list",t.value.paragraphId)}case "getListLevel":{let t=Y(o.paragraph,e,a);if(!t.ok)return d(t.code,"that handle does not name a paragraph",t.detail);let n=a.story(t.value.story);if(!n)return d("invalid-handle","that story is not in this document");let i=vt(n,t.value.paragraphId);return i?I({kind:"number",value:i.level}):d("unsupported-content","that paragraph is not in a list",t.value.paragraphId)}case "setListLevel":{let t=Y(o.paragraph,e,a);if(!t.ok)return d(t.code,"that handle does not name a paragraph",t.detail);let n=a.story(t.value.story);return n?An(u(n),t.value.paragraphId,o.level):d("invalid-handle","that story is not in this document")}case "insertListParagraph":{let t=Ft(o.list);return "list"in t?vn(t.plan,t.list,o.where,o.text):t}case "getHyperlink":{let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);let n=st(o.span,e,a);if(!n.ok)return d(n.code,"that span is not a place",n.detail);let i=a.package;if(!i||!t.value)return I({kind:"text",text:""});let c=ne(n.value,t.value);if(!c)return I({kind:"text",text:""});let p=chunkZMIX42J7_cjs.Ea(n.value.part,c.id),h=p?en(i,n.value.part.name,p):null;return I({kind:"text",text:h??""})}case "setHyperlink":{let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);if(!t.value)return d("invalid-offset","that story holds no text to link","empty-story");let n=nt(t.value);return n?bn(u(n),t.value,o.target):d("invalid-handle","that story is not in this document")}case "getBookmarks":{let t=$(o.scope,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);let n=st(o.scope,e,a);if(!n.ok)return d(n.code,"that span is not a place",n.detail);let i=n.value,c=t.value,p=c===null?null:new Set(tt(c,i)),h=Qt(i).filter(v=>{if(!p||!p.has(v.start.paragraphId)&&!p.has(v.end.paragraphId)||c===null)return false;let x=v.start.paragraphId===c.end.paragraphId&&v.start.offset>c.end.offset,P=v.end.paragraphId===c.start.paragraphId&&v.end.offset<c.start.offset;return !x&&!P});return I({kind:"handles",handles:h.map(v=>e.bookmark(v.name,i.story))})}case "getBookmarkName":{let t=e.resolve(o.bookmark,"bookmark");return !t||t.kind!=="bookmark"?d("invalid-handle","that handle does not name a bookmark","bookmark"):I({kind:"text",text:t.name})}case "getBookmarkRange":{let t=e.resolve(o.bookmark,"bookmark");if(!t||t.kind!=="bookmark")return d("invalid-handle","that handle does not name a bookmark","bookmark");let n=a.story(t.story);if(!n)return d("invalid-handle","that story is not in this document");let i=Zt(n,t.name);if(!i)return d("invalid-handle","this document no longer declares that bookmark",t.name);let c={story:n.story,paragraphId:i.start.paragraphId,index:n.indexOf(i.start.paragraphId),offset:i.start.offset},p={story:n.story,paragraphId:i.end.paragraphId,index:n.indexOf(i.end.paragraphId),offset:i.end.offset};return I({kind:"span",span:G({start:c,end:p})})}case "getComments":{let t=$(o.scope,e,a);if(!t.ok)return d(t.code,"that scope is not a place",t.detail);let n=st(o.scope,e,a);if(!n.ok)return d(n.code,"that scope names no story",n.detail);let i=n.value,c=g(i);if(!c)return d("document-unavailable","this host holds no document");let p=t.value,h=c.roots.filter(v=>{if(!p)return true;let x=v.range;if(!x)return false;let P=i.indexOf(x.start.paragraphId),w=i.indexOf(x.end.paragraphId),M=i.indexOf(p.start.paragraphId),O=i.indexOf(p.end.paragraphId);return w<M||P>O?false:w===M&&P===M&&O===M?x.end.offset>p.start.offset&&x.start.offset<p.end.offset:true});return I({kind:"handles",handles:h.map(v=>e.comment(v.id,i.story))})}case "getCommentReplies":{let t=R(o.comment);return t.ok?I({kind:"handles",handles:t.item.replyIds.map(n=>e.comment(n,t.reads.story))}):t.planned}case "getCommentId":{let t=R(o.comment);return t.ok?I({kind:"text",text:t.item.id}):t.planned}case "getCommentAuthor":{let t=R(o.comment);return t.ok?I({kind:"text",text:t.item.comment.author}):t.planned}case "getCommentDate":{let t=R(o.comment);return t.ok?I({kind:"text",text:t.item.comment.date??""}):t.planned}case "getCommentText":{let t=R(o.comment);if(!t.ok)return t.planned;let n=g(t.reads);return I({kind:"text",text:n?.textOf(t.item.id)??""})}case "getCommentRange":{let t=R(o.comment);if(!t.ok)return t.planned;let n=t.item.range;if(!n||t.item.orphaned)return d("invalid-handle","that comment has no range in this document");let i=T(t.reads,n);return i?I({kind:"span",span:i}):d("invalid-handle","that comment\u2019s range is no longer in the story")}case "getCommentResolved":{let t=R(o.comment);return t.ok?I({kind:"flag",value:t.item.resolved}):t.planned}case "setCommentResolved":{let t=R(o.comment);if(!t.ok)return t.planned;if(typeof o.resolved!="boolean")return d("unsupported-content","resolved is a yes or a no",String(o.resolved));let n=m(u(t.reads));return n||{ok:true,kind:"commentWrite",write:{kind:"resolve",commentId:t.item.id,resolved:o.resolved},story:t.reads.story,answer:()=>B}}case "replyToComment":{let t=R(o.comment);if(!t.ok)return t.planned;if(typeof o.author!="string"||o.author.trim().length===0)return d("unsupported-content","a comment records who wrote it","author");if(typeof o.text!="string"||o.text.length===0)return d("unsupported-content","a reply says something","text");if(bt.test(o.text))return d("unsupported-content","a reply is one paragraph in this slice","text");let n=t.item.range;if(!n||t.item.orphaned)return d("invalid-handle","that comment has no range to reply over");let i=m(u(t.reads));if(i)return i;let c=t.reads.story;return {ok:true,kind:"commentWrite",write:{kind:"reply",parentCommentId:t.item.id,anchor:{paragraphId:n.start.paragraphId,start:n.start.offset,end:n.end.offset,...n.end.paragraphId===n.start.paragraphId?{}:{endParagraphId:n.end.paragraphId}},text:o.text,author:o.author,...typeof o.date=="string"?{date:o.date}:{}},story:t.reads.story,answer:(p,h)=>h===void 0?B:{kind:"handle",handle:e.comment(h,c)}}}case "getRevisions":{let t=W(o.body,"body",e,a);if(!t.ok)return d(t.code,"that handle does not name a body",t.detail);let n=t.value;return I({kind:"handles",handles:qt(n).map(i=>e.revision(i.id,n.story))})}case "getRevisionType":{let t=A(o.revision);return t.ok?I({kind:"text",text:t.item.type}):t.planned}case "getRevisionAuthor":{let t=A(o.revision);return t.ok?I({kind:"text",text:t.item.author}):t.planned}case "getRevisionDate":{let t=A(o.revision);return t.ok?I({kind:"text",text:t.item.date}):t.planned}case "getRevisionRange":{let t=A(o.revision);if(!t.ok)return t.planned;let[n]=t.item.item.ranges;if(!n)return d("invalid-handle","that change covers no characters");let i=T(t.reads,n);return i?I({kind:"span",span:i}):d("invalid-handle","that change\u2019s range is no longer in the story")}case "acceptRevision":case "rejectRevision":{let t=A(o.revision);if(!t.ok)return t.planned;let n=u(t.reads),i=m(n);if(i)return i;let c=o.op==="acceptRevision";return {ok:true,kind:"command",story:t.reads.story,ops:t.item.item.addresses.map(p=>c?{op:"acceptRevision",revision:p}:{op:"rejectRevision",revision:p}),answer:()=>B}}case "acceptAllRevisions":case "rejectAllRevisions":{if(!e.resolve(o.document,"document"))return d("invalid-handle","that handle does not name a document","document");let t=a.body;if(!t)return d("document-unavailable","this host holds no document");let n=u(t),i=m(n);return i||{ok:true,kind:"command",story:t.story,ops:[o.op==="acceptAllRevisions"?{op:"acceptAllRevisions"}:{op:"rejectAllRevisions"}],answer:()=>B}}case "selectSpan":{let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);if(!t.value)return d("invalid-offset","that story holds no paragraph to select","empty-story");let n=nt(t.value);return n?In(u(n),t.value,o.mode):d("invalid-handle","that story is not in this document")}case "getContentControls":{let t=Bt(o.scope);return "reads"in t?I({kind:"handles",handles:an(t.reads,t.node).map(n=>e.contentControl(n.nodeId,t.reads.story))}):t}case "getContentControlById":{let t=Bt(o.scope);if(!("reads"in t))return t;if(!Number.isInteger(o.id))return d("unsupported-content","a control id is a whole number",String(o.id));let n=fn(t.node).find(i=>chunkZMIX42J7_cjs.je(i).id===o.id);return n?I({kind:"handle",handle:e.contentControl(n.id,t.reads.story)}):d("invalid-handle","no control in that scope carries that id",String(o.id))}case "getContentControlsByTag":case "getContentControlsByTitle":{let t=Bt(o.scope);if(!("reads"in t))return t;let n=o.op==="getContentControlsByTag"?o.tag:o.title;if(typeof n!="string"||n.length===0)return d("unsupported-content","a tag or title to match is required",o.op);let i=fn(t.node).filter(c=>{let p=chunkZMIX42J7_cjs.je(c);return o.op==="getContentControlsByTag"?p.tag===n:p.alias===n});return I({kind:"handles",handles:i.map(c=>e.contentControl(c.id,t.reads.story))})}case "getContentControlTag":case "getContentControlTitle":case "getContentControlFileId":case "getContentControlSubtype":case "getContentControlLock":{let t=Q(o.contentControl);if(!("control"in t))return t;let n=t.control.properties;if(o.op==="getContentControlLock")return I({kind:"text",text:t.control.lock});if(o.op==="getContentControlSubtype")return I({kind:"text",text:n.type});if(o.op==="getContentControlFileId")return I({kind:"text",text:n.id===void 0?"":String(n.id)});let i=o.op==="getContentControlTag"?n.tag:n.alias;return I({kind:"text",text:i??""})}case "getContentControlPlaceholderShown":case "getContentControlTemporary":{let t=Q(o.contentControl);return "control"in t?I({kind:"flag",value:o.op==="getContentControlPlaceholderShown"?t.control.properties.showingPlaceholder:t.control.properties.temporary}):t}case "getContentControlText":{let t=Q(o.contentControl);return "control"in t?I({kind:"text",text:ln(t.node)}):t}case "getContentControlParagraphs":{let t=Q(o.contentControl);return "control"in t?I({kind:"handles",handles:t.control.paragraphIds.map(n=>e.paragraph(n,t.reads.story))}):t}case "getContentControlRange":{let t=Q(o.contentControl);if(!("control"in t))return t;let n=o.location??"whole";if(!ko.has(n))return d("unsupported-content","that is not a place in a control",n);let i=te(t.reads,t.node);if(!i)return d("unsupported-content","that control holds nothing addressable","empty");let c=n==="start"||n==="before"?i.start:i.end,p=n!=="whole"&&n!=="content",h=v=>({story:t.reads.story,paragraphId:v.paragraphId,index:t.reads.indexOf(v.paragraphId),offset:v.offset});return I({kind:"span",span:Gt(p?{start:h(c),end:h(c)}:{start:h(i.start),end:h(i.end)},e)})}case "setContentControlValue":{let t=Q(o.contentControl);if(!("control"in t))return t;let n=bo(o.value);if(!n.ok)return d(n.code,n.message,n.detail);let i=u(t.reads),c=m(i);return c||{ok:true,kind:"command",story:t.reads.story,ops:[{op:"setContentControlValue",controlId:t.control.nodeId,value:n.value}],answer:()=>B}}case "setContentControlProperties":{let t=Q(o.contentControl);if(!("control"in t))return t;if(o.tag===void 0&&o.title===void 0&&o.lock===void 0)return d("unsupported-content","nothing to write","no-properties");if(o.lock!==void 0&&!ho.has(o.lock))return d("unsupported-content","that is not a lock this schema declares",o.lock);let n=u(t.reads),i=m(n);return i||{ok:true,kind:"command",story:t.reads.story,ops:[{op:"setContentControlProperties",controlId:t.control.nodeId,...o.tag===void 0?{}:{tag:o.tag},...o.title===void 0?{}:{alias:o.title},...o.lock===void 0?{}:{lock:o.lock}}],answer:()=>B}}case "insertContentControlText":{let t=Q(o.contentControl);if(!("control"in t))return t;if(typeof o.text!="string")return d("unsupported-content","text is required","text");if(o.at!=="replace"&&o.at!=="start"&&o.at!=="end")return d("unsupported-content","that is not a place to insert at",String(o.at));let n=u(t.reads),i=m(n);if(i)return i;let c=te(t.reads,t.node);if(!c)return d("unsupported-content","that control holds nothing addressable","empty");let p=o.at==="end"?c.end:c.start,h=()=>({kind:"span",span:G({start:{story:t.reads.story,paragraphId:p.paragraphId,index:t.reads.indexOf(p.paragraphId),offset:p.offset},end:{story:t.reads.story,paragraphId:p.paragraphId,index:t.reads.indexOf(p.paragraphId),offset:p.offset+o.text.length}})});return o.at==="replace"?{ok:true,kind:"command",story:t.reads.story,ops:[{op:"setContentControlValue",controlId:t.control.nodeId,value:{kind:"text",text:o.text}}],answer:h}:{ok:true,kind:"command",story:t.reads.story,ops:o.text.length===0?[]:[{op:"insertText",paragraphId:p.paragraphId,offset:p.offset,text:o.text,inside:t.node.id}],answer:h}}case "deleteContentControl":{let t=Q(o.contentControl);if(!("control"in t))return t;if(typeof o.keepContent!="boolean")return d("unsupported-content","keepContent is required","keepContent");let n=u(t.reads),i=m(n);return i||{ok:true,kind:"command",story:t.reads.story,ops:[{op:"removeContentControl",controlId:t.control.nodeId,keepContent:o.keepContent}],answer:()=>B}}case "insertContentControl":{let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);if(!t.value)return d("invalid-offset","that story holds nothing to wrap","empty-story");let n=nt(t.value);if(!n)return d("invalid-handle","that story is not in this document");let i=t.value;if(i.start.paragraphId!==i.end.paragraphId)return d("unsupported-content","wrapping several paragraphs in one control is not supported here","multi-paragraph");if(!Ao.has(o.subtype))return d("unsupported-content","that control type cannot be inserted",o.subtype);let c=u(n),p=m(c);return p||{ok:true,kind:"command",story:n.story,ops:[{op:"insertContentControl",paragraphId:i.start.paragraphId,start:i.start.offset,end:i.end.offset,type:o.subtype,...o.tag===void 0?{}:{tag:o.tag},...o.title===void 0?{}:{alias:o.title}}],answer:()=>B}}default:return d("unknown-operation","this host does not implement that operation",String(o.op))}};return {plan(o){let t=_e(o);if(t&&b||f&&Wt(o))return d("conflicting-operations","that command commits on its own and cannot share a batch",o.op);let n=xn(o);return n.ok&&Wt(o)&&(b=true,t&&(f=true)),n},get hasCommands(){return b},get writeScope(){return k?.reads.scope??null},settle(o){let t=k;if(t){let n=o.story(t.reads.story);if(!n)return {ok:false,detail:`the story this batch wrote is gone: ${E(t.reads.story)}`};let i=new Set(t.reads.paragraphIds),c=n.paragraphIds.filter(h=>!i.has(h));if(c.length!==t.created.length)return {ok:false,detail:`planned ${String(t.created.length)} new paragraphs, the transaction made ${String(c.length)}`};t.order.filter(h=>h.id===null).forEach((h,v)=>{h.id=c[v]??null;});for(let h of t.retargets)h.slot.id&&e.retarget(h.from,h.slot.id);}for(let n of y){let i=o.story(n.range.start.story);!i||!So(n.range,i)||r.select?.(n.range,n.mode);}return {ok:true}}}}var Oo=Object.freeze({status:"skipped"});function X(r,e,s){return Object.freeze(s===void 0?{code:r,message:e}:{code:r,message:e,detail:s})}function et(r,e,s,a){return {ok:false,results:r.map((l,u)=>u===e?{status:"error",error:s}:Oo),revision:a,changed:false}}function Wr(r){let{port:e}=r,s=Object.freeze({...r.capabilities}),a=je(),l=new Set,u=false,y=null,b=s.events?e.subscribe(()=>{if(u)return;let m=Object.freeze({revision:e.revision()});for(let g of [...l])g(m);}):()=>{},f=m=>{if(y&&y.pkg===m)return y.value;let g=Qe(m);return y={pkg:m,value:g},g};return {capabilities:s,revision:()=>e.revision(),execute:m=>{let g=Array.isArray(m?.operations)?m.operations:[],R=e.revision();if(u)return et(g,0,X("disposed","this host was disposed"),R);if(!s.document)return et(g,0,X("unsupported-capability","this host has no document","document"),R);let A=e.currentPackage();if(!A)return et(g,0,X("document-unavailable","this host holds no document right now"),R);if(m.expectedRevision!==void 0&&m.expectedRevision!==R)return et(g,0,X("stale-revision","the document moved since that revision",`expected ${String(m.expectedRevision)}, at ${R}`),R);let T=mn({handles:a,reads:f(A),capabilities:s,...e.select?{select:e.select.bind(e)}:{}}),C=[],N=[],L=null,_=null,J,D=-1;for(let H=0;H<g.length;H+=1){let j=T.plan(g[H]);if(!j.ok)return et(g,H,j.error,R);if(C.push(j),j.kind==="command")if(D<0&&(D=H),j.lifecycle)L=j.ops[0]??null;else if(j.relate){let ot=j.relate;N.push(mt=>{let lt=mt(ot.url);return lt===null?null:ot.ops(lt)});}else {let{ops:ot}=j;N.push(()=>ot);}else j.kind==="commentWrite"&&(D<0&&(D=H),_={write:j.write,scope:T.writeScope??{kind:"body"}});}let G=false;if(_){let H=e.applyCommentWrite(_.write,_.scope);if(!H.ok)return et(g,D<0?0:D,X("transaction-refused","the document store refused the comment write",H.reason),R);G=H.changed,J=H.commentId;}if(L){let H=e.applyLifecycle(L);if(!H.ok)return et(g,D<0?0:D,X("transaction-refused","the document store refused the transaction",H.reason),R);G=H.changed;}if(N.length>0){let H=e.apply(j=>{let ot=[];for(let mt of N){let lt=mt(j);if(lt===null)return null;ot.push(...lt);}return ot},T.writeScope??{kind:"body"});if(!H.ok)return et(g,D<0?0:D,X("transaction-refused","the document store refused the transaction",H.reason),R);G=H.changed;}let nt=e.currentPackage();if(!nt)return et(g,0,X("document-unavailable","this host holds no document right now"),R);let It=f(nt),xt=T.settle(It);return xt.ok?{ok:true,results:C.map(H=>({status:"ok",value:H.kind==="query"?H.value:H.answer(It,J)})),revision:e.revision(),changed:G}:et(g,D<0?0:D,X("transaction-refused","the transaction did not produce the document the batch planned",xt.detail),e.revision())},save(){if(u)return {ok:false,error:X("disposed","this host was disposed")};if(!s.save)return {ok:false,error:X("unsupported-capability","this host cannot save","save")};let m=e.save();return m?{ok:true,bytes:m}:{ok:false,error:X("document-unavailable","this host holds no document right now")}},subscribe(m){return u||!s.events?()=>{}:(l.add(m),()=>{l.delete(m);})},dispose(){u||(u=true,l.clear(),b(),e.dispose(),y=null);}}}exports.a=wt;exports.b=Po;exports.c=Cn;exports.d=Pn;exports.e=_e;exports.f=Wt;exports.g=Wr;
|
package/dist/chunk-PHDVKUWZ.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import {je as je$1,Ea,Qd,rd,id,gd,Rb,Qb,Kd,ne,he,le,Af,Nc,Ta,Pc,Ra,Gd,Id,rf,pf,uf,qf,vf,Hd,Lf,Mf,Dc,Cc,we,sd,Ke as Ke$1,ye,af,if as _if,jf,Be as Be$1,Ce,Ae,Bf,xf,W as W$1,xe,Gc,la,Qa,$e as $e$1}from'./chunk-RNBHTPW7.js';var wt=Object.freeze(["default","first","even"]),dt=Object.freeze({kind:"body"});function E(r){switch(r.kind){case "body":return "body";case "note":return `note:${r.noteKind}:${String(r.noteId)}`;default:return `${r.kind}:${String(r.sectionIndex)}:${r.variant}`}}function Be(r){if(typeof r!="object"||r===null)return false;let e=r;return e.kind==="body"?true:e.kind==="note"?(e.noteKind==="footnote"||e.noteKind==="endnote")&&Number.isInteger(e.noteId):e.kind!=="header"&&e.kind!=="footer"?false:Number.isInteger(e.sectionIndex)&&e.sectionIndex>=0&&wt.includes(e.variant)}var Po=["getDocument","getBody","getParagraphs","getSpanParagraphs","getText","getSpanText","getParagraphId","search","getFont","getParagraphFormat","getStyle","getSections","getPageSetup","getFurniture","getNotes","getNoteBody","getNoteKind","getLists","getListId","getListById","getListParagraphs","getParagraphList","getListLevel","getHyperlink","getBookmarks","getBookmarkName","getBookmarkRange","getComments","getCommentReplies","getCommentId","getCommentAuthor","getCommentDate","getCommentText","getCommentRange","getCommentResolved","getRevisions","getRevisionType","getRevisionAuthor","getRevisionDate","getRevisionRange","getContentControls","getContentControlById","getContentControlsByTag","getContentControlsByTitle","getContentControlTag","getContentControlTitle","getContentControlFileId","getContentControlSubtype","getContentControlLock","getContentControlPlaceholderShown","getContentControlTemporary","getContentControlText","getContentControlParagraphs","getContentControlRange"],Cn=["insertText","replaceSpan","insertParagraph","splitParagraph","deleteParagraph","selectSpan","setFont","setParagraphFormat","setStyle","setPageSetup","deleteNote","setListLevel","insertListParagraph","setHyperlink","setCommentResolved","replyToComment","acceptRevision","rejectRevision","acceptAllRevisions","rejectAllRevisions","setContentControlValue","setContentControlProperties","deleteContentControl","insertContentControlText","insertContentControl"],Pn=["deleteNote","setCommentResolved","replyToComment"],wn=new Set(Pn);function _e(r){return wn.has(r.op)}var Tn=new Set(Cn);function Wt(r){return Tn.has(r.op)}function Nn(){let r=globalThis.crypto,e=r?.getRandomValues;if(typeof e!="function")throw new Error("automation: no secure random source. globalThis.crypto.getRandomValues is required to scope document handles to one host.");let s=e.call(r,new Uint8Array(16)),a="";for(let l of s)a+=l.toString(16).padStart(2,"0");return a}function Hn(r){return typeof r=="object"&&r!==null&&"kind"in r&&"ref"in r}function je(){let r=new Map,e=new Map,s=new Map,a=new Map,l=Nn(),u=null,y=(f,k)=>{let m=(a.get(f)??0)+1;a.set(f,m);let g=`${f}:${l}:${String(m)}`;return r.set(g,k),Object.freeze({kind:f,ref:g})},b=(f,k,m)=>{let g=`${f}\0${k}`,R=s.get(g);if(R)return Object.freeze({kind:f,ref:R});let A=y(f,m);return s.set(g,A.ref),A};return {document(){return u??=y("document",{kind:"document"}),u},body(f){return b("body",E(f),{kind:"body",story:f})},paragraph(f,k){let m=e.get(f);if(m)return Object.freeze({kind:"paragraph",ref:m});let g=y("paragraph",{kind:"paragraph",paragraphId:f,story:k});return e.set(f,g.ref),g},section(f){return b("section",String(f),{kind:"section",index:f})},note(f,k){return b("note",`${f}:${String(k)}`,{kind:"note",noteKind:f,noteId:k})},comment(f,k){return b("comment",`${E(k)}\0${f}`,{kind:"comment",commentId:f,story:k})},revision(f,k){return b("revision",`${E(k)}\0${f}`,{kind:"revision",revisionId:f,story:k})},bookmark(f,k){return b("bookmark",`${E(k)}\0${f}`,{kind:"bookmark",name:f,story:k})},list(f,k){return b("list",`${E(k)}\0${f}`,{kind:"list",numId:f,story:k})},contentControl(f,k){return b("contentControl",`${E(k)}\0${f}`,{kind:"contentControl",nodeId:f,story:k})},retarget(f,k){let m=e.get(f);if(!m||f===k)return;let g=r.get(m);!g||g.kind!=="paragraph"||(e.delete(f),r.set(m,{kind:"paragraph",paragraphId:k,story:g.story}),e.has(k)||e.set(k,m));},resolve(f,k){if(!Hn(f)||f.kind!==k||typeof f.ref!="string")return null;let m=r.get(f.ref);return !m||m.kind!==k?null:m}}}var Ln=255,Mn=Object.freeze({nameOf:()=>null,idOf:()=>null,defaultId:null,present:false});function Ke(r){let e=Dc(r);if(!e)return Mn;let s=new Map,a=new Map,l=null;for(let u of Cc(e).values())if(u.type==="paragraph"){if(s.set(u.styleId,u.name),u.name!==null){let y=u.name.trim().toLowerCase();a.has(y)||a.set(y,u.styleId);}u.isDefault&&l===null&&(l=u.styleId);}return Object.freeze({nameOf:u=>s.get(u)??null,idOf:u=>a.get(u.trim().toLowerCase())??null,defaultId:l,present:true})}function Tt(r,e,s){let a=Ea(r,e);if(!a||a.kind!=="paragraph")return null;let l=En(Id(Gd(a),"pStyle"));return l!==null?s.nameOf(l):s.defaultId===null?null:s.nameOf(s.defaultId)}function En(r){if(!r)return null;for(let e of r.attributes)if(e.localName==="val")return e.value;return null}function Nt(r,e){if(typeof r!="string"||r.trim().length===0)return {ok:false,detail:"style: not a name"};if(r.length>Ln)return {ok:false,detail:"style: name too long"};if(!W$1(r))return {ok:false,detail:"style: not valid XML text"};if(!e.present)return {ok:false,detail:"style: this document defines no styles"};let s=e.idOf(r);return s===null?{ok:false,detail:"style: this document defines no paragraph style with that name"}:{ok:true,styleId:s}}var De=20,Fn=31680,Bn=1999,_n=Object.freeze({bold:null,italic:null,name:null,size:null,color:null});function U(r,e){if(!r)return null;for(let s of r.attributes)if(s.localName===e)return s.value;return null}function $t(r){if(!r)return null;let e=U(r,"val");if(e===null)return true;let s=e.trim().toLowerCase();return !(s==="0"||s==="false"||s==="off"||s==="none")}function jn(r){if(r===null)return null;let e=r.trim();return /^[0-9a-fA-F]{6}$/.test(e)?`#${e.toUpperCase()}`:null}function Kn(r){if(r===null)return null;let e=Number(r.trim());return !Number.isFinite(e)||e<=0?null:e/2}function ct(r){if(r===null)return null;let e=Number(r.trim());return Number.isFinite(e)?e/De:null}function At(r){if(r.length===0)return null;let e=r[0];if(e===null)return null;for(let s of r)if(s!==e)return null;return e}function Ve(r,e){let s=[];for(let a of e)for(let l of vf(r,a.paragraphId,a.start,a.end))s.push(Hd(l));return s.length===0?_n:{bold:At(s.map(a=>$t(Id(a,"b")))),italic:At(s.map(a=>$t(Id(a,"i")))),name:At(s.map(a=>{let l=Id(a,"rFonts"),u=U(l,"ascii");return u===null||u.length===0?null:u})),size:At(s.map(a=>Kn(U(Id(a,"sz"),"val")))),color:At(s.map(a=>jn(U(Id(a,"color"),"val"))))}}var zn=Object.freeze({left:"Left",start:"Left",center:"Centered",right:"Right",end:"Right",both:"Justified",distribute:"Justified"}),Dn=Object.freeze({Left:"left",Centered:"center",Right:"right",Justified:"both"});function Vn(r){let e=U(Id(r,"jc"),"val");return e===null?"Unknown":zn[e.trim().toLowerCase()]??"Unknown"}function We(r,e,s){let a=Ea(r,e);if(!a||a.kind!=="paragraph")return null;let l=Gd(a),u=Id(l,"spacing"),y=Id(l,"ind");return {alignment:Vn(l),style:Tt(r,e,s),firstLineIndent:Wn(y),leftIndent:ct(U(y,"left")??U(y,"start")),rightIndent:ct(U(y,"right")??U(y,"end")),lineSpacing:ct(U(u,"line")),spaceBefore:ct(U(u,"before")),spaceAfter:ct(U(u,"after")),widowControl:$t(Id(l,"widowControl"))}}function Wn(r){let e=ct(U(r,"firstLine"));if(e!==null)return e;let s=ct(U(r,"hanging"));return s===null?null:-s}function Ht(r,e){if(typeof r!="number"||!Number.isFinite(r))return {ok:false,detail:`${e}: not a measurement`};let s=Math.round(r*De);return Math.abs(s)>Fn?{ok:false,detail:`${e}: out of range`}:{ok:true,value:s}}function $e(r){let e=[];if(r.bold!==void 0){if(typeof r.bold!="boolean")return {ok:false,detail:"bold: not a boolean"};e.push({localName:"b",...r.bold?{}:{attributes:{val:"0"}}});}if(r.italic!==void 0){if(typeof r.italic!="boolean")return {ok:false,detail:"italic: not a boolean"};e.push({localName:"i",...r.italic?{}:{attributes:{val:"0"}}});}if(r.name!==void 0){let s=r.name;if(typeof s!="string"||s.length===0||s.length>128)return {ok:false,detail:"name: not a font name"};if(!W$1(s))return {ok:false,detail:"name: not valid XML text"};e.push({localName:"rFonts",attributes:{ascii:s,hAnsi:s,cs:s}});}if(r.size!==void 0){let s=r.size;if(typeof s!="number"||!Number.isFinite(s)||s<=0)return {ok:false,detail:"size: not a positive number of points"};let a=Math.round(s*2);if(a<1||a>Bn)return {ok:false,detail:"size: out of range"};e.push({localName:"sz",attributes:{val:String(a)}}),e.push({localName:"szCs",attributes:{val:String(a)}});}if(r.color!==void 0){let s=r.color;if(typeof s!="string"||!/^#[0-9a-fA-F]{6}$/.test(s.trim()))return {ok:false,detail:"color: not a #RRGGBB triplet"};e.push({localName:"color",attributes:{val:s.trim().slice(1).toUpperCase()}});}return e.length===0?{ok:false,detail:"no formatting was asked for"}:{ok:true,value:e}}function Ue(r,e,s,a){let l=Ea(r,e);if(!l||l.kind!=="paragraph")return {ok:false,detail:"not a paragraph"};let u=Gd(l),y=[];if(s.style!==void 0){let A=Nt(s.style,a);if(!A.ok)return {ok:false,detail:A.detail};y.push({localName:"pStyle",attributes:{val:A.styleId}});}if(s.alignment!==void 0){let A=Dn[s.alignment];if(A===void 0)return {ok:false,detail:`alignment: ${String(s.alignment)}`};y.push({localName:"jc",attributes:{val:A}});}let b=Id(u,"ind"),f=ze(b),k=false;if(s.firstLineIndent!==void 0){let A=Ht(s.firstLineIndent,"firstLineIndent");if(!A.ok)return A;delete f.firstLine,delete f.hanging,A.value<0?f.hanging=String(-A.value):f.firstLine=String(A.value),k=true;}for(let[A,T,C]of [["leftIndent","left","start"],["rightIndent","right","end"]]){let N=s[A];if(N===void 0)continue;let L=Ht(N,A);if(!L.ok)return L;delete f[C],f[T]=String(L.value),k=true;}k&&y.push({localName:"ind",attributes:f});let m=Id(u,"spacing"),g=ze(m),R=false;for(let[A,T]of [["spaceBefore","before"],["spaceAfter","after"]]){let C=s[A];if(C===void 0)continue;let N=Ht(C,A);if(!N.ok)return N;if(N.value<0)return {ok:false,detail:`${A}: out of range`};g[T]=String(N.value),R=true;}if(s.lineSpacing!==void 0){let A=Ht(s.lineSpacing,"lineSpacing");if(!A.ok)return A;if(A.value<=0)return {ok:false,detail:"lineSpacing: out of range"};g.line=String(A.value),g.lineRule??="auto",R=true;}if(R&&y.push({localName:"spacing",attributes:g}),s.widowControl!==void 0){if(typeof s.widowControl!="boolean")return {ok:false,detail:"widowControl: not a boolean"};y.push({localName:"widowControl",...s.widowControl?{}:{attributes:{val:"0"}}});}return y.length===0?{ok:false,detail:"no formatting was asked for"}:{ok:true,value:rf(pf(r,e),y)}}function ze(r){let e=Object.create(null);if(!r)return e;for(let s of r.attributes)e[s.localName]=s.value;return e}var Ye=20,$n=63360;function at(r){return Math.round(r/Ye*100)/100}function Un(r,e){if(typeof r!="number"||!Number.isFinite(r))return null;let s=Math.round(r*Ye);return s>$n||s<0||s===0&&!e?null:s}var Yn=[["pageWidth","pageWidthTwips",false],["pageHeight","pageHeightTwips",false],["topMargin","marginTopTwips",true],["rightMargin","marginRightTwips",true],["bottomMargin","marginBottomTwips",true],["leftMargin","marginLeftTwips",true]];function Xe(r){if(typeof r!="object"||r===null)return {ok:false,reason:"that is not a page setup",detail:"not-an-object"};let e=r,s={},a=0;for(let[u,y,b]of Yn){let f=e[u];if(f===void 0)continue;let k=Un(f,b);if(k===null)return {ok:false,reason:`that is not a value for ${u}`,detail:String(f)};s[y]=k,a+=1;}let l=e.orientation;if(l!==void 0){if(l!=="portrait"&&l!=="landscape")return {ok:false,reason:"that is not an orientation",detail:String(l)};s.orientation=l,a+=1;}return a===0?{ok:false,reason:"that page setup names nothing to write",detail:"empty"}:{ok:true,value:s}}function Xn(r){let e=Ke$1(r),s=e.widthTwips>e.heightTwips?"landscape":"portrait";return Object.freeze({pageWidth:at(e.widthTwips),pageHeight:at(e.heightTwips),orientation:s,topMargin:at(e.topTwips),rightMargin:at(e.rightTwips),bottomMargin:at(e.bottomTwips),leftMargin:at(e.leftTwips),headerDistance:at(e.headerTwips),footerDistance:at(e.footerTwips),gutter:at(e.gutterTwips)})}function Gn(r,e){if(!e)return null;let s=null,a=(l,u,y)=>{if(s!==null||l.kind==="textValue"||y>64)return;let b=l.kind==="paragraph"?l.id:u;if(l.id===e.id){s=b;return}for(let f of l.children)a(f,b,y+1);};return a(r.root,null,0),s}function Ge(r,e,s){let a=Qb(e.root);return Object.freeze(a.map((l,u)=>{let y=s[u];return Object.freeze({index:u,markParagraphId:Gn(e,l),pageSetup:Xn(l),titlePage:y?.titlePage??false,evenAndOddHeaders:y?.evenAndOddHeaders??false})}))}var Yt="\r",Jn=Object.freeze({nameOf:()=>null,idOf:()=>null,defaultId:null,present:false}),Qn=Object.freeze([]),Zn=Object.freeze([]),Je=Object.freeze([]),qn=Object.freeze({package:null,body:null,story:()=>null,storyOf:()=>null,sections:()=>Zn,furniture:()=>Je,noteIds:()=>Object.freeze([]),styles:()=>Jn});function to(r){return r.kind==="textValue"?Qn:Object.freeze(r.children.filter(e=>e.kind!=="textValue").map(e=>{let s=[];ye([e],s,0);let a=e.kind==="paragraph"?"paragraph":e.kind==="table"?"table":"other",l=e.kind==="paragraph"&&Id(Gd(e),"sectPr")!==void 0;return Object.freeze({id:e.id,kind:a,paragraphIds:Object.freeze(s.map(u=>u.id)),removable:a!=="other"&&!l})}))}function Ut(r,e,s,a,l){let u=xe(a),y=Object.freeze(u.map(g=>g.id)),b=new Map,f=new Map;u.forEach((g,R)=>{b.set(g.id,R),f.set(g.id,g);});let k=new Map,m=g=>{if(!b.has(g))return null;let R=k.get(g);if(R!==void 0)return R;let A=$e$1(e,g)??"";return k.set(g,A),A};return {story:r,part:e,root:a,scope:s,paragraphIds:y,blocks:to(a),has:g=>b.has(g),indexOf:g=>b.get(g)??-1,paragraph(g){let R=f.get(g);return R?{nodeId:g,paraId:Gc(R),text:m(g)??""}:null},node:g=>f.get(g)??null,paragraphText:m,text:()=>y.map(g=>m(g)??"").join(Yt),styles:l}}function Qe(r){let e=r.parts.get(r.mainDocumentPart);if(!e)return qn;let s,a=()=>s??=Ke(r),l,u=()=>l??=Rb(r),y,b=new Map,f=A=>{let T=u()[A.sectionIndex];return T?(A.kind==="header"?T.headers:T.footers).get(A.variant)??null:null},k=A=>{if(A.kind==="body"){let C=we(e);return C?Ut(A,e,{kind:"body"},C,a):null}if(A.kind==="note"){let C=Qd(r,A.noteKind);if(!C)return null;let N=sd(C.root,A.noteId);return !N||!id(N)?null:Ut(A,C,{kind:"notesPart",noteKind:A.noteKind},N,a)}let T=f(A);return T?Ut(A,T.part,{kind:"headerFooter",rId:T.rId},T.part.root,a):null},m=A=>{let T=E(A);if(b.has(T))return b.get(T)??null;let C=k(A);return b.set(T,C),C},g=A=>{if(m(dt)?.has(A))return dt;for(let[C]of u().entries())for(let N of ["header","footer"])for(let L of wt){let _={kind:N,sectionIndex:C,variant:L};if(m(_)?.has(A))return _}for(let C of ["footnote","endnote"])for(let N of R(C)){let L={kind:"note",noteKind:C,noteId:N};if(m(L)?.has(A))return L}return null},R=A=>{let T=Qd(r,A);if(!T)return eo;let C=[];for(let N of rd(T.root)){if(!id(N))continue;let L=gd(N);L!==null&&C.push(L);}return Object.freeze(C)};return {package:r,get body(){return m(dt)},story:m,storyOf:g,sections:()=>y??=Ge(r,e,u()),furniture(A){let T=u()[A];if(!T)return Je;let C=[];for(let N of ["header","footer"]){let L=N==="header"?T.headers:T.footers;for(let _ of wt){let J=L.get(_);J&&C.push(Object.freeze({kind:N,variant:_,declared:!J.inherited}));}}return Object.freeze(C)},noteIds:R,styles:a}}var eo=Object.freeze([]);function Z(r,e){return {ok:false,code:r,detail:e}}function q(r){return {ok:true,value:r}}function W(r,e,s,a){let l=s.resolve(r,e);if(!l||l.kind!=="body"&&l.kind!=="paragraph")return Z("invalid-handle",`not-a-${e}-handle`);let u=a.story(l.story);return u?q(u):Z("invalid-handle",`no-such-story:${E(l.story)}`)}function Y(r,e,s){let a=e.resolve(r,"paragraph");if(!a||a.kind!=="paragraph")return Z("invalid-handle","not-a-paragraph-handle");let l=s.story(a.story);if(!l)return Z("invalid-handle",`no-such-story:${E(a.story)}`);let u=l.indexOf(a.paragraphId);return u<0?Z("invalid-handle","paragraph-not-in-body"):q({story:a.story,paragraphId:a.paragraphId,index:u,offset:0})}function no(r,e,s){let a=Y(r.paragraph,e,s);if(!a.ok)return a;let u=(s.story(a.value.story)?.paragraphText(a.value.paragraphId)??"").length,{offset:y}=r;return !Number.isInteger(y)||y<0||y>u?Z("invalid-offset",`offset ${String(y)} outside 0..${String(u)}`):q({...a.value,offset:y})}function Lt(r,e,s){if("paragraph"in r){if(!("at"in r))return no(r,e,s);let b=Y(r.paragraph,e,s);if(!b.ok||r.at==="start")return b;let k=(s.story(b.value.story)?.paragraphText(b.value.paragraphId)??"").length;return q({...b.value,offset:k})}let a=W(r.body,"body",e,s);if(!a.ok)return a;let l=a.value.paragraphIds;if(l.length===0)return Z("invalid-offset","empty-story");if(r.at==="start")return q({story:a.value.story,paragraphId:l[0],index:0,offset:0});let u=l.length-1,y=l[u];return q({story:a.value.story,paragraphId:y,index:u,offset:(a.value.paragraphText(y)??"").length})}function oo(r,e){return r.index<e.index||r.index===e.index&&r.offset<=e.offset}function ro(r){let e=r.paragraphIds;if(e.length===0)return null;let s=e.length-1,a=e[s];return {start:{story:r.story,paragraphId:e[0],index:0,offset:0},end:{story:r.story,paragraphId:a,index:s,offset:(r.paragraphText(a)??"").length}}}function $(r,e,s){if("body"in r){let u=W(r.body,"body",e,s);return u.ok?q(ro(u.value)):u}if("paragraph"in r){let u=Y(r.paragraph,e,s);if(!u.ok)return u;let b=(s.story(u.value.story)?.paragraphText(u.value.paragraphId)??"").length;return q({start:u.value,end:{...u.value,offset:b}})}let a=Lt(r.start,e,s);if(!a.ok)return a;let l=Lt(r.end,e,s);return l.ok?E(a.value.story)!==E(l.value.story)?Z("invalid-handle","span-crosses-stories"):oo(a.value,l.value)?q({start:a.value,end:l.value}):Z("invalid-offset","span-start-after-end"):l}function st(r,e,s){if("body"in r)return W(r.body,"body",e,s);if("paragraph"in r)return W(r.paragraph,"paragraph",e,s);let a=r.start;return "paragraph"in a?W(a.paragraph,"paragraph",e,s):W(a.body,"body",e,s)}function Mt(r,e,s){if("paragraph"in r)return Y(r.paragraph,e,s);let a=W(r.body,"body",e,s);if(!a.ok)return a;let l=a.value.paragraphIds;if(l.length===0)return Z("invalid-offset","empty-story");let u=r.at==="first"?0:l.length-1;return q({story:a.value.story,paragraphId:l[u],index:u,offset:0})}function tt(r,e){return r?e.paragraphIds.slice(r.start.index,r.end.index+1):[]}function Xt(r,e){if(!r)return [];let s=tt(r,e),a=s.length-1;return s.map((l,u)=>{let y=(e.paragraphText(l)??"").length,b=u===0?r.start.offset:0,f=u===a?r.end.offset:y;return {paragraphId:l,start:b,end:f,whole:b===0&&f===y}})}function Ze(r,e,s){if(!r)return "";let a=tt(r,e);return a.length===1?(e.paragraphText(r.start.paragraphId)??"").slice(r.start.offset,r.end.offset):a.map((l,u)=>{let y=e.paragraphText(l)??"";return u===0?y.slice(r.start.offset):u===a.length-1?y.slice(0,r.end.offset):y}).join(s)}function Gt(r,e){return {start:{paragraph:e.paragraph(r.start.paragraphId,r.start.story),offset:r.start.offset},end:{paragraph:e.paragraph(r.end.paragraphId,r.end.story),offset:r.end.offset}}}var ao=256,qe=1e4;function Jt(r,e){if(r.kind!=="textValue"){for(let s of r.attributes)if(s.namespaceUri===la&&s.localName===e)return s.value}}function so(r){return r.startsWith("_")}function Qt(r){let e=new Map,s=[],a=new Set;for(let l of r.paragraphIds){let u=r.node(l);if(u?.kind!=="paragraph")continue;let y=Kd(u),b=f=>{if(f.kind!=="textValue"){if(f.kind==="bookmarkStart"){if(s.length>=qe||e.size>=qe)return;let k=Jt(f,"id"),m=Jt(f,"name");if(k===void 0||m===void 0||m.length===0||m.length>ao||so(m)||a.has(m)||e.has(k))return;let g=y.spanOf(f)?.start??0;e.set(k,{name:m,start:{paragraphId:l,offset:g}});return}if(f.kind==="bookmarkEnd"){let k=Jt(f,"id");if(k===void 0)return;let m=e.get(k);if(!m)return;e.delete(k),a.add(m.name);let g=y.spanOf(f)?.start??0;s.push(Object.freeze({name:m.name,start:m.start,end:{paragraphId:l,offset:g}}));return}for(let k of f.children)b(k);}};for(let f of u.children)b(f);}return Object.freeze(s)}function Zt(r,e){return Qt(r).find(s=>s.name===e)??null}function tn(r,e){let s=r.node(e);if(s?.kind!=="paragraph")return Object.freeze([]);let a=Kd(s),l=[],u=(y,b)=>{if(!(y.kind==="textValue"||b>32)){if(Qa(y)){let f=a.spanOf(y);f&&l.push(Object.freeze({id:y.id,paragraphId:e,start:f.start,end:f.end}));return}for(let f of y.children)u(f,b+1);}};for(let y of s.children)u(y,0);return Object.freeze(l)}function en(r,e,s){let a=Ta(s,l=>Pc(r,e,l));if(a.kind==="external")return a.href;if(a.kind==="internal"){let l=Ra(s);return l===void 0||l.length===0?null:`#${l}`}return null}var ft=8;function nn(r){if(!r||r.kind==="textValue")return null;for(let e of r.attributes)if(e.namespaceUri===la&&e.localName==="val")return e.value;return null}function on(r){let e=Id(Gd(r),"numPr");if(!e)return null;let s=nn(Id(e,"numId"));if(s===null||!/^\d{1,10}$/.test(s)||s==="0")return null;let a=nn(Id(e,"ilvl")),l=a===null?0:Number(a);return !Number.isInteger(l)||l<0||l>ft?null:{numId:s,level:l}}function Et(r){let e=new Map;for(let s of r.paragraphIds){let a=r.node(s);if(!a)continue;let l=on(a);if(!l)continue;let u=e.get(l.numId);u?u.push(s):e.set(l.numId,[s]);}return Object.freeze([...e].map(([s,a])=>Object.freeze({numId:s,paragraphIds:Object.freeze(a)})))}function vt(r,e){let s=r.node(e);return s?on(s):null}var io={insert:"Insert",delete:"Delete",replace:"Replace",moveFrom:"MovedFrom",moveTo:"MovedTo",format:"Property",paragraphMark:"ParagraphProperty"};function lo(r){return r.kind==="note"}function uo(r,e){return e.length===0?!lo(r.story):e.every(s=>r.has(s.start.paragraphId))}function qt(r){let e=[];for(let s of Af(r.part)){if(s.readOnly||s.revisionKind==="structural"||!uo(r,s.ranges))continue;let a=io[s.revisionKind];a!==void 0&&e.push(Object.freeze({id:s.id,type:a,author:s.author,date:s.date??"",item:s}));}return Object.freeze(e)}function co(r,e){let s=r;for(let a=0;s!==void 0&&a<=64;a+=1){if(s.parentId===void 0)return s.range!==null;s=e.get(s.parentId);}return false}var po=Object.freeze({items:Object.freeze([]),roots:Object.freeze([]),byId:()=>null,textOf:()=>""});function rn(r,e){let s=r.parts.get(_if(r,e.part.name));if(!s)return po;let a=r.parts.get(jf(r,e.part.name)),l=Be$1(s),u=a?Ce(a):new Map,y=Ae(e.part).filter(g=>e.has(g.start.paragraphId)),b=Bf(l,y,u),f=new Map(b.map(g=>[g.id,g])),k=b.filter(g=>co(g,f)),m=new Map(k.map(g=>[g.id,g]));return Object.freeze({items:Object.freeze(k),roots:Object.freeze(k.filter(g=>g.parentId===void 0)),byId:g=>m.get(g)??null,textOf:g=>{let R=m.get(g);return R?xf(R.comment):""}})}var fo=1e4;function an(r,e){let s=[],a=e.kind==="contentControl"?he(e):e;if(!a)return s;for(let l of le(a))if(!(l.ancestors.length>0)){if(s.length>=fo)break;s.push(un(r,l.node));}return s}function sn(r,e){for(let s of le(r.root))if(s.node.id===e)return un(r,s.node);return null}function dn(r,e){for(let s of le(r.root))if(s.node.id===e)return s.node;return null}function te(r,e){let s=cn(e);if(s.length>0){let a=s[0],l=s[s.length-1],u=r.paragraphText(l);return u===null||!r.has(a)?null:{start:{paragraphId:a,offset:0},end:{paragraphId:l,offset:u.length}}}for(let a of r.paragraphIds){let l=r.node(a);if(!l||l.kind!=="paragraph"||!l.children.some(y=>y.id===e.id))continue;let u=Kd(l).spanOf(e);return u?{start:{paragraphId:a,offset:u.start},end:{paragraphId:a,offset:u.end}}:null}return null}function ln(r){return ne(r)}function un(r,e){return {nodeId:e.id,properties:je$1(e),lock:af(r.part,e.id),paragraphIds:cn(e)}}function cn(r){let e=he(r);if(!e)return [];let s=[];return ye(e.children,s,0),s.map(a=>a.id)}var bt=/[\r\n\v\f\u2028\u2029]/,mo=16,go=64,pn=/\s/;function yo(r,e,s){return Object.freeze(s===void 0?{code:r,message:e}:{code:r,message:e,detail:s})}function d(r,e,s){return {ok:false,error:yo(r,e,s)}}var B=Object.freeze({kind:"applied"});function I(r){return {ok:true,kind:"query",value:r}}function fn(r){let e=r.kind==="contentControl"?he(r):r;return e?le(e).map(s=>s.node):[]}var ho=new Set(["unlocked","sdtLocked","contentLocked","sdtContentLocked"]),ko=new Set(["whole","content","start","end","before","after"]),Ao=new Set(["richText","plainText","dropDownList","comboBox","date"]),vo=4096;function bo(r){let e=(l,u)=>({ok:false,code:"unsupported-content",message:l,detail:u});if(typeof r!="object"||r===null||!("kind"in r))return e("a control value states its kind","value");let s=r,a=s.kind;if(a==="text"||a==="listItem"){let l=a==="text"?s.text:s.value;return typeof l!="string"?e("that value is not a string",String(a)):l.length>vo?e("that value is too long",String(l.length)):{ok:true,value:a==="text"?{kind:"text",text:l}:{kind:"listItem",value:l}}}if(a==="checkbox"){let l=s.checked;return typeof l!="boolean"?e("a checkbox is checked or not","checked"):{ok:true,value:{kind:"checkbox",checked:l}}}if(a==="date"){let l=s.iso;return typeof l!="string"?e("a date is an ISO-8601 string","iso"):l.length>64?e("that is not a date",String(l.length)):{ok:true,value:{kind:"date",iso:l}}}return e("that is not a value any control accepts",String(a))}function Io(r,e){let s=[],a=0;for(;a<r.length;){let l=null;for(let u of e){let y=r.indexOf(u,a);y<0||(!l||y<l.start||y===l.start&&u.length>l.length)&&(l={start:y,length:u.length});}if(!l)break;s.push(l),a=l.start+l.length;}return s}function xo(r,e,s){let a=e[s]?.markParagraphId??null;if(a!==null)return a;let l=r.paragraphIds,u=l[l.length-1];return u===void 0||new Set(e.map(b=>b.markParagraphId).filter(b=>b!==null)).has(u)?null:u}function So(r,e){for(let s of [r.start,r.end]){let a=e.paragraphText(s.paragraphId);if(a===null||s.offset>a.length)return false}return true}function Ro(r,e,s){let a=e,l=s;for(;a<l&&pn.test(r[a]);)a+=1;for(;l>a&&pn.test(r[l-1]);)l-=1;return [a,l]}function mn(r){let{handles:e,capabilities:s}=r,a=r.reads,l=new Map,u=o=>{let t=E(o.story),n=l.get(t);if(n)return n;let i=new Map,c=o.paragraphIds.map(h=>{let v={id:h};return i.set(h,v),v}),p={reads:o,order:c,slotById:i,created:[],restructured:new Set,touched:new Set,formatted:new Set,selected:new Set,retargets:[]};return l.set(t,p),p},y=[],b=false,f=false,k=null,m=o=>k===null?(k=o,null):k===o?null:d("conflicting-operations","one batch writes into one story",`${E(k.reads.story)} then ${E(o.reads.story)}`),g=o=>{let t=a.package;return t===null?null:rn(t,o)},R=o=>{let t=e.resolve(o,"comment");if(!t||t.kind!=="comment")return {ok:false,planned:d("invalid-handle","that handle does not name a comment","comment")};let n=a.story(t.story);if(!n)return {ok:false,planned:d("invalid-handle","that story is not in this document")};let c=g(n)?.byId(t.commentId)??null;return c?{ok:true,reads:n,item:c}:{ok:false,planned:d("invalid-handle","this document no longer holds that comment",t.commentId)}},A=o=>{let t=e.resolve(o,"revision");if(!t||t.kind!=="revision")return {ok:false,planned:d("invalid-handle","that handle does not name a tracked change","revision")};let n=a.story(t.story);if(!n)return {ok:false,planned:d("invalid-handle","that story is not in this document")};let i=qt(n).find(c=>c.id===t.revisionId)??null;return i?{ok:true,reads:n,item:i}:{ok:false,planned:d("invalid-handle","this document no longer holds that tracked change",t.revisionId)}},T=(o,t)=>{let n=o.paragraphText(t.start.paragraphId),i=o.paragraphText(t.end.paragraphId);if(n===null||i===null)return null;let c={story:o.story,paragraphId:t.start.paragraphId,index:o.indexOf(t.start.paragraphId),offset:Math.min(t.start.offset,n.length)},p={story:o.story,paragraphId:t.end.paragraphId,index:o.indexOf(t.end.paragraphId),offset:Math.min(t.end.offset,i.length)};return G({start:c,end:p})},C=(o,t)=>o.order.indexOf(t),N=(o,t)=>o.selected.has(t)?d("conflicting-operations","this batch selects a paragraph it also edits",t):null,L=(o,t)=>{let n=N(o,t);return n||(o.restructured.has(t)||o.touched.has(t)?d("conflicting-operations","another operation in this batch already changes that paragraph",t):(o.restructured.add(t),o.touched.add(t),null))},_=(o,t)=>{let n=N(o,t);return n||(o.restructured.has(t)?d("conflicting-operations","another operation in this batch restructures that paragraph",t):(o.touched.add(t),null))},J=(o,t,n)=>{let i=`${n}:${t}`;if(o.formatted.has(i))return d("conflicting-operations","another operation in this batch already writes that formatting",t);let c=_(o,t);return c||(o.formatted.add(i),null)},D=(o,t)=>{let n={id:null};return o.order.splice(t,0,n),o.created.push(n),n},G=o=>Gt(o,e),nt=o=>o===null?null:a.story(o.start.story),It=(o,t,n,i)=>{if(i?.matchWildcards===true)return d("unsupported-capability","wildcard search is not implemented","matchWildcards");if(i?.ignorePunct===true)return d("unsupported-capability","ignoring punctuation is not implemented","ignorePunct");if(i?.ignoreSpace===true)return d("unsupported-capability","ignoring whitespace is not implemented","ignoreSpace");if(!Lf(n))return d("unsupported-content","that is not a query this host will scan for","text");let c=i?.limit;if(c!==void 0&&(!Number.isInteger(c)||c<0))return d("invalid-offset","limit must be a non-negative integer",String(c));let p=Math.min(c??2e3,2e3),h=[],v=tt(t,o),x=v.length-1;for(let[P,w]of v.entries()){if(p<=0)break;let M=o.paragraphText(w)??"",O=Mf(M,n,p,{matchCase:i?.matchCase===true,wholeWord:i?.matchWholeWord===true,...P===0&&t?{from:t.start.offset}:{},...P===x&&t?{to:t.end.offset}:{}});for(let S of O.matches){let V=e.paragraph(w,o.story);h.push({start:{paragraph:V,offset:S.start},end:{paragraph:V,offset:S.start+S.length}});}p-=O.matches.length;}return I({kind:"spans",spans:h})},xt=(o,t,n)=>{if(typeof n!="string")return d("unsupported-content","insertText needs text","text");if(bt.test(n))return d("unsupported-content","text carrying a paragraph mark is not written by this host","paragraph-mark-in-text");let i=m(o);if(i)return i;let c=_(o,t.paragraphId);if(c)return c;let p=n.length===0?[]:[{op:"insertText",paragraphId:t.paragraphId,offset:t.offset,text:n}],h=()=>({kind:"span",span:G({start:t,end:{...t,offset:t.offset+n.length}})});return {ok:true,kind:"command",ops:p,story:o.reads.story,answer:h}},ee=(o,t,n)=>{let i=o.reads;if(typeof n!="string")return d("unsupported-content","replaceSpan needs text","text");if(bt.test(n))return d("unsupported-content","text carrying a paragraph mark is not written by this host","paragraph-mark-in-text");let c=tt(t,i),p=t.start.paragraphId,h=[],v=m(o);if(v)return v;if(c.length===1){let w=_(o,p);if(w)return w;t.end.offset>t.start.offset&&h.push({op:"deleteText",paragraphId:p,start:t.start.offset,end:t.end.offset});}else {for(let O of c){let S=L(o,O);if(S)return S}let w=t.end.paragraphId,M=(i.paragraphText(p)??"").length;t.start.offset<M&&h.push({op:"deleteText",paragraphId:p,start:t.start.offset,end:M}),t.end.offset>0&&h.push({op:"deleteText",paragraphId:w,start:0,end:t.end.offset});for(let O of c.slice(1,-1))h.push({op:"deleteBlock",blockId:O});h.push({op:"joinParagraphs",firstId:p,secondId:w});for(let O of c.slice(1)){let S=o.slotById.get(O);S&&o.order.splice(C(o,S),1);}}n.length>0&&h.push({op:"insertText",paragraphId:p,offset:t.start.offset,text:n});let x={...t.start,paragraphId:p},P=()=>({kind:"span",span:G({start:x,end:{...x,offset:x.offset+n.length}})});return {ok:true,kind:"command",ops:h,story:o.reads.story,answer:P}},H=(o,t)=>{let n=o.reads;if(typeof t!="string")return d("unsupported-content","replaceSpan needs text","text");if(bt.test(t))return d("unsupported-content","text carrying a paragraph mark is not written by this host","paragraph-mark-in-text");let i=n.blocks,c=i.filter(S=>S.removable),p=i.filter(S=>!S.removable).flatMap(S=>S.paragraphIds),h=p.length===0?c.find(S=>S.kind==="paragraph"):void 0;if(!h&&p.length===0)return d("invalid-offset","that story holds no paragraph this host can write into","no-top-level-paragraph");let v=m(o);if(v)return v;for(let S of n.paragraphIds){let V=L(o,S);if(V)return V}let x=[],P=(h?[h.id]:[...p]).sort((S,V)=>n.indexOf(S)-n.indexOf(V)),w=P[0];for(let S of P){let V=(n.paragraphText(S)??"").length;V>0&&x.push({op:"deleteText",paragraphId:S,start:0,end:V});}for(let S of c)S.id!==h?.id&&x.push({op:"deleteBlock",blockId:S.id});t.length>0&&x.push({op:"insertText",paragraphId:w,offset:0,text:t});for(let S of c)if(S.id!==h?.id)for(let V of S.paragraphIds){let St=o.slotById.get(V);St&&o.order.splice(C(o,St),1);}let M={story:n.story,paragraphId:w,index:n.indexOf(w),offset:0},O=()=>({kind:"span",span:G({start:M,end:{...M,offset:t.length}})});return {ok:true,kind:"command",ops:x,story:n.story,answer:O}},j=(o,t,n,i)=>{let c=o.reads;if(typeof i!="string")return d("unsupported-content","insertParagraph needs text","text");if(bt.test(i))return d("unsupported-content","a paragraph mark inside a paragraph\u2019s text is not written by this host","paragraph-mark-in-text");let p=m(o);if(p)return p;let h=L(o,t.paragraphId);if(h)return h;let v=o.slotById.get(t.paragraphId);if(!v)return d("invalid-handle","that paragraph is not in the body");let x=(c.paragraphText(t.paragraphId)??"").length,P=[];n==="after"?(i.length>0&&P.push({op:"insertText",paragraphId:t.paragraphId,offset:x,text:i}),P.push({op:"splitParagraph",paragraphId:t.paragraphId,offset:x})):(i.length>0&&P.push({op:"insertText",paragraphId:t.paragraphId,offset:0,text:i}),P.push({op:"splitParagraph",paragraphId:t.paragraphId,offset:i.length}));let w=D(o,C(o,v)+1);n==="before"&&o.retargets.push({from:t.paragraphId,slot:w});let M=()=>{let O=n==="after"?w.id:t.paragraphId;return O===null?B:{kind:"handle",handle:e.paragraph(O,c.story)}};return {ok:true,kind:"command",ops:P,story:c.story,answer:M}},ot=(o,t,n,i,c)=>{let p=o.reads;if(!Array.isArray(n)||n.length===0)return d("unsupported-content","split needs at least one delimiter","delimiters");if(n.length>mo)return d("unsupported-content","too many delimiters",String(n.length));for(let K of n){if(typeof K!="string"||K.length===0)return d("unsupported-content","a delimiter must be a non-empty string","delimiters");if(K.length>go)return d("unsupported-content","that delimiter is too long","delimiters")}let h=m(o);if(h)return h;let v=L(o,t.paragraphId);if(v)return v;let x=o.slotById.get(t.paragraphId);if(!x)return d("invalid-handle","that paragraph is not in the body");let P=p.paragraphText(t.paragraphId)??"",w=Io(P,n),M=[],O=[],S=[];if(w.length===0)S.push(P);else if(i){for(let z of [...w].reverse())M.push({op:"deleteText",paragraphId:t.paragraphId,start:z.start,end:z.start+z.length});let K=0,it=0;for(let z of w){let _t=z.start-K;O.push(_t),S.push(P.slice(it,z.start)),it=z.start+z.length,K+=z.length;}S.push(P.slice(it));}else {let K=0;for(let it of w){let z=it.start+it.length;O.push(z),S.push(P.slice(K,z)),K=z;}S.push(P.slice(K));}O.length>0&&M.push({op:"splitParagraphMany",paragraphId:t.paragraphId,offsets:O});let V=[x];for(let K=0;K<O.length;K+=1)V.push(D(o,C(o,x)+1+K));let St=K=>{let it=K.story(p.story),z=[];return V.forEach((_t,Sn)=>{let jt=_t.id;if(jt===null)return;let Kt=it?.paragraphText(jt)??S[Sn]??"",[Rn,On]=c?Ro(Kt,0,Kt.length):[0,Kt.length],oe=e.paragraph(jt,p.story);z.push({start:{paragraph:oe,offset:Rn},end:{paragraph:oe,offset:On}});}),{kind:"spans",spans:z}};return {ok:true,kind:"command",ops:M,story:p.story,answer:St}},mt=(o,t)=>{let n=m(o);if(n)return n;let i=L(o,t.paragraphId);if(i)return i;let c=o.slotById.get(t.paragraphId);return c&&o.order.splice(C(o,c),1),{ok:true,kind:"command",ops:[{op:"deleteBlock",blockId:t.paragraphId}],story:o.reads.story,answer:()=>B}},lt=(o,t,n)=>{let i=o.reads,c=i.part,p=m(o);if(p)return p;let h=$e(n??{});if(!h.ok)return d("unsupported-content","that is not formatting this host writes",h.detail);let v=[];for(let x of Xt(t,i)){if(x.end<=x.start&&!x.whole)continue;let P=J(o,x.paragraphId,"runs");if(P)return P;for(let w of uf(c,x.paragraphId,x.start,x.end,h.value))v.push({op:"setRunProperties",paragraphId:x.paragraphId,start:w.start,end:w.end,properties:w.properties,...w.targetRunIds?{targetRunIds:w.targetRunIds}:{}});x.whole&&v.push({op:"setParagraphMarkProperties",paragraphId:x.paragraphId,properties:rf(qf(c,x.paragraphId),h.value)});}return v.length===0?d("invalid-offset","that range covers no characters to format","collapsed-range"):{ok:true,kind:"command",ops:v,story:i.story,answer:()=>B}},gn=(o,t,n)=>{let i=o.reads,c=i.part,p=m(o);if(p)return p;let h=Nt(n,i.styles());if(!h.ok)return d("unsupported-content","that is not a style this document has",h.detail);let v={localName:"pStyle",attributes:{val:h.styleId}},x=[];for(let P of tt(t,i)){let w=J(o,P,"paragraph");if(w)return w;x.push({op:"setParagraphProperties",paragraphId:P,properties:rf(pf(c,P),v)});}return x.length===0?d("invalid-offset","that story holds no paragraph to style","empty-story"):{ok:true,kind:"command",ops:x,story:i.story,answer:()=>B}},yn=(o,t,n)=>{let i=o.reads,c=i.part,p=m(o);if(p)return p;let h=Ue(c,t.paragraphId,n??{},i.styles());if(!h.ok)return d("unsupported-content","that is not paragraph formatting this host writes",h.detail);let v=J(o,t.paragraphId,"paragraph");return v||{ok:true,kind:"command",ops:[{op:"setParagraphProperties",paragraphId:t.paragraphId,properties:h.value}],story:i.story,answer:()=>B}},hn=(o,t)=>{let n=a.body;if(!n)return d("document-unavailable","this host holds no document right now");let i=a.sections();if(!i[o])return d("invalid-handle","that section is not in this document");let p=Xe(t);if(!p.ok)return d("unsupported-content",p.reason,p.detail);let h=xo(n,i,o);if(h===null)return d("unsupported-content","that section holds no paragraph to address it by","no-anchor");let v=u(n),x=m(v);return x||{ok:true,kind:"command",ops:[{op:"setSectionProperties",...p.value,anchorParagraphId:h}],story:dt,answer:()=>B}},kn=(o,t)=>({ok:true,kind:"command",ops:[{op:"deleteNote",noteKind:o,noteId:t}],story:dt,lifecycle:true,answer:()=>B}),Ft=o=>{let t=e.resolve(o,"list");if(!t||t.kind!=="list")return d("invalid-handle","that handle does not name a list","list");let n=a.story(t.story);if(!n)return d("invalid-handle","that story is not in this document");let i=Et(n).find(c=>c.numId===t.numId);return i?{ok:true,plan:u(n),list:i}:d("invalid-handle","this story numbers nothing with that list",t.numId)},Bt=o=>{if(typeof o!="object"||o===null)return d("invalid-handle","that is not a scope a control lives in","scope");let t=o;if("body"in o){let n=W(t.body,"body",e,a);return n.ok?{reads:n.value,node:n.value.root}:d(n.code,"that handle does not name a body",n.detail)}if("contentControl"in o){let n=Q(t.contentControl);return "control"in n?{reads:n.reads,node:n.node}:n}return d("invalid-handle","that is not a scope a control lives in","scope")},Q=o=>{let t=e.resolve(o,"contentControl");if(!t||t.kind!=="contentControl")return d("invalid-handle","that handle does not name a content control","contentControl");let n=a.story(t.story);if(!n)return d("invalid-handle","that story is not in this document");let i=sn(n,t.nodeId),c=dn(n,t.nodeId);return !i||!c?d("invalid-handle","this document no longer holds that content control"):{reads:n,control:i,node:c}},An=(o,t,n)=>{if(!Number.isInteger(n)||n<0||n>ft)return d("invalid-offset",`a list level is 0 to ${String(ft)}`,String(n));if(!vt(o.reads,t))return d("unsupported-content","that paragraph is not in a list",t);let i=m(o);if(i)return i;let c=J(o,t,"paragraph");return c||{ok:true,kind:"command",ops:[{op:"setListLevel",paragraphId:t,level:n}],story:o.reads.story,answer:()=>B}},vn=(o,t,n,i)=>{if(n!=="start"&&n!=="end")return d("unknown-operation","a list takes an item at its start or its end",String(n));let c=o.reads,p=n==="start"?t.paragraphIds[0]:t.paragraphIds[t.paragraphIds.length-1];if(p===void 0)return d("invalid-handle","that list holds no paragraph");let h={story:c.story,paragraphId:p,index:c.indexOf(p)};return j(o,h,n==="start"?"before":"after",i)},ne=(o,t)=>{if(t.start.paragraphId!==t.end.paragraphId)return null;for(let n of tn(o,t.start.paragraphId))if(n.start<=t.start.offset&&n.end>=t.end.offset)return n;return null},bn=(o,t,n)=>{if(typeof n!="string")return d("unsupported-content","a hyperlink target is a string","target");let i=o.reads,c=ne(i,t),p=t.start.paragraphId===t.end.paragraphId&&t.start.offset===t.end.offset;if(n.length===0){if(!c)return d("unsupported-content","that text is not a link","no-link");let O=m(o);if(O)return O;let S=_(o,c.paragraphId);return S||{ok:true,kind:"command",ops:[{op:"removeHyperlink",linkId:c.id}],story:i.story,answer:()=>B}}let h={},v=null;if(n.startsWith("#")){let O=n.slice(1);if(O.length===0||!Zt(i,O))return d("unsupported-content","this document declares no such bookmark",n);h={anchor:O};}else {if(Nc(n)===null)return d("unsupported-content","this engine will not author that target","target");v=n;}let x=m(o);if(x)return x;let P=O=>v===null?{ok:true,kind:"command",ops:[O(h)],story:i.story,answer:()=>B}:{ok:true,kind:"command",ops:[],relate:{url:v,ops:S=>[O({relationshipId:S})]},story:i.story,answer:()=>B};if(c){let O=_(o,c.paragraphId);return O||P(S=>({op:"setHyperlinkTarget",linkId:c.id,...S}))}if(p)return d("unsupported-content","a link with no text has nothing to click","collapsed");if(t.start.paragraphId!==t.end.paragraphId)return d("unsupported-content","a link lives inside one paragraph","crosses-paragraph-mark");let w=_(o,t.start.paragraphId);if(w)return w;let M=i.styles().idOf("hyperlink");return P(O=>({op:"insertHyperlink",paragraphId:t.start.paragraphId,start:t.start.offset,end:t.end.offset,...O,...M===null?{}:{styleId:M}}))},In=(o,t,n)=>{let i=o.reads;if(!s.selection||!r.select)return d("unsupported-capability","this host has no reader to move","selection");if(n!=="select"&&n!=="start"&&n!=="end")return d("unknown-operation","that is not a selection mode",String(n));let c=tt(t,i);for(let p of c)if(o.touched.has(p))return d("conflicting-operations","this batch edits a paragraph the selection covers",p);for(let p of c)o.selected.add(p);return y.push({range:t,mode:n}),{ok:true,kind:"command",ops:[],story:i.story,answer:()=>B}},xn=o=>{switch(o.op){case "getDocument":return I({kind:"handle",handle:e.document()});case "getBody":return e.resolve(o.document,"document")?a.body?I({kind:"handle",handle:e.body(dt)}):d("document-unavailable","this host holds no document right now"):d("invalid-handle","that handle does not name a document","document");case "getParagraphs":{let t=W(o.body,"body",e,a);return t.ok?I({kind:"handles",handles:t.value.paragraphIds.map(n=>e.paragraph(n,t.value.story))}):d(t.code,"that handle does not name a body",t.detail)}case "getSpanParagraphs":{let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);let n=st(o.span,e,a);return n.ok?I({kind:"handles",handles:tt(t.value,n.value).map(i=>e.paragraph(i,n.value.story))}):d(n.code,"that span is not a place",n.detail)}case "getText":{if(e.resolve(o.target,"body")){let c=W(o.target,"body",e,a);return c.ok?I({kind:"text",text:c.value.text()}):d(c.code,"that handle does not name a body",c.detail)}let n=Y(o.target,e,a);if(!n.ok)return d(n.code,"that handle does not name a body or a paragraph",n.detail);let i=a.story(n.value.story);return I({kind:"text",text:i?.paragraphText(n.value.paragraphId)??""})}case "getSpanText":{let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);let n=st(o.span,e,a);return n.ok?I({kind:"text",text:Ze(t.value,n.value,Yt)}):d(n.code,"that span is not a place",n.detail)}case "getParagraphId":{let t=Y(o.paragraph,e,a);if(!t.ok)return d(t.code,"that handle does not name a paragraph",t.detail);let i=a.story(t.value.story)?.paragraph(t.value.paragraphId);return I({kind:"text",text:i?.paraId??""})}case "search":{let t=$(o.scope,e,a);if(!t.ok)return d(t.code,"that is not a scope to search",t.detail);let n=st(o.scope,e,a);return n.ok?It(n.value,t.value,o.text,o.options):d(n.code,"that is not a scope to search",n.detail)}case "insertText":{let t=Lt(o.at,e,a);if(!t.ok)return d(t.code,"that is not a place to insert at",t.detail);let n=a.story(t.value.story);return n?xt(u(n),t.value,o.text):d("invalid-handle","that story is not in this document")}case "replaceSpan":{if("body"in o.span){let i=W(o.span.body,"body",e,a);return i.ok?H(u(i.value),o.text):d(i.code,"that handle does not name a body",i.detail)}let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);if(!t.value)return d("invalid-offset","that story holds no paragraph to write into","empty-story");let n=nt(t.value);return n?ee(u(n),t.value,o.text):d("invalid-handle","that story is not in this document")}case "insertParagraph":{let t=Mt(o.anchor,e,a);if(!t.ok)return d(t.code,"that is not a paragraph to insert beside",t.detail);if(o.where!=="before"&&o.where!=="after")return d("unknown-operation","that is not a place to insert",String(o.where));let n=a.story(t.value.story);return n?j(u(n),t.value,o.where,o.text):d("invalid-handle","that story is not in this document")}case "splitParagraph":{let t=Y(o.paragraph,e,a);if(!t.ok)return d(t.code,"that handle does not name a paragraph",t.detail);let n=a.story(t.value.story);return n?ot(u(n),t.value,o.delimiters,o.trimDelimiters===true,o.trimSpacing===true):d("invalid-handle","that story is not in this document")}case "getFont":{let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);let n=st(o.span,e,a);return n.ok?I({kind:"font",font:Ve(n.value.part,Xt(t.value,n.value))}):d(n.code,"that span is not a place",n.detail)}case "setFont":{let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);if(!t.value)return d("invalid-offset","that story holds no paragraph to format","empty-story");let n=nt(t.value);return n?lt(u(n),t.value,o.font):d("invalid-handle","that story is not in this document")}case "getStyle":{let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);let n=st(o.span,e,a);if(!n.ok)return d(n.code,"that span is not a place",n.detail);let i=n.value.part,c=n.value.styles(),p=tt(t.value,n.value).map(v=>Tt(i,v,c)),h=p.length>0&&p.every(v=>v!==null&&v===p[0])?p[0]:null;return I({kind:"style",name:h})}case "setStyle":{let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);if(!t.value)return d("invalid-offset","that story holds no paragraph to style","empty-story");let n=nt(t.value);return n?gn(u(n),t.value,o.name):d("invalid-handle","that story is not in this document")}case "getParagraphFormat":{let t=Mt(o.paragraph,e,a);if(!t.ok)return d(t.code,"that is not a paragraph",t.detail);let n=a.story(t.value.story);if(!n)return d("document-unavailable","this host holds no document right now");let i=We(n.part,t.value.paragraphId,n.styles());return i?I({kind:"paragraphFormat",format:i}):d("invalid-handle","that handle does not name a paragraph")}case "setParagraphFormat":{let t=Mt(o.paragraph,e,a);if(!t.ok)return d(t.code,"that is not a paragraph",t.detail);let n=a.story(t.value.story);return n?yn(u(n),t.value,o.format):d("invalid-handle","that story is not in this document")}case "deleteParagraph":{let t=Y(o.paragraph,e,a);if(!t.ok)return d(t.code,"that handle does not name a paragraph",t.detail);let n=a.story(t.value.story);return n?mt(u(n),t.value):d("invalid-handle","that story is not in this document")}case "getSections":return e.resolve(o.document,"document")?I({kind:"handles",handles:a.sections().map(t=>e.section(t.index))}):d("invalid-handle","that handle does not name a document","document");case "getPageSetup":{let t=e.resolve(o.section,"section");if(!t||t.kind!=="section")return d("invalid-handle","that handle does not name a section","section");let n=a.sections()[t.index];return n?I({kind:"pageSetup",setup:n.pageSetup}):d("invalid-handle","that section is not in this document")}case "setPageSetup":{let t=e.resolve(o.section,"section");return !t||t.kind!=="section"?d("invalid-handle","that handle does not name a section","section"):hn(t.index,o.setup)}case "getFurniture":{let t=e.resolve(o.section,"section");if(!t||t.kind!=="section")return d("invalid-handle","that handle does not name a section","section");if(o.kind!=="header"&&o.kind!=="footer")return d("unknown-operation","that is not furniture",String(o.kind));let n={kind:o.kind,sectionIndex:t.index,variant:o.variant};return Be(n)?a.story(n)?I({kind:"handle",handle:e.body(n)}):d("invalid-handle","this document declares no such header or footer",E(n)):d("unknown-operation","that is not a furniture variant",String(o.variant))}case "getNotes":{if(!e.resolve(o.document,"document"))return d("invalid-handle","that handle does not name a document","document");if(o.noteKind!=="footnote"&&o.noteKind!=="endnote")return d("unknown-operation","that is not a kind of note",String(o.noteKind));let t=o.noteKind;return I({kind:"handles",handles:a.noteIds(t).map(n=>e.note(t,n))})}case "getNoteBody":{let t=e.resolve(o.note,"note");if(!t||t.kind!=="note")return d("invalid-handle","that handle does not name a note","note");let n={kind:"note",noteKind:t.noteKind,noteId:t.noteId};return a.story(n)?I({kind:"handle",handle:e.body(n)}):d("invalid-handle","that note is not in this document",E(n))}case "getNoteKind":{let t=e.resolve(o.note,"note");return !t||t.kind!=="note"?d("invalid-handle","that handle does not name a note","note"):I({kind:"text",text:t.noteKind})}case "deleteNote":{let t=e.resolve(o.note,"note");return !t||t.kind!=="note"?d("invalid-handle","that handle does not name a note","note"):a.noteIds(t.noteKind).includes(t.noteId)?kn(t.noteKind,t.noteId):d("invalid-handle","that note is not in this document")}case "getLists":{let t=W(o.body,"body",e,a);return t.ok?I({kind:"handles",handles:Et(t.value).map(n=>e.list(n.numId,t.value.story))}):d(t.code,"that handle does not name a body",t.detail)}case "getListId":{let t=Ft(o.list);return "list"in t?I({kind:"number",value:Number(t.list.numId)}):t}case "getListById":{let t=W(o.body,"body",e,a);if(!t.ok)return d(t.code,"that handle does not name a body",t.detail);if(!Number.isInteger(o.id)||o.id<=0)return d("unsupported-content","a list is numbered from one",String(o.id));let n=String(o.id),i=Et(t.value).find(c=>c.numId===n);return i?I({kind:"handle",handle:e.list(i.numId,t.value.story)}):d("invalid-handle","no list in that story carries that number",n)}case "getListParagraphs":{let t=Ft(o.list);if(!("list"in t))return t;let n=o.level;if(n!==void 0&&(!Number.isInteger(n)||n<0||n>ft))return d("invalid-offset",`a list level is 0 to ${String(ft)}`,String(n));let i=t.plan.reads,c=n===void 0?t.list.paragraphIds:t.list.paragraphIds.filter(p=>vt(i,p)?.level===n);return I({kind:"handles",handles:c.map(p=>e.paragraph(p,i.story))})}case "getParagraphList":{let t=Y(o.paragraph,e,a);if(!t.ok)return d(t.code,"that handle does not name a paragraph",t.detail);let n=a.story(t.value.story);if(!n)return d("invalid-handle","that story is not in this document");let i=vt(n,t.value.paragraphId);return i?I({kind:"handle",handle:e.list(i.numId,n.story)}):d("unsupported-content","that paragraph is not in a list",t.value.paragraphId)}case "getListLevel":{let t=Y(o.paragraph,e,a);if(!t.ok)return d(t.code,"that handle does not name a paragraph",t.detail);let n=a.story(t.value.story);if(!n)return d("invalid-handle","that story is not in this document");let i=vt(n,t.value.paragraphId);return i?I({kind:"number",value:i.level}):d("unsupported-content","that paragraph is not in a list",t.value.paragraphId)}case "setListLevel":{let t=Y(o.paragraph,e,a);if(!t.ok)return d(t.code,"that handle does not name a paragraph",t.detail);let n=a.story(t.value.story);return n?An(u(n),t.value.paragraphId,o.level):d("invalid-handle","that story is not in this document")}case "insertListParagraph":{let t=Ft(o.list);return "list"in t?vn(t.plan,t.list,o.where,o.text):t}case "getHyperlink":{let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);let n=st(o.span,e,a);if(!n.ok)return d(n.code,"that span is not a place",n.detail);let i=a.package;if(!i||!t.value)return I({kind:"text",text:""});let c=ne(n.value,t.value);if(!c)return I({kind:"text",text:""});let p=Ea(n.value.part,c.id),h=p?en(i,n.value.part.name,p):null;return I({kind:"text",text:h??""})}case "setHyperlink":{let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);if(!t.value)return d("invalid-offset","that story holds no text to link","empty-story");let n=nt(t.value);return n?bn(u(n),t.value,o.target):d("invalid-handle","that story is not in this document")}case "getBookmarks":{let t=$(o.scope,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);let n=st(o.scope,e,a);if(!n.ok)return d(n.code,"that span is not a place",n.detail);let i=n.value,c=t.value,p=c===null?null:new Set(tt(c,i)),h=Qt(i).filter(v=>{if(!p||!p.has(v.start.paragraphId)&&!p.has(v.end.paragraphId)||c===null)return false;let x=v.start.paragraphId===c.end.paragraphId&&v.start.offset>c.end.offset,P=v.end.paragraphId===c.start.paragraphId&&v.end.offset<c.start.offset;return !x&&!P});return I({kind:"handles",handles:h.map(v=>e.bookmark(v.name,i.story))})}case "getBookmarkName":{let t=e.resolve(o.bookmark,"bookmark");return !t||t.kind!=="bookmark"?d("invalid-handle","that handle does not name a bookmark","bookmark"):I({kind:"text",text:t.name})}case "getBookmarkRange":{let t=e.resolve(o.bookmark,"bookmark");if(!t||t.kind!=="bookmark")return d("invalid-handle","that handle does not name a bookmark","bookmark");let n=a.story(t.story);if(!n)return d("invalid-handle","that story is not in this document");let i=Zt(n,t.name);if(!i)return d("invalid-handle","this document no longer declares that bookmark",t.name);let c={story:n.story,paragraphId:i.start.paragraphId,index:n.indexOf(i.start.paragraphId),offset:i.start.offset},p={story:n.story,paragraphId:i.end.paragraphId,index:n.indexOf(i.end.paragraphId),offset:i.end.offset};return I({kind:"span",span:G({start:c,end:p})})}case "getComments":{let t=$(o.scope,e,a);if(!t.ok)return d(t.code,"that scope is not a place",t.detail);let n=st(o.scope,e,a);if(!n.ok)return d(n.code,"that scope names no story",n.detail);let i=n.value,c=g(i);if(!c)return d("document-unavailable","this host holds no document");let p=t.value,h=c.roots.filter(v=>{if(!p)return true;let x=v.range;if(!x)return false;let P=i.indexOf(x.start.paragraphId),w=i.indexOf(x.end.paragraphId),M=i.indexOf(p.start.paragraphId),O=i.indexOf(p.end.paragraphId);return w<M||P>O?false:w===M&&P===M&&O===M?x.end.offset>p.start.offset&&x.start.offset<p.end.offset:true});return I({kind:"handles",handles:h.map(v=>e.comment(v.id,i.story))})}case "getCommentReplies":{let t=R(o.comment);return t.ok?I({kind:"handles",handles:t.item.replyIds.map(n=>e.comment(n,t.reads.story))}):t.planned}case "getCommentId":{let t=R(o.comment);return t.ok?I({kind:"text",text:t.item.id}):t.planned}case "getCommentAuthor":{let t=R(o.comment);return t.ok?I({kind:"text",text:t.item.comment.author}):t.planned}case "getCommentDate":{let t=R(o.comment);return t.ok?I({kind:"text",text:t.item.comment.date??""}):t.planned}case "getCommentText":{let t=R(o.comment);if(!t.ok)return t.planned;let n=g(t.reads);return I({kind:"text",text:n?.textOf(t.item.id)??""})}case "getCommentRange":{let t=R(o.comment);if(!t.ok)return t.planned;let n=t.item.range;if(!n||t.item.orphaned)return d("invalid-handle","that comment has no range in this document");let i=T(t.reads,n);return i?I({kind:"span",span:i}):d("invalid-handle","that comment\u2019s range is no longer in the story")}case "getCommentResolved":{let t=R(o.comment);return t.ok?I({kind:"flag",value:t.item.resolved}):t.planned}case "setCommentResolved":{let t=R(o.comment);if(!t.ok)return t.planned;if(typeof o.resolved!="boolean")return d("unsupported-content","resolved is a yes or a no",String(o.resolved));let n=m(u(t.reads));return n||{ok:true,kind:"commentWrite",write:{kind:"resolve",commentId:t.item.id,resolved:o.resolved},story:t.reads.story,answer:()=>B}}case "replyToComment":{let t=R(o.comment);if(!t.ok)return t.planned;if(typeof o.author!="string"||o.author.trim().length===0)return d("unsupported-content","a comment records who wrote it","author");if(typeof o.text!="string"||o.text.length===0)return d("unsupported-content","a reply says something","text");if(bt.test(o.text))return d("unsupported-content","a reply is one paragraph in this slice","text");let n=t.item.range;if(!n||t.item.orphaned)return d("invalid-handle","that comment has no range to reply over");let i=m(u(t.reads));if(i)return i;let c=t.reads.story;return {ok:true,kind:"commentWrite",write:{kind:"reply",parentCommentId:t.item.id,anchor:{paragraphId:n.start.paragraphId,start:n.start.offset,end:n.end.offset,...n.end.paragraphId===n.start.paragraphId?{}:{endParagraphId:n.end.paragraphId}},text:o.text,author:o.author,...typeof o.date=="string"?{date:o.date}:{}},story:t.reads.story,answer:(p,h)=>h===void 0?B:{kind:"handle",handle:e.comment(h,c)}}}case "getRevisions":{let t=W(o.body,"body",e,a);if(!t.ok)return d(t.code,"that handle does not name a body",t.detail);let n=t.value;return I({kind:"handles",handles:qt(n).map(i=>e.revision(i.id,n.story))})}case "getRevisionType":{let t=A(o.revision);return t.ok?I({kind:"text",text:t.item.type}):t.planned}case "getRevisionAuthor":{let t=A(o.revision);return t.ok?I({kind:"text",text:t.item.author}):t.planned}case "getRevisionDate":{let t=A(o.revision);return t.ok?I({kind:"text",text:t.item.date}):t.planned}case "getRevisionRange":{let t=A(o.revision);if(!t.ok)return t.planned;let[n]=t.item.item.ranges;if(!n)return d("invalid-handle","that change covers no characters");let i=T(t.reads,n);return i?I({kind:"span",span:i}):d("invalid-handle","that change\u2019s range is no longer in the story")}case "acceptRevision":case "rejectRevision":{let t=A(o.revision);if(!t.ok)return t.planned;let n=u(t.reads),i=m(n);if(i)return i;let c=o.op==="acceptRevision";return {ok:true,kind:"command",story:t.reads.story,ops:t.item.item.addresses.map(p=>c?{op:"acceptRevision",revision:p}:{op:"rejectRevision",revision:p}),answer:()=>B}}case "acceptAllRevisions":case "rejectAllRevisions":{if(!e.resolve(o.document,"document"))return d("invalid-handle","that handle does not name a document","document");let t=a.body;if(!t)return d("document-unavailable","this host holds no document");let n=u(t),i=m(n);return i||{ok:true,kind:"command",story:t.story,ops:[o.op==="acceptAllRevisions"?{op:"acceptAllRevisions"}:{op:"rejectAllRevisions"}],answer:()=>B}}case "selectSpan":{let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);if(!t.value)return d("invalid-offset","that story holds no paragraph to select","empty-story");let n=nt(t.value);return n?In(u(n),t.value,o.mode):d("invalid-handle","that story is not in this document")}case "getContentControls":{let t=Bt(o.scope);return "reads"in t?I({kind:"handles",handles:an(t.reads,t.node).map(n=>e.contentControl(n.nodeId,t.reads.story))}):t}case "getContentControlById":{let t=Bt(o.scope);if(!("reads"in t))return t;if(!Number.isInteger(o.id))return d("unsupported-content","a control id is a whole number",String(o.id));let n=fn(t.node).find(i=>je$1(i).id===o.id);return n?I({kind:"handle",handle:e.contentControl(n.id,t.reads.story)}):d("invalid-handle","no control in that scope carries that id",String(o.id))}case "getContentControlsByTag":case "getContentControlsByTitle":{let t=Bt(o.scope);if(!("reads"in t))return t;let n=o.op==="getContentControlsByTag"?o.tag:o.title;if(typeof n!="string"||n.length===0)return d("unsupported-content","a tag or title to match is required",o.op);let i=fn(t.node).filter(c=>{let p=je$1(c);return o.op==="getContentControlsByTag"?p.tag===n:p.alias===n});return I({kind:"handles",handles:i.map(c=>e.contentControl(c.id,t.reads.story))})}case "getContentControlTag":case "getContentControlTitle":case "getContentControlFileId":case "getContentControlSubtype":case "getContentControlLock":{let t=Q(o.contentControl);if(!("control"in t))return t;let n=t.control.properties;if(o.op==="getContentControlLock")return I({kind:"text",text:t.control.lock});if(o.op==="getContentControlSubtype")return I({kind:"text",text:n.type});if(o.op==="getContentControlFileId")return I({kind:"text",text:n.id===void 0?"":String(n.id)});let i=o.op==="getContentControlTag"?n.tag:n.alias;return I({kind:"text",text:i??""})}case "getContentControlPlaceholderShown":case "getContentControlTemporary":{let t=Q(o.contentControl);return "control"in t?I({kind:"flag",value:o.op==="getContentControlPlaceholderShown"?t.control.properties.showingPlaceholder:t.control.properties.temporary}):t}case "getContentControlText":{let t=Q(o.contentControl);return "control"in t?I({kind:"text",text:ln(t.node)}):t}case "getContentControlParagraphs":{let t=Q(o.contentControl);return "control"in t?I({kind:"handles",handles:t.control.paragraphIds.map(n=>e.paragraph(n,t.reads.story))}):t}case "getContentControlRange":{let t=Q(o.contentControl);if(!("control"in t))return t;let n=o.location??"whole";if(!ko.has(n))return d("unsupported-content","that is not a place in a control",n);let i=te(t.reads,t.node);if(!i)return d("unsupported-content","that control holds nothing addressable","empty");let c=n==="start"||n==="before"?i.start:i.end,p=n!=="whole"&&n!=="content",h=v=>({story:t.reads.story,paragraphId:v.paragraphId,index:t.reads.indexOf(v.paragraphId),offset:v.offset});return I({kind:"span",span:Gt(p?{start:h(c),end:h(c)}:{start:h(i.start),end:h(i.end)},e)})}case "setContentControlValue":{let t=Q(o.contentControl);if(!("control"in t))return t;let n=bo(o.value);if(!n.ok)return d(n.code,n.message,n.detail);let i=u(t.reads),c=m(i);return c||{ok:true,kind:"command",story:t.reads.story,ops:[{op:"setContentControlValue",controlId:t.control.nodeId,value:n.value}],answer:()=>B}}case "setContentControlProperties":{let t=Q(o.contentControl);if(!("control"in t))return t;if(o.tag===void 0&&o.title===void 0&&o.lock===void 0)return d("unsupported-content","nothing to write","no-properties");if(o.lock!==void 0&&!ho.has(o.lock))return d("unsupported-content","that is not a lock this schema declares",o.lock);let n=u(t.reads),i=m(n);return i||{ok:true,kind:"command",story:t.reads.story,ops:[{op:"setContentControlProperties",controlId:t.control.nodeId,...o.tag===void 0?{}:{tag:o.tag},...o.title===void 0?{}:{alias:o.title},...o.lock===void 0?{}:{lock:o.lock}}],answer:()=>B}}case "insertContentControlText":{let t=Q(o.contentControl);if(!("control"in t))return t;if(typeof o.text!="string")return d("unsupported-content","text is required","text");if(o.at!=="replace"&&o.at!=="start"&&o.at!=="end")return d("unsupported-content","that is not a place to insert at",String(o.at));let n=u(t.reads),i=m(n);if(i)return i;let c=te(t.reads,t.node);if(!c)return d("unsupported-content","that control holds nothing addressable","empty");let p=o.at==="end"?c.end:c.start,h=()=>({kind:"span",span:G({start:{story:t.reads.story,paragraphId:p.paragraphId,index:t.reads.indexOf(p.paragraphId),offset:p.offset},end:{story:t.reads.story,paragraphId:p.paragraphId,index:t.reads.indexOf(p.paragraphId),offset:p.offset+o.text.length}})});return o.at==="replace"?{ok:true,kind:"command",story:t.reads.story,ops:[{op:"setContentControlValue",controlId:t.control.nodeId,value:{kind:"text",text:o.text}}],answer:h}:{ok:true,kind:"command",story:t.reads.story,ops:o.text.length===0?[]:[{op:"insertText",paragraphId:p.paragraphId,offset:p.offset,text:o.text,inside:t.node.id}],answer:h}}case "deleteContentControl":{let t=Q(o.contentControl);if(!("control"in t))return t;if(typeof o.keepContent!="boolean")return d("unsupported-content","keepContent is required","keepContent");let n=u(t.reads),i=m(n);return i||{ok:true,kind:"command",story:t.reads.story,ops:[{op:"removeContentControl",controlId:t.control.nodeId,keepContent:o.keepContent}],answer:()=>B}}case "insertContentControl":{let t=$(o.span,e,a);if(!t.ok)return d(t.code,"that span is not a place",t.detail);if(!t.value)return d("invalid-offset","that story holds nothing to wrap","empty-story");let n=nt(t.value);if(!n)return d("invalid-handle","that story is not in this document");let i=t.value;if(i.start.paragraphId!==i.end.paragraphId)return d("unsupported-content","wrapping several paragraphs in one control is not supported here","multi-paragraph");if(!Ao.has(o.subtype))return d("unsupported-content","that control type cannot be inserted",o.subtype);let c=u(n),p=m(c);return p||{ok:true,kind:"command",story:n.story,ops:[{op:"insertContentControl",paragraphId:i.start.paragraphId,start:i.start.offset,end:i.end.offset,type:o.subtype,...o.tag===void 0?{}:{tag:o.tag},...o.title===void 0?{}:{alias:o.title}}],answer:()=>B}}default:return d("unknown-operation","this host does not implement that operation",String(o.op))}};return {plan(o){let t=_e(o);if(t&&b||f&&Wt(o))return d("conflicting-operations","that command commits on its own and cannot share a batch",o.op);let n=xn(o);return n.ok&&Wt(o)&&(b=true,t&&(f=true)),n},get hasCommands(){return b},get writeScope(){return k?.reads.scope??null},settle(o){let t=k;if(t){let n=o.story(t.reads.story);if(!n)return {ok:false,detail:`the story this batch wrote is gone: ${E(t.reads.story)}`};let i=new Set(t.reads.paragraphIds),c=n.paragraphIds.filter(h=>!i.has(h));if(c.length!==t.created.length)return {ok:false,detail:`planned ${String(t.created.length)} new paragraphs, the transaction made ${String(c.length)}`};t.order.filter(h=>h.id===null).forEach((h,v)=>{h.id=c[v]??null;});for(let h of t.retargets)h.slot.id&&e.retarget(h.from,h.slot.id);}for(let n of y){let i=o.story(n.range.start.story);!i||!So(n.range,i)||r.select?.(n.range,n.mode);}return {ok:true}}}}var Oo=Object.freeze({status:"skipped"});function X(r,e,s){return Object.freeze(s===void 0?{code:r,message:e}:{code:r,message:e,detail:s})}function et(r,e,s,a){return {ok:false,results:r.map((l,u)=>u===e?{status:"error",error:s}:Oo),revision:a,changed:false}}function Wr(r){let{port:e}=r,s=Object.freeze({...r.capabilities}),a=je(),l=new Set,u=false,y=null,b=s.events?e.subscribe(()=>{if(u)return;let m=Object.freeze({revision:e.revision()});for(let g of [...l])g(m);}):()=>{},f=m=>{if(y&&y.pkg===m)return y.value;let g=Qe(m);return y={pkg:m,value:g},g};return {capabilities:s,revision:()=>e.revision(),execute:m=>{let g=Array.isArray(m?.operations)?m.operations:[],R=e.revision();if(u)return et(g,0,X("disposed","this host was disposed"),R);if(!s.document)return et(g,0,X("unsupported-capability","this host has no document","document"),R);let A=e.currentPackage();if(!A)return et(g,0,X("document-unavailable","this host holds no document right now"),R);if(m.expectedRevision!==void 0&&m.expectedRevision!==R)return et(g,0,X("stale-revision","the document moved since that revision",`expected ${String(m.expectedRevision)}, at ${R}`),R);let T=mn({handles:a,reads:f(A),capabilities:s,...e.select?{select:e.select.bind(e)}:{}}),C=[],N=[],L=null,_=null,J,D=-1;for(let H=0;H<g.length;H+=1){let j=T.plan(g[H]);if(!j.ok)return et(g,H,j.error,R);if(C.push(j),j.kind==="command")if(D<0&&(D=H),j.lifecycle)L=j.ops[0]??null;else if(j.relate){let ot=j.relate;N.push(mt=>{let lt=mt(ot.url);return lt===null?null:ot.ops(lt)});}else {let{ops:ot}=j;N.push(()=>ot);}else j.kind==="commentWrite"&&(D<0&&(D=H),_={write:j.write,scope:T.writeScope??{kind:"body"}});}let G=false;if(_){let H=e.applyCommentWrite(_.write,_.scope);if(!H.ok)return et(g,D<0?0:D,X("transaction-refused","the document store refused the comment write",H.reason),R);G=H.changed,J=H.commentId;}if(L){let H=e.applyLifecycle(L);if(!H.ok)return et(g,D<0?0:D,X("transaction-refused","the document store refused the transaction",H.reason),R);G=H.changed;}if(N.length>0){let H=e.apply(j=>{let ot=[];for(let mt of N){let lt=mt(j);if(lt===null)return null;ot.push(...lt);}return ot},T.writeScope??{kind:"body"});if(!H.ok)return et(g,D<0?0:D,X("transaction-refused","the document store refused the transaction",H.reason),R);G=H.changed;}let nt=e.currentPackage();if(!nt)return et(g,0,X("document-unavailable","this host holds no document right now"),R);let It=f(nt),xt=T.settle(It);return xt.ok?{ok:true,results:C.map(H=>({status:"ok",value:H.kind==="query"?H.value:H.answer(It,J)})),revision:e.revision(),changed:G}:et(g,D<0?0:D,X("transaction-refused","the transaction did not produce the document the batch planned",xt.detail),e.revision())},save(){if(u)return {ok:false,error:X("disposed","this host was disposed")};if(!s.save)return {ok:false,error:X("unsupported-capability","this host cannot save","save")};let m=e.save();return m?{ok:true,bytes:m}:{ok:false,error:X("document-unavailable","this host holds no document right now")}},subscribe(m){return u||!s.events?()=>{}:(l.add(m),()=>{l.delete(m);})},dispose(){u||(u=true,l.clear(),b(),e.dispose(),y=null);}}}export{wt as a,Po as b,Cn as c,Pn as d,_e as e,Wt as f,Wr as g};
|