document-model 1.0.26 → 1.0.28

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.
Files changed (134) hide show
  1. package/dist/browser/document-model.cjs +1 -1
  2. package/dist/browser/document-model.js +8 -9
  3. package/dist/browser/document.cjs +1 -1
  4. package/dist/browser/document.js +9 -12
  5. package/dist/browser/index.cjs +1 -1
  6. package/dist/browser/index.js +8 -13
  7. package/dist/browser/internal/index-FBdtB-Z0.js +38 -0
  8. package/dist/browser/internal/index-MQO6aDba.js +1 -0
  9. package/dist/browser/internal/{index-gREVUw-G.js → index-oR1tzXEU.js} +1 -1
  10. package/dist/browser/internal/{index-IVF7gvRz.js → index-qiOnVXbI.js} +2 -2
  11. package/dist/browser/internal/object-P7bHOWu_.js +1912 -0
  12. package/dist/browser/internal/object-RV2GJjkF.js +6 -0
  13. package/dist/browser/src/document/actions/index.d.ts +3 -3
  14. package/dist/browser/src/document/object.d.ts +63 -0
  15. package/dist/browser/src/document/reducer.d.ts +16 -0
  16. package/dist/browser/src/document/schema/types.d.ts +9 -12
  17. package/dist/browser/src/document/signal.d.ts +1 -0
  18. package/dist/browser/src/document/types.d.ts +9 -0
  19. package/dist/browser/src/document/utils/base.d.ts +7 -4
  20. package/dist/browser/src/document/utils/index.d.ts +1 -0
  21. package/dist/node/document-model.cjs +1 -1
  22. package/dist/node/document-model.js +12 -13
  23. package/dist/node/document.cjs +1 -1
  24. package/dist/node/document.js +9 -16
  25. package/dist/node/index.cjs +1 -1
  26. package/dist/node/index.js +8 -17
  27. package/dist/node/internal/index-E6Dehju3.js +1 -0
  28. package/dist/node/internal/index-Rc3pWGDQ.js +38 -0
  29. package/dist/node/internal/{index-VzErJ06c.js → index-r_Cve_NX.js} +1 -1
  30. package/dist/node/internal/{index-AWkBpPdl.js → index-uFGJxYP7.js} +3 -3
  31. package/dist/node/internal/object-51-uoy0f.js +1 -0
  32. package/dist/node/internal/object-qR4Tf50L.js +911 -0
  33. package/dist/node/src/document/actions/index.d.ts +3 -3
  34. package/dist/node/src/document/object.d.ts +63 -0
  35. package/dist/node/src/document/reducer.d.ts +16 -0
  36. package/dist/node/src/document/schema/types.d.ts +9 -12
  37. package/dist/node/src/document/signal.d.ts +1 -0
  38. package/dist/node/src/document/types.d.ts +9 -0
  39. package/dist/node/src/document/utils/base.d.ts +7 -4
  40. package/dist/node/src/document/utils/index.d.ts +1 -0
  41. package/package.json +2 -2
  42. package/dist/browser/internal/index-JkTAMqR0.js +0 -36
  43. package/dist/browser/internal/index-ZuT5Pi3Z.js +0 -1
  44. package/dist/browser/internal/object-1Edh7roc.js +0 -1844
  45. package/dist/browser/internal/object-v0zgcnse.js +0 -6
  46. package/dist/browser/test/document/undo.test.d.ts +0 -1
  47. package/dist/jest.config.d.ts +0 -8
  48. package/dist/node/internal/index-8_P5_maf.js +0 -1
  49. package/dist/node/internal/index-y-8qoZvC.js +0 -36
  50. package/dist/node/internal/object-6KU11KDZ.js +0 -843
  51. package/dist/node/internal/object-YfG4E2oW.js +0 -1
  52. package/dist/node/test/document/redo.test.d.ts +0 -1
  53. package/dist/node/test/document/undo.test.d.ts +0 -1
  54. package/dist/src/document/actions/creators.d.ts +0 -47
  55. package/dist/src/document/actions/index.d.ts +0 -10
  56. package/dist/src/document/actions/types.d.ts +0 -8
  57. package/dist/src/document/index.d.ts +0 -6
  58. package/dist/src/document/object.d.ts +0 -510
  59. package/dist/src/document/reducer.d.ts +0 -32
  60. package/dist/src/document/schema/index.d.ts +0 -2
  61. package/dist/src/document/schema/types.d.ts +0 -177
  62. package/dist/src/document/schema/zod.d.ts +0 -113
  63. package/dist/src/document/signal.d.ts +0 -28
  64. package/dist/src/document/types.d.ts +0 -210
  65. package/dist/src/document/utils/base.d.ts +0 -77
  66. package/dist/src/document/utils/browser.d.ts +0 -10
  67. package/dist/src/document/utils/file.d.ts +0 -47
  68. package/dist/src/document/utils/index.d.ts +0 -3
  69. package/dist/src/document/utils/node.d.ts +0 -9
  70. package/dist/src/document-model/custom/reducers/header.d.ts +0 -2
  71. package/dist/src/document-model/custom/reducers/module.d.ts +0 -2
  72. package/dist/src/document-model/custom/reducers/operation-error.d.ts +0 -2
  73. package/dist/src/document-model/custom/reducers/operation-example.d.ts +0 -2
  74. package/dist/src/document-model/custom/reducers/operation.d.ts +0 -2
  75. package/dist/src/document-model/custom/reducers/state.d.ts +0 -2
  76. package/dist/src/document-model/custom/reducers/versioning.d.ts +0 -7
  77. package/dist/src/document-model/custom/utils.d.ts +0 -1
  78. package/dist/src/document-model/gen/actions.d.ts +0 -15
  79. package/dist/src/document-model/gen/creators.d.ts +0 -7
  80. package/dist/src/document-model/gen/document-model.d.ts +0 -2
  81. package/dist/src/document-model/gen/header/actions.d.ts +0 -9
  82. package/dist/src/document-model/gen/header/creators.d.ts +0 -8
  83. package/dist/src/document-model/gen/header/object.d.ts +0 -12
  84. package/dist/src/document-model/gen/header/operations.d.ts +0 -10
  85. package/dist/src/document-model/gen/index.d.ts +0 -5
  86. package/dist/src/document-model/gen/module/actions.d.ts +0 -8
  87. package/dist/src/document-model/gen/module/creators.d.ts +0 -7
  88. package/dist/src/document-model/gen/module/object.d.ts +0 -11
  89. package/dist/src/document-model/gen/module/operations.d.ts +0 -9
  90. package/dist/src/document-model/gen/object.d.ts +0 -28
  91. package/dist/src/document-model/gen/operation/actions.d.ts +0 -13
  92. package/dist/src/document-model/gen/operation/creators.d.ts +0 -12
  93. package/dist/src/document-model/gen/operation/object.d.ts +0 -16
  94. package/dist/src/document-model/gen/operation/operations.d.ts +0 -14
  95. package/dist/src/document-model/gen/operation-error/actions.d.ts +0 -10
  96. package/dist/src/document-model/gen/operation-error/creators.d.ts +0 -9
  97. package/dist/src/document-model/gen/operation-error/object.d.ts +0 -13
  98. package/dist/src/document-model/gen/operation-error/operations.d.ts +0 -11
  99. package/dist/src/document-model/gen/operation-example/actions.d.ts +0 -7
  100. package/dist/src/document-model/gen/operation-example/creators.d.ts +0 -6
  101. package/dist/src/document-model/gen/operation-example/object.d.ts +0 -10
  102. package/dist/src/document-model/gen/operation-example/operations.d.ts +0 -8
  103. package/dist/src/document-model/gen/reducer.d.ts +0 -5
  104. package/dist/src/document-model/gen/schema/index.d.ts +0 -2
  105. package/dist/src/document-model/gen/schema/types.d.ts +0 -453
  106. package/dist/src/document-model/gen/schema/zod.d.ts +0 -453
  107. package/dist/src/document-model/gen/state/actions.d.ts +0 -9
  108. package/dist/src/document-model/gen/state/creators.d.ts +0 -8
  109. package/dist/src/document-model/gen/state/object.d.ts +0 -12
  110. package/dist/src/document-model/gen/state/operations.d.ts +0 -10
  111. package/dist/src/document-model/gen/types.d.ts +0 -8
  112. package/dist/src/document-model/gen/utils.d.ts +0 -6
  113. package/dist/src/document-model/gen/versioning/actions.d.ts +0 -8
  114. package/dist/src/document-model/gen/versioning/creators.d.ts +0 -7
  115. package/dist/src/document-model/gen/versioning/object.d.ts +0 -11
  116. package/dist/src/document-model/gen/versioning/operations.d.ts +0 -9
  117. package/dist/src/document-model/index.d.ts +0 -75
  118. package/dist/src/index.d.ts +0 -25
  119. package/dist/test/document/local.test.d.ts +0 -1
  120. package/dist/test/document/object.test.d.ts +0 -1
  121. package/dist/test/document/prune.test.d.ts +0 -1
  122. package/dist/test/document/redo.test.d.ts +0 -1
  123. package/dist/test/document/reducer.test.d.ts +0 -1
  124. package/dist/test/document/skip-operations.test.d.ts +0 -1
  125. package/dist/test/document/undo.test.d.ts +0 -1
  126. package/dist/test/document/utils.test.d.ts +0 -1
  127. package/dist/test/document-model/object.test.d.ts +0 -1
  128. package/dist/test/document-model/skip-operations.test.d.ts +0 -1
  129. package/dist/test/document-model/zip.test.d.ts +0 -1
  130. package/dist/test/helpers.d.ts +0 -32
  131. package/dist/vite.config.d.ts +0 -2
  132. package/dist/vitest.config.d.ts +0 -2
  133. /package/dist/{test → browser/test}/document/undo-redo.test.d.ts +0 -0
  134. /package/dist/{browser/test/document/redo.test.d.ts → node/test/document/undo-redo.test.d.ts} +0 -0
