document-model 1.0.55 → 1.1.0-debug.2

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 (74) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/browser/cjs/document-model.js +21 -1
  3. package/dist/browser/cjs/document-model.js.map +1 -0
  4. package/dist/browser/cjs/document.js +15 -1
  5. package/dist/browser/cjs/document.js.map +1 -0
  6. package/dist/browser/cjs/index.js +18 -1
  7. package/dist/browser/cjs/index.js.map +1 -0
  8. package/dist/browser/cjs/internal/index-CaJbS06G.js +2339 -0
  9. package/dist/browser/cjs/internal/index-CaJbS06G.js.map +1 -0
  10. package/dist/browser/cjs/internal/index-kKIg6qNB.js +44 -0
  11. package/dist/browser/cjs/internal/index-kKIg6qNB.js.map +1 -0
  12. package/dist/browser/cjs/internal/object-B6dSDhtS.js +4109 -0
  13. package/dist/browser/cjs/internal/object-B6dSDhtS.js.map +1 -0
  14. package/dist/browser/es/document-model.js +16 -15
  15. package/dist/browser/es/document-model.js.map +1 -0
  16. package/dist/browser/es/document.js +10 -9
  17. package/dist/browser/es/document.js.map +1 -0
  18. package/dist/browser/es/index.js +13 -11
  19. package/dist/browser/es/index.js.map +1 -0
  20. package/dist/browser/es/internal/index-B1lQN59e.js +2340 -0
  21. package/dist/browser/es/internal/index-B1lQN59e.js.map +1 -0
  22. package/dist/browser/es/internal/index-Bu0CkmrW.js +45 -0
  23. package/dist/browser/es/internal/index-Bu0CkmrW.js.map +1 -0
  24. package/dist/browser/es/internal/object-9mR1JlXD.js +4110 -0
  25. package/dist/browser/es/internal/object-9mR1JlXD.js.map +1 -0
  26. package/dist/browser/src/document/reducer.d.ts +13 -2
  27. package/dist/browser/src/document/utils/base.d.ts +1 -1
  28. package/dist/browser/src/document/utils/document-helpers.d.ts +53 -0
  29. package/dist/browser/src/document/utils/index.d.ts +1 -0
  30. package/dist/node/cjs/document-model.js +25 -1
  31. package/dist/node/cjs/document-model.js.map +1 -0
  32. package/dist/node/cjs/document.js +19 -1
  33. package/dist/node/cjs/document.js.map +1 -0
  34. package/dist/node/cjs/index.js +22 -1
  35. package/dist/node/cjs/index.js.map +1 -0
  36. package/dist/node/cjs/internal/index-AqiVmL0w.js +44 -0
  37. package/dist/node/cjs/internal/index-AqiVmL0w.js.map +1 -0
  38. package/dist/node/cjs/internal/index-ajqhOWQ1.js +2343 -0
  39. package/dist/node/cjs/internal/index-ajqhOWQ1.js.map +1 -0
  40. package/dist/node/cjs/internal/object-D_9h7jBN.js +2111 -0
  41. package/dist/node/cjs/internal/object-D_9h7jBN.js.map +1 -0
  42. package/dist/node/es/document-model.js +16 -15
  43. package/dist/node/es/document-model.js.map +1 -0
  44. package/dist/node/es/document.js +11 -10
  45. package/dist/node/es/document.js.map +1 -0
  46. package/dist/node/es/index.js +14 -12
  47. package/dist/node/es/index.js.map +1 -0
  48. package/dist/node/es/internal/index-Bh_09edy.js +2344 -0
  49. package/dist/node/es/internal/index-Bh_09edy.js.map +1 -0
  50. package/dist/node/es/internal/index-s6NFw7Kq.js +45 -0
  51. package/dist/node/es/internal/index-s6NFw7Kq.js.map +1 -0
  52. package/dist/node/es/internal/object-CbITi4iq.js +2112 -0
  53. package/dist/node/es/internal/object-CbITi4iq.js.map +1 -0
  54. package/dist/node/src/document/reducer.d.ts +13 -2
  55. package/dist/node/src/document/utils/base.d.ts +1 -1
  56. package/dist/node/src/document/utils/document-helpers.d.ts +53 -0
  57. package/dist/node/src/document/utils/index.d.ts +1 -0
  58. package/dist/src/document/reducer.d.ts +13 -2
  59. package/dist/src/document/utils/base.d.ts +1 -1
  60. package/dist/src/document/utils/document-helpers.d.ts +53 -0
  61. package/dist/src/document/utils/index.d.ts +1 -0
  62. package/package.json +7 -2
  63. package/dist/browser/cjs/internal/index-C_OFq7P5.js +0 -22
  64. package/dist/browser/cjs/internal/index-Dwhv4k_6.js +0 -1
  65. package/dist/browser/cjs/internal/object-CeLE3akL.js +0 -25
  66. package/dist/browser/es/internal/index-DvHnaqeu.js +0 -2104
  67. package/dist/browser/es/internal/index-Xcvn-MUq.js +0 -42
  68. package/dist/browser/es/internal/object-BDWVt0Zy.js +0 -2504
  69. package/dist/node/cjs/internal/index-Bi9yeV3W.js +0 -1
  70. package/dist/node/cjs/internal/index-GZsLKtHl.js +0 -22
  71. package/dist/node/cjs/internal/object-CnhDksx1.js +0 -20
  72. package/dist/node/es/internal/index-B6iEYnbQ.js +0 -42
  73. package/dist/node/es/internal/index-Chx4C-Xl.js +0 -2108
  74. package/dist/node/es/internal/object-CnV5hY_A.js +0 -1402
