document-model 1.0.54 → 1.1.0-experimental.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/cjs/document-model.js +1 -1
- package/dist/browser/cjs/document.js +1 -1
- package/dist/browser/cjs/index.js +1 -1
- package/dist/browser/cjs/internal/index-DZx9eknf.js +1 -0
- package/dist/browser/cjs/internal/{index-CnVGNZ9_.js → index-DypcJuba.js} +1 -1
- package/dist/browser/cjs/internal/object-BU2CI8g7.js +25 -0
- package/dist/browser/es/document-model.js +2 -2
- package/dist/browser/es/document.js +2 -2
- package/dist/browser/es/index.js +3 -3
- package/dist/browser/es/internal/index-BP3Z2ZVF.js +43 -0
- package/dist/browser/es/internal/{index-aS_vqu4O.js → index-CyBZ1dJQ.js} +1 -1
- package/dist/browser/es/internal/object-CPDHmXxz.js +2712 -0
- package/dist/browser/src/document/reducer.d.ts +13 -2
- package/dist/browser/src/document/utils/base.d.ts +1 -1
- package/dist/browser/src/document/utils/document-helpers.d.ts +53 -0
- package/dist/browser/src/document/utils/index.d.ts +1 -0
- package/dist/node/cjs/document-model.js +1 -1
- package/dist/node/cjs/document.js +1 -1
- package/dist/node/cjs/index.js +1 -1
- package/dist/node/cjs/internal/{index-JtuONOcD.js → index-Bt4KwBzM.js} +1 -1
- package/dist/node/cjs/internal/index-CwTTSCCW.js +1 -0
- package/dist/node/cjs/internal/object-Bc_eSRcx.js +20 -0
- package/dist/node/es/document-model.js +3 -3
- package/dist/node/es/document.js +3 -3
- package/dist/node/es/index.js +4 -4
- package/dist/node/es/internal/{index-BclkoIYP.js → index-6nUwJlFL.js} +2 -2
- package/dist/node/es/internal/index-CLgAZiia.js +43 -0
- package/dist/node/es/internal/object-DofGWMf1.js +1610 -0
- package/dist/node/src/document/reducer.d.ts +13 -2
- package/dist/node/src/document/utils/base.d.ts +1 -1
- package/dist/node/src/document/utils/document-helpers.d.ts +53 -0
- package/dist/node/src/document/utils/index.d.ts +1 -0
- package/package.json +7 -2
- package/dist/browser/cjs/internal/index-BVWyYyNE.js +0 -1
- package/dist/browser/cjs/internal/object-5l5_pTNL.js +0 -25
- package/dist/browser/es/internal/index-CF0d1_Cg.js +0 -42
- package/dist/browser/es/internal/object-BdaEhPk1.js +0 -2507
- package/dist/node/cjs/internal/index-B9gc2lPN.js +0 -1
- package/dist/node/cjs/internal/object-D6wRzEDN.js +0 -20
- package/dist/node/es/internal/index-EY0PPZnJ.js +0 -42
- package/dist/node/es/internal/object-BxC3xMqY.js +0 -1405
- package/dist/src/document/actions/creators.d.ts +0 -47
- package/dist/src/document/actions/index.d.ts +0 -14
- package/dist/src/document/actions/types.d.ts +0 -15
- package/dist/src/document/index.d.ts +0 -6
- package/dist/src/document/object.d.ts +0 -1175
- package/dist/src/document/reducer.d.ts +0 -32
- package/dist/src/document/schema/index.d.ts +0 -2
- package/dist/src/document/schema/types.d.ts +0 -176
- package/dist/src/document/schema/zod.d.ts +0 -113
- package/dist/src/document/signal.d.ts +0 -29
- package/dist/src/document/types.d.ts +0 -249
- package/dist/src/document/utils/base.d.ts +0 -85
- package/dist/src/document/utils/file.d.ts +0 -48
- package/dist/src/document/utils/index.d.ts +0 -4
- package/dist/src/document/utils/node.d.ts +0 -9
- package/dist/src/document/utils/validation.d.ts +0 -2
- package/dist/src/document-model/custom/reducers/header.d.ts +0 -2
- package/dist/src/document-model/custom/reducers/module.d.ts +0 -2
- package/dist/src/document-model/custom/reducers/operation-error.d.ts +0 -2
- package/dist/src/document-model/custom/reducers/operation-example.d.ts +0 -2
- package/dist/src/document-model/custom/reducers/operation.d.ts +0 -2
- package/dist/src/document-model/custom/reducers/state.d.ts +0 -2
- package/dist/src/document-model/custom/reducers/versioning.d.ts +0 -7
- package/dist/src/document-model/custom/utils.d.ts +0 -7
- package/dist/src/document-model/gen/actions.d.ts +0 -15
- package/dist/src/document-model/gen/creators.d.ts +0 -7
- package/dist/src/document-model/gen/document-model.d.ts +0 -2
- package/dist/src/document-model/gen/header/actions.d.ts +0 -9
- package/dist/src/document-model/gen/header/creators.d.ts +0 -8
- package/dist/src/document-model/gen/header/object.d.ts +0 -12
- package/dist/src/document-model/gen/header/operations.d.ts +0 -10
- package/dist/src/document-model/gen/index.d.ts +0 -5
- package/dist/src/document-model/gen/module/actions.d.ts +0 -8
- package/dist/src/document-model/gen/module/creators.d.ts +0 -7
- package/dist/src/document-model/gen/module/object.d.ts +0 -11
- package/dist/src/document-model/gen/module/operations.d.ts +0 -9
- package/dist/src/document-model/gen/object.d.ts +0 -28
- package/dist/src/document-model/gen/operation/actions.d.ts +0 -13
- package/dist/src/document-model/gen/operation/creators.d.ts +0 -12
- package/dist/src/document-model/gen/operation/object.d.ts +0 -16
- package/dist/src/document-model/gen/operation/operations.d.ts +0 -14
- package/dist/src/document-model/gen/operation-error/actions.d.ts +0 -10
- package/dist/src/document-model/gen/operation-error/creators.d.ts +0 -9
- package/dist/src/document-model/gen/operation-error/object.d.ts +0 -13
- package/dist/src/document-model/gen/operation-error/operations.d.ts +0 -11
- package/dist/src/document-model/gen/operation-example/actions.d.ts +0 -7
- package/dist/src/document-model/gen/operation-example/creators.d.ts +0 -6
- package/dist/src/document-model/gen/operation-example/object.d.ts +0 -10
- package/dist/src/document-model/gen/operation-example/operations.d.ts +0 -8
- package/dist/src/document-model/gen/reducer.d.ts +0 -5
- package/dist/src/document-model/gen/schema/index.d.ts +0 -2
- package/dist/src/document-model/gen/schema/types.d.ts +0 -453
- package/dist/src/document-model/gen/schema/zod.d.ts +0 -453
- package/dist/src/document-model/gen/state/actions.d.ts +0 -9
- package/dist/src/document-model/gen/state/creators.d.ts +0 -8
- package/dist/src/document-model/gen/state/object.d.ts +0 -12
- package/dist/src/document-model/gen/state/operations.d.ts +0 -10
- package/dist/src/document-model/gen/types.d.ts +0 -8
- package/dist/src/document-model/gen/utils.d.ts +0 -6
- package/dist/src/document-model/gen/versioning/actions.d.ts +0 -8
- package/dist/src/document-model/gen/versioning/creators.d.ts +0 -7
- package/dist/src/document-model/gen/versioning/object.d.ts +0 -11
- package/dist/src/document-model/gen/versioning/operations.d.ts +0 -9
- package/dist/src/document-model/index.d.ts +0 -80
- package/dist/src/index.d.ts +0 -25
- package/dist/vite.config.d.ts +0 -2
- package/dist/vitest.config.d.ts +0 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseAction } from './actions/types';
|
|
2
2
|
import { UndoRedoAction } from './schema';
|
|
3
|
-
import { Action, Document, ImmutableStateReducer, Operation, ReducerOptions } from './types';
|
|
3
|
+
import { Action, Document, ImmutableStateReducer, Operation, ReducerOptions, State } from './types';
|
|
4
4
|
import { SignalDispatch } from './signal';
|
|
5
5
|
type UndoRedoProcessResult<T, A extends Action, L> = {
|
|
6
6
|
document: Document<T, A, L>;
|
|
@@ -28,5 +28,16 @@ export declare function processUndoRedo<T, A extends Action, L>(document: Docume
|
|
|
28
28
|
* specific to the document's state.
|
|
29
29
|
* @returns The new state of the document.
|
|
30
30
|
*/
|
|
31
|
-
export declare function baseReducer<T, A extends Action, L>(document: Document<T, A, L>, action: A | BaseAction | Operation, customReducer: ImmutableStateReducer<T, A, L>, dispatch?: SignalDispatch, options?: ReducerOptions):
|
|
31
|
+
export declare function baseReducer<T, A extends Action, L>(document: Document<T, A, L>, action: A | BaseAction | Operation, customReducer: ImmutableStateReducer<T, A, L>, dispatch?: SignalDispatch, options?: ReducerOptions): {
|
|
32
|
+
name: string;
|
|
33
|
+
revision: Required<Record<import("./types").OperationScope, number>>;
|
|
34
|
+
documentType: string;
|
|
35
|
+
created: string;
|
|
36
|
+
lastModified: string;
|
|
37
|
+
state: State<T, L>;
|
|
38
|
+
attachments: import("./types").FileRegistry;
|
|
39
|
+
operations: Required<Record<import("./types").OperationScope, Operation<BaseAction | A>[]>>;
|
|
40
|
+
initialState: import("./types").ExtendedState<T, L>;
|
|
41
|
+
clipboard: Operation<BaseAction | A>[];
|
|
42
|
+
};
|
|
32
43
|
export {};
|
|
@@ -74,7 +74,7 @@ export declare function mapSkippedOperations<A extends Action>(operations: Opera
|
|
|
74
74
|
export declare function calculateSkipsLeft<A extends Action>(operations: Operation<BaseAction | A>[], currentIndex: number, skip: number): number;
|
|
75
75
|
export declare function sortOperations<A extends Action>(operations: DocumentOperations<A>): Operation<BaseAction | A>[];
|
|
76
76
|
export declare function sortMappedOperations<A extends Action>(operations: DocumentOperationsIgnoreMap<A>): MappedOperation<A>[];
|
|
77
|
-
export declare function replayOperations<T, A extends Action, L>(initialState: ExtendedState<T, L>,
|
|
77
|
+
export declare function replayOperations<T, A extends Action, L>(initialState: ExtendedState<T, L>, clearedOperations: DocumentOperations<A>, reducer: ImmutableStateReducer<T, A, L>, dispatch?: SignalDispatch, header?: DocumentHeader, documentReducer?: typeof baseReducer, skipHeaderOperations?: SkipHeaderOperations, options?: {
|
|
78
78
|
checkHashes?: boolean;
|
|
79
79
|
}): Document<T, A, L>;
|
|
80
80
|
export type SkipHeaderOperations = Partial<Record<OperationScope, number>>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Operation, OperationScope, Action, DocumentOperations } from '../types';
|
|
2
|
+
export type OperationIndex = {
|
|
3
|
+
index: number;
|
|
4
|
+
skip: number;
|
|
5
|
+
};
|
|
6
|
+
export declare enum IntegrityIssueType {
|
|
7
|
+
UNEXPECTED_INDEX = "UNEXPECTED_INDEX"
|
|
8
|
+
}
|
|
9
|
+
export declare enum IntegrityIssueSubType {
|
|
10
|
+
DUPLICATED_INDEX = "DUPLICATED_INDEX",
|
|
11
|
+
MISSING_INDEX = "MISSING_INDEX"
|
|
12
|
+
}
|
|
13
|
+
type IntegrityIssue = {
|
|
14
|
+
operation: OperationIndex;
|
|
15
|
+
issue: IntegrityIssueType;
|
|
16
|
+
category: IntegrityIssueSubType;
|
|
17
|
+
message: string;
|
|
18
|
+
};
|
|
19
|
+
type Reshuffle = (startIndex: OperationIndex, opsA: Operation[], opsB: Operation[]) => Operation[];
|
|
20
|
+
export declare function checkCleanedOperationsIntegrity(sortedOperations: Operation[]): IntegrityIssue[];
|
|
21
|
+
export declare function garbageCollect<A extends OperationIndex>(sortedOperations: A[]): A[];
|
|
22
|
+
export declare function addUndo(sortedOperations: Operation[]): Operation[];
|
|
23
|
+
export declare function sortOperations<A extends OperationIndex>(operations: A[]): A[];
|
|
24
|
+
export declare const reshuffleByTimestamp: Reshuffle;
|
|
25
|
+
export declare const reshuffleByTimestampAndIndex: Reshuffle;
|
|
26
|
+
export declare function operationsAreEqual(op1: Operation, op2: Operation): boolean;
|
|
27
|
+
export declare function attachBranch(trunk: Operation[], newBranch: Operation[]): [Operation[], Operation[]];
|
|
28
|
+
export declare function precedes(op1: Operation, op2: Operation): boolean;
|
|
29
|
+
export declare function split(sortedTargetOperations: Operation[], sortedMergeOperations: Operation[]): [Operation[], Operation[], Operation[]];
|
|
30
|
+
export declare function merge(sortedTargetOperations: Operation[], sortedMergeOperations: Operation[], reshuffle: Reshuffle): Operation[];
|
|
31
|
+
export declare function nextSkipNumber<A extends OperationIndex>(sortedOperations: A[]): number;
|
|
32
|
+
export declare const checkOperationsIntegrity: (operations: Operation[]) => IntegrityIssue[];
|
|
33
|
+
export type OperationsByScope = Partial<Record<OperationScope, Operation[]>>;
|
|
34
|
+
export declare const groupOperationsByScope: (operations: Operation[]) => OperationsByScope;
|
|
35
|
+
type PrepareOperationsResult = {
|
|
36
|
+
validOperations: Operation[];
|
|
37
|
+
invalidOperations: Operation[];
|
|
38
|
+
duplicatedOperations: Operation[];
|
|
39
|
+
integrityIssues: IntegrityIssue[];
|
|
40
|
+
};
|
|
41
|
+
export declare const prepareOperations: (operationsHistory: Operation[], newOperations: Operation[]) => PrepareOperationsResult;
|
|
42
|
+
export declare function removeExistingOperations(newOperations: Operation[], operationsHistory: Operation[]): Operation[];
|
|
43
|
+
export type SkipHeaderOperationIndex = Partial<Pick<OperationIndex, 'index'>> & Pick<OperationIndex, 'skip'>;
|
|
44
|
+
/**
|
|
45
|
+
* Skips header operations and returns the remaining operations.
|
|
46
|
+
*
|
|
47
|
+
* @param operations - The array of operations.
|
|
48
|
+
* @param skipHeaderOperation - The skip header operation index.
|
|
49
|
+
* @returns The remaining operations after skipping header operations.
|
|
50
|
+
*/
|
|
51
|
+
export declare function skipHeaderOperations<A extends OperationIndex>(operations: A[], skipHeaderOperation: SkipHeaderOperationIndex): A[];
|
|
52
|
+
export declare function grabageCollectDocumentOperations<A extends Action>(documentOperations: DocumentOperations<A>): DocumentOperations<A>;
|
|
53
|
+
export {};
|
|
@@ -2,3 +2,4 @@ export * from './base';
|
|
|
2
2
|
export { createAction, createDocument, createExtendedState, createReducer, hashDocument, hashKey, isBaseAction, mapSkippedOperations, readOnly, replayDocument, replayOperations, sortMappedOperations, sortOperations, } from './base';
|
|
3
3
|
export * from './file';
|
|
4
4
|
export * from './validation';
|
|
5
|
+
export * as documentHelpers from './document-helpers';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./internal/object-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require("./internal/object-Bc_eSRcx.js");require("immer");require("jszip");require("crypto");require("fs");require("https");require("path");const e=require("./internal/index-Bt4KwBzM.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-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./internal/object-Bc_eSRcx.js"),r=require("./internal/index-CwTTSCCW.js");require("immer");require("zod");require("jszip");require("crypto");require("fs");require("https");require("path");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;
|
package/dist/node/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./internal/index-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./internal/index-CwTTSCCW.js"),o=require("./internal/index-Bt4KwBzM.js");require("./internal/object-Bc_eSRcx.js");require("immer");require("zod");require("jszip");require("crypto");require("fs");require("https");require("path");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-
|
|
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-Bc_eSRcx.js");require("immer");require("jszip");require("crypto");require("fs");require("https");require("path");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 @@
|
|
|
1
|
+
"use strict";const e=require("./object-Bc_eSRcx.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,documentHelpers:e.documentHelpers,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;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";var ue=Object.defineProperty;var fe=(t,e,n)=>e in t?ue(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var at=(t,e,n)=>(fe(t,typeof e!="symbol"?e+"":e,n),n);const J=require("immer"),u=require("zod"),Tt=require("jszip"),de=require("crypto"),ft=require("fs"),ge=require("https"),he=require("path"),_t=t=>t!=null,xe=u.z.any().refine(t=>_t(t)),Nt=u.z.enum(["LOAD_STATE"]),vt=u.z.enum(["PRUNE"]),It=u.z.enum(["REDO"]),At=u.z.enum(["SET_NAME"]),Mt=u.z.enum(["UNDO"]);function ye(){return u.z.object({__typename:u.z.literal("Action").optional(),type:u.z.string()})}function et(){return u.z.literal("global").or(u.z.literal("local"))}function Pt(){return u.z.union([Ft(),qt(),Ct(),Lt(),Ut()])}function be(){return u.z.object({__typename:u.z.literal("DocumentFile").optional(),data:u.z.string(),extension:u.z.string().nullable(),fileName:u.z.string().nullable(),mimeType:u.z.string()})}function Ft(){return u.z.object({input:u.z.lazy(()=>yt()),type:Nt,scope:et()})}function yt(){return u.z.object({operations:u.z.number(),state:u.z.lazy(()=>Rt())})}function Rt(){return u.z.object({data:u.z.unknown().nullish(),name:u.z.string()})}function we(){return u.z.object({__typename:u.z.literal("Operation").optional(),hash:u.z.string(),index:u.z.number(),timestamp:u.z.string().datetime(),type:u.z.string()})}function qt(){return u.z.object({input:u.z.lazy(()=>bt()),type:vt,scope:et()})}function bt(){return u.z.object({end:u.z.number().nullish(),start:u.z.number().nullish()})}const wt=u.z.number;function Ct(){return u.z.object({input:wt(),type:It,scope:et()})}const Ot=u.z.string;function Lt(){return u.z.object({input:Ot(),type:At,scope:u.z.literal("global")})}function Oe(){return u.z.object({__typename:u.z.literal("SetNameOperation").optional(),hash:u.z.string(),index:u.z.number(),input:u.z.string(),timestamp:u.z.string().datetime(),type:u.z.string()})}const St=u.z.number;function Ut(){return u.z.object({input:St(),type:Mt,scope:et()})}const Se=Object.freeze(Object.defineProperty({__proto__:null,ActionSchema:ye,BaseActionSchema:Pt,DocumentFileSchema:be,LoadStateActionInputSchema:yt,LoadStateActionSchema:Ft,LoadStateActionStateInputSchema:Rt,Load_StateSchema:Nt,OperationSchema:we,OperationScopeSchema:et,PruneActionInputSchema:bt,PruneActionSchema:qt,PruneSchema:vt,RedoActionInputSchema:wt,RedoActionSchema:Ct,RedoSchema:It,SetNameActionInputSchema:Ot,SetNameActionSchema:Lt,SetNameOperationSchema:Oe,Set_NameSchema:At,UndoActionInputSchema:St,UndoActionSchema:Ut,UndoSchema:Mt,definedNonNullAnySchema:xe,isDefinedNonNullAny:_t},Symbol.toStringTag,{value:"Module"}));function je(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var dt={exports:{}};(function(t,e){const{hasOwnProperty:n}=Object.prototype,i=C();i.configure=C,i.stringify=i,i.default=i,e.stringify=i,e.configure=C,t.exports=i;const o=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]|[\ud800-\udbff](?![\udc00-\udfff])|(?:[^\ud800-\udbff]|^)[\udc00-\udfff]/;function r(l){return l.length<5e3&&!o.test(l)?`"${l}"`:JSON.stringify(l)}function a(l){if(l.length>200)return l.sort();for(let m=1;m<l.length;m++){const S=l[m];let I=m;for(;I!==0&&l[I-1]>S;)l[I]=l[I-1],I--;l[I]=S}return l}const p=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function c(l){return p.call(l)!==void 0&&l.length!==0}function f(l,m,S){l.length<S&&(S=l.length);const I=m===","?"":" ";let K=`"0":${I}${l[0]}`;for(let F=1;F<S;F++)K+=`${m}"${F}":${I}${l[F]}`;return K}function x(l){if(n.call(l,"circularValue")){const m=l.circularValue;if(typeof m=="string")return`"${m}"`;if(m==null)return m;if(m===Error||m===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(l,m){let S;if(n.call(l,m)&&(S=l[m],typeof S!="boolean"))throw new TypeError(`The "${m}" argument must be of type boolean`);return S===void 0?!0:S}function w(l,m){let S;if(n.call(l,m)){if(S=l[m],typeof S!="number")throw new TypeError(`The "${m}" argument must be of type number`);if(!Number.isInteger(S))throw new TypeError(`The "${m}" argument must be an integer`);if(S<1)throw new RangeError(`The "${m}" argument must be >= 1`)}return S===void 0?1/0:S}function y(l){return l===1?"1 item":`${l} items`}function T(l){const m=new Set;for(const S of l)(typeof S=="string"||typeof S=="number")&&m.add(String(S));return m}function N(l){if(n.call(l,"strict")){const m=l.strict;if(typeof m!="boolean")throw new TypeError('The "strict" argument must be of type boolean');if(m)return S=>{let I=`Object can not safely be stringified. Received type ${typeof S}`;throw typeof S!="function"&&(I+=` (${S.toString()})`),new Error(I)}}}function C(l){l={...l};const m=N(l);m&&(l.bigint===void 0&&(l.bigint=!1),"circularValue"in l||(l.circularValue=Error));const S=x(l),I=E(l,"bigint"),K=E(l,"deterministic"),F=w(l,"maximumDepth"),k=w(l,"maximumBreadth");function ot(A,s,d,b,h,j){let g=s[A];switch(typeof g=="object"&&g!==null&&typeof g.toJSON=="function"&&(g=g.toJSON(A)),g=b.call(s,A,g),typeof g){case"string":return r(g);case"object":{if(g===null)return"null";if(d.indexOf(g)!==-1)return S;let O="",D=",";const z=j;if(Array.isArray(g)){if(g.length===0)return"[]";if(F<d.length+1)return'"[Array]"';d.push(g),h!==""&&(j+=h,O+=`
|
|
2
|
+
${j}`,D=`,
|
|
3
|
+
${j}`);const P=Math.min(g.length,k);let L=0;for(;L<P-1;L++){const rt=ot(String(L),g,d,b,h,j);O+=rt!==void 0?rt:"null",O+=D}const U=ot(String(L),g,d,b,h,j);if(O+=U!==void 0?U:"null",g.length-1>k){const rt=g.length-k-1;O+=`${D}"... ${y(rt)} not stringified"`}return h!==""&&(O+=`
|
|
4
|
+
${z}`),d.pop(),`[${O}]`}let _=Object.keys(g);const v=_.length;if(v===0)return"{}";if(F<d.length+1)return'"[Object]"';let $="",M="";h!==""&&(j+=h,D=`,
|
|
5
|
+
${j}`,$=" ");const q=Math.min(v,k);K&&!c(g)&&(_=a(_)),d.push(g);for(let P=0;P<q;P++){const L=_[P],U=ot(L,g,d,b,h,j);U!==void 0&&(O+=`${M}${r(L)}:${$}${U}`,M=D)}if(v>k){const P=v-k;O+=`${M}"...":${$}"${y(P)} not stringified"`,M=D}return h!==""&&M.length>1&&(O=`
|
|
6
|
+
${j}${O}
|
|
7
|
+
${z}`),d.pop(),`{${O}}`}case"number":return isFinite(g)?String(g):m?m(g):"null";case"boolean":return g===!0?"true":"false";case"undefined":return;case"bigint":if(I)return String(g);default:return m?m(g):void 0}}function st(A,s,d,b,h,j){switch(typeof s=="object"&&s!==null&&typeof s.toJSON=="function"&&(s=s.toJSON(A)),typeof s){case"string":return r(s);case"object":{if(s===null)return"null";if(d.indexOf(s)!==-1)return S;const g=j;let O="",D=",";if(Array.isArray(s)){if(s.length===0)return"[]";if(F<d.length+1)return'"[Array]"';d.push(s),h!==""&&(j+=h,O+=`
|
|
8
|
+
${j}`,D=`,
|
|
9
|
+
${j}`);const v=Math.min(s.length,k);let $=0;for(;$<v-1;$++){const q=st(String($),s[$],d,b,h,j);O+=q!==void 0?q:"null",O+=D}const M=st(String($),s[$],d,b,h,j);if(O+=M!==void 0?M:"null",s.length-1>k){const q=s.length-k-1;O+=`${D}"... ${y(q)} not stringified"`}return h!==""&&(O+=`
|
|
10
|
+
${g}`),d.pop(),`[${O}]`}d.push(s);let z="";h!==""&&(j+=h,D=`,
|
|
11
|
+
${j}`,z=" ");let _="";for(const v of b){const $=st(v,s[v],d,b,h,j);$!==void 0&&(O+=`${_}${r(v)}:${z}${$}`,_=D)}return h!==""&&_.length>1&&(O=`
|
|
12
|
+
${j}${O}
|
|
13
|
+
${g}`),d.pop(),`{${O}}`}case"number":return isFinite(s)?String(s):m?m(s):"null";case"boolean":return s===!0?"true":"false";case"undefined":return;case"bigint":if(I)return String(s);default:return m?m(s):void 0}}function Z(A,s,d,b,h){switch(typeof s){case"string":return r(s);case"object":{if(s===null)return"null";if(typeof s.toJSON=="function"){if(s=s.toJSON(A),typeof s!="object")return Z(A,s,d,b,h);if(s===null)return"null"}if(d.indexOf(s)!==-1)return S;const j=h;if(Array.isArray(s)){if(s.length===0)return"[]";if(F<d.length+1)return'"[Array]"';d.push(s),h+=b;let $=`
|
|
14
|
+
${h}`;const M=`,
|
|
15
|
+
${h}`,q=Math.min(s.length,k);let P=0;for(;P<q-1;P++){const U=Z(String(P),s[P],d,b,h);$+=U!==void 0?U:"null",$+=M}const L=Z(String(P),s[P],d,b,h);if($+=L!==void 0?L:"null",s.length-1>k){const U=s.length-k-1;$+=`${M}"... ${y(U)} not stringified"`}return $+=`
|
|
16
|
+
${j}`,d.pop(),`[${$}]`}let g=Object.keys(s);const O=g.length;if(O===0)return"{}";if(F<d.length+1)return'"[Object]"';h+=b;const D=`,
|
|
17
|
+
${h}`;let z="",_="",v=Math.min(O,k);c(s)&&(z+=f(s,D,k),g=g.slice(s.length),v-=s.length,_=D),K&&(g=a(g)),d.push(s);for(let $=0;$<v;$++){const M=g[$],q=Z(M,s[M],d,b,h);q!==void 0&&(z+=`${_}${r(M)}: ${q}`,_=D)}if(O>k){const $=O-k;z+=`${_}"...": "${y($)} not stringified"`,_=D}return _!==""&&(z=`
|
|
18
|
+
${h}${z}
|
|
19
|
+
${j}`),d.pop(),`{${z}}`}case"number":return isFinite(s)?String(s):m?m(s):"null";case"boolean":return s===!0?"true":"false";case"undefined":return;case"bigint":if(I)return String(s);default:return m?m(s):void 0}}function Q(A,s,d){switch(typeof s){case"string":return r(s);case"object":{if(s===null)return"null";if(typeof s.toJSON=="function"){if(s=s.toJSON(A),typeof s!="object")return Q(A,s,d);if(s===null)return"null"}if(d.indexOf(s)!==-1)return S;let b="";if(Array.isArray(s)){if(s.length===0)return"[]";if(F<d.length+1)return'"[Array]"';d.push(s);const D=Math.min(s.length,k);let z=0;for(;z<D-1;z++){const v=Q(String(z),s[z],d);b+=v!==void 0?v:"null",b+=","}const _=Q(String(z),s[z],d);if(b+=_!==void 0?_:"null",s.length-1>k){const v=s.length-k-1;b+=`,"... ${y(v)} not stringified"`}return d.pop(),`[${b}]`}let h=Object.keys(s);const j=h.length;if(j===0)return"{}";if(F<d.length+1)return'"[Object]"';let g="",O=Math.min(j,k);c(s)&&(b+=f(s,",",k),h=h.slice(s.length),O-=s.length,g=","),K&&(h=a(h)),d.push(s);for(let D=0;D<O;D++){const z=h[D],_=Q(z,s[z],d);_!==void 0&&(b+=`${g}${r(z)}:${_}`,g=",")}if(j>k){const D=j-k;b+=`${g}"...":"${y(D)} not stringified"`}return d.pop(),`{${b}}`}case"number":return isFinite(s)?String(s):m?m(s):"null";case"boolean":return s===!0?"true":"false";case"undefined":return;case"bigint":if(I)return String(s);default:return m?m(s):void 0}}function me(A,s,d){if(arguments.length>1){let b="";if(typeof d=="number"?b=" ".repeat(Math.min(d,10)):typeof d=="string"&&(b=d.slice(0,10)),s!=null){if(typeof s=="function")return ot("",{"":A},[],s,b,"");if(Array.isArray(s))return st("",A,[],T(s),b,"")}if(b.length!==0)return Z("",A,[],b,"")}return Q("",A,[])}return me}})(dt,dt.exports);var Ee=dt.exports;const G=je(Ee);G.configure;function $e(t,e){return{...t,name:e}}function De(t,e,n){const{scope:i,input:o}=e,r={document:t,action:e,skip:n};return J.produce(r,a=>{if(a.document.operations[i].length<1)throw new Error(`Cannot undo: no operations in history for scope "${i}"`);if(o<1)throw new Error("Invalid UNDO action: input value must be greater than 0");if(a.skip>0)throw new Error("Cannot undo: skip value from reducer cannot be used with UNDO action");const p=a.document.operations[i].at(-1),c=p&&p.type==="NOOP"&&p.skip>0;if(a.skip+=o,c){a.skip+=p.skip;const w=a.document.operations[i][a.document.operations[i].length-2];w&&p.index-w.index===1&&a.document.operations[i].pop()}if(a.document.operations[i].length<a.skip)throw new Error("Cannot undo: you can't undo more operations than the ones in the scope history");const f=a.document.operations[i].length-1;let x=o,E=c?f-p.skip:f;for(;x>0&&E>=0;){const w=a.document.operations[i][E];if(!w){x--,E--;continue}w.type==="NOOP"&&w.skip>0?(E=E-(w.skip+1),a.skip+=w.skip+1):(a.document.clipboard.push({...w}),x--,E--)}a.action=le(i)})}function ke(t,e,n){const{scope:i,input:o}=e,r={document:t,action:e,skip:n};return J.produce(r,a=>{if(a.skip>0)throw new Error("Cannot redo: skip value from reducer cannot be used with REDO action");if(o>1)throw new Error("Cannot redo: you can only redo one operation at a time");if(o<1)throw new Error("Invalid REDO action: invalid redo input value");if(a.document.clipboard.length<1)throw new Error("Cannot redo: no operations in the clipboard");const p=a.document.clipboard.findLastIndex(f=>f.scope===i);if(p<0)throw new Error(`Cannot redo: no operations in clipboard for scope "${i}"`);const c=a.document.clipboard.splice(p,1)[0];a.action=J.castDraft({type:c.type,scope:c.scope,input:c.input})})}function ze(t,e,n){const{scope:i}=e,o=t.operations[i];let{input:{start:r,end:a}}=e;r=r||0,a=a||o.length;const p=o.slice(r,a),c=o.slice(0,r),f=o.slice(a),x=pt(t.initialState,{...t.operations,[i]:c.concat(p)},n),{name:E,state:w}=x,y=c.length,T=c.length?c[c.length-1].timestamp:f.length?f[0].timestamp:new Date().toISOString();return pt(t.initialState,{...t.operations,[i]:[...c,{...zt({name:E,state:w},p.length),timestamp:T,index:y,hash:mt({state:w},"global")},...f.map((N,C)=>({...N,index:y+C+1}))]},n)}function Te(t,e){return{...t,name:e.name,state:e.state??{global:{},local:{}}}}const Jt="SET_NAME",nt="UNDO",it="REDO",ct="PRUNE",Ht="LOAD_STATE",_e="NOOP",Vt={"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(Vt);var R=function(t,e,n,i){if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?i:n==="a"?i.call(t):i?i.value:e.get(t)},W,Y,B;class Ne{constructor(...e){W.set(this,new Map),Y.set(this,new Map),B.set(this,new Map);for(const n of e)this.define(n)}define(e,n=!1){for(let[i,o]of Object.entries(e)){i=i.toLowerCase(),o=o.map(p=>p.toLowerCase()),R(this,B,"f").has(i)||R(this,B,"f").set(i,new Set);const r=R(this,B,"f").get(i);let a=!0;for(let p of o){const c=p.startsWith("*");if(p=c?p.slice(1):p,r==null||r.add(p),a&&R(this,Y,"f").set(i,p),a=!1,c)continue;const f=R(this,W,"f").get(p);if(f&&f!=i&&!n)throw new Error(`"${i} -> ${p}" conflicts with "${f} -> ${p}". Pass \`force=true\` to override this definition.`);R(this,W,"f").set(p,i)}}return this}getType(e){if(typeof e!="string")return null;const n=e.replace(/^.*[/\\]/,"").toLowerCase(),i=n.replace(/^.*\./,"").toLowerCase(),o=n.length<e.length;return!(i.length<n.length-1)&&o?null:R(this,W,"f").get(i)??null}getExtension(e){var n;return typeof e!="string"?null:(e=(n=e==null?void 0:e.split)==null?void 0:n.call(e,";")[0],(e&&R(this,Y,"f").get(e.trim().toLowerCase()))??null)}getAllExtensions(e){return typeof e!="string"?null:R(this,B,"f").get(e.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 e of R(this,B,"f").values())Object.freeze(e);return this}_getTestState(){return{types:R(this,W,"f"),extensions:R(this,Y,"f")}}}W=new WeakMap,Y=new WeakMap,B=new WeakMap;const ve=new Ne(Vt)._freeze();function Ie(t,e,n){const i=he.join(t,e);return ft.mkdirSync(t,{recursive:!0}),new Promise((o,r)=>{try{ft.writeFile(i,n,{},a=>{a?r(a):o(i)})}catch(a){r(a)}})}function Bt(t){return ft.readFileSync(t)}function Ae(t){return new Promise((e,n)=>{ge.get(t,i=>{const o=[],r=i.headers["content-type"];i.on("data",a=>{o.push(a)}),i.on("end",()=>{e({buffer:Buffer.concat(o),mimeType:r})})}).on("error",i=>{n(i)})})}const Me=async t=>Bt(t),lt=(t,e="sha1")=>de.createHash(e).update(t).digest("base64");function Xt(t){const e=[],n=Object.keys(t);for(const i of n){const o=t[i].sort((r,a)=>r.index-a.index);for(let r=0;r<o.length;r++)o[r].index!==r&&e.push({message:`Invalid operation index ${o[r].index} at position ${r}`,details:{position:r,operation:o[r],scope:o[r].scope}})}return e}const jt=async t=>{const e=new Tt,{name:n,revision:i,documentType:o,created:r,lastModified:a}=t,p={name:n,revision:i,documentType:o,created:r,lastModified:a};return e.file("header.json",JSON.stringify(p,null,2)),e.file("state.json",JSON.stringify(t.initialState||{},null,2)),e.file("operations.json",JSON.stringify(t.operations,null,2)),Object.keys(t.attachments).forEach(f=>{const{data:x,...E}=t.attachments[f];e.file(f,x,{base64:!0,createFolders:!0,comment:JSON.stringify(E)})}),e},Kt=async(t,e,n,i)=>{const r=await(await jt(t)).generateAsync({type:"uint8array",streamFiles:!0}),a=i??t.name,p=`.${n}.zip`;return Ie(e,a.endsWith(p)?a:`${a}${p}`,r)},Pe=async(t,e)=>{const i=await(await jt(t)).generateAsync({type:"blob"}),o=await e.createWritable();await o.write(i),await o.close()},gt=async(t,e,n)=>{const i=Bt(t);return Wt(i,e,n)},Wt=async(t,e,n)=>{const i=new Tt;return await i.loadAsync(t),Fe(i,e,n)};async function Fe(t,e,n){const i=t.file("state.json");if(!i)throw new Error("Initial state not found");const o=await i.async("string"),r=JSON.parse(o),a=t.file("header.json");let p;a&&(p=JSON.parse(await a.async("string")));const c=t.file("operations.json");if(!c)throw new Error("Operations history not found");const f=JSON.parse(await c.async("string")),x=Xt(f);if(x.length){const w=x.map(y=>y.message);throw new Error(w.join(`
|
|
20
|
+
`))}let E=kt(r,f,e,void 0,p,{},n);return p&&(E={...E,...p}),E}function Gt(t){const e=t.replace(/^.*\./,"")||void 0,n=t.replace(/^.*[/\\]/,"")||void 0;return{extension:e,fileName:n}}async function Re(t){const{buffer:e,mimeType:n="application/octet-stream"}=await Ae(t),i=Gt(t),o=e.toString("base64");return{data:o,hash:lt(o),mimeType:n,...i}}async function qe(t){const e=await Me(t),n=ve.getType(t)||"application/octet-stream",i=Gt(t),o=e.toString("base64");return{data:o,hash:lt(o),mimeType:n,...i}}var Zt=(t=>(t.UNEXPECTED_INDEX="UNEXPECTED_INDEX",t))(Zt||{}),Qt=(t=>(t.DUPLICATED_INDEX="DUPLICATED_INDEX",t.MISSING_INDEX="MISSING_INDEX",t))(Qt||{});function Et(t){const e=[];let n=-1;for(const i of t){const o=i.index-i.skip;o!==n+1&&e.push({operation:{index:i.index,skip:i.skip},issue:"UNEXPECTED_INDEX",category:o>n+1?"MISSING_INDEX":"DUPLICATED_INDEX",message:`Expected index ${n+1} with skip 0 or equivalent, got index ${i.index} with skip ${i.skip}`}),n=i.index}return e}function H(t){var i,o,r;const e=[];let n=t.length-1;for(;n>-1;){e.unshift(t[n]);const a=(((i=t[n])==null?void 0:i.index)||0)-(((o=t[n])==null?void 0:o.skip)||0)-1;let p=n-1;for(;p>-1&&(((r=t[p])==null?void 0:r.index)||0)>a;)p--;n=p}return e}function Ce(t){const e=[...t],n=e[e.length-1];return n&&(n.type==="NOOP"?e.push({...n,index:n.index,type:"NOOP",skip:ee(t)}):e.push({type:"NOOP",index:n.index+1,timestamp:new Date().toISOString(),input:{},skip:1,scope:n.scope,hash:n.hash})),e}function V(t){return t.slice().sort((e,n)=>e.skip-n.skip).sort((e,n)=>e.index-n.index)}const Le=(t,e,n)=>[...e,...n].sort((i,o)=>new Date(i.timestamp).getTime()-new Date(o.timestamp).getTime()).map((i,o)=>({...i,index:t.index+o,skip:o===0?t.skip:0})),Ue=(t,e,n)=>[...e,...n].sort((i,o)=>new Date(i.timestamp).getTime()-new Date(o.timestamp).getTime()).sort((i,o)=>i.index-o.index).map((i,o)=>({...i,index:t.index+o,skip:o===0?t.skip:0}));function $t(t,e){return G(t)===G(e)}function Je(t,e){const n=H(V(t.slice())),i=H(V(e.slice()));if(n.length<1)return[i,[]];const o=[];let r=!1;for(;i.length>0;){const a=i[0];let p=n.shift();for(;p&&Yt(p,a);)o.push(p),p=n.shift();if(p?r||($t(p,a)?(i.shift(),o.push(p)):(n.unshift(p),r=!0)):r=!0,r){let c=i.shift();for(;c;)o.push(c),c=i.shift()}}if(!r){let a=n.shift();for(;a;)o.push(a),a=n.shift()}return[H(o),n]}function Yt(t,e){return t.index<e.index||t.index===e.index&&t.skip<e.skip}function te(t,e){const n=[],i=[],o=[],r=Math.max(t.length,e.length);let a=!1;for(let p=0;p<r;p++){const c=t[p],f=e[p];c&&f?!a&&$t(c,f)?n.push(c):(a=!0,i.push(c),o.push(f)):c?i.push(c):f&&o.push(f)}return[n,i,o]}function He(t,e,n){const[i,o,r]=te(H(t),H(e)),a=ut(i),p=1+Math.max(a,ut(o),ut(r)),c=n({index:p,skip:p-(a+1)},o,r);return i.concat(c)}function ut(t){const e=t[t.length-1];return e?e.index:-1}function ee(t){var i,o,r;if(t.length<1)return-1;const e=H(t);let n=(((i=e[e.length-1])==null?void 0:i.skip)||0)+1;return e.length>1&&(n+=((o=e[e.length-2])==null?void 0:o.skip)||0),(((r=e[e.length-1])==null?void 0:r.index)||-1)<n?-1:n}const Ve=t=>Et(H(V(t))),Be=t=>t.reduce((n,i)=>{var o;return n[i.scope]||(n[i.scope]=[]),(o=n[i.scope])==null||o.push(i),n},{}),Xe=(t,e)=>{var c;const n={integrityIssues:[],validOperations:[],invalidOperations:[],duplicatedOperations:[]},i=V(t),o=V(e),r=Et([...i,...o]),p=(c=[...r.filter(f=>f.category==="MISSING_INDEX")].sort((f,x)=>x.operation.index-f.operation.index).pop())==null?void 0:c.operation;for(const f of o){if(p&&f.index>=p.index){n.invalidOperations.push(f);continue}if(r.some(E=>E.operation.index===f.index&&E.operation.skip===f.skip&&E.category==="DUPLICATED_INDEX")){n.duplicatedOperations.push(f);continue}n.validOperations.push(f)}return n.integrityIssues.push(...r),n};function Ke(t,e){return t.filter(n=>!e.some(i=>n.type==="NOOP"&&n.skip===0&&n.index===i.index||n.index===i.index&&n.skip===i.skip&&n.scope===i.scope&&n.hash===i.hash&&n.type===i.type))}function ne(t,e){const[n]=V(t).slice(-1),i=(n==null?void 0:n.index)??-1,o=i+1,r={...e,index:e.index??o};if(r.index<i)throw new Error(`The skip header operation index must be greater than or equal to ${i}`);return(H(V([...t,r]))||[]).slice(0,-1)}function ht(t){return{...Object.entries(t).reduce((n,i)=>{const[o,r]=i;return{...n,[o]:H(V(r))}},{})}}const We=Object.freeze(Object.defineProperty({__proto__:null,IntegrityIssueSubType:Qt,IntegrityIssueType:Zt,addUndo:Ce,attachBranch:Je,checkCleanedOperationsIntegrity:Et,checkOperationsIntegrity:Ve,garbageCollect:H,grabageCollectDocumentOperations:ht,groupOperationsByScope:Be,merge:He,nextSkipNumber:ee,operationsAreEqual:$t,precedes:Yt,prepareOperations:Xe,removeExistingOperations:Ke,reshuffleByTimestamp:Le,reshuffleByTimestampAndIndex:Ue,skipHeaderOperations:ne,sortOperations:V,split:te},Symbol.toStringTag,{value:"Module"}));function Ge(t,e){let n;return"index"in e?n={...e}:n=t.operations[e.scope].at(-1),((n==null?void 0:n.index)??-1)+1}function Ze(t,e){return{...t,revision:{...t.revision,[e.scope]:Ge(t,e)},lastModified:new Date().toISOString()}}function Qe(t,e,n=0){if([nt,it,ct].includes(e.type))return t;const{scope:i}=e,o=t.operations[i].slice(0,t.revision[i]),r=[...o].pop();let a=((r==null?void 0:r.index)??-1)+1;if("index"in e){if(e.index-n>a)throw new Error(`Missing operations: expected ${a} with skip 0 or equivalent, got index ${e.index} with skip ${n}`);a=e.index}return o.push({...e,index:a,timestamp:new Date().toISOString(),hash:"",scope:i,skip:n,error:void 0}),{...t,operations:{...t.operations,[i]:o}}}function Ye(t,e,n=0){let i=Qe(t,e,n);return i=Ze(i,e),i}function tn(t,e,n){switch(Pt().parse(e),e.type){case Jt:return $e(t,e.input);case ct:return ze(t,e,n);case Ht:return Te(t,e.input.state);default:return t}}function en(t,e,n){switch(e.type){case nt:return De(t,e,n);case it:return ke(t,e,n);default:return{document:t,action:e,skip:n}}}function nn(t,e,n,i){const o=e.scope,r=t.operations[o].at(-1);if(!r)return t;const a=ht({...t.operations,[o]:ne(t.operations[o],r)}),{state:p}=pt(t.initialState,a,n,void 0,void 0,void 0);return{...t,state:p,operations:ht({...t.operations})}}function Dt(t,e,n,i,o={}){const{skip:r,ignoreSkipOperations:a=!1,reuseHash:p=!1}=o,c={...e},f=r||0;let x={...t};const E=!a&&(f>0||"index"in c&&c.skip>0);return xt(c)&&(x=tn(x,c,n)),x=Ye(x,c,f),E&&(x=nn(x,c,n)),x=J.produce(x,w=>{try{const y=n(w.state,c,i);if(y)return J.castDraft({...x,state:y})}catch(y){const T=x.operations[c.scope].length-1;w.operations[c.scope][T].error=y.message,w.operations[c.scope][T].skip=0,E&&(w.state=J.castDraft({...t.state}),w.operations=J.castDraft({...t.operations,[c.scope]:[...t.operations[c.scope],{...w.operations[c.scope][T]}]}))}}),J.produce(x,w=>{if([nt,it,ct].includes(c.type))return w;const y=c.scope||"global",T=p&&Object.prototype.hasOwnProperty.call(c,"hash")?c.hash:mt(w,y);w.operations[y][w.operations[y].length-1].hash=T,!xt(c)&&c.attachments&&c.attachments.forEach(N=>{const{hash:C,...l}=N;w.attachments[C]={...l}})})}function on(t){return t.type===_e&&t.skip!==void 0&&t.skip>0&&t.hash!==void 0}function sn(t){return[nt,it].includes(t.type)}function xt(t){return[Jt,nt,it,ct,Ht].includes(t.type)}function X(t,e,n,i,o="global"){if(!t)throw new Error("Empty action type");if(typeof t!="string")throw new Error(`Invalid action type: ${JSON.stringify(t)}`);const r={type:t,input:e,scope:o};n&&(r.attachments=n);try{i==null||i().parse(r.input)}catch(a){throw new Error(`Invalid action input: ${a}`)}return r}function ie(t,e=Dt){return(n,i,o,r)=>e(n,i,t,o,r)}const oe=(t,e)=>({name:"",documentType:"",revision:{global:0,local:0},created:new Date().toISOString(),lastModified:new Date().toISOString(),attachments:{},...t,state:(e==null?void 0:e(t==null?void 0:t.state))??(t==null?void 0:t.state)??{global:{},local:{}}}),se=(t,e)=>{const n=oe(t,e);return{...n,initialState:n,operations:{global:[],local:[]},clipboard:[]}},mt=(t,e="global")=>lt(G(t.state[e]||"")),rn=(t,e=1e3)=>{const n=Math.random()*e;return lt(`${(t??new Date).toISOString()}${n}`)};function tt(t){return J.castImmutable(J.freeze(t,!0))}function an(t,e){const n=[...t];let i=e||0,o=n.length>0?n[n.length-1].index:0;const r=[];for(const a of n.reverse()){if(i>0){const f=o-a.index;i-=f}if(i<0)throw new Error("Invalid operation index, missing operations");const p={ignore:i>0,operation:a},c=a.skip>0?a.skip+1:0;if(c>0&&c>i){const f=c-i;i=i+f}o=a.index,r.push(p)}return r.reverse()}function pn(t,e,n){const i=t.slice().sort((p,c)=>p.skip-c.skip).sort((p,c)=>p.index-c.index);let o=n,r=0,a=e;for(const p of i.reverse()){const c=a-p.index;if(o=o-c,o>-1)r++,a=p.index;else break}return r}function cn(t){return Object.values(t).flatMap(e=>e).sort((e,n)=>new Date(e.timestamp).getTime()-new Date(n.timestamp).getTime())}function ln(t){return Object.values(t).flatMap(e=>e).sort((e,n)=>new Date(e.operation.timestamp).getTime()-new Date(n.operation.timestamp).getTime())}function pt(t,e,n,i,o,r=Dt,a={},p){const c=ie(n,r);return kt(t,e,c,i,o,a,p)}function kt(t,e,n,i,o,r={},a){const p=(a==null?void 0:a.checkHashes)??!0,c=se(t),f=Object.values(e).flat(),x=f.reduce((y,T)=>n(y,T,i,{skip:T.skip,ignoreSkipOperations:!0,reuseHash:!p}),c);if(!p)for(const y of Object.keys(x.state))for(let T=f.length-1;T>=0;T--){const N=f[T];if(N.scope===y){if(N.hash!==mt(x,y))throw new Error(`Hash mismatch for scope ${y}`);break}}const E=Object.keys(x.operations).reduce((y,T)=>{const N=T;return{...y,[N]:[...x.operations[N].map((C,l)=>{var m;return{...C,timestamp:((m=e[N][l])==null?void 0:m.timestamp)??C.timestamp}})]}},{global:[],local:[]}),w=Object.values(E).reduce((y,T)=>{const N=T[T.length-1];return(N==null?void 0:N.timestamp)>y&&(y=N.timestamp),y},t.lastModified);return{...x,operations:E,lastModified:w}}function mn(t,e){return G(t)===G(e)}const re=t=>X("SET_NAME",t,void 0,Ot,void 0),ae=(t=1,e="global")=>X("UNDO",t,void 0,St,e),pe=(t=1,e="global")=>X("REDO",t,void 0,wt,e),ce=(t,e,n="global")=>X("PRUNE",{start:t,end:e},void 0,bt,n),zt=(t,e)=>X("LOAD_STATE",{state:t,operations:e},void 0,yt),le=(t="global")=>X("NOOP",{},void 0,void 0,t),un=Object.freeze(Object.defineProperty({__proto__:null,loadState:zt,noop:le,prune:ce,redo:pe,setName:re,undo:ae},Symbol.toStringTag,{value:"Module"}));class fn{constructor(e,n,i){at(this,"_document");at(this,"_reducer");at(this,"_signalDispatch");this._reducer=e,this._document=n,this._signalDispatch=i}dispatch(e,n){return this._document=this._reducer(this._document,e,this._signalDispatch,n),this}saveToFile(e,n,i){return Kt(this._document,e,n,i)}async loadFromFile(e){this._document=await gt(e,this._reducer)}static async stateFromFile(e,n){return await gt(e,n)}get state(){return tt(this._document.state)}get operations(){return tt(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(e){return this._document.revision[e]}get initialState(){return tt(this._document.initialState)}toDocument(){return tt(this._document)}getAttachment(e){return this._document.attachments[e]}setName(e){return this.dispatch(re(e)),this}undo(e){return this.dispatch(ae(e)),this}redo(e){return this.dispatch(pe(e)),this}prune(e,n){return this.dispatch(ce(e,n)),this}loadState(e,n){return this.dispatch(zt(e,n)),this}}function dn(t,e){e.forEach(n=>{Object.getOwnPropertyNames(n.prototype).forEach(i=>{Object.defineProperty(t.prototype,i,Object.getOwnPropertyDescriptor(n.prototype,i)||Object.create(null))})})}exports.BaseActions=un;exports.BaseDocument=fn;exports.applyMixins=dn;exports.baseReducer=Dt;exports.calculateSkipsLeft=pn;exports.createAction=X;exports.createDocument=se;exports.createExtendedState=oe;exports.createReducer=ie;exports.createZip=jt;exports.documentHelpers=We;exports.getLocalFile=qe;exports.getRemoteFile=Re;exports.hashDocument=mt;exports.hashKey=rn;exports.isBaseAction=xt;exports.isNoopOperation=on;exports.isSameDocument=mn;exports.isUndoRedo=sn;exports.loadFromFile=gt;exports.loadFromInput=Wt;exports.mapSkippedOperations=an;exports.processUndoRedo=en;exports.readOnly=tt;exports.replayDocument=kt;exports.replayOperations=pt;exports.saveToFile=Kt;exports.saveToFileHandle=Pe;exports.sortMappedOperations=ln;exports.sortOperations=cn;exports.validateOperations=Xt;exports.zod=Se;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import "./internal/object-
|
|
1
|
+
import "./internal/object-DofGWMf1.js";
|
|
2
2
|
import "immer";
|
|
3
|
+
import "jszip";
|
|
3
4
|
import "crypto";
|
|
4
5
|
import "fs";
|
|
5
6
|
import "https";
|
|
6
7
|
import "path";
|
|
7
|
-
import "
|
|
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-BclkoIYP.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-6nUwJlFL.js";
|
|
9
9
|
import "zod";
|
|
10
10
|
export {
|
|
11
11
|
p as Document,
|
package/dist/node/es/document.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { B as c, h as n, g as d,
|
|
2
|
-
import { i as B } from "./internal/index-
|
|
1
|
+
import { B as c, h as n, g as d, D as u, E as x, F as f } from "./internal/object-DofGWMf1.js";
|
|
2
|
+
import { i as B } from "./internal/index-CLgAZiia.js";
|
|
3
3
|
import "immer";
|
|
4
4
|
import "zod";
|
|
5
|
+
import "jszip";
|
|
5
6
|
import "crypto";
|
|
6
7
|
import "fs";
|
|
7
8
|
import "https";
|
|
8
9
|
import "path";
|
|
9
|
-
import "jszip";
|
|
10
10
|
export {
|
|
11
11
|
c as BaseDocument,
|
|
12
12
|
n as actions,
|
package/dist/node/es/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { D as o } from "./internal/index-
|
|
2
|
-
import { D as t } from "./internal/index-
|
|
3
|
-
import "./internal/object-
|
|
1
|
+
import { D as o } from "./internal/index-CLgAZiia.js";
|
|
2
|
+
import { D as t } from "./internal/index-6nUwJlFL.js";
|
|
3
|
+
import "./internal/object-DofGWMf1.js";
|
|
4
4
|
import "immer";
|
|
5
5
|
import "zod";
|
|
6
|
+
import "jszip";
|
|
6
7
|
import "crypto";
|
|
7
8
|
import "fs";
|
|
8
9
|
import "https";
|
|
9
10
|
import "path";
|
|
10
|
-
import "jszip";
|
|
11
11
|
const D = {
|
|
12
12
|
"powerhouse/document": o,
|
|
13
13
|
"powerhouse/document-model": t
|
|
@@ -1,13 +1,13 @@
|
|
|
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-
|
|
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-DofGWMf1.js";
|
|
5
5
|
import "immer";
|
|
6
|
+
import "jszip";
|
|
6
7
|
import "crypto";
|
|
7
8
|
import "fs";
|
|
8
9
|
import "https";
|
|
9
10
|
import "path";
|
|
10
|
-
import "jszip";
|
|
11
11
|
import { z as o } from "zod";
|
|
12
12
|
const kt = new RegExp("([\\p{Ll}\\d])(\\p{Lu})", "gu"), Ut = new RegExp("(\\p{Lu})([\\p{Lu}][\\p{Ll}])", "gu"), vt = new RegExp("(\\d)\\p{Ll}|(\\p{L})\\d", "u"), Ft = /[^\p{L}\d]+/giu, he = "$1\0$2", Oe = "";
|
|
13
13
|
function Se(t) {
|
|
@@ -0,0 +1,43 @@
|
|
|
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, q as p, i as d, r as u, t as m, u as O, l as y, e as b, v as D, w as F, x as S, y as _, s as f, d as g, z as v, A as h, C as j, B as x, h as z, g as R, D as A, E as B, F as M } from "./object-DofGWMf1.js";
|
|
2
|
+
const T = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
3
|
+
__proto__: null,
|
|
4
|
+
calculateSkipsLeft: e,
|
|
5
|
+
createAction: a,
|
|
6
|
+
createDocument: s,
|
|
7
|
+
createExtendedState: o,
|
|
8
|
+
createReducer: t,
|
|
9
|
+
createZip: r,
|
|
10
|
+
documentHelpers: i,
|
|
11
|
+
getLocalFile: n,
|
|
12
|
+
getRemoteFile: c,
|
|
13
|
+
hashDocument: l,
|
|
14
|
+
hashKey: p,
|
|
15
|
+
isBaseAction: d,
|
|
16
|
+
isNoopOperation: u,
|
|
17
|
+
isSameDocument: m,
|
|
18
|
+
isUndoRedo: O,
|
|
19
|
+
loadFromFile: y,
|
|
20
|
+
loadFromInput: b,
|
|
21
|
+
mapSkippedOperations: D,
|
|
22
|
+
readOnly: F,
|
|
23
|
+
replayDocument: S,
|
|
24
|
+
replayOperations: _,
|
|
25
|
+
saveToFile: f,
|
|
26
|
+
saveToFileHandle: g,
|
|
27
|
+
sortMappedOperations: v,
|
|
28
|
+
sortOperations: h,
|
|
29
|
+
validateOperations: j
|
|
30
|
+
}, Symbol.toStringTag, { value: "Module" })), E = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
31
|
+
__proto__: null,
|
|
32
|
+
BaseDocument: x,
|
|
33
|
+
actions: z,
|
|
34
|
+
applyMixins: R,
|
|
35
|
+
baseReducer: A,
|
|
36
|
+
processUndoRedo: B,
|
|
37
|
+
utils: T,
|
|
38
|
+
z: M
|
|
39
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
40
|
+
export {
|
|
41
|
+
E as D,
|
|
42
|
+
T as i
|
|
43
|
+
};
|