@@ -1,14 +1,14 @@
1
1
  var ut = Object.defineProperty;
2
2
  var mt = (t, e, r) => e in t ? ut(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
3
3
  var ce = (t, e, r) => (mt(t, typeof e != "symbol" ? e + "" : e, r), r);
4
- import { c as Et, i as ht, a as Ot, b as gt, s as St, d as bt, l as ft, e as _t, f as s, B as l, g as It, h as Tt } from "./object-6KU11KDZ.js";
5
- import "json-stringify-deterministic";
4
+ import { c as Et, i as ht, a as Ot, b as gt, s as St, d as bt, l as ft, e as _t, f as s, B as l, g as It, h as Tt } from "./object-qR4Tf50L.js";
6
5
  import "immer";
7
- import "jszip";
6
+ import "json-stringify-deterministic";
8
7
  import "crypto";
9
8
  import "fs";
10
9
  import "https";
11
10
  import "path";
11
+ import "jszip";
12
12
  import { z as o } from "zod";
13
13
  const Rt = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
14
14
  __proto__: null
@@ -0,0 +1 @@
1
+ "use strict";var St=Object.defineProperty;var kt=(e,t,i)=>t in e?St(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;var D=(e,t,i)=>(kt(e,typeof t!="symbol"?t+"":t,i),i);const g=require("immer"),_t=require("json-stringify-deterministic"),p=require("zod"),Dt=require("crypto"),A=require("fs"),Et=require("https"),Tt=require("path"),K=require("jszip"),G=e=>e!=null,Nt=p.z.any().refine(e=>G(e)),V=p.z.enum(["LOAD_STATE"]),Q=p.z.enum(["PRUNE"]),X=p.z.enum(["REDO"]),Y=p.z.enum(["SET_NAME"]),tt=p.z.enum(["UNDO"]);function At(){return p.z.object({__typename:p.z.literal("Action").optional(),type:p.z.string()})}function k(){return p.z.literal("global").or(p.z.literal("local"))}function et(){return p.z.union([it(),nt(),ot(),st(),pt()])}function Ft(){return p.z.object({__typename:p.z.literal("DocumentFile").optional(),data:p.z.string(),extension:p.z.string().nullable(),fileName:p.z.string().nullable(),mimeType:p.z.string()})}function it(){return p.z.object({input:p.z.lazy(()=>q()),type:V,scope:k()})}function q(){return p.z.object({operations:p.z.number(),state:p.z.lazy(()=>at())})}function at(){return p.z.object({data:p.z.unknown().nullish(),name:p.z.string()})}function Mt(){return p.z.object({__typename:p.z.literal("Operation").optional(),hash:p.z.string(),index:p.z.number(),timestamp:p.z.string().datetime(),type:p.z.string()})}function nt(){return p.z.object({input:p.z.lazy(()=>I()),type:Q,scope:k()})}function I(){return p.z.object({end:p.z.number().nullish(),start:p.z.number().nullish()})}const P=p.z.number;function ot(){return p.z.object({input:P(),type:X,scope:k()})}const L=p.z.string;function st(){return p.z.object({input:L(),type:Y,scope:p.z.literal("global")})}function Rt(){return p.z.object({__typename:p.z.literal("SetNameOperation").optional(),hash:p.z.string(),index:p.z.number(),input:p.z.string(),timestamp:p.z.string().datetime(),type:p.z.string()})}const U=p.z.number;function pt(){return p.z.object({input:U(),type:tt,scope:k()})}const qt=Object.freeze(Object.defineProperty({__proto__:null,ActionSchema:At,BaseActionSchema:et,DocumentFileSchema:Ft,LoadStateActionInputSchema:q,LoadStateActionSchema:it,LoadStateActionStateInputSchema:at,Load_StateSchema:V,OperationSchema:Mt,OperationScopeSchema:k,PruneActionInputSchema:I,PruneActionSchema:nt,PruneSchema:Q,RedoActionInputSchema:P,RedoActionSchema:ot,RedoSchema:X,SetNameActionInputSchema:L,SetNameActionSchema:st,SetNameOperationSchema:Rt,Set_NameSchema:Y,UndoActionInputSchema:U,UndoActionSchema:pt,UndoSchema:tt,definedNonNullAnySchema:Nt,isDefinedNonNullAny:G},Symbol.toStringTag,{value:"Module"}));function It(e,t){return{...e,name:t}}function Pt(e,t,i){const{scope:a,input:o}=t,l={document:e,action:t,skip:i};return g.produce(l,n=>{if(n.document.operations[a].length<1)throw new Error(`Cannot undo: no operations in history for scope "${a}"`);if(o<1)throw new Error("Invalid UNDO action: input value must be greater than 0");if(n.skip>0)throw new Error("Cannot undo: skip value from reducer cannot be used with UNDO action");const[s]=n.document.operations[a].slice(-1),r=s.type==="NOOP"&&s.skip>0;if(n.skip+=o,r&&(n.skip+=s.skip,n.document.operations[a].pop()),n.document.operations[a].length<n.skip)throw new Error("Cannot undo: you can't undo more operations than the ones in the scope history");const c=n.document.operations[a].length-1;let f=o,d=r?c-s.skip:c;for(;f>0&&d>=0;){const u=n.document.operations[a][d];u.type==="NOOP"&&u.skip>0?(d=d-(u.skip+1),n.skip+=u.skip+1):(n.document.clipboard.push({...u}),f--,d--)}n.action=W(a)})}function Lt(e,t,i){const{scope:a,input:o}=t,l={document:e,action:t,skip:i};return g.produce(l,n=>{if(n.skip>0)throw new Error("Cannot redo: skip value from reducer cannot be used with REDO action");if(o>1)throw new Error("Cannot redo: you can only redo one operation at a time");if(o<1)throw new Error("Invalid REDO action: invalid redo input value");if(n.document.clipboard.length<1)throw new Error("Cannot redo: no operations in the clipboard");const s=n.document.clipboard.findLastIndex(c=>c.scope===a);if(s<0)throw new Error(`Cannot redo: no operations in clipboard for scope "${a}"`);const r=n.document.clipboard.splice(s,1)[0];n.action=g.castDraft({type:r.type,scope:r.scope,input:r.input})})}function Ut(e,t,i){const{scope:a}=t,o=e.operations[a];let{input:{start:l,end:n}}=t;l=l||0,n=n||o.length;const s=o.slice(l,n),r=o.slice(0,l),c=o.slice(n),f=E(e.initialState,{...e.operations,[a]:r.concat(s)},i),{name:d,state:u}=f,m=r.length,O=r.length?r[r.length-1].timestamp:c.length?c[0].timestamp:new Date().toISOString();return E(e.initialState,{...e.operations,[a]:[...r,{...B({name:d,state:u},s.length),timestamp:O,index:m,hash:$({state:u},"global")},...c.map((w,N)=>({...w,index:m+N+1}))]},i)}function Ct(e,t){return{...e,name:t.name,state:t.state??{global:{},local:{}}}}const ct="SET_NAME",y="UNDO",j="REDO",_="PRUNE",lt="LOAD_STATE";function $t(e,t){const i=e.revision[t.scope];return[y,j,_].includes(t.type)?i:i+1}function Jt(e,t){return{...e,revision:{...e.revision,[t.scope]:$t(e,t)},lastModified:new Date().toISOString()}}function Bt(e,t,i=0){if([y,j,_].includes(t.type))return e;const{scope:a}=t,o=e.operations[a].slice(0,e.revision[a]);return o.push({...t,index:o.length,timestamp:new Date().toISOString(),hash:"",scope:a,skip:i}),{...e,operations:{...e.operations,[a]:o}}}function Wt(e,t,i=0){let a=Bt(e,t,i);return a=Jt(a,t),a}function Zt(e,t,i){switch(et().parse(t),t.type){case ct:return It(e,t.input);case _:return Ut(e,t,i);case lt:return Ct(e,t.input.state);default:return e}}function rt(e,t,i){switch(t.type){case y:return Pt(e,t,i);case j:return Lt(e,t,i);default:return{document:e,action:t,skip:i}}}function C(e,t,i,a,o={}){const{skip:l,ignoreSkipOperations:n=!1}=o;let s={...t},r=l||0,c=e,f=[...e.clipboard];if(F(s)){const{skip:d,action:u,document:m}=rt(e,s,r);s=u,r=d,c=m,f=[...c.clipboard]}return M(s)&&(c=Zt(c,s,i)),r>0&&!n&&(c=E(c.initialState,c.operations,i,void 0,void 0,void 0,{[s.scope]:r})),c=Wt(c,s,r),c=g.produce(c,d=>{const u=i(d.state,s,a),m=F(t)?[...f]:[];if(u)return g.castDraft({...c,clipboard:[...m],state:u});d.clipboard=g.castDraft([...m])}),g.produce(c,d=>{if([y,j,_].includes(s.type))return d;const u=s.scope||"global";d.operations[u][d.operations[u].length-1].hash=$(d,u),!M(s)&&s.attachments&&s.attachments.forEach(m=>{const{hash:O,...w}=m;d.attachments[O]={...w}})})}function Ht(e,t,i){const a=Tt.join(e,t);return A.mkdirSync(e,{recursive:!0}),new Promise((o,l)=>{try{A.writeFile(a,i,{},n=>{n?l(n):o(a)})}catch(n){l(n)}})}function mt(e){return A.readFileSync(e)}function Kt(e){return new Promise((t,i)=>{Et.get(e,a=>{const o=[],l=a.headers["content-type"];a.on("data",n=>{o.push(n)}),a.on("end",()=>{t({buffer:Buffer.concat(o),mimeType:l})})}).on("error",a=>{i(a)})})}const Gt=async e=>mt(e),T=(e,t="sha1")=>Dt.createHash(t).update(e).digest("base64");function F(e){return[y,j].includes(e.type)}function M(e){return[ct,y,j,_,lt].includes(e.type)}function b(e,t,i,a,o="global"){if(!e)throw new Error("Empty action type");if(typeof e!="string")throw new Error(`Invalid action type: ${e}`);const l={type:e,input:t,scope:o};i&&(l.attachments=i);try{a==null||a().parse(l.input)}catch(n){throw new Error(`Invalid action input: ${n}`)}return l}function dt(e,t=C){return(i,a,o,l)=>t(i,a,e,o,l)}const ut=(e,t)=>({name:"",documentType:"",revision:{global:0,local:0},created:new Date().toISOString(),lastModified:new Date().toISOString(),attachments:{},...e,state:(t==null?void 0:t(e==null?void 0:e.state))??(e==null?void 0:e.state)??{global:{},local:{}}}),xt=(e,t)=>{const i=ut(e,t);return{...i,initialState:i,operations:{global:[],local:[]},clipboard:[]}},$=(e,t="global")=>T(_t(e.state[t])),Vt=(e,t=1e3)=>{const i=Math.random()*t;return T(`${(e??new Date).toISOString()}${i}`)};function z(e){return g.castImmutable(g.freeze(e,!0))}function ft(e,t){const i=[...e];let a=t||0,o=i.length>0?i[i.length-1].index:0;const l=[];for(const n of i.reverse()){if(a>0){const c=o-n.index;a-=c}if(a<0)throw new Error("Invalid operation index, missing operations");const s={ignore:a>0,operation:n},r=n.skip>0?n.skip+1:0;if(r>0&&r>a){const c=r-a;a=a+c}o=n.index,l.push(s)}return l.reverse()}function Qt(e){return Object.values(e).flatMap(t=>t).sort((t,i)=>new Date(t.timestamp).getTime()-new Date(i.timestamp).getTime())}function gt(e){return Object.values(e).flatMap(t=>t).sort((t,i)=>new Date(t.operation.timestamp).getTime()-new Date(i.operation.timestamp).getTime())}function E(e,t,i,a,o,l=C,n={}){const s=dt(i,l);return J(e,t,s,a,o,n)}function J(e,t,i,a,o,l={}){const n=xt(e),s=Object.keys(t).reduce((d,u)=>{const m=u;return{...d,[m]:t[m].slice(0,o==null?void 0:o.revision[m])}},{}),r=Object.keys(s).reduce((d,u)=>{const m=u;return{...d,[m]:ft(s[m],l[m])}},{}),c=gt(r).reduce((d,{ignore:u,operation:m})=>u?i(d,W(m.scope),a,{skip:m.skip,ignoreSkipOperations:!0}):i(d,m,a,{skip:m.skip,ignoreSkipOperations:!0}),n),f=Object.keys(c.operations).reduce((d,u)=>{const m=u,O=o&&o.revision[m]<t[m].length?t[m].slice(o.revision[m]):[];return{...d,[m]:[...c.operations[m].map((w,N)=>{var H;return{...w,timestamp:((H=t[m][N])==null?void 0:H.timestamp)??w.timestamp}}),...O]}},{global:[],local:[]});return{...c,operations:f}}const ht=e=>b("SET_NAME",e,void 0,L,void 0),bt=(e=1,t="global")=>b("UNDO",e,void 0,U,t),wt=(e=1,t="global")=>b("REDO",e,void 0,P,t),vt=(e,t,i="global")=>b("PRUNE",{start:e,end:t},void 0,I,i),B=(e,t)=>b("LOAD_STATE",{state:e,operations:t},void 0,q),W=(e="global")=>b("NOOP",{},void 0,void 0,e),Xt=Object.freeze(Object.defineProperty({__proto__:null,loadState:B,noop:W,prune:vt,redo:wt,setName:ht,undo:bt},Symbol.toStringTag,{value:"Module"})),yt={"application/andrew-inset":["ez"],"application/appinstaller":["appinstaller"],"application/applixware":["aw"],"application/appx":["appx"],"application/appxbundle":["appxbundle"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomdeleted+xml":["atomdeleted"],"application/atomsvc+xml":["atomsvc"],"application/atsc-dwd+xml":["dwd"],"application/atsc-held+xml":["held"],"application/atsc-rsat+xml":["rsat"],"application/automationml-aml+xml":["aml"],"application/automationml-amlx+zip":["amlx"],"application/bdoc":["bdoc"],"application/calendar+xml":["xcs"],"application/ccxml+xml":["ccxml"],"application/cdfx+xml":["cdfx"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cpl+xml":["cpl"],"application/cu-seeme":["cu"],"application/cwl":["cwl"],"application/dash+xml":["mpd"],"application/dash-patch+xml":["mpp"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["ecma"],"application/emma+xml":["emma"],"application/emotionml+xml":["emotionml"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/express":["exp"],"application/fdf":["fdf"],"application/fdt+xml":["fdt"],"application/font-tdpfr":["pfr"],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hjson":["hjson"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/its+xml":["its"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["*js"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lgr+xml":["lgr"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/media-policy-dataset+xml":["mpf"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mmt-aei+xml":["maei"],"application/mmt-usd+xml":["musd"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["*mp4","*mpg4","mp4s","m4p"],"application/msix":["msix"],"application/msixbundle":["msixbundle"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/n-quads":["nq"],"application/n-triples":["nt"],"application/node":["cjs"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/p2p-overlay+xml":["relo"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-keys":["asc"],"application/pgp-signature":["sig","*asc"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/provenance+xml":["provx"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf","owl"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/route-apd+xml":["rapd"],"application/route-s-tsid+xml":["sls"],"application/route-usd+xml":["rusd"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/senml+xml":["senmlx"],"application/sensml+xml":["sensmlx"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/sieve":["siv","sieve"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/sql":["sql"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/swid+xml":["swidtag"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/toml":["toml"],"application/trig":["trig"],"application/ttml+xml":["ttml"],"application/ubjson":["ubj"],"application/urc-ressheet+xml":["rsheet"],"application/urc-targetdesc+xml":["td"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/watcherinfo+xml":["wif"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/xaml+xml":["xaml"],"application/xcap-att+xml":["xav"],"application/xcap-caps+xml":["xca"],"application/xcap-diff+xml":["xdf"],"application/xcap-el+xml":["xel"],"application/xcap-ns+xml":["xns"],"application/xenc+xml":["xenc"],"application/xfdf":["xfdf"],"application/xhtml+xml":["xhtml","xht"],"application/xliff+xml":["xlf"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["*xsl","xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":["*3gpp"],"audio/aac":["adts","aac"],"audio/adpcm":["adp"],"audio/amr":["amr"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mobile-xmf":["mxmf"],"audio/mp3":["*mp3"],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx","opus"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/wav":["wav"],"audio/wave":["*wav"],"audio/webm":["weba"],"audio/xm":["xm"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/aces":["exr"],"image/apng":["apng"],"image/avci":["avci"],"image/avcs":["avcs"],"image/avif":["avif"],"image/bmp":["bmp","dib"],"image/cgm":["cgm"],"image/dicom-rle":["drle"],"image/dpx":["dpx"],"image/emf":["emf"],"image/fits":["fits"],"image/g3fax":["g3"],"image/gif":["gif"],"image/heic":["heic"],"image/heic-sequence":["heics"],"image/heif":["heif"],"image/heif-sequence":["heifs"],"image/hej2k":["hej2"],"image/hsj2":["hsj2"],"image/ief":["ief"],"image/jls":["jls"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jph":["jph"],"image/jphc":["jhc"],"image/jpm":["jpm","jpgm"],"image/jpx":["jpx","jpf"],"image/jxr":["jxr"],"image/jxra":["jxra"],"image/jxrs":["jxrs"],"image/jxs":["jxs"],"image/jxsc":["jxsc"],"image/jxsi":["jxsi"],"image/jxss":["jxss"],"image/ktx":["ktx"],"image/ktx2":["ktx2"],"image/png":["png"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/t38":["t38"],"image/tiff":["tif","tiff"],"image/tiff-fx":["tfx"],"image/webp":["webp"],"image/wmf":["wmf"],"message/disposition-notification":["disposition-notification"],"message/global":["u8msg"],"message/global-delivery-status":["u8dsn"],"message/global-disposition-notification":["u8mdn"],"message/global-headers":["u8hdr"],"message/rfc822":["eml","mime"],"model/3mf":["3mf"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/jt":["jt"],"model/mesh":["msh","mesh","silo"],"model/mtl":["mtl"],"model/obj":["obj"],"model/prc":["prc"],"model/step+xml":["stpx"],"model/step+zip":["stpz"],"model/step-xml+zip":["stpxz"],"model/stl":["stl"],"model/u3d":["u3d"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["*x3db","x3dbz"],"model/x3d+fastinfoset":["x3db"],"model/x3d+vrml":["*x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"model/x3d-vrml":["x3dv"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/javascript":["js","mjs"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["md","markdown"],"text/mathml":["mml"],"text/mdx":["mdx"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/richtext":["rtx"],"text/rtf":["*rtf"],"text/sgml":["sgml","sgm"],"text/shex":["shex"],"text/slim":["slim","slm"],"text/spdx":["spdx"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vtt":["vtt"],"text/wgsl":["wgsl"],"text/xml":["*xml"],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/iso.segment":["m4s"],"video/jpeg":["jpgv"],"video/jpm":["*jpm","*jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/webm":["webm"]};Object.freeze(yt);var x=function(e,t,i,a){if(i==="a"&&!a)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return i==="m"?a:i==="a"?a.call(e):a?a.value:t.get(e)},v,S,h;class Yt{constructor(...t){v.set(this,new Map),S.set(this,new Map),h.set(this,new Map);for(const i of t)this.define(i)}define(t,i=!1){for(let[a,o]of Object.entries(t)){a=a.toLowerCase(),o=o.map(s=>s.toLowerCase()),x(this,h,"f").has(a)||x(this,h,"f").set(a,new Set);const l=x(this,h,"f").get(a);let n=!0;for(let s of o){const r=s.startsWith("*");if(s=r?s.slice(1):s,l==null||l.add(s),n&&x(this,S,"f").set(a,s),n=!1,r)continue;const c=x(this,v,"f").get(s);if(c&&c!=a&&!i)throw new Error(`"${a} -> ${s}" conflicts with "${c} -> ${s}". Pass \`force=true\` to override this definition.`);x(this,v,"f").set(s,a)}}return this}getType(t){if(typeof t!="string")return null;const i=t.replace(/^.*[/\\]/,"").toLowerCase(),a=i.replace(/^.*\./,"").toLowerCase(),o=i.length<t.length;return!(a.length<i.length-1)&&o?null:x(this,v,"f").get(a)??null}getExtension(t){var i;return typeof t!="string"?null:(t=(i=t==null?void 0:t.split)==null?void 0:i.call(t,";")[0],(t&&x(this,S,"f").get(t.trim().toLowerCase()))??null)}getAllExtensions(t){return typeof t!="string"?null:x(this,h,"f").get(t.toLowerCase())??null}_freeze(){this.define=()=>{throw new Error("define() not allowed for built-in Mime objects. See https://github.com/broofa/mime/blob/main/README.md#custom-mime-instances")},Object.freeze(this);for(const t of x(this,h,"f").values())Object.freeze(t);return this}_getTestState(){return{types:x(this,v,"f"),extensions:x(this,S,"f")}}}v=new WeakMap,S=new WeakMap,h=new WeakMap;const te=new Yt(yt)._freeze(),Z=async e=>{const t=new K,{name:i,revision:a,documentType:o,created:l,lastModified:n}=e,s={name:i,revision:a,documentType:o,created:l,lastModified:n};return t.file("header.json",JSON.stringify(s,null,2)),t.file("state.json",JSON.stringify(e.initialState||{},null,2)),t.file("operations.json",JSON.stringify(e.operations,null,2)),Object.keys(e.attachments).forEach(c=>{const{data:f,...d}=e.attachments[c];t.file(c,f,{base64:!0,createFolders:!0,comment:JSON.stringify(d)})}),t},jt=async(e,t,i,a)=>{const l=await(await Z(e)).generateAsync({type:"uint8array",streamFiles:!0}),n=a??e.name,s=`.${i}.zip`;return Ht(t,n.endsWith(s)?n:`${n}${s}`,l)},ee=async(e,t)=>{const a=await(await Z(e)).generateAsync({type:"blob"}),o=await t.createWritable();await o.write(a),await o.close()},R=async(e,t)=>{const i=mt(e);return Ot(i,t)},Ot=async(e,t)=>{const i=new K;return await i.loadAsync(e),ie(i,t)};async function ie(e,t){const i=e.file("state.json");if(!i)throw new Error("Initial state not found");const a=await i.async("string"),o=JSON.parse(a),l=e.file("header.json");let n;l&&(n=JSON.parse(await l.async("string")));const s=e.file("operations.json");if(!s)throw new Error("Operations history not found");const r=JSON.parse(await s.async("string"));let c=J(o,r,t,void 0,n);return n&&(c={...c,...n}),c}function zt(e){const t=e.replace(/^.*\./,"")||void 0,i=e.replace(/^.*[/\\]/,"")||void 0;return{extension:t,fileName:i}}async function ae(e){const{buffer:t,mimeType:i="application/octet-stream"}=await Kt(e),a=zt(e),o=t.toString("base64");return{data:o,hash:T(o),mimeType:i,...a}}async function ne(e){const t=await Gt(e),i=te.getType(e)||"application/octet-stream",a=zt(e),o=t.toString("base64");return{data:o,hash:T(o),mimeType:i,...a}}class oe{constructor(t,i,a){D(this,"_document");D(this,"_reducer");D(this,"_signalDispatch");this._reducer=t,this._document=i,this._signalDispatch=a}dispatch(t,i){return this._document=this._reducer(this._document,t,this._signalDispatch,i),this}saveToFile(t,i,a){return jt(this._document,t,i,a)}async loadFromFile(t){this._document=await R(t,this._reducer)}static async stateFromFile(t,i){return await R(t,i)}get state(){return z(this._document.state)}get operations(){return z(this._document.operations)}get name(){return this._document.name}get documentType(){return this._document.documentType}get created(){return this._document.created}get lastModified(){return this._document.lastModified}get revision(){return this._document.revision.global}getRevision(t){return this._document.revision[t]}get initialState(){return z(this._document.initialState)}toDocument(){return z(this._document)}getAttachment(t){return this._document.attachments[t]}setName(t){return this.dispatch(ht(t)),this}undo(t){return this.dispatch(bt(t)),this}redo(t){return this.dispatch(wt(t)),this}prune(t,i){return this.dispatch(vt(t,i)),this}loadState(t,i){return this.dispatch(B(t,i)),this}}function se(e,t){t.forEach(i=>{Object.getOwnPropertyNames(i.prototype).forEach(a=>{Object.defineProperty(e.prototype,a,Object.getOwnPropertyDescriptor(i.prototype,a)||Object.create(null))})})}exports.BaseActions=Xt;exports.BaseDocument=oe;exports.applyMixins=se;exports.baseReducer=C;exports.createAction=b;exports.createDocument=xt;exports.createExtendedState=ut;exports.createReducer=dt;exports.createZip=Z;exports.getLocalFile=ne;exports.getRemoteFile=ae;exports.hashDocument=$;exports.hashKey=Vt;exports.isBaseAction=M;exports.isUndoRedo=F;exports.loadFromFile=R;exports.loadFromInput=Ot;exports.mapSkippedOperations=ft;exports.processUndoRedo=rt;exports.readOnly=z;exports.replayDocument=J;exports.replayOperations=E;exports.saveToFile=jt;exports.saveToFileHandle=ee;exports.sortMappedOperations=gt;exports.sortOperations=Qt;exports.zod=qt;