@@ -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): Document<T, A, L>;
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>, operations: DocumentOperations<A>, reducer: ImmutableStateReducer<T, A, L>, dispatch?: SignalDispatch, header?: DocumentHeader, documentReducer?: typeof baseReducer, skipHeaderOperations?: SkipHeaderOperations, options?: {
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,25 @@
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
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ require("./internal/object-D_9h7jBN.js");
4
+ require("immer");
5
+ require("jszip");
6
+ require("crypto");
7
+ require("fs");
8
+ require("https");
9
+ require("path");
10
+ const documentModel = require("./internal/index-ajqhOWQ1.js");
11
+ require("zod");
12
+ exports.Document = documentModel.Document;
13
+ exports.DocumentModel = documentModel.DocumentModel$1;
14
+ exports.actions = documentModel.actions;
15
+ exports.documentModel = documentModel.documentModel;
16
+ exports.module = documentModel.module;
17
+ exports.reducer = documentModel.reducer;
18
+ exports.utils = documentModel.utils;
19
+ exports.validateInitialState = documentModel.validateInitialState;
20
+ exports.validateModule = documentModel.validateModule;
21
+ exports.validateModuleOperation = documentModel.validateModuleOperation;
22
+ exports.validateModules = documentModel.validateModules;
23
+ exports.validateStateSchemaName = documentModel.validateStateSchemaName;
24
+ exports.z = documentModel.zod;
25
+ //# sourceMappingURL=document-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-model.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1,19 @@
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
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const object = require("./internal/object-D_9h7jBN.js");
4
+ const document = require("./internal/index-AqiVmL0w.js");
5
+ require("immer");
6
+ require("zod");
7
+ require("jszip");
8
+ require("crypto");
9
+ require("fs");
10
+ require("https");
11
+ require("path");
12
+ exports.BaseDocument = object.BaseDocument;
13
+ exports.actions = object.BaseActions;
14
+ exports.applyMixins = object.applyMixins;
15
+ exports.baseReducer = object.baseReducer;
16
+ exports.processUndoRedo = object.processUndoRedo;
17
+ exports.z = object.zod;
18
+ exports.utils = document.index;
19
+ //# sourceMappingURL=document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
@@ -1 +1,22 @@
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
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const document = require("./internal/index-AqiVmL0w.js");
4
+ const documentModel = require("./internal/index-ajqhOWQ1.js");
5
+ require("./internal/object-D_9h7jBN.js");
6
+ require("immer");
7
+ require("zod");
8
+ require("jszip");
9
+ require("crypto");
10
+ require("fs");
11
+ require("https");
12
+ require("path");
13
+ const DocumentModels = {
14
+ "powerhouse/document": document.Document,
15
+ "powerhouse/document-model": documentModel.DocumentModel
16
+ };
17
+ const index = { Document: document.Document, DocumentModel: documentModel.DocumentModel };
18
+ exports.Document = document.Document;
19
+ exports.DocumentModel = documentModel.DocumentModel;
20
+ exports.DocumentModels = DocumentModels;
21
+ exports.default = index;
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/index.ts"],"sourcesContent":["import * as Document from './document';\nimport * as DocumentModel from './document-model';\n\n/**\n * This module exports all the public types, functions, and objects\n * from the document module. It provides an easy-to-use interface\n * for managing documents, and can be used in any Redux-based\n * application. This module exports:\n * - All action creators for the base document actions.\n * - The Document object, which is used to for creating and\n * manipulating documents in an object-oriented way.\n * - The baseReducer function, which is a reducer for managing\n * documents\n * - Various utility functions to be used by Document Models.\n */\nexport { Document };\nexport { DocumentModel };\n\nexport const DocumentModels = {\n 'powerhouse/document': Document,\n 'powerhouse/document-model': DocumentModel,\n};\n\nexport default { Document, DocumentModel };\n"],"names":["Document","DocumentModel"],"mappings":";;;;;;;;;;;;AAkBO,MAAM,iBAAiB;AAAA,EAC1B,uBAAuBA,SAAA;AAAA,EACvB,6BAA6BC,cAAA;AACjC;AAEA,MAAA,QAAe,EAAED,UAAAA,SAAAA,UAAUC,eAAAA,cAAAA,cAAc;;;;;"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ const object = require("./object-D_9h7jBN.js");
3
+ const index = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
4
+ __proto__: null,
5
+ calculateSkipsLeft: object.calculateSkipsLeft,
6
+ createAction: object.createAction,
7
+ createDocument: object.createDocument,
8
+ createExtendedState: object.createExtendedState,
9
+ createReducer: object.createReducer,
10
+ createZip: object.createZip,
11
+ documentHelpers: object.documentHelpers,
12
+ getLocalFile: object.getLocalFile,
13
+ getRemoteFile: object.getRemoteFile,
14
+ hashDocument: object.hashDocument,
15
+ hashKey: object.hashKey,
16
+ isBaseAction: object.isBaseAction,
17
+ isNoopOperation: object.isNoopOperation,
18
+ isSameDocument: object.isSameDocument,
19
+ isUndoRedo: object.isUndoRedo,
20
+ loadFromFile: object.loadFromFile,
21
+ loadFromInput: object.loadFromInput,
22
+ mapSkippedOperations: object.mapSkippedOperations,
23
+ readOnly: object.readOnly,
24
+ replayDocument: object.replayDocument,
25
+ replayOperations: object.replayOperations,
26
+ saveToFile: object.saveToFile,
27
+ saveToFileHandle: object.saveToFileHandle,
28
+ sortMappedOperations: object.sortMappedOperations,
29
+ sortOperations: object.sortOperations,
30
+ validateOperations: object.validateOperations
31
+ }, Symbol.toStringTag, { value: "Module" }));
32
+ const Document = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
33
+ __proto__: null,
34
+ BaseDocument: object.BaseDocument,
35
+ actions: object.BaseActions,
36
+ applyMixins: object.applyMixins,
37
+ baseReducer: object.baseReducer,
38
+ processUndoRedo: object.processUndoRedo,
39
+ utils: index,
40
+ z: object.zod
41
+ }, Symbol.toStringTag, { value: "Module" }));
42
+ exports.Document = Document;
43
+ exports.index = index;
44
+ //# sourceMappingURL=index-AqiVmL0w.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-AqiVmL0w.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}