document-model 1.0.53 → 1.0.55

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 (93) hide show
  1. package/dist/browser/cjs/document-model.js +1 -1
  2. package/dist/browser/cjs/document.js +1 -1
  3. package/dist/browser/cjs/index.js +1 -1
  4. package/dist/browser/cjs/internal/{index-Cb6Xq42D.js → index-C_OFq7P5.js} +1 -1
  5. package/dist/browser/cjs/internal/{index-BAk-LH-1.js → index-Dwhv4k_6.js} +1 -1
  6. package/dist/browser/cjs/internal/{object-D1n8rS0m.js → object-CeLE3akL.js} +1 -1
  7. package/dist/browser/es/document-model.js +2 -2
  8. package/dist/browser/es/document.js +2 -2
  9. package/dist/browser/es/index.js +3 -3
  10. package/dist/browser/es/internal/{index-DeOZH3b_.js → index-DvHnaqeu.js} +1 -1
  11. package/dist/browser/es/internal/{index-DwxnEmzI.js → index-Xcvn-MUq.js} +1 -1
  12. package/dist/browser/es/internal/{object-DsqsdDFj.js → object-BDWVt0Zy.js} +4 -4
  13. package/dist/node/cjs/document-model.js +1 -1
  14. package/dist/node/cjs/document.js +1 -1
  15. package/dist/node/cjs/index.js +1 -1
  16. package/dist/node/cjs/internal/{index-CpjKrifV.js → index-Bi9yeV3W.js} +1 -1
  17. package/dist/node/cjs/internal/{index-DzXcygIJ.js → index-GZsLKtHl.js} +1 -1
  18. package/dist/node/cjs/internal/object-CnhDksx1.js +20 -0
  19. package/dist/node/es/document-model.js +2 -2
  20. package/dist/node/es/document.js +2 -2
  21. package/dist/node/es/index.js +3 -3
  22. package/dist/node/es/internal/{index-V-nmqbyU.js → index-B6iEYnbQ.js} +1 -1
  23. package/dist/node/es/internal/{index-CUitPgxf.js → index-Chx4C-Xl.js} +1 -1
  24. package/dist/node/es/internal/{object-C0WcyLCx.js → object-CnV5hY_A.js} +4 -4
  25. package/dist/src/document/actions/creators.d.ts +47 -0
  26. package/dist/src/document/actions/index.d.ts +14 -0
  27. package/dist/src/document/actions/types.d.ts +15 -0
  28. package/dist/src/document/index.d.ts +6 -0
  29. package/dist/src/document/object.d.ts +1175 -0
  30. package/dist/src/document/reducer.d.ts +32 -0
  31. package/dist/src/document/schema/index.d.ts +2 -0
  32. package/dist/src/document/schema/types.d.ts +176 -0
  33. package/dist/src/document/schema/zod.d.ts +113 -0
  34. package/dist/src/document/signal.d.ts +29 -0
  35. package/dist/src/document/types.d.ts +249 -0
  36. package/dist/src/document/utils/base.d.ts +85 -0
  37. package/dist/src/document/utils/file.d.ts +48 -0
  38. package/dist/src/document/utils/index.d.ts +4 -0
  39. package/dist/src/document/utils/node.d.ts +9 -0
  40. package/dist/src/document/utils/validation.d.ts +2 -0
  41. package/dist/src/document-model/custom/reducers/header.d.ts +2 -0
  42. package/dist/src/document-model/custom/reducers/module.d.ts +2 -0
  43. package/dist/src/document-model/custom/reducers/operation-error.d.ts +2 -0
  44. package/dist/src/document-model/custom/reducers/operation-example.d.ts +2 -0
  45. package/dist/src/document-model/custom/reducers/operation.d.ts +2 -0
  46. package/dist/src/document-model/custom/reducers/state.d.ts +2 -0
  47. package/dist/src/document-model/custom/reducers/versioning.d.ts +7 -0
  48. package/dist/src/document-model/custom/utils.d.ts +7 -0
  49. package/dist/src/document-model/gen/actions.d.ts +15 -0
  50. package/dist/src/document-model/gen/creators.d.ts +7 -0
  51. package/dist/src/document-model/gen/document-model.d.ts +2 -0
  52. package/dist/src/document-model/gen/header/actions.d.ts +9 -0
  53. package/dist/src/document-model/gen/header/creators.d.ts +8 -0
  54. package/dist/src/document-model/gen/header/object.d.ts +12 -0
  55. package/dist/src/document-model/gen/header/operations.d.ts +10 -0
  56. package/dist/src/document-model/gen/index.d.ts +5 -0
  57. package/dist/src/document-model/gen/module/actions.d.ts +8 -0
  58. package/dist/src/document-model/gen/module/creators.d.ts +7 -0
  59. package/dist/src/document-model/gen/module/object.d.ts +11 -0
  60. package/dist/src/document-model/gen/module/operations.d.ts +9 -0
  61. package/dist/src/document-model/gen/object.d.ts +28 -0
  62. package/dist/src/document-model/gen/operation/actions.d.ts +13 -0
  63. package/dist/src/document-model/gen/operation/creators.d.ts +12 -0
  64. package/dist/src/document-model/gen/operation/object.d.ts +16 -0
  65. package/dist/src/document-model/gen/operation/operations.d.ts +14 -0
  66. package/dist/src/document-model/gen/operation-error/actions.d.ts +10 -0
  67. package/dist/src/document-model/gen/operation-error/creators.d.ts +9 -0
  68. package/dist/src/document-model/gen/operation-error/object.d.ts +13 -0
  69. package/dist/src/document-model/gen/operation-error/operations.d.ts +11 -0
  70. package/dist/src/document-model/gen/operation-example/actions.d.ts +7 -0
  71. package/dist/src/document-model/gen/operation-example/creators.d.ts +6 -0
  72. package/dist/src/document-model/gen/operation-example/object.d.ts +10 -0
  73. package/dist/src/document-model/gen/operation-example/operations.d.ts +8 -0
  74. package/dist/src/document-model/gen/reducer.d.ts +5 -0
  75. package/dist/src/document-model/gen/schema/index.d.ts +2 -0
  76. package/dist/src/document-model/gen/schema/types.d.ts +453 -0
  77. package/dist/src/document-model/gen/schema/zod.d.ts +453 -0
  78. package/dist/src/document-model/gen/state/actions.d.ts +9 -0
  79. package/dist/src/document-model/gen/state/creators.d.ts +8 -0
  80. package/dist/src/document-model/gen/state/object.d.ts +12 -0
  81. package/dist/src/document-model/gen/state/operations.d.ts +10 -0
  82. package/dist/src/document-model/gen/types.d.ts +8 -0
  83. package/dist/src/document-model/gen/utils.d.ts +6 -0
  84. package/dist/src/document-model/gen/versioning/actions.d.ts +8 -0
  85. package/dist/src/document-model/gen/versioning/creators.d.ts +7 -0
  86. package/dist/src/document-model/gen/versioning/object.d.ts +11 -0
  87. package/dist/src/document-model/gen/versioning/operations.d.ts +9 -0
  88. package/dist/src/document-model/index.d.ts +80 -0
  89. package/dist/src/index.d.ts +25 -0
  90. package/dist/vite.config.d.ts +2 -0
  91. package/dist/vitest.config.d.ts +2 -0
  92. package/package.json +1 -1
  93. package/dist/node/cjs/internal/object-Cx_c54j_.js +0 -20
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./internal/object-D1n8rS0m.js");require("immer");require("jszip");const e=require("./internal/index-Cb6Xq42D.js");require("zod");exports.Document=e.Document;exports.DocumentModel=e.DocumentModel$1;exports.actions=e.actions;exports.documentModel=e.documentModel;exports.module=e.module;exports.reducer=e.reducer;exports.utils=e.utils;exports.validateInitialState=e.validateInitialState;exports.validateModule=e.validateModule;exports.validateModuleOperation=e.validateModuleOperation;exports.validateModules=e.validateModules;exports.validateStateSchemaName=e.validateStateSchemaName;exports.z=e.zod;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./internal/object-CeLE3akL.js");require("immer");require("jszip");const e=require("./internal/index-C_OFq7P5.js");require("zod");exports.Document=e.Document;exports.DocumentModel=e.DocumentModel$1;exports.actions=e.actions;exports.documentModel=e.documentModel;exports.module=e.module;exports.reducer=e.reducer;exports.utils=e.utils;exports.validateInitialState=e.validateInitialState;exports.validateModule=e.validateModule;exports.validateModuleOperation=e.validateModuleOperation;exports.validateModules=e.validateModules;exports.validateStateSchemaName=e.validateStateSchemaName;exports.z=e.zod;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./internal/object-D1n8rS0m.js"),o=require("./internal/index-BAk-LH-1.js");require("immer");require("zod");require("jszip");exports.BaseDocument=e.BaseDocument;exports.actions=e.BaseActions;exports.applyMixins=e.applyMixins;exports.baseReducer=e.baseReducer;exports.processUndoRedo=e.processUndoRedo;exports.z=e.zod;exports.utils=o.index;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./internal/object-CeLE3akL.js"),o=require("./internal/index-Dwhv4k_6.js");require("immer");require("zod");require("jszip");exports.BaseDocument=e.BaseDocument;exports.actions=e.BaseActions;exports.applyMixins=e.applyMixins;exports.baseReducer=e.baseReducer;exports.processUndoRedo=e.processUndoRedo;exports.z=e.zod;exports.utils=o.index;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./internal/index-BAk-LH-1.js"),o=require("./internal/index-Cb6Xq42D.js");require("./internal/object-D1n8rS0m.js");require("immer");require("zod");require("jszip");const u={"powerhouse/document":e.Document,"powerhouse/document-model":o.DocumentModel},t={Document:e.Document,DocumentModel:o.DocumentModel};exports.Document=e.Document;exports.DocumentModel=o.DocumentModel;exports.DocumentModels=u;exports.default=t;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./internal/index-Dwhv4k_6.js"),o=require("./internal/index-C_OFq7P5.js");require("./internal/object-CeLE3akL.js");require("immer");require("zod");require("jszip");const u={"powerhouse/document":e.Document,"powerhouse/document-model":o.DocumentModel},t={Document:e.Document,DocumentModel:o.DocumentModel};exports.Document=e.Document;exports.DocumentModel=o.DocumentModel;exports.DocumentModels=u;exports.default=t;
@@ -1,4 +1,4 @@
1
- "use strict";var Tt=Object.defineProperty;var Rt=(t,e,r)=>e in t?Tt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var be=(t,e,r)=>(Rt(t,typeof e!="symbol"?e+"":e,r),r);const s=require("./object-D1n8rS0m.js");require("immer");require("jszip");const o=require("zod"),xt=new RegExp("([\\p{Ll}\\d])(\\p{Lu})","gu"),Mt=new RegExp("(\\p{Lu})([\\p{Lu}][\\p{Ll}])","gu"),Dt=new RegExp("(\\d)\\p{Ll}|(\\p{L})\\d","u"),Nt=/[^\p{L}\d]+/giu,_e="$1\0$2",Ae="";function ze(t){let e=t.trim();e=e.replace(xt,_e).replace(Mt,_e),e=e.replace(Nt,"\0");let r=0,n=e.length;for(;e.charAt(r)==="\0";)r++;if(r===n)return[];for(;e.charAt(n-1)==="\0";)n--;return e.slice(r,n).split(/\0/g)}function Lt(t){const e=ze(t);for(let r=0;r<e.length;r++){const n=e[r],i=Dt.exec(n);if(i){const a=i.index+(i[1]??i[2]).length;e.splice(r,1,n.slice(0,a),n.slice(a))}}return e}function Ie(t,e){const[r,n,i]=wt(t,e),a=Pt(e==null?void 0:e.locale),l=jt(e==null?void 0:e.locale),d=e!=null&&e.mergeAmbiguousCharacters?Ct(a,l):yt(a,l);return r+n.map(d).join((e==null?void 0:e.delimiter)??"")+i}function Pt(t){return t===!1?e=>e.toLowerCase():e=>e.toLocaleLowerCase(t)}function jt(t){return t===!1?e=>e.toUpperCase():e=>e.toLocaleUpperCase(t)}function Ct(t,e){return r=>`${e(r[0])}${t(r.slice(1))}`}function yt(t,e){return(r,n)=>{const i=r[0];return(n>0&&i>="0"&&i<="9"?"_"+i:e(i))+t(r.slice(1))}}function wt(t,e={}){const r=e.split??(e.separateNumbers?Lt:ze),n=e.prefixCharacters??Ae,i=e.suffixCharacters??Ae;let a=0,l=t.length;for(;a<t.length;){const d=t.charAt(a);if(!n.includes(d))break;a++}for(;l>a;){const d=l-1,zt=t.charAt(d);if(!i.includes(zt))break;l=d}return[t.slice(0,a),r(t.slice(a,l)),t.slice(l)]}function T(t,e=!1){const r=[];if(e&&t==="")return r;try{const n=JSON.parse(t);!e&&!Object.keys(n).length&&r.push({message:"Initial state cannot be empty",details:{initialState:t}})}catch{r.push({message:"Invalid initial state",details:{initialState:t}})}return r}function R(t,e,r="",n=!0){const i=[];if(!n&&!t)return i.push({message:"State schema is required",details:{schema:t}}),i;if(n&&!t)return i;const a=`type ${Ie(e)}${Ie(r)}State`;return t.includes(a)||i.push({message:`Invalid state schema name. Expected ${a}`,details:{schema:t}}),i}function x(t){const e=[];t.length||e.push({message:"Modules are required",details:{modules:t}});const r=t.reduce((n,i)=>[...n,...b(i)],[]);return[...e,...r]}function b(t){const e=[];t.name||e.push({message:"Module name is required",details:{module:t}}),t.operations.length||e.push({message:"Module operations are required",details:{module:t}});const r=t.operations.reduce((n,i)=>[...n,..._(i)],[]);return[...e,...r]}function _(t){const e=[];return t.name||e.push({message:"Operation name is required",details:{operation:t}}),t.schema||e.push({message:"Operation schema is required",details:{operation:t}}),e}const kt=Object.freeze(Object.defineProperty({__proto__:null,validateInitialState:T,validateModule:b,validateModuleOperation:_,validateModules:x,validateStateSchemaName:R},Symbol.toStringTag,{value:"Module"})),M={id:"powerhouse/document-model",name:"DocumentModel",extension:"phdm",description:"The Powerhouse Document Model describes the state and operations of a document type.",author:{name:"Powerhouse",website:"https://www.powerhouse.inc/"},specifications:[{version:1,changeLog:[],modules:[{name:"header",operations:[{name:"SetModelName",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetModelId",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetModelExtension",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetModelDescription",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetAuthorName",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetAuthorWebsite",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"versioning",operations:[{name:"AddChangeLogItem",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"UpdateChangeLogItem",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteChangeLogItem",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderChangeLogItems",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReleaseNewVersion",schema:null,id:"",description:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"module",operations:[{name:"AddModule",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetModuleName",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetModuleDescription",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteModule",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderModules",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"operation-error",operations:[{name:"AddOperationError",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationErrorCode",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationErrorName",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationErrorDescription",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationErrorTemplate",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteOperationError",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderOperationErrors",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"operation-example",operations:[{name:"AddOperationExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"UpdateOperationExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteOperationExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderOperationExamples",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"operation",operations:[{name:"AddOperation",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationName",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationSchema",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationDescription",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationTemplate",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationReducer",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"MoveOperation",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteOperation",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderModuleOperations",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"state",operations:[{name:"SetStateSchema",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetInitialState",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"AddStateExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"UpdateStateExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteStateExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderStateExamples",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""}],state:{global:{schema:"",initialValue:`{
1
+ "use strict";var Tt=Object.defineProperty;var Rt=(t,e,r)=>e in t?Tt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var be=(t,e,r)=>(Rt(t,typeof e!="symbol"?e+"":e,r),r);const s=require("./object-CeLE3akL.js");require("immer");require("jszip");const o=require("zod"),xt=new RegExp("([\\p{Ll}\\d])(\\p{Lu})","gu"),Mt=new RegExp("(\\p{Lu})([\\p{Lu}][\\p{Ll}])","gu"),Dt=new RegExp("(\\d)\\p{Ll}|(\\p{L})\\d","u"),Nt=/[^\p{L}\d]+/giu,_e="$1\0$2",Ae="";function ze(t){let e=t.trim();e=e.replace(xt,_e).replace(Mt,_e),e=e.replace(Nt,"\0");let r=0,n=e.length;for(;e.charAt(r)==="\0";)r++;if(r===n)return[];for(;e.charAt(n-1)==="\0";)n--;return e.slice(r,n).split(/\0/g)}function Lt(t){const e=ze(t);for(let r=0;r<e.length;r++){const n=e[r],i=Dt.exec(n);if(i){const a=i.index+(i[1]??i[2]).length;e.splice(r,1,n.slice(0,a),n.slice(a))}}return e}function Ie(t,e){const[r,n,i]=wt(t,e),a=Pt(e==null?void 0:e.locale),l=jt(e==null?void 0:e.locale),d=e!=null&&e.mergeAmbiguousCharacters?Ct(a,l):yt(a,l);return r+n.map(d).join((e==null?void 0:e.delimiter)??"")+i}function Pt(t){return t===!1?e=>e.toLowerCase():e=>e.toLocaleLowerCase(t)}function jt(t){return t===!1?e=>e.toUpperCase():e=>e.toLocaleUpperCase(t)}function Ct(t,e){return r=>`${e(r[0])}${t(r.slice(1))}`}function yt(t,e){return(r,n)=>{const i=r[0];return(n>0&&i>="0"&&i<="9"?"_"+i:e(i))+t(r.slice(1))}}function wt(t,e={}){const r=e.split??(e.separateNumbers?Lt:ze),n=e.prefixCharacters??Ae,i=e.suffixCharacters??Ae;let a=0,l=t.length;for(;a<t.length;){const d=t.charAt(a);if(!n.includes(d))break;a++}for(;l>a;){const d=l-1,zt=t.charAt(d);if(!i.includes(zt))break;l=d}return[t.slice(0,a),r(t.slice(a,l)),t.slice(l)]}function T(t,e=!1){const r=[];if(e&&t==="")return r;try{const n=JSON.parse(t);!e&&!Object.keys(n).length&&r.push({message:"Initial state cannot be empty",details:{initialState:t}})}catch{r.push({message:"Invalid initial state",details:{initialState:t}})}return r}function R(t,e,r="",n=!0){const i=[];if(!n&&!t)return i.push({message:"State schema is required",details:{schema:t}}),i;if(n&&!t)return i;const a=`type ${Ie(e)}${Ie(r)}State`;return t.includes(a)||i.push({message:`Invalid state schema name. Expected ${a}`,details:{schema:t}}),i}function x(t){const e=[];t.length||e.push({message:"Modules are required",details:{modules:t}});const r=t.reduce((n,i)=>[...n,...b(i)],[]);return[...e,...r]}function b(t){const e=[];t.name||e.push({message:"Module name is required",details:{module:t}}),t.operations.length||e.push({message:"Module operations are required",details:{module:t}});const r=t.operations.reduce((n,i)=>[...n,..._(i)],[]);return[...e,...r]}function _(t){const e=[];return t.name||e.push({message:"Operation name is required",details:{operation:t}}),t.schema||e.push({message:"Operation schema is required",details:{operation:t}}),e}const kt=Object.freeze(Object.defineProperty({__proto__:null,validateInitialState:T,validateModule:b,validateModuleOperation:_,validateModules:x,validateStateSchemaName:R},Symbol.toStringTag,{value:"Module"})),M={id:"powerhouse/document-model",name:"DocumentModel",extension:"phdm",description:"The Powerhouse Document Model describes the state and operations of a document type.",author:{name:"Powerhouse",website:"https://www.powerhouse.inc/"},specifications:[{version:1,changeLog:[],modules:[{name:"header",operations:[{name:"SetModelName",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetModelId",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetModelExtension",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetModelDescription",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetAuthorName",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetAuthorWebsite",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"versioning",operations:[{name:"AddChangeLogItem",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"UpdateChangeLogItem",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteChangeLogItem",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderChangeLogItems",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReleaseNewVersion",schema:null,id:"",description:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"module",operations:[{name:"AddModule",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetModuleName",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetModuleDescription",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteModule",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderModules",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"operation-error",operations:[{name:"AddOperationError",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationErrorCode",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationErrorName",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationErrorDescription",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationErrorTemplate",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteOperationError",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderOperationErrors",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"operation-example",operations:[{name:"AddOperationExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"UpdateOperationExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteOperationExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderOperationExamples",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"operation",operations:[{name:"AddOperation",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationName",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationSchema",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationDescription",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationTemplate",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationReducer",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"MoveOperation",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteOperation",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderModuleOperations",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"state",operations:[{name:"SetStateSchema",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetInitialState",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"AddStateExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"UpdateStateExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteStateExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderStateExamples",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""}],state:{global:{schema:"",initialValue:`{
2
2
  "id": "",
3
3
  "name": "",
4
4
  "extension": "",
@@ -1 +1 @@
1
- "use strict";const e=require("./object-D1n8rS0m.js"),t=Object.freeze(Object.defineProperty({__proto__:null,calculateSkipsLeft:e.calculateSkipsLeft,createAction:e.createAction,createDocument:e.createDocument,createExtendedState:e.createExtendedState,createReducer:e.createReducer,createZip:e.createZip,getLocalFile:e.getLocalFile,getRemoteFile:e.getRemoteFile,hashDocument:e.hashDocument,hashKey:e.hashKey,isBaseAction:e.isBaseAction,isNoopOperation:e.isNoopOperation,isSameDocument:e.isSameDocument,isUndoRedo:e.isUndoRedo,loadFromFile:e.loadFromFile,loadFromInput:e.loadFromInput,mapSkippedOperations:e.mapSkippedOperations,readOnly:e.readOnly,replayDocument:e.replayDocument,replayOperations:e.replayOperations,saveToFile:e.saveToFile,saveToFileHandle:e.saveToFileHandle,sortMappedOperations:e.sortMappedOperations,sortOperations:e.sortOperations,validateOperations:e.validateOperations},Symbol.toStringTag,{value:"Module"})),o=Object.freeze(Object.defineProperty({__proto__:null,BaseDocument:e.BaseDocument,actions:e.BaseActions,applyMixins:e.applyMixins,baseReducer:e.baseReducer,processUndoRedo:e.processUndoRedo,utils:t,z:e.zod},Symbol.toStringTag,{value:"Module"}));exports.Document=o;exports.index=t;
1
+ "use strict";const e=require("./object-CeLE3akL.js"),t=Object.freeze(Object.defineProperty({__proto__:null,calculateSkipsLeft:e.calculateSkipsLeft,createAction:e.createAction,createDocument:e.createDocument,createExtendedState:e.createExtendedState,createReducer:e.createReducer,createZip:e.createZip,getLocalFile:e.getLocalFile,getRemoteFile:e.getRemoteFile,hashDocument:e.hashDocument,hashKey:e.hashKey,isBaseAction:e.isBaseAction,isNoopOperation:e.isNoopOperation,isSameDocument:e.isSameDocument,isUndoRedo:e.isUndoRedo,loadFromFile:e.loadFromFile,loadFromInput:e.loadFromInput,mapSkippedOperations:e.mapSkippedOperations,readOnly:e.readOnly,replayDocument:e.replayDocument,replayOperations:e.replayOperations,saveToFile:e.saveToFile,saveToFileHandle:e.saveToFileHandle,sortMappedOperations:e.sortMappedOperations,sortOperations:e.sortOperations,validateOperations:e.validateOperations},Symbol.toStringTag,{value:"Module"})),o=Object.freeze(Object.defineProperty({__proto__:null,BaseDocument:e.BaseDocument,actions:e.BaseActions,applyMixins:e.applyMixins,baseReducer:e.baseReducer,processUndoRedo:e.processUndoRedo,utils:t,z:e.zod},Symbol.toStringTag,{value:"Module"}));exports.Document=o;exports.index=t;
@@ -16,7 +16,7 @@ ${O}`,X=Math.min(m.length,N);let V=0;for(;V<X-1;V++){const tt=at(String(V),m[V],
16
16
  ${$}`,E.pop(),`[${z}]`}let _=Object.keys(m);const k=_.length;if(k===0)return"{}";if(G<E.length+1)return'"[Object]"';O+=T;const B=`,
17
17
  ${O}`;let j="",L="",J=Math.min(k,N);h(m)&&(j+=w(m,B,N),_=_.slice(m.length),J-=m.length,L=B),Y&&(_=l(_)),E.push(m);for(let z=0;z<J;z++){const K=_[z],X=at(K,m[K],E,T,O);X!==void 0&&(j+=`${L}${u(K)}: ${X}`,L=B)}if(k>N){const z=k-N;j+=`${L}"...": "${F(z)} not stringified"`,L=B}return L!==""&&(j=`
18
18
  ${O}${j}
19
- ${$}`),E.pop(),`{${j}}`}case"number":return isFinite(m)?String(m):b?b(m):"null";case"boolean":return m===!0?"true":"false";case"undefined":return;case"bigint":if(W)return String(m);default:return b?b(m):void 0}}function st(H,m,E){switch(typeof m){case"string":return u(m);case"object":{if(m===null)return"null";if(typeof m.toJSON=="function"){if(m=m.toJSON(H),typeof m!="object")return st(H,m,E);if(m===null)return"null"}if(E.indexOf(m)!==-1)return I;let T="";if(Array.isArray(m)){if(m.length===0)return"[]";if(G<E.length+1)return'"[Array]"';E.push(m);const B=Math.min(m.length,N);let j=0;for(;j<B-1;j++){const J=st(String(j),m[j],E);T+=J!==void 0?J:"null",T+=","}const L=st(String(j),m[j],E);if(T+=L!==void 0?L:"null",m.length-1>N){const J=m.length-N-1;T+=`,"... ${F(J)} not stringified"`}return E.pop(),`[${T}]`}let O=Object.keys(m);const $=O.length;if($===0)return"{}";if(G<E.length+1)return'"[Object]"';let _="",k=Math.min($,N);h(m)&&(T+=w(m,",",N),O=O.slice(m.length),k-=m.length,_=","),Y&&(O=l(O)),E.push(m);for(let B=0;B<k;B++){const j=O[B],L=st(j,m[j],E);L!==void 0&&(T+=`${_}${u(j)}:${L}`,_=",")}if($>N){const B=$-N;T+=`${_}"...":"${F(B)} not stringified"`}return E.pop(),`{${T}}`}case"number":return isFinite(m)?String(m):b?b(m):"null";case"boolean":return m===!0?"true":"false";case"undefined":return;case"bigint":if(W)return String(m);default:return b?b(m):void 0}}function kt(H,m,E){if(arguments.length>1){let T="";if(typeof E=="number"?T=" ".repeat(Math.min(E,10)):typeof E=="string"&&(T=E.slice(0,10)),m!=null){if(typeof m=="function")return ut("",{"":H},[],m,T,"");if(Array.isArray(m))return ft("",H,[],D(m),T,"")}if(T.length!==0)return at("",H,[],T,"")}return st("",H,[])}return kt}})($t,$t.exports);var Qe=$t.exports;const _t=Ht(Qe);_t.configure;function tr(r,i){return{...r,name:i}}function er(r,i,s){const p={skip:s,document:r},{scope:f}=i;return!f||i.skip===void 0?p:ot.produce(p,u=>{const[l]=u.document.operations[f].slice(-1);i.skip&&i.skip>0&&(u.skip=i.skip),l.type==="NOOP"&&i.index===l.index&&u.skip>l.skip&&u.document.operations[f].pop()})}function rr(r,i,s){const{scope:p,input:f}=i,u={document:r,action:i,skip:s};return ot.produce(u,l=>{if(l.document.operations[p].length<1)throw new Error(`Cannot undo: no operations in history for scope "${p}"`);if(f<1)throw new Error("Invalid UNDO action: input value must be greater than 0");if(l.skip>0)throw new Error("Cannot undo: skip value from reducer cannot be used with UNDO action");const[a]=l.document.operations[p].slice(-1),h=a.type==="NOOP"&&a.skip>0;if(l.skip+=f,h){l.skip+=a.skip;const S=l.document.operations[p][l.document.operations[p].length-2];S&&a.index-S.index===1&&l.document.operations[p].pop()}if(l.document.operations[p].length<l.skip)throw new Error("Cannot undo: you can't undo more operations than the ones in the scope history");const w=l.document.operations[p].length-1;let g=f,A=h?w-a.skip:w;for(;g>0&&A>=0;){const S=l.document.operations[p][A];if(!S){g--,A--;continue}S.type==="NOOP"&&S.skip>0?(A=A-(S.skip+1),l.skip+=S.skip+1):(l.document.clipboard.push({...S}),g--,A--)}l.action=Qt(p)})}function ir(r,i,s){const{scope:p,input:f}=i,u={document:r,action:i,skip:s};return ot.produce(u,l=>{if(l.skip>0)throw new Error("Cannot redo: skip value from reducer cannot be used with REDO action");if(f>1)throw new Error("Cannot redo: you can only redo one operation at a time");if(f<1)throw new Error("Invalid REDO action: invalid redo input value");if(l.document.clipboard.length<1)throw new Error("Cannot redo: no operations in the clipboard");const a=l.document.clipboard.findLastIndex(w=>w.scope===p);if(a<0)throw new Error(`Cannot redo: no operations in clipboard for scope "${p}"`);const h=l.document.clipboard.splice(a,1)[0];l.action=ot.castDraft({type:h.type,scope:h.scope,input:h.input})})}function nr(r,i,s){const{scope:p}=i,f=r.operations[p];let{input:{start:u,end:l}}=i;u=u||0,l=l||f.length;const a=f.slice(u,l),h=f.slice(0,u),w=f.slice(l),g=Ft(r.initialState,{...r.operations,[p]:h.concat(a)},s),{name:A,state:S}=g,F=h.length,D=h.length?h[h.length-1].timestamp:w.length?w[0].timestamp:new Date().toISOString();return Ft(r.initialState,{...r.operations,[p]:[...h,{...Xt({name:A,state:S},a.length),timestamp:D,index:F,hash:Tt({state:S},"global")},...w.map((R,C)=>({...R,index:F+C+1}))]},s)}function or(r,i){return{...r,name:i.name,state:i.state??{global:{},local:{}}}}const ge="SET_NAME",yt="UNDO",wt="REDO",Bt="PRUNE",ye="LOAD_STATE",ar="NOOP";function sr(r,i){let s;return"index"in i?s={...i}:s=r.operations[i.scope].slice(-1)[0],((s==null?void 0:s.index)??-1)+1}function pr(r,i){return{...r,revision:{...r.revision,[i.scope]:sr(r,i)},lastModified:new Date().toISOString()}}function cr(r,i,s=0){if([yt,wt,Bt].includes(i.type))return r;const{scope:p}=i,f=r.operations[p].slice(0,r.revision[p]),u=[...f].pop();let l=((u==null?void 0:u.index)??-1)+1;if("index"in i){if(i.index>l+s)throw new Error(`Missing operations: expected ${l} with skip 0 or equivalent, got index ${i.index} with skip ${s}`);l=i.index}return f.push({...i,index:l,timestamp:new Date().toISOString(),hash:"",scope:p,skip:s,error:void 0}),{...r,operations:{...r.operations,[p]:f}}}function lr(r,i,s=0){let p=cr(r,i,s);return p=pr(p,i),p}function ur(r,i,s){switch(le().parse(i),i.type){case ge:return tr(r,i.input);case Bt:return nr(r,i,s);case ye:return or(r,i.input.state);default:return r}}function we(r,i,s){switch(i.type){case yt:return rr(r,i,s);case wt:return ir(r,i,s);default:return{document:r,action:i,skip:s}}}function Vt(r,i,s,p,f={}){const{skip:u,ignoreSkipOperations:l=!1,reuseHash:a=!1}=f;let h={...i},w=u||0,g=r,A=[...r.clipboard];if(Oe(h)){const{document:S,skip:F}=er(g,h,w);w=F,g=S}if(Mt(h)){const{skip:S,action:F,document:D}=we(r,h,w);h=F,w=S,g=D,A=[...g.clipboard]}if(Nt(h)&&(g=ur(g,h,s)),w>0&&!l){let S=w;"index"in h&&(S=De(g.operations[h.scope],h.index,w)),g=Ft(g.initialState,g.operations,s,void 0,void 0,void 0,{[h.scope]:S})}return g=lr(g,h,w),g=ot.produce(g,S=>{try{const F=s(S.state,h,p),D=Mt(i)?[...A]:[];if(F)return ot.castDraft({...g,clipboard:[...D],state:F});S.clipboard=ot.castDraft([...D])}catch(F){const D=g.operations[h.scope].length-1;S.operations[h.scope][D].error=F.message}}),ot.produce(g,S=>{if([yt,wt,Bt].includes(h.type))return S;const F=h.scope||"global",D=a&&Object.prototype.hasOwnProperty.call(h,"hash")?h.hash:Tt(S,F);S.operations[F][S.operations[F].length-1].hash=D,!Nt(h)&&h.attachments&&h.attachments.forEach(R=>{const{hash:C,...y}=R;S.attachments[C]={...y}})})}var Ct={exports:{}};typeof Object.create=="function"?Ct.exports=function(i,s){s&&(i.super_=s,i.prototype=Object.create(s.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}))}:Ct.exports=function(i,s){if(s){i.super_=s;var p=function(){};p.prototype=s.prototype,i.prototype=new p,i.prototype.constructor=i}};var be=Ct.exports,zt={exports:{}},Ee={},Ot={};Ot.byteLength=mr;Ot.toByteArray=dr;Ot.fromByteArray=wr;var nt=[],rt=[],fr=typeof Uint8Array<"u"?Uint8Array:Array,Ut="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var ht=0,hr=Ut.length;ht<hr;++ht)nt[ht]=Ut[ht],rt[Ut.charCodeAt(ht)]=ht;rt[45]=62;rt[95]=63;function ve(r){var i=r.length;if(i%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var s=r.indexOf("=");s===-1&&(s=i);var p=s===i?0:4-s%4;return[s,p]}function mr(r){var i=ve(r),s=i[0],p=i[1];return(s+p)*3/4-p}function xr(r,i,s){return(i+s)*3/4-s}function dr(r){var i,s=ve(r),p=s[0],f=s[1],u=new fr(xr(r,p,f)),l=0,a=f>0?p-4:p,h;for(h=0;h<a;h+=4)i=rt[r.charCodeAt(h)]<<18|rt[r.charCodeAt(h+1)]<<12|rt[r.charCodeAt(h+2)]<<6|rt[r.charCodeAt(h+3)],u[l++]=i>>16&255,u[l++]=i>>8&255,u[l++]=i&255;return f===2&&(i=rt[r.charCodeAt(h)]<<2|rt[r.charCodeAt(h+1)]>>4,u[l++]=i&255),f===1&&(i=rt[r.charCodeAt(h)]<<10|rt[r.charCodeAt(h+1)]<<4|rt[r.charCodeAt(h+2)]>>2,u[l++]=i>>8&255,u[l++]=i&255),u}function gr(r){return nt[r>>18&63]+nt[r>>12&63]+nt[r>>6&63]+nt[r&63]}function yr(r,i,s){for(var p,f=[],u=i;u<s;u+=3)p=(r[u]<<16&16711680)+(r[u+1]<<8&65280)+(r[u+2]&255),f.push(gr(p));return f.join("")}function wr(r){for(var i,s=r.length,p=s%3,f=[],u=16383,l=0,a=s-p;l<a;l+=u)f.push(yr(r,l,l+u>a?a:l+u));return p===1?(i=r[s-1],f.push(nt[i>>2]+nt[i<<4&63]+"==")):p===2&&(i=(r[s-2]<<8)+r[s-1],f.push(nt[i>>10]+nt[i>>4&63]+nt[i<<2&63]+"=")),f.join("")}var Kt={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */Kt.read=function(r,i,s,p,f){var u,l,a=f*8-p-1,h=(1<<a)-1,w=h>>1,g=-7,A=s?f-1:0,S=s?-1:1,F=r[i+A];for(A+=S,u=F&(1<<-g)-1,F>>=-g,g+=a;g>0;u=u*256+r[i+A],A+=S,g-=8);for(l=u&(1<<-g)-1,u>>=-g,g+=p;g>0;l=l*256+r[i+A],A+=S,g-=8);if(u===0)u=1-w;else{if(u===h)return l?NaN:(F?-1:1)*(1/0);l=l+Math.pow(2,p),u=u-w}return(F?-1:1)*l*Math.pow(2,u-p)};Kt.write=function(r,i,s,p,f,u){var l,a,h,w=u*8-f-1,g=(1<<w)-1,A=g>>1,S=f===23?Math.pow(2,-24)-Math.pow(2,-77):0,F=p?0:u-1,D=p?1:-1,R=i<0||i===0&&1/i<0?1:0;for(i=Math.abs(i),isNaN(i)||i===1/0?(a=isNaN(i)?1:0,l=g):(l=Math.floor(Math.log(i)/Math.LN2),i*(h=Math.pow(2,-l))<1&&(l--,h*=2),l+A>=1?i+=S/h:i+=S*Math.pow(2,1-A),i*h>=2&&(l++,h/=2),l+A>=g?(a=0,l=g):l+A>=1?(a=(i*h-1)*Math.pow(2,f),l=l+A):(a=i*Math.pow(2,A-1)*Math.pow(2,f),l=0));f>=8;r[s+F]=a&255,F+=D,a/=256,f-=8);for(l=l<<f|a,w+=f;w>0;r[s+F]=l&255,F+=D,l/=256,w-=8);r[s+F-D]|=R*128};/*!
19
+ ${$}`),E.pop(),`{${j}}`}case"number":return isFinite(m)?String(m):b?b(m):"null";case"boolean":return m===!0?"true":"false";case"undefined":return;case"bigint":if(W)return String(m);default:return b?b(m):void 0}}function st(H,m,E){switch(typeof m){case"string":return u(m);case"object":{if(m===null)return"null";if(typeof m.toJSON=="function"){if(m=m.toJSON(H),typeof m!="object")return st(H,m,E);if(m===null)return"null"}if(E.indexOf(m)!==-1)return I;let T="";if(Array.isArray(m)){if(m.length===0)return"[]";if(G<E.length+1)return'"[Array]"';E.push(m);const B=Math.min(m.length,N);let j=0;for(;j<B-1;j++){const J=st(String(j),m[j],E);T+=J!==void 0?J:"null",T+=","}const L=st(String(j),m[j],E);if(T+=L!==void 0?L:"null",m.length-1>N){const J=m.length-N-1;T+=`,"... ${F(J)} not stringified"`}return E.pop(),`[${T}]`}let O=Object.keys(m);const $=O.length;if($===0)return"{}";if(G<E.length+1)return'"[Object]"';let _="",k=Math.min($,N);h(m)&&(T+=w(m,",",N),O=O.slice(m.length),k-=m.length,_=","),Y&&(O=l(O)),E.push(m);for(let B=0;B<k;B++){const j=O[B],L=st(j,m[j],E);L!==void 0&&(T+=`${_}${u(j)}:${L}`,_=",")}if($>N){const B=$-N;T+=`${_}"...":"${F(B)} not stringified"`}return E.pop(),`{${T}}`}case"number":return isFinite(m)?String(m):b?b(m):"null";case"boolean":return m===!0?"true":"false";case"undefined":return;case"bigint":if(W)return String(m);default:return b?b(m):void 0}}function kt(H,m,E){if(arguments.length>1){let T="";if(typeof E=="number"?T=" ".repeat(Math.min(E,10)):typeof E=="string"&&(T=E.slice(0,10)),m!=null){if(typeof m=="function")return ut("",{"":H},[],m,T,"");if(Array.isArray(m))return ft("",H,[],D(m),T,"")}if(T.length!==0)return at("",H,[],T,"")}return st("",H,[])}return kt}})($t,$t.exports);var Qe=$t.exports;const _t=Ht(Qe);_t.configure;function tr(r,i){return{...r,name:i}}function er(r,i,s){const p={skip:s,document:r},{scope:f}=i;return!f||i.skip===void 0?p:ot.produce(p,u=>{const l=u.document.operations[f].at(-1);i.skip&&i.skip>0&&(u.skip=i.skip),l&&l.type==="NOOP"&&i.index===l.index&&u.skip>l.skip&&u.document.operations[f].pop()})}function rr(r,i,s){const{scope:p,input:f}=i,u={document:r,action:i,skip:s};return ot.produce(u,l=>{if(l.document.operations[p].length<1)throw new Error(`Cannot undo: no operations in history for scope "${p}"`);if(f<1)throw new Error("Invalid UNDO action: input value must be greater than 0");if(l.skip>0)throw new Error("Cannot undo: skip value from reducer cannot be used with UNDO action");const a=l.document.operations[p].at(-1),h=a&&a.type==="NOOP"&&a.skip>0;if(l.skip+=f,h){l.skip+=a.skip;const S=l.document.operations[p][l.document.operations[p].length-2];S&&a.index-S.index===1&&l.document.operations[p].pop()}if(l.document.operations[p].length<l.skip)throw new Error("Cannot undo: you can't undo more operations than the ones in the scope history");const w=l.document.operations[p].length-1;let g=f,A=h?w-a.skip:w;for(;g>0&&A>=0;){const S=l.document.operations[p][A];if(!S){g--,A--;continue}S.type==="NOOP"&&S.skip>0?(A=A-(S.skip+1),l.skip+=S.skip+1):(l.document.clipboard.push({...S}),g--,A--)}l.action=Qt(p)})}function ir(r,i,s){const{scope:p,input:f}=i,u={document:r,action:i,skip:s};return ot.produce(u,l=>{if(l.skip>0)throw new Error("Cannot redo: skip value from reducer cannot be used with REDO action");if(f>1)throw new Error("Cannot redo: you can only redo one operation at a time");if(f<1)throw new Error("Invalid REDO action: invalid redo input value");if(l.document.clipboard.length<1)throw new Error("Cannot redo: no operations in the clipboard");const a=l.document.clipboard.findLastIndex(w=>w.scope===p);if(a<0)throw new Error(`Cannot redo: no operations in clipboard for scope "${p}"`);const h=l.document.clipboard.splice(a,1)[0];l.action=ot.castDraft({type:h.type,scope:h.scope,input:h.input})})}function nr(r,i,s){const{scope:p}=i,f=r.operations[p];let{input:{start:u,end:l}}=i;u=u||0,l=l||f.length;const a=f.slice(u,l),h=f.slice(0,u),w=f.slice(l),g=Ft(r.initialState,{...r.operations,[p]:h.concat(a)},s),{name:A,state:S}=g,F=h.length,D=h.length?h[h.length-1].timestamp:w.length?w[0].timestamp:new Date().toISOString();return Ft(r.initialState,{...r.operations,[p]:[...h,{...Xt({name:A,state:S},a.length),timestamp:D,index:F,hash:Tt({state:S},"global")},...w.map((R,C)=>({...R,index:F+C+1}))]},s)}function or(r,i){return{...r,name:i.name,state:i.state??{global:{},local:{}}}}const ge="SET_NAME",yt="UNDO",wt="REDO",Bt="PRUNE",ye="LOAD_STATE",ar="NOOP";function sr(r,i){let s;return"index"in i?s={...i}:s=r.operations[i.scope].at(-1),((s==null?void 0:s.index)??-1)+1}function pr(r,i){return{...r,revision:{...r.revision,[i.scope]:sr(r,i)},lastModified:new Date().toISOString()}}function cr(r,i,s=0){if([yt,wt,Bt].includes(i.type))return r;const{scope:p}=i,f=r.operations[p].slice(0,r.revision[p]),u=[...f].pop();let l=((u==null?void 0:u.index)??-1)+1;if("index"in i){if(i.index>l+s)throw new Error(`Missing operations: expected ${l} with skip 0 or equivalent, got index ${i.index} with skip ${s}`);l=i.index}return f.push({...i,index:l,timestamp:new Date().toISOString(),hash:"",scope:p,skip:s,error:void 0}),{...r,operations:{...r.operations,[p]:f}}}function lr(r,i,s=0){let p=cr(r,i,s);return p=pr(p,i),p}function ur(r,i,s){switch(le().parse(i),i.type){case ge:return tr(r,i.input);case Bt:return nr(r,i,s);case ye:return or(r,i.input.state);default:return r}}function we(r,i,s){switch(i.type){case yt:return rr(r,i,s);case wt:return ir(r,i,s);default:return{document:r,action:i,skip:s}}}function Vt(r,i,s,p,f={}){const{skip:u,ignoreSkipOperations:l=!1,reuseHash:a=!1}=f;let h={...i},w=u||0,g=r,A=[...r.clipboard];if(Oe(h)){const{document:S,skip:F}=er(g,h,w);w=F,g=S}if(Mt(h)){const{skip:S,action:F,document:D}=we(r,h,w);h=F,w=S,g=D,A=[...g.clipboard]}if(Nt(h)&&(g=ur(g,h,s)),w>0&&!l){let S=w;"index"in h&&(S=De(g.operations[h.scope],h.index,w)),g=Ft(g.initialState,g.operations,s,void 0,void 0,void 0,{[h.scope]:S})}return g=lr(g,h,w),g=ot.produce(g,S=>{try{const F=s(S.state,h,p),D=Mt(i)?[...A]:[];if(F)return ot.castDraft({...g,clipboard:[...D],state:F});S.clipboard=ot.castDraft([...D])}catch(F){const D=g.operations[h.scope].length-1;S.operations[h.scope][D].error=F.message}}),ot.produce(g,S=>{if([yt,wt,Bt].includes(h.type))return S;const F=h.scope||"global",D=a&&Object.prototype.hasOwnProperty.call(h,"hash")?h.hash:Tt(S,F);S.operations[F][S.operations[F].length-1].hash=D,!Nt(h)&&h.attachments&&h.attachments.forEach(R=>{const{hash:C,...y}=R;S.attachments[C]={...y}})})}var Ct={exports:{}};typeof Object.create=="function"?Ct.exports=function(i,s){s&&(i.super_=s,i.prototype=Object.create(s.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}))}:Ct.exports=function(i,s){if(s){i.super_=s;var p=function(){};p.prototype=s.prototype,i.prototype=new p,i.prototype.constructor=i}};var be=Ct.exports,zt={exports:{}},Ee={},Ot={};Ot.byteLength=mr;Ot.toByteArray=dr;Ot.fromByteArray=wr;var nt=[],rt=[],fr=typeof Uint8Array<"u"?Uint8Array:Array,Ut="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var ht=0,hr=Ut.length;ht<hr;++ht)nt[ht]=Ut[ht],rt[Ut.charCodeAt(ht)]=ht;rt[45]=62;rt[95]=63;function ve(r){var i=r.length;if(i%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var s=r.indexOf("=");s===-1&&(s=i);var p=s===i?0:4-s%4;return[s,p]}function mr(r){var i=ve(r),s=i[0],p=i[1];return(s+p)*3/4-p}function xr(r,i,s){return(i+s)*3/4-s}function dr(r){var i,s=ve(r),p=s[0],f=s[1],u=new fr(xr(r,p,f)),l=0,a=f>0?p-4:p,h;for(h=0;h<a;h+=4)i=rt[r.charCodeAt(h)]<<18|rt[r.charCodeAt(h+1)]<<12|rt[r.charCodeAt(h+2)]<<6|rt[r.charCodeAt(h+3)],u[l++]=i>>16&255,u[l++]=i>>8&255,u[l++]=i&255;return f===2&&(i=rt[r.charCodeAt(h)]<<2|rt[r.charCodeAt(h+1)]>>4,u[l++]=i&255),f===1&&(i=rt[r.charCodeAt(h)]<<10|rt[r.charCodeAt(h+1)]<<4|rt[r.charCodeAt(h+2)]>>2,u[l++]=i>>8&255,u[l++]=i&255),u}function gr(r){return nt[r>>18&63]+nt[r>>12&63]+nt[r>>6&63]+nt[r&63]}function yr(r,i,s){for(var p,f=[],u=i;u<s;u+=3)p=(r[u]<<16&16711680)+(r[u+1]<<8&65280)+(r[u+2]&255),f.push(gr(p));return f.join("")}function wr(r){for(var i,s=r.length,p=s%3,f=[],u=16383,l=0,a=s-p;l<a;l+=u)f.push(yr(r,l,l+u>a?a:l+u));return p===1?(i=r[s-1],f.push(nt[i>>2]+nt[i<<4&63]+"==")):p===2&&(i=(r[s-2]<<8)+r[s-1],f.push(nt[i>>10]+nt[i>>4&63]+nt[i<<2&63]+"=")),f.join("")}var Kt={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */Kt.read=function(r,i,s,p,f){var u,l,a=f*8-p-1,h=(1<<a)-1,w=h>>1,g=-7,A=s?f-1:0,S=s?-1:1,F=r[i+A];for(A+=S,u=F&(1<<-g)-1,F>>=-g,g+=a;g>0;u=u*256+r[i+A],A+=S,g-=8);for(l=u&(1<<-g)-1,u>>=-g,g+=p;g>0;l=l*256+r[i+A],A+=S,g-=8);if(u===0)u=1-w;else{if(u===h)return l?NaN:(F?-1:1)*(1/0);l=l+Math.pow(2,p),u=u-w}return(F?-1:1)*l*Math.pow(2,u-p)};Kt.write=function(r,i,s,p,f,u){var l,a,h,w=u*8-f-1,g=(1<<w)-1,A=g>>1,S=f===23?Math.pow(2,-24)-Math.pow(2,-77):0,F=p?0:u-1,D=p?1:-1,R=i<0||i===0&&1/i<0?1:0;for(i=Math.abs(i),isNaN(i)||i===1/0?(a=isNaN(i)?1:0,l=g):(l=Math.floor(Math.log(i)/Math.LN2),i*(h=Math.pow(2,-l))<1&&(l--,h*=2),l+A>=1?i+=S/h:i+=S*Math.pow(2,1-A),i*h>=2&&(l++,h/=2),l+A>=g?(a=0,l=g):l+A>=1?(a=(i*h-1)*Math.pow(2,f),l=l+A):(a=i*Math.pow(2,A-1)*Math.pow(2,f),l=0));f>=8;r[s+F]=a&255,F+=D,a/=256,f-=8);for(l=l<<f|a,w+=f;w>0;r[s+F]=l&255,F+=D,l/=256,w-=8);r[s+F-D]|=R*128};/*!
20
20
  * The buffer module from node.js, for the browser.
21
21
  *
22
22
  * @author Feross Aboukhadijeh <https://feross.org>
@@ -1,7 +1,7 @@
1
- import "./internal/object-DsqsdDFj.js";
1
+ import "./internal/object-BDWVt0Zy.js";
2
2
  import "immer";
3
3
  import "jszip";
4
- import { b as i, a as l, c as m, d as r, m as u, r as c, u as n, v as p, g as v, h as M, f as S, e as f, z as h } from "./internal/index-DeOZH3b_.js";
4
+ import { b as i, a as l, c as m, d as r, m as u, r as c, u as n, v as p, g as v, h as M, f as S, e as f, z as h } from "./internal/index-DvHnaqeu.js";
5
5
  import "zod";
6
6
  export {
7
7
  i as Document,
@@ -1,5 +1,5 @@
1
- import { B as i, h as p, g as t, C as m, D as c, E as n } from "./internal/object-DsqsdDFj.js";
2
- import { i as u } from "./internal/index-DwxnEmzI.js";
1
+ import { B as i, h as p, g as t, C as m, D as c, E as n } from "./internal/object-BDWVt0Zy.js";
2
+ import { i as u } from "./internal/index-Xcvn-MUq.js";
3
3
  import "immer";
4
4
  import "zod";
5
5
  import "jszip";
@@ -1,6 +1,6 @@
1
- import { D as o } from "./internal/index-DwxnEmzI.js";
2
- import { D as e } from "./internal/index-DeOZH3b_.js";
3
- import "./internal/object-DsqsdDFj.js";
1
+ import { D as o } from "./internal/index-Xcvn-MUq.js";
2
+ import { D as e } from "./internal/index-DvHnaqeu.js";
3
+ import "./internal/object-BDWVt0Zy.js";
4
4
  import "immer";
5
5
  import "zod";
6
6
  import "jszip";
@@ -1,7 +1,7 @@
1
1
  var Rt = Object.defineProperty;
2
2
  var xt = (t, e, r) => e in t ? Rt(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
3
3
  var Ee = (t, e, r) => (xt(t, typeof e != "symbol" ? e + "" : e, r), r);
4
- import { c as At, i as Mt, a as Dt, b as Nt, s as Lt, d as Pt, l as Ct, e as jt, f as a, B as c, g as yt, h as wt } from "./object-DsqsdDFj.js";
4
+ import { c as At, i as Mt, a as Dt, b as Nt, s as Lt, d as Pt, l as Ct, e as jt, f as a, B as c, g as yt, h as wt } from "./object-BDWVt0Zy.js";
5
5
  import "immer";
6
6
  import "jszip";
7
7
  import { z as o } from "zod";
@@ -1,4 +1,4 @@
1
- import { j as e, f as a, b as s, a as o, c as t, k as r, m as i, n, o as c, p as l, i as p, q as d, r as u, t as m, l as O, e as y, u as b, v as D, w as S, x as _, s as f, d as g, y as F, z as v, A as h, B as j, h as x, g as z, C as R, D as A, E as B } from "./object-DsqsdDFj.js";
1
+ import { j as e, f as a, b as s, a as o, c as t, k as r, m as i, n, o as c, p as l, i as p, q as d, r as u, t as m, l as O, e as y, u as b, v as D, w as S, x as _, s as f, d as g, y as F, z as v, A as h, B as j, h as x, g as z, C as R, D as A, E as B } from "./object-BDWVt0Zy.js";
2
2
  const M = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3
3
  __proto__: null,
4
4
  calculateSkipsLeft: e,
@@ -536,8 +536,8 @@ function Ve(r, i, s) {
536
536
  document: r
537
537
  }, { scope: f } = i;
538
538
  return !f || i.skip === void 0 ? p : xt(p, (u) => {
539
- const [l] = u.document.operations[f].slice(-1);
540
- i.skip && i.skip > 0 && (u.skip = i.skip), l.type === "NOOP" && i.index === l.index && u.skip > l.skip && u.document.operations[f].pop();
539
+ const l = u.document.operations[f].at(-1);
540
+ i.skip && i.skip > 0 && (u.skip = i.skip), l && l.type === "NOOP" && i.index === l.index && u.skip > l.skip && u.document.operations[f].pop();
541
541
  });
542
542
  }
543
543
  function He(r, i, s) {
@@ -559,7 +559,7 @@ function He(r, i, s) {
559
559
  throw new Error(
560
560
  "Cannot undo: skip value from reducer cannot be used with UNDO action"
561
561
  );
562
- const [a] = l.document.operations[p].slice(-1), h = a.type === "NOOP" && a.skip > 0;
562
+ const a = l.document.operations[p].at(-1), h = a && a.type === "NOOP" && a.skip > 0;
563
563
  if (l.skip += f, h) {
564
564
  l.skip += a.skip;
565
565
  const _ = l.document.operations[p][l.document.operations[p].length - 2];
@@ -664,7 +664,7 @@ function Ge(r, i) {
664
664
  const xe = "SET_NAME", gt = "UNDO", yt = "REDO", Ft = "PRUNE", de = "LOAD_STATE", Ye = "NOOP";
665
665
  function Xe(r, i) {
666
666
  let s;
667
- return "index" in i ? s = { ...i } : s = r.operations[i.scope].slice(-1)[0], ((s == null ? void 0 : s.index) ?? -1) + 1;
667
+ return "index" in i ? s = { ...i } : s = r.operations[i.scope].at(-1), ((s == null ? void 0 : s.index) ?? -1) + 1;
668
668
  }
669
669
  function Qe(r, i) {
670
670
  return {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./internal/object-Cx_c54j_.js");require("immer");require("crypto");require("fs");require("https");require("path");require("jszip");const e=require("./internal/index-DzXcygIJ.js");require("zod");exports.Document=e.Document;exports.DocumentModel=e.DocumentModel$1;exports.actions=e.actions;exports.documentModel=e.documentModel;exports.module=e.module;exports.reducer=e.reducer;exports.utils=e.utils;exports.validateInitialState=e.validateInitialState;exports.validateModule=e.validateModule;exports.validateModuleOperation=e.validateModuleOperation;exports.validateModules=e.validateModules;exports.validateStateSchemaName=e.validateStateSchemaName;exports.z=e.zod;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./internal/object-CnhDksx1.js");require("immer");require("crypto");require("fs");require("https");require("path");require("jszip");const e=require("./internal/index-GZsLKtHl.js");require("zod");exports.Document=e.Document;exports.DocumentModel=e.DocumentModel$1;exports.actions=e.actions;exports.documentModel=e.documentModel;exports.module=e.module;exports.reducer=e.reducer;exports.utils=e.utils;exports.validateInitialState=e.validateInitialState;exports.validateModule=e.validateModule;exports.validateModuleOperation=e.validateModuleOperation;exports.validateModules=e.validateModules;exports.validateStateSchemaName=e.validateStateSchemaName;exports.z=e.zod;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./internal/object-Cx_c54j_.js"),r=require("./internal/index-CpjKrifV.js");require("immer");require("zod");require("crypto");require("fs");require("https");require("path");require("jszip");exports.BaseDocument=e.BaseDocument;exports.actions=e.BaseActions;exports.applyMixins=e.applyMixins;exports.baseReducer=e.baseReducer;exports.processUndoRedo=e.processUndoRedo;exports.z=e.zod;exports.utils=r.index;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./internal/object-CnhDksx1.js"),r=require("./internal/index-Bi9yeV3W.js");require("immer");require("zod");require("crypto");require("fs");require("https");require("path");require("jszip");exports.BaseDocument=e.BaseDocument;exports.actions=e.BaseActions;exports.applyMixins=e.applyMixins;exports.baseReducer=e.baseReducer;exports.processUndoRedo=e.processUndoRedo;exports.z=e.zod;exports.utils=r.index;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./internal/index-CpjKrifV.js"),o=require("./internal/index-DzXcygIJ.js");require("./internal/object-Cx_c54j_.js");require("immer");require("zod");require("crypto");require("fs");require("https");require("path");require("jszip");const u={"powerhouse/document":e.Document,"powerhouse/document-model":o.DocumentModel},t={Document:e.Document,DocumentModel:o.DocumentModel};exports.Document=e.Document;exports.DocumentModel=o.DocumentModel;exports.DocumentModels=u;exports.default=t;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./internal/index-Bi9yeV3W.js"),o=require("./internal/index-GZsLKtHl.js");require("./internal/object-CnhDksx1.js");require("immer");require("zod");require("crypto");require("fs");require("https");require("path");require("jszip");const u={"powerhouse/document":e.Document,"powerhouse/document-model":o.DocumentModel},t={Document:e.Document,DocumentModel:o.DocumentModel};exports.Document=e.Document;exports.DocumentModel=o.DocumentModel;exports.DocumentModels=u;exports.default=t;
@@ -1 +1 @@
1
- "use strict";const e=require("./object-Cx_c54j_.js"),t=Object.freeze(Object.defineProperty({__proto__:null,calculateSkipsLeft:e.calculateSkipsLeft,createAction:e.createAction,createDocument:e.createDocument,createExtendedState:e.createExtendedState,createReducer:e.createReducer,createZip:e.createZip,getLocalFile:e.getLocalFile,getRemoteFile:e.getRemoteFile,hashDocument:e.hashDocument,hashKey:e.hashKey,isBaseAction:e.isBaseAction,isNoopOperation:e.isNoopOperation,isSameDocument:e.isSameDocument,isUndoRedo:e.isUndoRedo,loadFromFile:e.loadFromFile,loadFromInput:e.loadFromInput,mapSkippedOperations:e.mapSkippedOperations,readOnly:e.readOnly,replayDocument:e.replayDocument,replayOperations:e.replayOperations,saveToFile:e.saveToFile,saveToFileHandle:e.saveToFileHandle,sortMappedOperations:e.sortMappedOperations,sortOperations:e.sortOperations,validateOperations:e.validateOperations},Symbol.toStringTag,{value:"Module"})),o=Object.freeze(Object.defineProperty({__proto__:null,BaseDocument:e.BaseDocument,actions:e.BaseActions,applyMixins:e.applyMixins,baseReducer:e.baseReducer,processUndoRedo:e.processUndoRedo,utils:t,z:e.zod},Symbol.toStringTag,{value:"Module"}));exports.Document=o;exports.index=t;
1
+ "use strict";const e=require("./object-CnhDksx1.js"),t=Object.freeze(Object.defineProperty({__proto__:null,calculateSkipsLeft:e.calculateSkipsLeft,createAction:e.createAction,createDocument:e.createDocument,createExtendedState:e.createExtendedState,createReducer:e.createReducer,createZip:e.createZip,getLocalFile:e.getLocalFile,getRemoteFile:e.getRemoteFile,hashDocument:e.hashDocument,hashKey:e.hashKey,isBaseAction:e.isBaseAction,isNoopOperation:e.isNoopOperation,isSameDocument:e.isSameDocument,isUndoRedo:e.isUndoRedo,loadFromFile:e.loadFromFile,loadFromInput:e.loadFromInput,mapSkippedOperations:e.mapSkippedOperations,readOnly:e.readOnly,replayDocument:e.replayDocument,replayOperations:e.replayOperations,saveToFile:e.saveToFile,saveToFileHandle:e.saveToFileHandle,sortMappedOperations:e.sortMappedOperations,sortOperations:e.sortOperations,validateOperations:e.validateOperations},Symbol.toStringTag,{value:"Module"})),o=Object.freeze(Object.defineProperty({__proto__:null,BaseDocument:e.BaseDocument,actions:e.BaseActions,applyMixins:e.applyMixins,baseReducer:e.baseReducer,processUndoRedo:e.processUndoRedo,utils:t,z:e.zod},Symbol.toStringTag,{value:"Module"}));exports.Document=o;exports.index=t;
@@ -1,4 +1,4 @@
1
- "use strict";var Tt=Object.defineProperty;var Rt=(t,e,r)=>e in t?Tt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var be=(t,e,r)=>(Rt(t,typeof e!="symbol"?e+"":e,r),r);const s=require("./object-Cx_c54j_.js");require("immer");require("crypto");require("fs");require("https");require("path");require("jszip");const o=require("zod"),xt=new RegExp("([\\p{Ll}\\d])(\\p{Lu})","gu"),Mt=new RegExp("(\\p{Lu})([\\p{Lu}][\\p{Ll}])","gu"),Dt=new RegExp("(\\d)\\p{Ll}|(\\p{L})\\d","u"),Nt=/[^\p{L}\d]+/giu,_e="$1\0$2",Ae="";function ze(t){let e=t.trim();e=e.replace(xt,_e).replace(Mt,_e),e=e.replace(Nt,"\0");let r=0,n=e.length;for(;e.charAt(r)==="\0";)r++;if(r===n)return[];for(;e.charAt(n-1)==="\0";)n--;return e.slice(r,n).split(/\0/g)}function Lt(t){const e=ze(t);for(let r=0;r<e.length;r++){const n=e[r],i=Dt.exec(n);if(i){const a=i.index+(i[1]??i[2]).length;e.splice(r,1,n.slice(0,a),n.slice(a))}}return e}function Ie(t,e){const[r,n,i]=wt(t,e),a=Pt(e==null?void 0:e.locale),l=jt(e==null?void 0:e.locale),d=e!=null&&e.mergeAmbiguousCharacters?Ct(a,l):yt(a,l);return r+n.map(d).join((e==null?void 0:e.delimiter)??"")+i}function Pt(t){return t===!1?e=>e.toLowerCase():e=>e.toLocaleLowerCase(t)}function jt(t){return t===!1?e=>e.toUpperCase():e=>e.toLocaleUpperCase(t)}function Ct(t,e){return r=>`${e(r[0])}${t(r.slice(1))}`}function yt(t,e){return(r,n)=>{const i=r[0];return(n>0&&i>="0"&&i<="9"?"_"+i:e(i))+t(r.slice(1))}}function wt(t,e={}){const r=e.split??(e.separateNumbers?Lt:ze),n=e.prefixCharacters??Ae,i=e.suffixCharacters??Ae;let a=0,l=t.length;for(;a<t.length;){const d=t.charAt(a);if(!n.includes(d))break;a++}for(;l>a;){const d=l-1,zt=t.charAt(d);if(!i.includes(zt))break;l=d}return[t.slice(0,a),r(t.slice(a,l)),t.slice(l)]}function T(t,e=!1){const r=[];if(e&&t==="")return r;try{const n=JSON.parse(t);!e&&!Object.keys(n).length&&r.push({message:"Initial state cannot be empty",details:{initialState:t}})}catch{r.push({message:"Invalid initial state",details:{initialState:t}})}return r}function R(t,e,r="",n=!0){const i=[];if(!n&&!t)return i.push({message:"State schema is required",details:{schema:t}}),i;if(n&&!t)return i;const a=`type ${Ie(e)}${Ie(r)}State`;return t.includes(a)||i.push({message:`Invalid state schema name. Expected ${a}`,details:{schema:t}}),i}function x(t){const e=[];t.length||e.push({message:"Modules are required",details:{modules:t}});const r=t.reduce((n,i)=>[...n,...b(i)],[]);return[...e,...r]}function b(t){const e=[];t.name||e.push({message:"Module name is required",details:{module:t}}),t.operations.length||e.push({message:"Module operations are required",details:{module:t}});const r=t.operations.reduce((n,i)=>[...n,..._(i)],[]);return[...e,...r]}function _(t){const e=[];return t.name||e.push({message:"Operation name is required",details:{operation:t}}),t.schema||e.push({message:"Operation schema is required",details:{operation:t}}),e}const kt=Object.freeze(Object.defineProperty({__proto__:null,validateInitialState:T,validateModule:b,validateModuleOperation:_,validateModules:x,validateStateSchemaName:R},Symbol.toStringTag,{value:"Module"})),M={id:"powerhouse/document-model",name:"DocumentModel",extension:"phdm",description:"The Powerhouse Document Model describes the state and operations of a document type.",author:{name:"Powerhouse",website:"https://www.powerhouse.inc/"},specifications:[{version:1,changeLog:[],modules:[{name:"header",operations:[{name:"SetModelName",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetModelId",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetModelExtension",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetModelDescription",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetAuthorName",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetAuthorWebsite",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"versioning",operations:[{name:"AddChangeLogItem",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"UpdateChangeLogItem",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteChangeLogItem",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderChangeLogItems",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReleaseNewVersion",schema:null,id:"",description:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"module",operations:[{name:"AddModule",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetModuleName",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetModuleDescription",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteModule",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderModules",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"operation-error",operations:[{name:"AddOperationError",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationErrorCode",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationErrorName",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationErrorDescription",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationErrorTemplate",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteOperationError",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderOperationErrors",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"operation-example",operations:[{name:"AddOperationExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"UpdateOperationExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteOperationExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderOperationExamples",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"operation",operations:[{name:"AddOperation",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationName",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationSchema",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationDescription",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationTemplate",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationReducer",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"MoveOperation",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteOperation",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderModuleOperations",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"state",operations:[{name:"SetStateSchema",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetInitialState",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"AddStateExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"UpdateStateExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteStateExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderStateExamples",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""}],state:{global:{schema:"",initialValue:`{
1
+ "use strict";var Tt=Object.defineProperty;var Rt=(t,e,r)=>e in t?Tt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var be=(t,e,r)=>(Rt(t,typeof e!="symbol"?e+"":e,r),r);const s=require("./object-CnhDksx1.js");require("immer");require("crypto");require("fs");require("https");require("path");require("jszip");const o=require("zod"),xt=new RegExp("([\\p{Ll}\\d])(\\p{Lu})","gu"),Mt=new RegExp("(\\p{Lu})([\\p{Lu}][\\p{Ll}])","gu"),Dt=new RegExp("(\\d)\\p{Ll}|(\\p{L})\\d","u"),Nt=/[^\p{L}\d]+/giu,_e="$1\0$2",Ae="";function ze(t){let e=t.trim();e=e.replace(xt,_e).replace(Mt,_e),e=e.replace(Nt,"\0");let r=0,n=e.length;for(;e.charAt(r)==="\0";)r++;if(r===n)return[];for(;e.charAt(n-1)==="\0";)n--;return e.slice(r,n).split(/\0/g)}function Lt(t){const e=ze(t);for(let r=0;r<e.length;r++){const n=e[r],i=Dt.exec(n);if(i){const a=i.index+(i[1]??i[2]).length;e.splice(r,1,n.slice(0,a),n.slice(a))}}return e}function Ie(t,e){const[r,n,i]=wt(t,e),a=Pt(e==null?void 0:e.locale),l=jt(e==null?void 0:e.locale),d=e!=null&&e.mergeAmbiguousCharacters?Ct(a,l):yt(a,l);return r+n.map(d).join((e==null?void 0:e.delimiter)??"")+i}function Pt(t){return t===!1?e=>e.toLowerCase():e=>e.toLocaleLowerCase(t)}function jt(t){return t===!1?e=>e.toUpperCase():e=>e.toLocaleUpperCase(t)}function Ct(t,e){return r=>`${e(r[0])}${t(r.slice(1))}`}function yt(t,e){return(r,n)=>{const i=r[0];return(n>0&&i>="0"&&i<="9"?"_"+i:e(i))+t(r.slice(1))}}function wt(t,e={}){const r=e.split??(e.separateNumbers?Lt:ze),n=e.prefixCharacters??Ae,i=e.suffixCharacters??Ae;let a=0,l=t.length;for(;a<t.length;){const d=t.charAt(a);if(!n.includes(d))break;a++}for(;l>a;){const d=l-1,zt=t.charAt(d);if(!i.includes(zt))break;l=d}return[t.slice(0,a),r(t.slice(a,l)),t.slice(l)]}function T(t,e=!1){const r=[];if(e&&t==="")return r;try{const n=JSON.parse(t);!e&&!Object.keys(n).length&&r.push({message:"Initial state cannot be empty",details:{initialState:t}})}catch{r.push({message:"Invalid initial state",details:{initialState:t}})}return r}function R(t,e,r="",n=!0){const i=[];if(!n&&!t)return i.push({message:"State schema is required",details:{schema:t}}),i;if(n&&!t)return i;const a=`type ${Ie(e)}${Ie(r)}State`;return t.includes(a)||i.push({message:`Invalid state schema name. Expected ${a}`,details:{schema:t}}),i}function x(t){const e=[];t.length||e.push({message:"Modules are required",details:{modules:t}});const r=t.reduce((n,i)=>[...n,...b(i)],[]);return[...e,...r]}function b(t){const e=[];t.name||e.push({message:"Module name is required",details:{module:t}}),t.operations.length||e.push({message:"Module operations are required",details:{module:t}});const r=t.operations.reduce((n,i)=>[...n,..._(i)],[]);return[...e,...r]}function _(t){const e=[];return t.name||e.push({message:"Operation name is required",details:{operation:t}}),t.schema||e.push({message:"Operation schema is required",details:{operation:t}}),e}const kt=Object.freeze(Object.defineProperty({__proto__:null,validateInitialState:T,validateModule:b,validateModuleOperation:_,validateModules:x,validateStateSchemaName:R},Symbol.toStringTag,{value:"Module"})),M={id:"powerhouse/document-model",name:"DocumentModel",extension:"phdm",description:"The Powerhouse Document Model describes the state and operations of a document type.",author:{name:"Powerhouse",website:"https://www.powerhouse.inc/"},specifications:[{version:1,changeLog:[],modules:[{name:"header",operations:[{name:"SetModelName",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetModelId",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetModelExtension",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetModelDescription",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetAuthorName",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetAuthorWebsite",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"versioning",operations:[{name:"AddChangeLogItem",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"UpdateChangeLogItem",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteChangeLogItem",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderChangeLogItems",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReleaseNewVersion",schema:null,id:"",description:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"module",operations:[{name:"AddModule",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetModuleName",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetModuleDescription",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteModule",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderModules",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"operation-error",operations:[{name:"AddOperationError",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationErrorCode",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationErrorName",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationErrorDescription",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationErrorTemplate",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteOperationError",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderOperationErrors",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"operation-example",operations:[{name:"AddOperationExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"UpdateOperationExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteOperationExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderOperationExamples",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"operation",operations:[{name:"AddOperation",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationName",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationSchema",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationDescription",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationTemplate",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetOperationReducer",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"MoveOperation",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteOperation",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderModuleOperations",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""},{name:"state",operations:[{name:"SetStateSchema",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"SetInitialState",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"AddStateExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"UpdateStateExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"DeleteStateExample",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"},{name:"ReorderStateExamples",id:"",description:"",schema:"",template:"",reducer:"",examples:[],errors:[],scope:"global"}],id:"",description:""}],state:{global:{schema:"",initialValue:`{
2
2
  "id": "",
3
3
  "name": "",
4
4
  "extension": "",
@@ -0,0 +1,20 @@
1
+ "use strict";var se=Object.defineProperty;var ae=(e,t,i)=>t in e?se(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;var ot=(e,t,i)=>(ae(e,typeof t!="symbol"?t+"":t,i),i);const U=require("immer"),m=require("zod"),pe=require("crypto"),lt=require("fs"),ce=require("https"),le=require("path"),zt=require("jszip"),Et=e=>e!=null,me=m.z.any().refine(e=>Et(e)),vt=m.z.enum(["LOAD_STATE"]),Tt=m.z.enum(["PRUNE"]),kt=m.z.enum(["REDO"]),_t=m.z.enum(["SET_NAME"]),Dt=m.z.enum(["UNDO"]);function ue(){return m.z.object({__typename:m.z.literal("Action").optional(),type:m.z.string()})}function X(){return m.z.literal("global").or(m.z.literal("local"))}function At(){return m.z.union([Nt(),It(),Pt(),Ft(),Rt()])}function fe(){return m.z.object({__typename:m.z.literal("DocumentFile").optional(),data:m.z.string(),extension:m.z.string().nullable(),fileName:m.z.string().nullable(),mimeType:m.z.string()})}function Nt(){return m.z.object({input:m.z.lazy(()=>gt()),type:vt,scope:X()})}function gt(){return m.z.object({operations:m.z.number(),state:m.z.lazy(()=>Mt())})}function Mt(){return m.z.object({data:m.z.unknown().nullish(),name:m.z.string()})}function de(){return m.z.object({__typename:m.z.literal("Operation").optional(),hash:m.z.string(),index:m.z.number(),timestamp:m.z.string().datetime(),type:m.z.string()})}function It(){return m.z.object({input:m.z.lazy(()=>ht()),type:Tt,scope:X()})}function ht(){return m.z.object({end:m.z.number().nullish(),start:m.z.number().nullish()})}const xt=m.z.number;function Pt(){return m.z.object({input:xt(),type:kt,scope:X()})}const yt=m.z.string;function Ft(){return m.z.object({input:yt(),type:_t,scope:m.z.literal("global")})}function ge(){return m.z.object({__typename:m.z.literal("SetNameOperation").optional(),hash:m.z.string(),index:m.z.number(),input:m.z.string(),timestamp:m.z.string().datetime(),type:m.z.string()})}const bt=m.z.number;function Rt(){return m.z.object({input:bt(),type:Dt,scope:X()})}const he=Object.freeze(Object.defineProperty({__proto__:null,ActionSchema:ue,BaseActionSchema:At,DocumentFileSchema:fe,LoadStateActionInputSchema:gt,LoadStateActionSchema:Nt,LoadStateActionStateInputSchema:Mt,Load_StateSchema:vt,OperationSchema:de,OperationScopeSchema:X,PruneActionInputSchema:ht,PruneActionSchema:It,PruneSchema:Tt,RedoActionInputSchema:xt,RedoActionSchema:Pt,RedoSchema:kt,SetNameActionInputSchema:yt,SetNameActionSchema:Ft,SetNameOperationSchema:ge,Set_NameSchema:_t,UndoActionInputSchema:bt,UndoActionSchema:Rt,UndoSchema:Dt,definedNonNullAnySchema:me,isDefinedNonNullAny:Et},Symbol.toStringTag,{value:"Module"}));function xe(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var mt={exports:{}};(function(e,t){const{hasOwnProperty:i}=Object.prototype,n=z();n.configure=z,n.stringify=n,n.default=n,t.stringify=n,t.configure=z,e.exports=n;const a=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]|[\ud800-\udbff](?![\udc00-\udfff])|(?:[^\ud800-\udbff]|^)[\udc00-\udfff]/;function s(c){return c.length<5e3&&!a.test(c)?`"${c}"`:JSON.stringify(c)}function r(c){if(c.length>200)return c.sort();for(let u=1;u<c.length;u++){const b=c[u];let M=u;for(;M!==0&&c[M-1]>b;)c[M]=c[M-1],M--;c[M]=b}return c}const l=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function p(c){return l.call(c)!==void 0&&c.length!==0}function x(c,u,b){c.length<b&&(b=c.length);const M=u===","?"":" ";let B=`"0":${M}${c[0]}`;for(let R=1;R<b;R++)B+=`${u}"${R}":${M}${c[R]}`;return B}function y(c){if(i.call(c,"circularValue")){const u=c.circularValue;if(typeof u=="string")return`"${u}"`;if(u==null)return u;if(u===Error||u===TypeError)return{toString(){throw new TypeError("Converting circular structure to JSON")}};throw new TypeError('The "circularValue" argument must be of type string or the value null or undefined')}return'"[Circular]"'}function E(c,u){let b;if(i.call(c,u)&&(b=c[u],typeof b!="boolean"))throw new TypeError(`The "${u}" argument must be of type boolean`);return b===void 0?!0:b}function h(c,u){let b;if(i.call(c,u)){if(b=c[u],typeof b!="number")throw new TypeError(`The "${u}" argument must be of type number`);if(!Number.isInteger(b))throw new TypeError(`The "${u}" argument must be an integer`);if(b<1)throw new RangeError(`The "${u}" argument must be >= 1`)}return b===void 0?1/0:b}function S(c){return c===1?"1 item":`${c} items`}function $(c){const u=new Set;for(const b of c)(typeof b=="string"||typeof b=="number")&&u.add(String(b));return u}function A(c){if(i.call(c,"strict")){const u=c.strict;if(typeof u!="boolean")throw new TypeError('The "strict" argument must be of type boolean');if(u)return b=>{let M=`Object can not safely be stringified. Received type ${typeof b}`;throw typeof b!="function"&&(M+=` (${b.toString()})`),new Error(M)}}}function z(c){c={...c};const u=A(c);u&&(c.bigint===void 0&&(c.bigint=!1),"circularValue"in c||(c.circularValue=Error));const b=y(c),M=E(c,"bigint"),B=E(c,"deterministic"),R=h(c,"maximumDepth"),k=h(c,"maximumBreadth");function et(I,o,f,w,g,O){let d=o[I];switch(typeof d=="object"&&d!==null&&typeof d.toJSON=="function"&&(d=d.toJSON(I)),d=w.call(o,I,d),typeof d){case"string":return s(d);case"object":{if(d===null)return"null";if(f.indexOf(d)!==-1)return b;let j="",T=",";const _=O;if(Array.isArray(d)){if(d.length===0)return"[]";if(R<f.length+1)return'"[Array]"';f.push(d),g!==""&&(O+=g,j+=`
2
+ ${O}`,T=`,
3
+ ${O}`);const F=Math.min(d.length,k);let J=0;for(;J<F-1;J++){const nt=et(String(J),d,f,w,g,O);j+=nt!==void 0?nt:"null",j+=T}const C=et(String(J),d,f,w,g,O);if(j+=C!==void 0?C:"null",d.length-1>k){const nt=d.length-k-1;j+=`${T}"... ${S(nt)} not stringified"`}return g!==""&&(j+=`
4
+ ${_}`),f.pop(),`[${j}]`}let D=Object.keys(d);const N=D.length;if(N===0)return"{}";if(R<f.length+1)return'"[Object]"';let v="",P="";g!==""&&(O+=g,T=`,
5
+ ${O}`,v=" ");const L=Math.min(N,k);B&&!p(d)&&(D=r(D)),f.push(d);for(let F=0;F<L;F++){const J=D[F],C=et(J,d,f,w,g,O);C!==void 0&&(j+=`${P}${s(J)}:${v}${C}`,P=T)}if(N>k){const F=N-k;j+=`${P}"...":${v}"${S(F)} not stringified"`,P=T}return g!==""&&P.length>1&&(j=`
6
+ ${O}${j}
7
+ ${_}`),f.pop(),`{${j}}`}case"number":return isFinite(d)?String(d):u?u(d):"null";case"boolean":return d===!0?"true":"false";case"undefined":return;case"bigint":if(M)return String(d);default:return u?u(d):void 0}}function it(I,o,f,w,g,O){switch(typeof o=="object"&&o!==null&&typeof o.toJSON=="function"&&(o=o.toJSON(I)),typeof o){case"string":return s(o);case"object":{if(o===null)return"null";if(f.indexOf(o)!==-1)return b;const d=O;let j="",T=",";if(Array.isArray(o)){if(o.length===0)return"[]";if(R<f.length+1)return'"[Array]"';f.push(o),g!==""&&(O+=g,j+=`
8
+ ${O}`,T=`,
9
+ ${O}`);const N=Math.min(o.length,k);let v=0;for(;v<N-1;v++){const L=it(String(v),o[v],f,w,g,O);j+=L!==void 0?L:"null",j+=T}const P=it(String(v),o[v],f,w,g,O);if(j+=P!==void 0?P:"null",o.length-1>k){const L=o.length-k-1;j+=`${T}"... ${S(L)} not stringified"`}return g!==""&&(j+=`
10
+ ${d}`),f.pop(),`[${j}]`}f.push(o);let _="";g!==""&&(O+=g,T=`,
11
+ ${O}`,_=" ");let D="";for(const N of w){const v=it(N,o[N],f,w,g,O);v!==void 0&&(j+=`${D}${s(N)}:${_}${v}`,D=T)}return g!==""&&D.length>1&&(j=`
12
+ ${O}${j}
13
+ ${d}`),f.pop(),`{${j}}`}case"number":return isFinite(o)?String(o):u?u(o):"null";case"boolean":return o===!0?"true":"false";case"undefined":return;case"bigint":if(M)return String(o);default:return u?u(o):void 0}}function W(I,o,f,w,g){switch(typeof o){case"string":return s(o);case"object":{if(o===null)return"null";if(typeof o.toJSON=="function"){if(o=o.toJSON(I),typeof o!="object")return W(I,o,f,w,g);if(o===null)return"null"}if(f.indexOf(o)!==-1)return b;const O=g;if(Array.isArray(o)){if(o.length===0)return"[]";if(R<f.length+1)return'"[Array]"';f.push(o),g+=w;let v=`
14
+ ${g}`;const P=`,
15
+ ${g}`,L=Math.min(o.length,k);let F=0;for(;F<L-1;F++){const C=W(String(F),o[F],f,w,g);v+=C!==void 0?C:"null",v+=P}const J=W(String(F),o[F],f,w,g);if(v+=J!==void 0?J:"null",o.length-1>k){const C=o.length-k-1;v+=`${P}"... ${S(C)} not stringified"`}return v+=`
16
+ ${O}`,f.pop(),`[${v}]`}let d=Object.keys(o);const j=d.length;if(j===0)return"{}";if(R<f.length+1)return'"[Object]"';g+=w;const T=`,
17
+ ${g}`;let _="",D="",N=Math.min(j,k);p(o)&&(_+=x(o,T,k),d=d.slice(o.length),N-=o.length,D=T),B&&(d=r(d)),f.push(o);for(let v=0;v<N;v++){const P=d[v],L=W(P,o[P],f,w,g);L!==void 0&&(_+=`${D}${s(P)}: ${L}`,D=T)}if(j>k){const v=j-k;_+=`${D}"...": "${S(v)} not stringified"`,D=T}return D!==""&&(_=`
18
+ ${g}${_}
19
+ ${O}`),f.pop(),`{${_}}`}case"number":return isFinite(o)?String(o):u?u(o):"null";case"boolean":return o===!0?"true":"false";case"undefined":return;case"bigint":if(M)return String(o);default:return u?u(o):void 0}}function Z(I,o,f){switch(typeof o){case"string":return s(o);case"object":{if(o===null)return"null";if(typeof o.toJSON=="function"){if(o=o.toJSON(I),typeof o!="object")return Z(I,o,f);if(o===null)return"null"}if(f.indexOf(o)!==-1)return b;let w="";if(Array.isArray(o)){if(o.length===0)return"[]";if(R<f.length+1)return'"[Array]"';f.push(o);const T=Math.min(o.length,k);let _=0;for(;_<T-1;_++){const N=Z(String(_),o[_],f);w+=N!==void 0?N:"null",w+=","}const D=Z(String(_),o[_],f);if(w+=D!==void 0?D:"null",o.length-1>k){const N=o.length-k-1;w+=`,"... ${S(N)} not stringified"`}return f.pop(),`[${w}]`}let g=Object.keys(o);const O=g.length;if(O===0)return"{}";if(R<f.length+1)return'"[Object]"';let d="",j=Math.min(O,k);p(o)&&(w+=x(o,",",k),g=g.slice(o.length),j-=o.length,d=","),B&&(g=r(g)),f.push(o);for(let T=0;T<j;T++){const _=g[T],D=Z(_,o[_],f);D!==void 0&&(w+=`${d}${s(_)}:${D}`,d=",")}if(O>k){const T=O-k;w+=`${d}"...":"${S(T)} not stringified"`}return f.pop(),`{${w}}`}case"number":return isFinite(o)?String(o):u?u(o):"null";case"boolean":return o===!0?"true":"false";case"undefined":return;case"bigint":if(M)return String(o);default:return u?u(o):void 0}}function re(I,o,f){if(arguments.length>1){let w="";if(typeof f=="number"?w=" ".repeat(Math.min(f,10)):typeof f=="string"&&(w=f.slice(0,10)),o!=null){if(typeof o=="function")return et("",{"":I},[],o,w,"");if(Array.isArray(o))return it("",I,[],$(o),w,"")}if(w.length!==0)return W("",I,[],w,"")}return Z("",I,[])}return re}})(mt,mt.exports);var ye=mt.exports;const rt=xe(ye);rt.configure;function be(e,t){return{...e,name:t}}function we(e,t,i){const n={skip:i,document:e},{scope:a}=t;return!a||t.skip===void 0?n:U.produce(n,s=>{const r=s.document.operations[a].at(-1);t.skip&&t.skip>0&&(s.skip=t.skip),r&&r.type==="NOOP"&&t.index===r.index&&s.skip>r.skip&&s.document.operations[a].pop()})}function je(e,t,i){const{scope:n,input:a}=t,s={document:e,action:t,skip:i};return U.produce(s,r=>{if(r.document.operations[n].length<1)throw new Error(`Cannot undo: no operations in history for scope "${n}"`);if(a<1)throw new Error("Invalid UNDO action: input value must be greater than 0");if(r.skip>0)throw new Error("Cannot undo: skip value from reducer cannot be used with UNDO action");const l=r.document.operations[n].at(-1),p=l&&l.type==="NOOP"&&l.skip>0;if(r.skip+=a,p){r.skip+=l.skip;const h=r.document.operations[n][r.document.operations[n].length-2];h&&l.index-h.index===1&&r.document.operations[n].pop()}if(r.document.operations[n].length<r.skip)throw new Error("Cannot undo: you can't undo more operations than the ones in the scope history");const x=r.document.operations[n].length-1;let y=a,E=p?x-l.skip:x;for(;y>0&&E>=0;){const h=r.document.operations[n][E];if(!h){y--,E--;continue}h.type==="NOOP"&&h.skip>0?(E=E-(h.skip+1),r.skip+=h.skip+1):(r.document.clipboard.push({...h}),y--,E--)}r.action=St(n)})}function Oe(e,t,i){const{scope:n,input:a}=t,s={document:e,action:t,skip:i};return U.produce(s,r=>{if(r.skip>0)throw new Error("Cannot redo: skip value from reducer cannot be used with REDO action");if(a>1)throw new Error("Cannot redo: you can only redo one operation at a time");if(a<1)throw new Error("Invalid REDO action: invalid redo input value");if(r.document.clipboard.length<1)throw new Error("Cannot redo: no operations in the clipboard");const l=r.document.clipboard.findLastIndex(x=>x.scope===n);if(l<0)throw new Error(`Cannot redo: no operations in clipboard for scope "${n}"`);const p=r.document.clipboard.splice(l,1)[0];r.action=U.castDraft({type:p.type,scope:p.scope,input:p.input})})}function Se(e,t,i){const{scope:n}=t,a=e.operations[n];let{input:{start:s,end:r}}=t;s=s||0,r=r||a.length;const l=a.slice(s,r),p=a.slice(0,s),x=a.slice(r),y=st(e.initialState,{...e.operations,[n]:p.concat(l)},i),{name:E,state:h}=y,S=p.length,$=p.length?p[p.length-1].timestamp:x.length?x[0].timestamp:new Date().toISOString();return st(e.initialState,{...e.operations,[n]:[...p,{...Ot({name:E,state:h},l.length),timestamp:$,index:S,hash:ct({state:h},"global")},...x.map((A,z)=>({...A,index:S+z+1}))]},i)}function $e(e,t){return{...e,name:t.name,state:t.state??{global:{},local:{}}}}const qt="SET_NAME",Y="UNDO",tt="REDO",at="PRUNE",Lt="LOAD_STATE",ze="NOOP";function Ee(e,t){let i;return"index"in t?i={...t}:i=e.operations[t.scope].at(-1),((i==null?void 0:i.index)??-1)+1}function ve(e,t){return{...e,revision:{...e.revision,[t.scope]:Ee(e,t)},lastModified:new Date().toISOString()}}function Te(e,t,i=0){if([Y,tt,at].includes(t.type))return e;const{scope:n}=t,a=e.operations[n].slice(0,e.revision[n]),s=[...a].pop();let r=((s==null?void 0:s.index)??-1)+1;if("index"in t){if(t.index>r+i)throw new Error(`Missing operations: expected ${r} with skip 0 or equivalent, got index ${t.index} with skip ${i}`);r=t.index}return a.push({...t,index:r,timestamp:new Date().toISOString(),hash:"",scope:n,skip:i,error:void 0}),{...e,operations:{...e.operations,[n]:a}}}function ke(e,t,i=0){let n=Te(e,t,i);return n=ve(n,t),n}function _e(e,t,i){switch(At().parse(t),t.type){case qt:return be(e,t.input);case at:return Se(e,t,i);case Lt:return $e(e,t.input.state);default:return e}}function Jt(e,t,i){switch(t.type){case Y:return je(e,t,i);case tt:return Oe(e,t,i);default:return{document:e,action:t,skip:i}}}function wt(e,t,i,n,a={}){const{skip:s,ignoreSkipOperations:r=!1,reuseHash:l=!1}=a;let p={...t},x=s||0,y=e,E=[...e.clipboard];if(Ut(p)){const{document:h,skip:S}=we(y,p,x);x=S,y=h}if(ut(p)){const{skip:h,action:S,document:$}=Jt(e,p,x);p=S,x=h,y=$,E=[...y.clipboard]}if(ft(p)&&(y=_e(y,p,i)),x>0&&!r){let h=x;"index"in p&&(h=Wt(y.operations[p.scope],p.index,x)),y=st(y.initialState,y.operations,i,void 0,void 0,void 0,{[p.scope]:h})}return y=ke(y,p,x),y=U.produce(y,h=>{try{const S=i(h.state,p,n),$=ut(t)?[...E]:[];if(S)return U.castDraft({...y,clipboard:[...$],state:S});h.clipboard=U.castDraft([...$])}catch(S){const $=y.operations[p.scope].length-1;h.operations[p.scope][$].error=S.message}}),U.produce(y,h=>{if([Y,tt,at].includes(p.type))return h;const S=p.scope||"global",$=l&&Object.prototype.hasOwnProperty.call(p,"hash")?p.hash:ct(h,S);h.operations[S][h.operations[S].length-1].hash=$,!ft(p)&&p.attachments&&p.attachments.forEach(A=>{const{hash:z,...c}=A;h.attachments[z]={...c}})})}function De(e,t,i){const n=le.join(e,t);return lt.mkdirSync(e,{recursive:!0}),new Promise((a,s)=>{try{lt.writeFile(n,i,{},r=>{r?s(r):a(n)})}catch(r){s(r)}})}function Ct(e){return lt.readFileSync(e)}function Ae(e){return new Promise((t,i)=>{ce.get(e,n=>{const a=[],s=n.headers["content-type"];n.on("data",r=>{a.push(r)}),n.on("end",()=>{t({buffer:Buffer.concat(a),mimeType:s})})}).on("error",n=>{i(n)})})}const Ne=async e=>Ct(e),pt=(e,t="sha1")=>pe.createHash(t).update(e).digest("base64");function Ut(e){return e.type===ze&&e.skip!==void 0&&e.skip>0&&e.hash!==void 0}function ut(e){return[Y,tt].includes(e.type)}function ft(e){return[qt,Y,tt,at,Lt].includes(e.type)}function K(e,t,i,n,a="global"){if(!e)throw new Error("Empty action type");if(typeof e!="string")throw new Error(`Invalid action type: ${JSON.stringify(e)}`);const s={type:e,input:t,scope:a};i&&(s.attachments=i);try{n==null||n().parse(s.input)}catch(r){throw new Error(`Invalid action input: ${r}`)}return s}function Vt(e,t=wt){return(i,n,a,s)=>t(i,n,e,a,s)}const Kt=(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:{}}}),Bt=(e,t)=>{const i=Kt(e,t);return{...i,initialState:i,operations:{global:[],local:[]},clipboard:[]}},ct=(e,t="global")=>pt(rt(e.state[t]||"")),Me=(e,t=1e3)=>{const i=Math.random()*t;return pt(`${(e??new Date).toISOString()}${i}`)};function G(e){return U.castImmutable(U.freeze(e,!0))}function Ht(e,t){const i=[...e];let n=t||0,a=i.length>0?i[i.length-1].index:0;const s=[];for(const r of i.reverse()){if(n>0){const x=a-r.index;n-=x}if(n<0)throw new Error("Invalid operation index, missing operations");const l={ignore:n>0,operation:r},p=r.skip>0?r.skip+1:0;if(p>0&&p>n){const x=p-n;n=n+x}a=r.index,s.push(l)}return s.reverse()}function Wt(e,t,i){const n=e.slice().sort((l,p)=>l.skip-p.skip).sort((l,p)=>l.index-p.index);let a=i,s=0,r=t;for(const l of n.reverse()){const p=r-l.index;if(a=a-p,a>-1)s++,r=l.index;else break}return s}function Ie(e){return Object.values(e).flatMap(t=>t).sort((t,i)=>new Date(t.timestamp).getTime()-new Date(i.timestamp).getTime())}function Zt(e){return Object.values(e).flatMap(t=>t).sort((t,i)=>new Date(t.operation.timestamp).getTime()-new Date(i.operation.timestamp).getTime())}function st(e,t,i,n,a,s=wt,r={},l){const p=Vt(i,s);return jt(e,t,p,n,a,r,l)}function jt(e,t,i,n,a,s={},r){const l=(r==null?void 0:r.checkHashes)??!0,p=Bt(e),x=Object.keys(t).reduce(($,A)=>{const z=A;return{...$,[z]:Ht(t[z],s[z])}},{}),y=Zt(x),E=y.reduce(($,{ignore:A,operation:z})=>A?i($,St(z.scope),n,{skip:z.skip,ignoreSkipOperations:!0}):i($,z,n,{skip:z.skip,ignoreSkipOperations:!0,reuseHash:!l}),p);if(!l)for(const $ of Object.keys(E.state))for(let A=y.length-1;A>=0;A--){const{ignore:z,operation:c}=y[A];if(!(z||c.scope!==$)){if(c.hash!==ct(E,$))throw new Error(`Hash mismatch for scope ${$}`);break}}const h=Object.keys(E.operations).reduce(($,A)=>{const z=A;return{...$,[z]:[...E.operations[z].map((c,u)=>{var b;return{...c,timestamp:((b=t[z][u])==null?void 0:b.timestamp)??c.timestamp}})]}},{global:[],local:[]}),S=Object.values(h).reduce(($,A)=>{const z=A[A.length-1];return(z==null?void 0:z.timestamp)>$&&($=z.timestamp),$},e.lastModified);return{...E,operations:h,lastModified:S}}function Pe(e,t){return rt(e)===rt(t)}const Gt=e=>K("SET_NAME",e,void 0,yt,void 0),Qt=(e=1,t="global")=>K("UNDO",e,void 0,bt,t),Xt=(e=1,t="global")=>K("REDO",e,void 0,xt,t),Yt=(e,t,i="global")=>K("PRUNE",{start:e,end:t},void 0,ht,i),Ot=(e,t)=>K("LOAD_STATE",{state:e,operations:t},void 0,gt),St=(e="global")=>K("NOOP",{},void 0,void 0,e),Fe=Object.freeze(Object.defineProperty({__proto__:null,loadState:Ot,noop:St,prune:Yt,redo:Xt,setName:Gt,undo:Qt},Symbol.toStringTag,{value:"Module"})),te={"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(te);var q=function(e,t,i,n){if(i==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return i==="m"?n:i==="a"?n.call(e):n?n.value:t.get(e)},H,Q,V;class Re{constructor(...t){H.set(this,new Map),Q.set(this,new Map),V.set(this,new Map);for(const i of t)this.define(i)}define(t,i=!1){for(let[n,a]of Object.entries(t)){n=n.toLowerCase(),a=a.map(l=>l.toLowerCase()),q(this,V,"f").has(n)||q(this,V,"f").set(n,new Set);const s=q(this,V,"f").get(n);let r=!0;for(let l of a){const p=l.startsWith("*");if(l=p?l.slice(1):l,s==null||s.add(l),r&&q(this,Q,"f").set(n,l),r=!1,p)continue;const x=q(this,H,"f").get(l);if(x&&x!=n&&!i)throw new Error(`"${n} -> ${l}" conflicts with "${x} -> ${l}". Pass \`force=true\` to override this definition.`);q(this,H,"f").set(l,n)}}return this}getType(t){if(typeof t!="string")return null;const i=t.replace(/^.*[/\\]/,"").toLowerCase(),n=i.replace(/^.*\./,"").toLowerCase(),a=i.length<t.length;return!(n.length<i.length-1)&&a?null:q(this,H,"f").get(n)??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&&q(this,Q,"f").get(t.trim().toLowerCase()))??null)}getAllExtensions(t){return typeof t!="string"?null:q(this,V,"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 q(this,V,"f").values())Object.freeze(t);return this}_getTestState(){return{types:q(this,H,"f"),extensions:q(this,Q,"f")}}}H=new WeakMap,Q=new WeakMap,V=new WeakMap;const qe=new Re(te)._freeze();function ee(e){const t=[],i=Object.keys(e);for(const n of i){const a=e[n].sort((s,r)=>s.index-r.index);for(let s=0;s<a.length;s++)a[s].index!==s&&t.push({message:`Invalid operation index ${a[s].index} at position ${s}`,details:{position:s,operation:a[s],scope:a[s].scope}})}return t}const $t=async e=>{const t=new zt,{name:i,revision:n,documentType:a,created:s,lastModified:r}=e,l={name:i,revision:n,documentType:a,created:s,lastModified:r};return t.file("header.json",JSON.stringify(l,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(x=>{const{data:y,...E}=e.attachments[x];t.file(x,y,{base64:!0,createFolders:!0,comment:JSON.stringify(E)})}),t},ie=async(e,t,i,n)=>{const s=await(await $t(e)).generateAsync({type:"uint8array",streamFiles:!0}),r=n??e.name,l=`.${i}.zip`;return De(t,r.endsWith(l)?r:`${r}${l}`,s)},Le=async(e,t)=>{const n=await(await $t(e)).generateAsync({type:"blob"}),a=await t.createWritable();await a.write(n),await a.close()},dt=async(e,t,i)=>{const n=Ct(e);return ne(n,t,i)},ne=async(e,t,i)=>{const n=new zt;return await n.loadAsync(e),Je(n,t,i)};async function Je(e,t,i){const n=e.file("state.json");if(!n)throw new Error("Initial state not found");const a=await n.async("string"),s=JSON.parse(a),r=e.file("header.json");let l;r&&(l=JSON.parse(await r.async("string")));const p=e.file("operations.json");if(!p)throw new Error("Operations history not found");const x=JSON.parse(await p.async("string")),y=ee(x);if(y.length){const h=y.map(S=>S.message);throw new Error(h.join(`
20
+ `))}let E=jt(s,x,t,void 0,l,{},i);return l&&(E={...E,...l}),E}function oe(e){const t=e.replace(/^.*\./,"")||void 0,i=e.replace(/^.*[/\\]/,"")||void 0;return{extension:t,fileName:i}}async function Ce(e){const{buffer:t,mimeType:i="application/octet-stream"}=await Ae(e),n=oe(e),a=t.toString("base64");return{data:a,hash:pt(a),mimeType:i,...n}}async function Ue(e){const t=await Ne(e),i=qe.getType(e)||"application/octet-stream",n=oe(e),a=t.toString("base64");return{data:a,hash:pt(a),mimeType:i,...n}}class Ve{constructor(t,i,n){ot(this,"_document");ot(this,"_reducer");ot(this,"_signalDispatch");this._reducer=t,this._document=i,this._signalDispatch=n}dispatch(t,i){return this._document=this._reducer(this._document,t,this._signalDispatch,i),this}saveToFile(t,i,n){return ie(this._document,t,i,n)}async loadFromFile(t){this._document=await dt(t,this._reducer)}static async stateFromFile(t,i){return await dt(t,i)}get state(){return G(this._document.state)}get operations(){return G(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 G(this._document.initialState)}toDocument(){return G(this._document)}getAttachment(t){return this._document.attachments[t]}setName(t){return this.dispatch(Gt(t)),this}undo(t){return this.dispatch(Qt(t)),this}redo(t){return this.dispatch(Xt(t)),this}prune(t,i){return this.dispatch(Yt(t,i)),this}loadState(t,i){return this.dispatch(Ot(t,i)),this}}function Ke(e,t){t.forEach(i=>{Object.getOwnPropertyNames(i.prototype).forEach(n=>{Object.defineProperty(e.prototype,n,Object.getOwnPropertyDescriptor(i.prototype,n)||Object.create(null))})})}exports.BaseActions=Fe;exports.BaseDocument=Ve;exports.applyMixins=Ke;exports.baseReducer=wt;exports.calculateSkipsLeft=Wt;exports.createAction=K;exports.createDocument=Bt;exports.createExtendedState=Kt;exports.createReducer=Vt;exports.createZip=$t;exports.getLocalFile=Ue;exports.getRemoteFile=Ce;exports.hashDocument=ct;exports.hashKey=Me;exports.isBaseAction=ft;exports.isNoopOperation=Ut;exports.isSameDocument=Pe;exports.isUndoRedo=ut;exports.loadFromFile=dt;exports.loadFromInput=ne;exports.mapSkippedOperations=Ht;exports.processUndoRedo=Jt;exports.readOnly=G;exports.replayDocument=jt;exports.replayOperations=st;exports.saveToFile=ie;exports.saveToFileHandle=Le;exports.sortMappedOperations=Zt;exports.sortOperations=Ie;exports.validateOperations=ee;exports.zod=he;
@@ -1,11 +1,11 @@
1
- import "./internal/object-C0WcyLCx.js";
1
+ import "./internal/object-CnV5hY_A.js";
2
2
  import "immer";
3
3
  import "crypto";
4
4
  import "fs";
5
5
  import "https";
6
6
  import "path";
7
7
  import "jszip";
8
- import { b as p, a as u, c, d as n, m as v, r as M, u as S, v as f, g as h, h as D, f as b, e as g, z as x } from "./internal/index-CUitPgxf.js";
8
+ import { b as p, a as u, c, d as n, m as v, r as M, u as S, v as f, g as h, h as D, f as b, e as g, z as x } from "./internal/index-Chx4C-Xl.js";
9
9
  import "zod";
10
10
  export {
11
11
  p as Document,
@@ -1,5 +1,5 @@
1
- import { B as c, h as n, g as d, C as u, D as x, E as f } from "./internal/object-C0WcyLCx.js";
2
- import { i as B } from "./internal/index-V-nmqbyU.js";
1
+ import { B as c, h as n, g as d, C as u, D as x, E as f } from "./internal/object-CnV5hY_A.js";
2
+ import { i as B } from "./internal/index-B6iEYnbQ.js";
3
3
  import "immer";
4
4
  import "zod";
5
5
  import "crypto";
@@ -1,6 +1,6 @@
1
- import { D as o } from "./internal/index-V-nmqbyU.js";
2
- import { D as t } from "./internal/index-CUitPgxf.js";
3
- import "./internal/object-C0WcyLCx.js";
1
+ import { D as o } from "./internal/index-B6iEYnbQ.js";
2
+ import { D as t } from "./internal/index-Chx4C-Xl.js";
3
+ import "./internal/object-CnV5hY_A.js";
4
4
  import "immer";
5
5
  import "zod";
6
6
  import "crypto";
@@ -1,4 +1,4 @@
1
- import { j as e, f as a, b as s, a as o, c as t, k as r, m as i, n, o as c, p as l, i as p, q as d, r as u, t as m, l as O, e as y, u as b, v as D, w as S, x as _, s as f, d as g, y as F, z as v, A as h, B as j, h as x, g as z, C as R, D as A, E as B } from "./object-C0WcyLCx.js";
1
+ import { j as e, f as a, b as s, a as o, c as t, k as r, m as i, n, o as c, p as l, i as p, q as d, r as u, t as m, l as O, e as y, u as b, v as D, w as S, x as _, s as f, d as g, y as F, z as v, A as h, B as j, h as x, g as z, C as R, D as A, E as B } from "./object-CnV5hY_A.js";
2
2
  const M = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
3
3
  __proto__: null,
4
4
  calculateSkipsLeft: e,
@@ -1,7 +1,7 @@
1
1
  var Rt = Object.defineProperty;
2
2
  var xt = (t, e, r) => e in t ? Rt(t, e, { enumerable: !0, configurable: !0, writable: !0, value: r }) : t[e] = r;
3
3
  var Ee = (t, e, r) => (xt(t, typeof e != "symbol" ? e + "" : e, r), r);
4
- import { c as At, i as Mt, a as Dt, b as Nt, s as Lt, d as Pt, l as Ct, e as jt, f as a, B as c, g as yt, h as wt } from "./object-C0WcyLCx.js";
4
+ import { c as At, i as Mt, a as Dt, b as Nt, s as Lt, d as Pt, l as Ct, e as jt, f as a, B as c, g as yt, h as wt } from "./object-CnV5hY_A.js";
5
5
  import "immer";
6
6
  import "crypto";
7
7
  import "fs";
@@ -540,8 +540,8 @@ function me(e, t, i) {
540
540
  document: e
541
541
  }, { scope: a } = t;
542
542
  return !a || t.skip === void 0 ? n : G(n, (s) => {
543
- const [r] = s.document.operations[a].slice(-1);
544
- t.skip && t.skip > 0 && (s.skip = t.skip), r.type === "NOOP" && t.index === r.index && s.skip > r.skip && s.document.operations[a].pop();
543
+ const r = s.document.operations[a].at(-1);
544
+ t.skip && t.skip > 0 && (s.skip = t.skip), r && r.type === "NOOP" && t.index === r.index && s.skip > r.skip && s.document.operations[a].pop();
545
545
  });
546
546
  }
547
547
  function ue(e, t, i) {
@@ -563,7 +563,7 @@ function ue(e, t, i) {
563
563
  throw new Error(
564
564
  "Cannot undo: skip value from reducer cannot be used with UNDO action"
565
565
  );
566
- const [l] = r.document.operations[n].slice(-1), p = l.type === "NOOP" && l.skip > 0;
566
+ const l = r.document.operations[n].at(-1), p = l && l.type === "NOOP" && l.skip > 0;
567
567
  if (r.skip += a, p) {
568
568
  r.skip += l.skip;
569
569
  const h = r.document.operations[n][r.document.operations[n].length - 2];
@@ -668,7 +668,7 @@ function ge(e, t) {
668
668
  const Ft = "SET_NAME", X = "UNDO", Y = "REDO", st = "PRUNE", Rt = "LOAD_STATE", he = "NOOP";
669
669
  function xe(e, t) {
670
670
  let i;
671
- return "index" in t ? i = { ...t } : i = e.operations[t.scope].slice(-1)[0], ((i == null ? void 0 : i.index) ?? -1) + 1;
671
+ return "index" in t ? i = { ...t } : i = e.operations[t.scope].at(-1), ((i == null ? void 0 : i.index) ?? -1) + 1;
672
672
  }
673
673
  function be(e, t) {
674
674
  return {
@@ -0,0 +1,47 @@
1
+ import { ExtendedState, OperationScope } from '../types';
2
+ import { LoadStateAction, PruneAction, RedoAction, SetNameAction, UndoAction, NOOPAction } from './types';
3
+ /**
4
+ * Changes the name of the document.
5
+ *
6
+ * @param name - The name to be set in the document.
7
+ * @category Actions
8
+ */
9
+ export declare const setName: (name: string) => SetNameAction;
10
+ /**
11
+ * Cancels the last `count` operations.
12
+ *
13
+ * @param count - Number of operations to cancel
14
+ * @category Actions
15
+ */
16
+ export declare const undo: (skip?: number, scope?: OperationScope) => UndoAction;
17
+ /**
18
+ * Cancels the last `count` {@link undo | UNDO} operations.
19
+ *
20
+ * @param count - Number of UNDO operations to cancel
21
+ * @category Actions
22
+ */
23
+ export declare const redo: (count?: number, scope?: OperationScope) => RedoAction;
24
+ /**
25
+ * Joins multiple operations into a single {@link loadState | LOAD_STATE} operation.
26
+ *
27
+ * @remarks
28
+ * Useful to keep operations history smaller. Operations to prune are selected by index,
29
+ * similar to the {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice | slice} method in Arrays.
30
+ *
31
+ * @param start - Index of the first operation to prune
32
+ * @param end - Index of the last operation to prune
33
+ * @category Actions
34
+ */
35
+ export declare const prune: (start?: number | undefined, end?: number | undefined, scope?: OperationScope) => PruneAction;
36
+ /**
37
+ * Replaces the state of the document.
38
+ *
39
+ * @remarks
40
+ * This action shouldn't be used directly. It is dispatched by the {@link prune} action.
41
+ *
42
+ * @param state - State to be set in the document.
43
+ * @param operations - Number of operations that were removed from the previous state.
44
+ * @category Actions
45
+ */
46
+ export declare const loadState: <S, T>(state: Pick<ExtendedState<S, T>, "name" | "state">, operations: number) => LoadStateAction;
47
+ export declare const noop: (scope?: OperationScope) => NOOPAction;