@ckeditor/ckeditor5-operations-compressor 41.2.1 → 41.3.0-alpha.3

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 (38) hide show
  1. package/dist/content-index.css +4 -0
  2. package/dist/editor-index.css +4 -0
  3. package/dist/index.css +4 -0
  4. package/dist/types/actioncompressor/actioncompressor.d.ts +64 -0
  5. package/dist/types/actioncompressor/deletingactioncompressor.d.ts +32 -0
  6. package/dist/types/actioncompressor/forwarddeletingactioncompressor.d.ts +32 -0
  7. package/dist/types/actioncompressor/typingactioncompressor.d.ts +32 -0
  8. package/dist/types/actioncompressor/userselectionactioncompressor.d.ts +20 -0
  9. package/dist/types/compressor.d.ts +49 -0
  10. package/dist/types/index.d.ts +9 -0
  11. package/dist/types/operationcompressor/annotationmarkeroperationcompressor.d.ts +26 -0
  12. package/dist/types/operationcompressor/attributeoperationcompressor.d.ts +21 -0
  13. package/dist/types/operationcompressor/insertoperationcompressor.d.ts +21 -0
  14. package/dist/types/operationcompressor/markeroperationcompressor.d.ts +17 -0
  15. package/dist/types/operationcompressor/nooperationcompressor.d.ts +24 -0
  16. package/dist/types/operationcompressor/operationcompressor.d.ts +32 -0
  17. package/dist/types/protobufdescriptions.d.ts +8 -0
  18. package/dist/types/protobuffactory.d.ts +9 -0
  19. package/dist/types/utils.d.ts +34 -0
  20. package/package.json +3 -2
  21. package/src/actioncompressor/actioncompressor.js +1 -1
  22. package/src/actioncompressor/deletingactioncompressor.js +1 -1
  23. package/src/actioncompressor/forwarddeletingactioncompressor.js +1 -1
  24. package/src/actioncompressor/typingactioncompressor.js +1 -1
  25. package/src/actioncompressor/userselectionactioncompressor.js +1 -1
  26. package/src/compressor.js +1 -1
  27. package/src/index.d.ts +5 -0
  28. package/src/index.js +23 -0
  29. package/src/lib/compiledmessages.js +1 -1
  30. package/src/operationcompressor/annotationmarkeroperationcompressor.js +1 -1
  31. package/src/operationcompressor/attributeoperationcompressor.js +1 -1
  32. package/src/operationcompressor/insertoperationcompressor.js +1 -1
  33. package/src/operationcompressor/markeroperationcompressor.js +1 -1
  34. package/src/operationcompressor/nooperationcompressor.js +1 -1
  35. package/src/operationcompressor/operationcompressor.js +1 -1
  36. package/src/protobufdescriptions.js +1 -1
  37. package/src/protobuffactory.js +1 -1
  38. package/src/utils.js +1 -1
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
package/dist/index.css ADDED
@@ -0,0 +1,4 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
@@ -0,0 +1,64 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ import type { CompressedOperationsData, default as Compressor } from '../compressor.js';
10
+ /**
11
+ * * Compresses and decompresses multiple operations into the one buffer.
12
+ */
13
+ export default abstract class ActionCompressor {
14
+ constructor(id: number, context: Compressor);
15
+ /**
16
+ * Combines and compress operations from the list.
17
+ * Operations are consumed as long as match this compressor.
18
+ *
19
+ * @param result Object to which compression result should be added.
20
+ * @param operations List of operations in JSON format to compress.
21
+ * @returns `true` when operation is consumed `false` otherwise.
22
+ */
23
+ compress(result: CompressedOperationsData, operations: Array<any>): boolean;
24
+ /**
25
+ * Decompress and split compressed operations. Decompressed operations are consumed (removed from the input data).
26
+ *
27
+ * @param result Decompressed operations in JSON format.
28
+ * @param data Compressed operations data.
29
+ */
30
+ decompress(result: Array<any>, data: CompressedOperationsData): void;
31
+ /**
32
+ * Compresses single operation using a proper compressor.
33
+ *
34
+ * @param operation Operation in JSON format.
35
+ * @returns Operation JSON compressed to the binary format.
36
+ */
37
+ protected abstract _compressSingleOperation(operation: any): Uint8Array;
38
+ /**
39
+ * Decompresses combined operation using a proper compressor.
40
+ *
41
+ * @param data Data to compress.
42
+ * @returns Decompressed operation in JSON format.
43
+ */
44
+ protected abstract _decompressSingleOperation(data: CompressedOperationsData): any;
45
+ /**
46
+ * Combine next operation into the combined one.
47
+ *
48
+ * @param nextOperation Operation to combine in JSON format.
49
+ * @param combined Combined operation in JSON format.
50
+ * @returns Combined operation in JSON format.
51
+ */
52
+ protected abstract _combineNext(nextOperation: any, combined: any): any;
53
+ /**
54
+ * Split operation from combined one.
55
+ *
56
+ * @param combined Combined operation in JSON format.
57
+ * @returns Split operation in JSON format.
58
+ */
59
+ protected abstract _splitCurrent(combined: any): any;
60
+ /**
61
+ * Checks if two operations can be combined.
62
+ */
63
+ protected abstract _compareOperations(opA: any, opB: any): boolean;
64
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ import ActionCompressor from './actioncompressor.js';
10
+ import type { CompressedOperationsData } from '../compressor.js';
11
+ export default class DeletingActionCompressor extends ActionCompressor {
12
+ /**
13
+ * @inheritDoc
14
+ */
15
+ protected _combineNext(nextOperation: any, combined: any): any;
16
+ /**
17
+ * @inheritDoc
18
+ */
19
+ protected _splitCurrent(combined: any): any;
20
+ /**
21
+ * @inheritDoc
22
+ */
23
+ protected _compareOperations(opA: any, opB: any): boolean;
24
+ /**
25
+ * @inheritDoc
26
+ */
27
+ protected _compressSingleOperation(operation: any): Uint8Array;
28
+ /**
29
+ * @inheritDoc
30
+ */
31
+ protected _decompressSingleOperation(data: CompressedOperationsData): any;
32
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ import ActionCompressor from './actioncompressor.js';
10
+ import type { CompressedOperationsData } from '../compressor.js';
11
+ export default class ForwardDeletingActionCompressor extends ActionCompressor {
12
+ /**
13
+ * @inheritDoc
14
+ */
15
+ protected _combineNext(nextOperation: any, combined: any): any;
16
+ /**
17
+ * @inheritDoc
18
+ */
19
+ protected _splitCurrent(combined: any): any;
20
+ /**
21
+ * @inheritDoc
22
+ */
23
+ protected _compareOperations(opA: any, opB: any): boolean;
24
+ /**
25
+ * @inheritDoc
26
+ */
27
+ protected _compressSingleOperation(operation: any): Uint8Array;
28
+ /**
29
+ * @inheritDoc
30
+ */
31
+ protected _decompressSingleOperation(data: CompressedOperationsData): any;
32
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ import ActionCompressor from './actioncompressor.js';
10
+ import type { CompressedOperationsData } from '../compressor.js';
11
+ export default class TypingActionCompressor extends ActionCompressor {
12
+ /**
13
+ * @inheritDocs
14
+ */
15
+ protected _combineNext(nextOperation: any, combined: any): any;
16
+ /**
17
+ * @inheritDoc
18
+ */
19
+ protected _splitCurrent(combined: any): any;
20
+ /**
21
+ * @inheritDoc
22
+ */
23
+ protected _compareOperations(opA: any, opB: any): boolean;
24
+ /**
25
+ * @inheritDoc
26
+ */
27
+ protected _compressSingleOperation(operation: any): Uint8Array;
28
+ /**
29
+ * @inheritDoc
30
+ */
31
+ protected _decompressSingleOperation(data: CompressedOperationsData): any;
32
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ import ActionCompressor from './actioncompressor.js';
10
+ import type { CompressedOperationsData } from '../compressor.js';
11
+ export default class UserSelectionActionCompressor extends ActionCompressor {
12
+ /**
13
+ * @inheritDoc
14
+ */
15
+ compress(result: CompressedOperationsData, operations: Array<any>): boolean;
16
+ /**
17
+ * @inheritDoc
18
+ */
19
+ decompress(result: Array<any>, data: CompressedOperationsData): void;
20
+ }
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ /**
10
+ * Compresses and decompresses given set of operations in JSON format to/from the binary format using `Protocol Buffers`.
11
+ */
12
+ export default class Compressor {
13
+ constructor();
14
+ /**
15
+ * Compress given list of operations in JSON format.
16
+ *
17
+ * **Note** It tries to combine typing-like or deleting-like operations into the one buffer.
18
+ * **Note** Input data will be consumed and modified during compression process. If you need untouched data
19
+ * you need to copy it before the compression.
20
+ */
21
+ compress(operations: Array<any>): CompressedOperationsData;
22
+ /**
23
+ * Decompress given data to the list of operations in JSON format.
24
+ *
25
+ * **Note** Input data will be consumed during decompression process. If you need untouched data
26
+ * you need to copy it before the decompression.
27
+ *
28
+ * @param data Compressed operations.
29
+ * @returns List of operations in JSON format.
30
+ */
31
+ decompress(data: CompressedOperationsData): Array<any>;
32
+ }
33
+ /**
34
+ * Compressed operations data.
35
+ */
36
+ export type CompressedOperationsData = {
37
+ /**
38
+ * List of operations compressed to the binary format.
39
+ */
40
+ buffers: Array<Uint8Array>;
41
+ /**
42
+ * List of compressor identifiers. According to this types a proper compressor will be used for the decompression.
43
+ */
44
+ types: Array<number>;
45
+ /**
46
+ * Base version of the first compressed operation.
47
+ */
48
+ baseVersion: number;
49
+ };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ export * from './compressor.js';
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ import MarkerOperationCompressor from './markeroperationcompressor.js';
10
+ import type { ProtobufDescriptor } from '../protobuffactory.js';
11
+ import type { CompressedOperationsData } from '../compressor.js';
12
+ import type { MarkerOperation } from 'ckeditor5/src/engine.js';
13
+ export default class AnnotationMarkerOperationCompressor extends MarkerOperationCompressor {
14
+ /**
15
+ * @inheritDoc
16
+ */
17
+ constructor(id: number, name: string, descriptor: ProtobufDescriptor, namespaceToOmit: string);
18
+ /**
19
+ * @inheritDoc
20
+ */
21
+ compress(result: CompressedOperationsData, operations: Array<MarkerOperation>): boolean;
22
+ /**
23
+ * @inheritDoc
24
+ */
25
+ decompress(result: Array<MarkerOperation>, data: CompressedOperationsData): void;
26
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ import OperationCompressor from './operationcompressor.js';
10
+ import type { CompressedOperationsData } from '../compressor.js';
11
+ import type { AttributeOperation } from 'ckeditor5/src/engine.js';
12
+ export default class AttributeOperationCompressor extends OperationCompressor {
13
+ /**
14
+ * @inheritDoc
15
+ */
16
+ compress(result: CompressedOperationsData, operations: Array<AttributeOperation>): boolean;
17
+ /**
18
+ * @inheritDoc
19
+ */
20
+ decompress(result: Array<AttributeOperation>, data: CompressedOperationsData): void;
21
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ import OperationCompressor from './operationcompressor.js';
10
+ import type { CompressedOperationsData } from '../compressor.js';
11
+ import type { InsertOperation } from 'ckeditor5/src/engine.js';
12
+ export default class InsertOperationCompressor extends OperationCompressor {
13
+ /**
14
+ * @inheritDoc
15
+ */
16
+ compress(result: CompressedOperationsData, operations: Array<InsertOperation>): boolean;
17
+ /**
18
+ * @inheritDoc
19
+ */
20
+ decompress(result: Array<InsertOperation>, data: CompressedOperationsData): void;
21
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ import OperationCompressor from './operationcompressor.js';
10
+ import type { CompressedOperationsData } from '../compressor.js';
11
+ import type { MarkerOperation } from 'ckeditor5/src/engine.js';
12
+ export default class MarkerOperationCompressor extends OperationCompressor {
13
+ /**
14
+ * @inheritDoc
15
+ */
16
+ decompress(result: Array<MarkerOperation>, data: CompressedOperationsData): void;
17
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ import OperationCompressor from './operationcompressor.js';
10
+ import type { CompressedOperationsData } from '../compressor.js';
11
+ import type { Operation } from 'ckeditor5/src/engine.js';
12
+ /**
13
+ * @extends OperationCompressor
14
+ */
15
+ export default class NoOperationCompressor extends OperationCompressor {
16
+ /**
17
+ * @inheritDoc
18
+ */
19
+ compress(result: CompressedOperationsData, operations: Array<Operation>): boolean;
20
+ /**
21
+ * @inheritDoc
22
+ */
23
+ decompress(result: Array<any>, data: CompressedOperationsData): void;
24
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ import type { CompressedOperationsData } from '../compressor.js';
10
+ import type { ProtobufDescriptor } from '../protobuffactory.js';
11
+ import type { Operation } from 'ckeditor5/src/engine.js';
12
+ /**
13
+ * Compresses and decompresses single operation to the binary format.
14
+ */
15
+ export default class OperationCompressor {
16
+ constructor(id: number, operationName: string, protobufDescriptor: ProtobufDescriptor);
17
+ /**
18
+ * Serializes and consumes the first operation from the list.
19
+ *
20
+ * @param result Object to which compression result will be added.
21
+ * @param operations List of operations to compress. The first one will be compressed
22
+ * and removed from the list.
23
+ */
24
+ compress(result: CompressedOperationsData, operations: Array<Operation>): boolean;
25
+ /**
26
+ * Deserializes and consumes buffered operation.
27
+ *
28
+ * @param result Decompressed operation.
29
+ * @param data Data to decompress.
30
+ */
31
+ decompress(result: Array<Operation>, data: CompressedOperationsData): void;
32
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ export {};
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ /**
10
+ * Return new position in JSON format shifted by given offset.
11
+ *
12
+ * @param positionJSON Position serialized to JSON.
13
+ * @param shift Offset shift. Can be a negative value.
14
+ * @returns New position in JSON format.
15
+ */
16
+ export declare function getPositionShiftedBy(positionJSON: any, shift: number): any;
17
+ /**
18
+ * Checks whether one position serialized to JSON is equal to other position serialized to JSON.
19
+ */
20
+ export declare function arePositionsEqual(positionA: any, positionB: any): boolean;
21
+ /**
22
+ * For the better compression result one of the two common roots (`main` or `$graveyard`)
23
+ * is compressed to the `Boolean` format.
24
+ *
25
+ * Due tu the Protobuf limitation `Position` descriptor has no dedicated compressor
26
+ * so we need to find and format all positions in the operation.
27
+ */
28
+ export declare function parsePositionBeforeCompression(operation: any): void;
29
+ /**
30
+ * Position reformatting after decompression.
31
+ *
32
+ * @see {parsePositionBeforeCompression}.
33
+ */
34
+ export declare function parsePositionAfterCompression(operation: any): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-operations-compressor",
3
- "version": "41.2.1",
3
+ "version": "41.3.0-alpha.3",
4
4
  "description": "CKEditor 5 operations compressor for real-time collaboration.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "homepage": "https://ckeditor.com/collaboration/real-time/",
@@ -31,11 +31,12 @@
31
31
  },
32
32
  "type": "module",
33
33
  "dependencies": {
34
- "ckeditor5": "41.2.1",
34
+ "ckeditor5": "41.3.0-alpha.3",
35
35
  "lodash-es": "4.17.21",
36
36
  "protobufjs": "7.2.4"
37
37
  },
38
38
  "files": [
39
+ "dist",
39
40
  "src/**/*.js",
40
41
  "src/**/*.d.ts",
41
42
  "CHANGELOG.md"
@@ -20,4 +20,4 @@
20
20
  *
21
21
  *
22
22
  */
23
- function _0x1395(_0x200949,_0x42ccbe){const _0x1008c4=_0x1008();return _0x1395=function(_0x1395d4,_0x8d44){_0x1395d4=_0x1395d4-0x166;let _0x5eecdb=_0x1008c4[_0x1395d4];return _0x5eecdb;},_0x1395(_0x200949,_0x42ccbe);}function _0x1008(){const _0x130dcc=['decompress','push','_splitCurrent','_context','11HWOTNj','_id','buffers','compress','_decompressSingleOperation','_compareOperations','335504hwyxRu','1355tGqXHB','_compressSingleOperation','49222927HUSdIx','1gKfBaQ','9629490WlSjwm','121112LGbQYo','5722875AZKCJk','511QLPdRj','24042lwpflu','45WJiVJC','types','2577206UWckBB','12wgWiex','_combineNext','shift','length'];_0x1008=function(){return _0x130dcc;};return _0x1008();}const _0x5c5d16=_0x1395;(function(_0x2e5c14,_0x3d3fc0){const _0x4b858c=_0x1395,_0x4e8972=_0x2e5c14();while(!![]){try{const _0x5533b7=-parseInt(_0x4b858c(0x178))/0x1*(parseInt(_0x4b858c(0x180))/0x2)+parseInt(_0x4b858c(0x17e))/0x3*(-parseInt(_0x4b858c(0x174))/0x4)+-parseInt(_0x4b858c(0x175))/0x5*(parseInt(_0x4b858c(0x17d))/0x6)+-parseInt(_0x4b858c(0x17c))/0x7*(parseInt(_0x4b858c(0x17a))/0x8)+parseInt(_0x4b858c(0x17b))/0x9+-parseInt(_0x4b858c(0x179))/0xa*(-parseInt(_0x4b858c(0x16e))/0xb)+-parseInt(_0x4b858c(0x166))/0xc*(-parseInt(_0x4b858c(0x177))/0xd);if(_0x5533b7===_0x3d3fc0)break;else _0x4e8972['push'](_0x4e8972['shift']());}catch(_0x7635ca){_0x4e8972['push'](_0x4e8972['shift']());}}}(_0x1008,0x9e0f8));import{cloneDeep as _0xbbbb26}from'lodash-es';export default class b{constructor(_0x561d73,_0xacab85){const _0x20d970=_0x1395;this[_0x20d970(0x16f)]=_0x561d73,this[_0x20d970(0x16d)]=_0xacab85;}[_0x5c5d16(0x171)](_0x295e0f,_0x56bee6){const _0xd21ac3=_0x5c5d16;let _0x24aea7;for(;_0x56bee6[_0xd21ac3(0x169)]>0x1&&this[_0xd21ac3(0x173)](_0x56bee6[0x0],_0x56bee6[0x1]);)_0x24aea7?(_0x24aea7=this[_0xd21ac3(0x167)](_0x56bee6[_0xd21ac3(0x168)](),_0x24aea7),_0x295e0f[_0xd21ac3(0x17f)][_0xd21ac3(0x16b)](0x0)):(_0x24aea7=_0xbbbb26(_0x56bee6[_0xd21ac3(0x168)]()),_0x295e0f[_0xd21ac3(0x17f)][_0xd21ac3(0x16b)](this[_0xd21ac3(0x16f)]));return!!_0x24aea7&&(_0x24aea7=this[_0xd21ac3(0x167)](_0x56bee6[_0xd21ac3(0x168)](),_0x24aea7),_0x295e0f[_0xd21ac3(0x17f)][_0xd21ac3(0x16b)](0x0),_0x295e0f[_0xd21ac3(0x170)][_0xd21ac3(0x16b)](this[_0xd21ac3(0x176)](_0x24aea7)),!0x0);}[_0x5c5d16(0x16a)](_0x5ef6d4,_0x3280c9){const _0x54a558=_0x5c5d16,_0x26bd7b=this[_0x54a558(0x172)](_0x3280c9);for(;0x0==_0x3280c9[_0x54a558(0x17f)][0x0];)_0x3280c9[_0x54a558(0x17f)][_0x54a558(0x168)](),_0x5ef6d4[_0x54a558(0x16b)](this[_0x54a558(0x16c)](_0x26bd7b));_0x5ef6d4[_0x54a558(0x16b)](_0x26bd7b);}}
23
+ const _0x464c9d=_0x12b2;(function(_0x531816,_0x465943){const _0x8f5873=_0x12b2,_0x22f50f=_0x531816();while(!![]){try{const _0x581df2=-parseInt(_0x8f5873(0x1d0))/0x1*(-parseInt(_0x8f5873(0x1d1))/0x2)+parseInt(_0x8f5873(0x1d7))/0x3+-parseInt(_0x8f5873(0x1db))/0x4+-parseInt(_0x8f5873(0x1e4))/0x5*(parseInt(_0x8f5873(0x1d6))/0x6)+parseInt(_0x8f5873(0x1e0))/0x7+-parseInt(_0x8f5873(0x1e6))/0x8+parseInt(_0x8f5873(0x1d9))/0x9;if(_0x581df2===_0x465943)break;else _0x22f50f['push'](_0x22f50f['shift']());}catch(_0x140eea){_0x22f50f['push'](_0x22f50f['shift']());}}}(_0x595c,0x54482));import{cloneDeep as _0x1b0b27}from'lodash-es';export default class b{constructor(_0x4252be,_0x2293db){const _0x520113=_0x12b2;this[_0x520113(0x1e5)]=_0x4252be,this[_0x520113(0x1d3)]=_0x2293db;}[_0x464c9d(0x1dc)](_0x68fe04,_0x3f4664){const _0x1e20e2=_0x464c9d;let _0x5a9371;for(;_0x3f4664[_0x1e20e2(0x1d2)]>0x1&&this[_0x1e20e2(0x1d4)](_0x3f4664[0x0],_0x3f4664[0x1]);)_0x5a9371?(_0x5a9371=this[_0x1e20e2(0x1e2)](_0x3f4664[_0x1e20e2(0x1da)](),_0x5a9371),_0x68fe04[_0x1e20e2(0x1e3)][_0x1e20e2(0x1df)](0x0)):(_0x5a9371=_0x1b0b27(_0x3f4664[_0x1e20e2(0x1da)]()),_0x68fe04[_0x1e20e2(0x1e3)][_0x1e20e2(0x1df)](this[_0x1e20e2(0x1e5)]));return!!_0x5a9371&&(_0x5a9371=this[_0x1e20e2(0x1e2)](_0x3f4664[_0x1e20e2(0x1da)](),_0x5a9371),_0x68fe04[_0x1e20e2(0x1e3)][_0x1e20e2(0x1df)](0x0),_0x68fe04[_0x1e20e2(0x1d5)][_0x1e20e2(0x1df)](this[_0x1e20e2(0x1dd)](_0x5a9371)),!0x0);}[_0x464c9d(0x1de)](_0x5672e6,_0x194cef){const _0x21132f=_0x464c9d,_0x344b6f=this[_0x21132f(0x1e1)](_0x194cef);for(;0x0==_0x194cef[_0x21132f(0x1e3)][0x0];)_0x194cef[_0x21132f(0x1e3)][_0x21132f(0x1da)](),_0x5672e6[_0x21132f(0x1df)](this[_0x21132f(0x1d8)](_0x344b6f));_0x5672e6[_0x21132f(0x1df)](_0x344b6f);}}function _0x12b2(_0x1f4104,_0x5991fb){const _0x595cd0=_0x595c();return _0x12b2=function(_0x12b210,_0x3603a1){_0x12b210=_0x12b210-0x1d0;let _0x1f7575=_0x595cd0[_0x12b210];return _0x1f7575;},_0x12b2(_0x1f4104,_0x5991fb);}function _0x595c(){const _0x703086=['12xBWVtt','1241505zsDQdH','_splitCurrent','1549197vnPBIa','shift','1315004pCLayj','compress','_compressSingleOperation','decompress','push','1590974ABZhZR','_decompressSingleOperation','_combineNext','types','486665dXoVMz','_id','4744816EnbZfv','1VqFDQo','1296974afUqdO','length','_context','_compareOperations','buffers'];_0x595c=function(){return _0x703086;};return _0x595c();}
@@ -20,4 +20,4 @@
20
20
  *
21
21
  *
22
22
  */
23
- function _0x21c4(){const _0xd89c06=['719176NjKUMf','10ttpJJL','decompress','compress','481712OaRphw','4760CnCSmC','_decompressSingleOperation','985dOrSst','_splitCurrent','targetPosition','4011IZHJVb','__className','$graveyard','5308416AffhaA','howMany','_compareOperations','5494977oulEtD','_context','root','sourcePosition','buffers','2124MVLoZI','MoveOperation','6240575CqbsNm','_combineNext','_getCompressorByName','_compressSingleOperation','_checkOperation','6LxXnOE','wasUndone'];_0x21c4=function(){return _0xd89c06;};return _0x21c4();}const _0x981814=_0x233e;(function(_0x46a20f,_0x25e6e6){const _0x1b6c51=_0x233e,_0x38952f=_0x46a20f();while(!![]){try{const _0x3dc215=-parseInt(_0x1b6c51(0xd4))/0x1+parseInt(_0x1b6c51(0xd0))/0x2*(-parseInt(_0x1b6c51(0xce))/0x3)+parseInt(_0x1b6c51(0xc7))/0x4*(parseInt(_0x1b6c51(0xd7))/0x5)+parseInt(_0x1b6c51(0xdd))/0x6+-parseInt(_0x1b6c51(0xda))/0x7*(parseInt(_0x1b6c51(0xd5))/0x8)+parseInt(_0x1b6c51(0xe0))/0x9+parseInt(_0x1b6c51(0xd1))/0xa*(parseInt(_0x1b6c51(0xc9))/0xb);if(_0x3dc215===_0x25e6e6)break;else _0x38952f['push'](_0x38952f['shift']());}catch(_0x4e8747){_0x38952f['push'](_0x38952f['shift']());}}}(_0x21c4,0x98af6));import _0x5a5380 from'./actioncompressor.js';import{arePositionsEqual as _0x132dd7,getPositionShiftedBy as _0x2071be}from'../utils.js';import{cloneDeep as _0x19d5ad}from'lodash-es';function _0x233e(_0x5e821e,_0x1f8472){const _0x21c4a6=_0x21c4();return _0x233e=function(_0x233e8d,_0x4ae5b7){_0x233e8d=_0x233e8d-0xc3;let _0xdf5540=_0x21c4a6[_0x233e8d];return _0xdf5540;},_0x233e(_0x5e821e,_0x1f8472);}export default class c extends _0x5a5380{[_0x981814(0xca)](_0x17a902,_0x489cd7){const _0x366a5c=_0x981814;return _0x489cd7[_0x366a5c(0xde)]++,_0x489cd7[_0x366a5c(0xc5)]=_0x19d5ad(_0x17a902[_0x366a5c(0xc5)]),_0x489cd7;}[_0x981814(0xd8)](_0x2b212a){const _0x13280d=_0x981814,_0x5c767c=_0x19d5ad(_0x2b212a);return _0x2b212a[_0x13280d(0xde)]--,_0x5c767c[_0x13280d(0xde)]=0x1,_0x5c767c[_0x13280d(0xc5)]=_0x2071be(_0x5c767c[_0x13280d(0xc5)],_0x2b212a[_0x13280d(0xde)]),_0x5c767c;}[_0x981814(0xdf)](_0x28ff0f,_0x10ddf2){const _0x2f730c=_0x981814;return!(!this[_0x2f730c(0xcd)](_0x28ff0f)||!this[_0x2f730c(0xcd)](_0x10ddf2))&&(_0x132dd7(_0x2071be(_0x28ff0f[_0x2f730c(0xc5)],-0x1),_0x10ddf2[_0x2f730c(0xc5)])&&_0x132dd7(_0x28ff0f[_0x2f730c(0xd9)],_0x10ddf2[_0x2f730c(0xd9)]));}[_0x981814(0xcc)](_0x1b60e6){const _0x378e05=_0x981814,_0x1a04c1={'types':[],'buffers':[],'baseVersion':0x0};return this[_0x378e05(0xc3)][_0x378e05(0xcb)](_0x378e05(0xc8))[_0x378e05(0xd3)](_0x1a04c1,[_0x1b60e6]),_0x1a04c1[_0x378e05(0xc6)][0x0];}[_0x981814(0xd6)](_0x45240e){const _0x39db14=_0x981814,_0x4eb3ff=[];return this[_0x39db14(0xc3)][_0x39db14(0xcb)](_0x39db14(0xc8))[_0x39db14(0xd2)](_0x4eb3ff,_0x45240e),_0x4eb3ff[0x0];}[_0x981814(0xcd)](_0xe85bcf){const _0x576fa3=_0x981814;return _0x576fa3(0xc8)==_0xe85bcf[_0x576fa3(0xdb)]&&_0x576fa3(0xdc)==_0xe85bcf[_0x576fa3(0xd9)][_0x576fa3(0xc4)]&&0x1==_0xe85bcf[_0x576fa3(0xde)]&&!_0xe85bcf[_0x576fa3(0xcf)];}}
23
+ const _0x4ba59a=_0x566f;(function(_0x54adff,_0x308dec){const _0x2c88f0=_0x566f,_0x59b7ae=_0x54adff();while(!![]){try{const _0x32f9bb=-parseInt(_0x2c88f0(0x119))/0x1*(-parseInt(_0x2c88f0(0x11e))/0x2)+-parseInt(_0x2c88f0(0x117))/0x3+-parseInt(_0x2c88f0(0x11a))/0x4*(parseInt(_0x2c88f0(0x125))/0x5)+-parseInt(_0x2c88f0(0x126))/0x6+parseInt(_0x2c88f0(0x122))/0x7*(-parseInt(_0x2c88f0(0x120))/0x8)+parseInt(_0x2c88f0(0x128))/0x9+-parseInt(_0x2c88f0(0x11f))/0xa*(-parseInt(_0x2c88f0(0x11b))/0xb);if(_0x32f9bb===_0x308dec)break;else _0x59b7ae['push'](_0x59b7ae['shift']());}catch(_0x28ca6e){_0x59b7ae['push'](_0x59b7ae['shift']());}}}(_0x3759,0x56cb1));import _0x3dc46c from'./actioncompressor.js';function _0x3759(){const _0x36b268=['_checkOperation','_context','__className','249006WjfDMK','$graveyard','484YGScuK','3148FMEusl','50039KFwVMR','sourcePosition','howMany','2044AbWiqV','1480iadZEx','8744kCdhCl','_combineNext','4445MnHqWT','decompress','compress','360YdrSWP','117990QFhMOs','targetPosition','368919tqDRzm','MoveOperation','_splitCurrent','root','_compressSingleOperation','_decompressSingleOperation','buffers','wasUndone','_compareOperations','_getCompressorByName'];_0x3759=function(){return _0x36b268;};return _0x3759();}function _0x566f(_0x420fcf,_0x2b3cfc){const _0x375901=_0x3759();return _0x566f=function(_0x566f56,_0xe36fce){_0x566f56=_0x566f56-0x110;let _0x146b84=_0x375901[_0x566f56];return _0x146b84;},_0x566f(_0x420fcf,_0x2b3cfc);}import{arePositionsEqual as _0xd81c31,getPositionShiftedBy as _0x551a38}from'../utils.js';import{cloneDeep as _0x5ab53f}from'lodash-es';export default class c extends _0x3dc46c{[_0x4ba59a(0x121)](_0x1fdd85,_0x241ed4){const _0x334212=_0x4ba59a;return _0x241ed4[_0x334212(0x11d)]++,_0x241ed4[_0x334212(0x11c)]=_0x5ab53f(_0x1fdd85[_0x334212(0x11c)]),_0x241ed4;}[_0x4ba59a(0x12a)](_0x38fc9c){const _0x2c84f1=_0x4ba59a,_0x2fef85=_0x5ab53f(_0x38fc9c);return _0x38fc9c[_0x2c84f1(0x11d)]--,_0x2fef85[_0x2c84f1(0x11d)]=0x1,_0x2fef85[_0x2c84f1(0x11c)]=_0x551a38(_0x2fef85[_0x2c84f1(0x11c)],_0x38fc9c[_0x2c84f1(0x11d)]),_0x2fef85;}[_0x4ba59a(0x112)](_0x554312,_0x3f852e){const _0x20ab98=_0x4ba59a;return!(!this[_0x20ab98(0x114)](_0x554312)||!this[_0x20ab98(0x114)](_0x3f852e))&&(_0xd81c31(_0x551a38(_0x554312[_0x20ab98(0x11c)],-0x1),_0x3f852e[_0x20ab98(0x11c)])&&_0xd81c31(_0x554312[_0x20ab98(0x127)],_0x3f852e[_0x20ab98(0x127)]));}[_0x4ba59a(0x12c)](_0x10ae35){const _0xf5562d=_0x4ba59a,_0x11fb2c={'types':[],'buffers':[],'baseVersion':0x0};return this[_0xf5562d(0x115)][_0xf5562d(0x113)](_0xf5562d(0x129))[_0xf5562d(0x124)](_0x11fb2c,[_0x10ae35]),_0x11fb2c[_0xf5562d(0x110)][0x0];}[_0x4ba59a(0x12d)](_0x53b9f7){const _0x3c0e1a=_0x4ba59a,_0x3006bf=[];return this[_0x3c0e1a(0x115)][_0x3c0e1a(0x113)](_0x3c0e1a(0x129))[_0x3c0e1a(0x123)](_0x3006bf,_0x53b9f7),_0x3006bf[0x0];}[_0x4ba59a(0x114)](_0x4df3b4){const _0x4fca89=_0x4ba59a;return _0x4fca89(0x129)==_0x4df3b4[_0x4fca89(0x116)]&&_0x4fca89(0x118)==_0x4df3b4[_0x4fca89(0x127)][_0x4fca89(0x12b)]&&0x1==_0x4df3b4[_0x4fca89(0x11d)]&&!_0x4df3b4[_0x4fca89(0x111)];}}
@@ -20,4 +20,4 @@
20
20
  *
21
21
  *
22
22
  */
23
- const _0x2f689b=_0x4c60;(function(_0x364a78,_0x3fed15){const _0x3ebadf=_0x4c60,_0x3e905e=_0x364a78();while(!![]){try{const _0x342597=parseInt(_0x3ebadf(0x91))/0x1+-parseInt(_0x3ebadf(0x9e))/0x2*(parseInt(_0x3ebadf(0xa0))/0x3)+parseInt(_0x3ebadf(0x8d))/0x4*(parseInt(_0x3ebadf(0xa5))/0x5)+parseInt(_0x3ebadf(0x95))/0x6*(parseInt(_0x3ebadf(0x8e))/0x7)+parseInt(_0x3ebadf(0x97))/0x8+-parseInt(_0x3ebadf(0x8a))/0x9*(-parseInt(_0x3ebadf(0x9b))/0xa)+-parseInt(_0x3ebadf(0xa4))/0xb;if(_0x342597===_0x3fed15)break;else _0x3e905e['push'](_0x3e905e['shift']());}catch(_0x2a48ce){_0x3e905e['push'](_0x3e905e['shift']());}}}(_0x1bbe,0x6a393));import _0x4c3fb6 from'./actioncompressor.js';function _0x4c60(_0x4b276a,_0x52ac34){const _0x1bbebe=_0x1bbe();return _0x4c60=function(_0x4c6066,_0x54381){_0x4c6066=_0x4c6066-0x8a;let _0x206a3c=_0x1bbebe[_0x4c6066];return _0x206a3c;},_0x4c60(_0x4b276a,_0x52ac34);}import{arePositionsEqual as _0x4e2fcb}from'../utils.js';import{cloneDeep as _0x163745}from'lodash-es';function _0x1bbe(){const _0x3dcbc4=['decompress','howMany','45FwnQck','_context','buffers','828hATxVN','917VrUtsP','_decompressSingleOperation','root','200760pclinm','__className','compress','_getCompressorByName','7770mIkmLz','wasUndone','1809064ecVbjR','_compressSingleOperation','_compareOperations','_checkOperation','1233290FWgrtN','targetPosition','_splitCurrent','101748QVlCsT','sourcePosition','21OqCgxS','MoveOperation','_combineNext','$graveyard','8214327qIkbpG','7845oznpWa'];_0x1bbe=function(){return _0x3dcbc4;};return _0x1bbe();}export default class h extends _0x4c3fb6{[_0x2f689b(0xa2)](_0x5e959c,_0x4b9049){const _0x486b72=_0x2f689b;return _0x4b9049[_0x486b72(0xa7)]++,_0x4b9049;}[_0x2f689b(0x9d)](_0x2086d7){const _0x4c5e69=_0x2f689b,_0x1a9a75=_0x163745(_0x2086d7);return _0x1a9a75[_0x4c5e69(0xa7)]=0x1,_0x2086d7[_0x4c5e69(0xa7)]--,_0x1a9a75;}[_0x2f689b(0x99)](_0x4196dd,_0x222fce){const _0xa958e5=_0x2f689b;return!(!this[_0xa958e5(0x9a)](_0x4196dd)||!this[_0xa958e5(0x9a)](_0x222fce))&&(_0x4e2fcb(_0x4196dd[_0xa958e5(0x9f)],_0x222fce[_0xa958e5(0x9f)])&&_0x4e2fcb(_0x4196dd[_0xa958e5(0x9c)],_0x222fce[_0xa958e5(0x9c)]));}[_0x2f689b(0x98)](_0x5857c1){const _0x5c0819=_0x2f689b,_0x1e29ad={'types':[],'buffers':[],'baseVersion':0x0};return this[_0x5c0819(0x8b)][_0x5c0819(0x94)](_0x5c0819(0xa1))[_0x5c0819(0x93)](_0x1e29ad,[_0x5857c1]),_0x1e29ad[_0x5c0819(0x8c)][0x0];}[_0x2f689b(0x8f)](_0x4e2870){const _0x24c548=_0x2f689b,_0x1548c9=[];return this[_0x24c548(0x8b)][_0x24c548(0x94)](_0x24c548(0xa1))[_0x24c548(0xa6)](_0x1548c9,_0x4e2870),_0x1548c9[0x0];}[_0x2f689b(0x9a)](_0x2f783e){const _0x28e1f4=_0x2f689b;return _0x28e1f4(0xa1)==_0x2f783e[_0x28e1f4(0x92)]&&_0x28e1f4(0xa3)==_0x2f783e[_0x28e1f4(0x9c)][_0x28e1f4(0x90)]&&0x1==_0x2f783e[_0x28e1f4(0xa7)]&&!_0x2f783e[_0x28e1f4(0x96)];}}
23
+ const _0x456fb0=_0x1556;(function(_0x4b6ce8,_0x5d65c1){const _0x20c968=_0x1556,_0x4f697a=_0x4b6ce8();while(!![]){try{const _0x310f06=parseInt(_0x20c968(0x1a2))/0x1*(parseInt(_0x20c968(0x1b5))/0x2)+-parseInt(_0x20c968(0x1b0))/0x3*(parseInt(_0x20c968(0x1ac))/0x4)+parseInt(_0x20c968(0x1a1))/0x5*(-parseInt(_0x20c968(0x1a8))/0x6)+-parseInt(_0x20c968(0x19d))/0x7+parseInt(_0x20c968(0x1a4))/0x8*(parseInt(_0x20c968(0x1b1))/0x9)+parseInt(_0x20c968(0x1a9))/0xa+parseInt(_0x20c968(0x1ab))/0xb;if(_0x310f06===_0x5d65c1)break;else _0x4f697a['push'](_0x4f697a['shift']());}catch(_0x34c218){_0x4f697a['push'](_0x4f697a['shift']());}}}(_0x170d,0xa3a53));import _0x18c42d from'./actioncompressor.js';function _0x1556(_0x1e8491,_0x211dfe){const _0x170d81=_0x170d();return _0x1556=function(_0x155662,_0xbd0c10){_0x155662=_0x155662-0x199;let _0x461d17=_0x170d81[_0x155662];return _0x461d17;},_0x1556(_0x1e8491,_0x211dfe);}import{arePositionsEqual as _0x5db7ef}from'../utils.js';import{cloneDeep as _0x494fe5}from'lodash-es';export default class h extends _0x18c42d{[_0x456fb0(0x1a3)](_0x59e87b,_0x3c7eb2){const _0x35b1dc=_0x456fb0;return _0x3c7eb2[_0x35b1dc(0x19a)]++,_0x3c7eb2;}[_0x456fb0(0x1b3)](_0x57c9c0){const _0x15d235=_0x456fb0,_0x1d0e80=_0x494fe5(_0x57c9c0);return _0x1d0e80[_0x15d235(0x19a)]=0x1,_0x57c9c0[_0x15d235(0x19a)]--,_0x1d0e80;}[_0x456fb0(0x1ae)](_0x47da25,_0x162948){const _0xa77ba0=_0x456fb0;return!(!this[_0xa77ba0(0x19e)](_0x47da25)||!this[_0xa77ba0(0x19e)](_0x162948))&&(_0x5db7ef(_0x47da25[_0xa77ba0(0x1b4)],_0x162948[_0xa77ba0(0x1b4)])&&_0x5db7ef(_0x47da25[_0xa77ba0(0x1a0)],_0x162948[_0xa77ba0(0x1a0)]));}[_0x456fb0(0x1a7)](_0x796362){const _0x1c57d6=_0x456fb0,_0x35475c={'types':[],'buffers':[],'baseVersion':0x0};return this[_0x1c57d6(0x1b6)][_0x1c57d6(0x1aa)](_0x1c57d6(0x19b))[_0x1c57d6(0x19c)](_0x35475c,[_0x796362]),_0x35475c[_0x1c57d6(0x19f)][0x0];}[_0x456fb0(0x1ad)](_0x26a1ac){const _0x58978b=_0x456fb0,_0x3c597b=[];return this[_0x58978b(0x1b6)][_0x58978b(0x1aa)](_0x58978b(0x19b))[_0x58978b(0x1a6)](_0x3c597b,_0x26a1ac),_0x3c597b[0x0];}[_0x456fb0(0x19e)](_0x167267){const _0x442d63=_0x456fb0;return _0x442d63(0x19b)==_0x167267[_0x442d63(0x1a5)]&&_0x442d63(0x199)==_0x167267[_0x442d63(0x1a0)][_0x442d63(0x1af)]&&0x1==_0x167267[_0x442d63(0x19a)]&&!_0x167267[_0x442d63(0x1b2)];}}function _0x170d(){const _0x2b26dc=['_combineNext','8VxdCVu','__className','decompress','_compressSingleOperation','701430XLwkuH','11105840jOtZei','_getCompressorByName','6179338NTnUcV','4eZEXXl','_decompressSingleOperation','_compareOperations','root','2585802pvkIhN','7783452BMPxnL','wasUndone','_splitCurrent','sourcePosition','2USpNsg','_context','$graveyard','howMany','MoveOperation','compress','1609874UMYHjj','_checkOperation','buffers','targetPosition','50hZqYOu','394087FMVNdm'];_0x170d=function(){return _0x2b26dc;};return _0x170d();}
@@ -20,4 +20,4 @@
20
20
  *
21
21
  *
22
22
  */
23
- const _0x33fee0=_0x3f3e;function _0x3f3e(_0x90eac4,_0x5a917e){const _0x3b27a8=_0x3b27();return _0x3f3e=function(_0x3f3e16,_0x1ade27){_0x3f3e16=_0x3f3e16-0xfc;let _0x28c474=_0x3b27a8[_0x3f3e16];return _0x28c474;},_0x3f3e(_0x90eac4,_0x5a917e);}(function(_0x5b3372,_0x23af68){const _0x44c535=_0x3f3e,_0x391cf9=_0x5b3372();while(!![]){try{const _0x1f385e=parseInt(_0x44c535(0x100))/0x1*(parseInt(_0x44c535(0x106))/0x2)+parseInt(_0x44c535(0x111))/0x3*(parseInt(_0x44c535(0x109))/0x4)+parseInt(_0x44c535(0x104))/0x5+parseInt(_0x44c535(0x10f))/0x6+parseInt(_0x44c535(0x121))/0x7+-parseInt(_0x44c535(0x103))/0x8*(parseInt(_0x44c535(0x11a))/0x9)+-parseInt(_0x44c535(0x115))/0xa*(parseInt(_0x44c535(0x10a))/0xb);if(_0x1f385e===_0x23af68)break;else _0x391cf9['push'](_0x391cf9['shift']());}catch(_0x22e2d6){_0x391cf9['push'](_0x391cf9['shift']());}}}(_0x3b27,0xd9d16));import _0x327c86 from'./actioncompressor.js';function _0x3b27(){const _0x45596a=['_splitCurrent','wasUndone','iterator','_combineNext','_getCompressorByName','_context','12337318IwUNJe','value','substr','data','length','1055611oLZcTe','_decompressSingleOperation','_compressSingleOperation','856IjAdee','906765FfQuRP','nodes','2XdmTwe','attributes','compress','52czGogo','11bLzQZR','next','every','_compareOperations','__className','1192734BGtxyT','buffers','25851uGThxw','from','position','_compareAttributes','20520190yQZqaX','keys','InsertOperation','_checkOperation','decompress','30789raprHE'];_0x3b27=function(){return _0x45596a;};return _0x3b27();}import{arePositionsEqual as _0x6b90d3,getPositionShiftedBy as _0x2b2bc7}from'../utils.js';import{cloneDeep as _0x37db97}from'lodash-es';export default class m extends _0x327c86{[_0x33fee0(0x11e)](_0xf1ab09,_0x57dbc4){const _0x435c84=_0x33fee0;return _0x57dbc4[_0x435c84(0x105)][0x0][_0x435c84(0xfe)]+=_0xf1ab09[_0x435c84(0x105)][0x0][_0x435c84(0xfe)],_0x57dbc4;}[_0x33fee0(0x11b)](_0x4f0008){const _0x41ecf8=_0x33fee0,_0x5bdbf2=_0x37db97(_0x4f0008),_0x29b753=_0x5bdbf2[_0x41ecf8(0x105)][0x0],_0x3d708b=_0x4f0008[_0x41ecf8(0x105)][0x0],_0x1c54d8=_0x3d708b[_0x41ecf8(0xfe)][Symbol[_0x41ecf8(0x11d)]]()[_0x41ecf8(0x10b)]()[_0x41ecf8(0xfc)],_0x1a75cb=_0x1c54d8[_0x41ecf8(0xff)];return _0x29b753[_0x41ecf8(0xfe)]=_0x1c54d8,_0x3d708b[_0x41ecf8(0xfe)]=_0x3d708b[_0x41ecf8(0xfe)][_0x41ecf8(0xfd)](_0x1a75cb),_0x4f0008[_0x41ecf8(0x113)]=_0x2b2bc7(_0x4f0008[_0x41ecf8(0x113)],_0x1a75cb),_0x5bdbf2;}[_0x33fee0(0x10d)](_0x389d98,_0x479a70){const _0x3347d0=_0x33fee0;if(this[_0x3347d0(0x118)](_0x389d98)&&this[_0x3347d0(0x118)](_0x479a70)){const _0x18be5f=_0x389d98[_0x3347d0(0x105)][0x0][_0x3347d0(0xfe)][_0x3347d0(0xff)],_0x2a22ae=_0x6b90d3(_0x2b2bc7(_0x389d98[_0x3347d0(0x113)],_0x18be5f),_0x479a70[_0x3347d0(0x113)]),_0x26d167=_0x389d98[_0x3347d0(0x105)][0x0],_0x5eab6a=_0x479a70[_0x3347d0(0x105)][0x0];return _0x2a22ae&&this[_0x3347d0(0x114)](_0x26d167,_0x5eab6a);}return!0x1;}[_0x33fee0(0x102)](_0x10445a){const _0x259726=_0x33fee0,_0x19f111={'types':[],'buffers':[],'baseVersion':0x0};return this[_0x259726(0x120)][_0x259726(0x11f)](_0x259726(0x117))[_0x259726(0x108)](_0x19f111,[_0x10445a]),_0x19f111[_0x259726(0x110)][0x0];}[_0x33fee0(0x101)](_0x27e01b){const _0x2526b6=_0x33fee0,_0xc246d7=[];return this[_0x2526b6(0x120)][_0x2526b6(0x11f)](_0x2526b6(0x117))[_0x2526b6(0x119)](_0xc246d7,_0x27e01b),_0xc246d7[0x0];}[_0x33fee0(0x118)](_0xb580b6){const _0x31a4b8=_0x33fee0;return _0x31a4b8(0x117)==_0xb580b6[_0x31a4b8(0x10e)]&&0x1==_0xb580b6[_0x31a4b8(0x105)][_0x31a4b8(0xff)]&&_0xb580b6[_0x31a4b8(0x105)][0x0][_0x31a4b8(0xfe)]&&!_0xb580b6[_0x31a4b8(0x11c)]&&0x1==Array[_0x31a4b8(0x112)](_0xb580b6[_0x31a4b8(0x105)][0x0][_0x31a4b8(0xfe)])[_0x31a4b8(0xff)];}[_0x33fee0(0x114)](_0x118101,_0x6de08d){const _0x7263f9=_0x33fee0,_0x2c80dd=Object[_0x7263f9(0x116)](_0x118101[_0x7263f9(0x107)]||{}),_0x2a2ee3=Object[_0x7263f9(0x116)](_0x6de08d[_0x7263f9(0x107)]||{});return _0x2c80dd[_0x7263f9(0xff)]===_0x2a2ee3[_0x7263f9(0xff)]&&_0x2c80dd[_0x7263f9(0x10c)](_0x20f090=>_0x6de08d[_0x7263f9(0x107)][_0x20f090]&&_0x6de08d[_0x7263f9(0x107)][_0x20f090]===_0x118101[_0x7263f9(0x107)][_0x20f090]);}}
23
+ const _0x3aaa8d=_0x4f9b;(function(_0x593a1e,_0x55cffa){const _0x4cfd6d=_0x4f9b,_0x2c02c7=_0x593a1e();while(!![]){try{const _0x49273d=-parseInt(_0x4cfd6d(0x1c3))/0x1+parseInt(_0x4cfd6d(0x1c8))/0x2*(parseInt(_0x4cfd6d(0x1c5))/0x3)+-parseInt(_0x4cfd6d(0x1dc))/0x4*(-parseInt(_0x4cfd6d(0x1c2))/0x5)+-parseInt(_0x4cfd6d(0x1e4))/0x6*(-parseInt(_0x4cfd6d(0x1d0))/0x7)+-parseInt(_0x4cfd6d(0x1da))/0x8*(parseInt(_0x4cfd6d(0x1d6))/0x9)+-parseInt(_0x4cfd6d(0x1ce))/0xa+-parseInt(_0x4cfd6d(0x1c9))/0xb*(parseInt(_0x4cfd6d(0x1c1))/0xc);if(_0x49273d===_0x55cffa)break;else _0x2c02c7['push'](_0x2c02c7['shift']());}catch(_0x50a0cd){_0x2c02c7['push'](_0x2c02c7['shift']());}}}(_0x450c,0xe069c));import _0xc80951 from'./actioncompressor.js';import{arePositionsEqual as _0x143b8c,getPositionShiftedBy as _0x241a32}from'../utils.js';function _0x450c(){const _0x837ded=['_compareAttributes','_compressSingleOperation','88pjBIqX','_checkOperation','12CHWjGs','__className','iterator','_context','_decompressSingleOperation','decompress','position','nodes','673602UNHYiQ','value','from','data','1485528WgbexJ','1749165FiikTf','289582NNErVg','InsertOperation','3555LRWuLO','length','_getCompressorByName','924OhlSAZ','11BwXuft','compress','keys','substr','attributes','5785090kpquvI','_splitCurrent','49ddDupA','wasUndone','_compareOperations','_combineNext','buffers','every','385983UWWLox','next'];_0x450c=function(){return _0x837ded;};return _0x450c();}function _0x4f9b(_0x54029b,_0x5d105c){const _0x450cf0=_0x450c();return _0x4f9b=function(_0x4f9b82,_0x3a2330){_0x4f9b82=_0x4f9b82-0x1c1;let _0x64411d=_0x450cf0[_0x4f9b82];return _0x64411d;},_0x4f9b(_0x54029b,_0x5d105c);}import{cloneDeep as _0x341e06}from'lodash-es';export default class m extends _0xc80951{[_0x3aaa8d(0x1d3)](_0x9fb01e,_0x97c85f){const _0x34c27d=_0x3aaa8d;return _0x97c85f[_0x34c27d(0x1e3)][0x0][_0x34c27d(0x1e7)]+=_0x9fb01e[_0x34c27d(0x1e3)][0x0][_0x34c27d(0x1e7)],_0x97c85f;}[_0x3aaa8d(0x1cf)](_0x3437ae){const _0x2566c4=_0x3aaa8d,_0xe1a828=_0x341e06(_0x3437ae),_0x330b0a=_0xe1a828[_0x2566c4(0x1e3)][0x0],_0x20e3c7=_0x3437ae[_0x2566c4(0x1e3)][0x0],_0x2d9d25=_0x20e3c7[_0x2566c4(0x1e7)][Symbol[_0x2566c4(0x1de)]]()[_0x2566c4(0x1d7)]()[_0x2566c4(0x1e5)],_0x104b0f=_0x2d9d25[_0x2566c4(0x1c6)];return _0x330b0a[_0x2566c4(0x1e7)]=_0x2d9d25,_0x20e3c7[_0x2566c4(0x1e7)]=_0x20e3c7[_0x2566c4(0x1e7)][_0x2566c4(0x1cc)](_0x104b0f),_0x3437ae[_0x2566c4(0x1e2)]=_0x241a32(_0x3437ae[_0x2566c4(0x1e2)],_0x104b0f),_0xe1a828;}[_0x3aaa8d(0x1d2)](_0x317995,_0x97db11){const _0x1c7f71=_0x3aaa8d;if(this[_0x1c7f71(0x1db)](_0x317995)&&this[_0x1c7f71(0x1db)](_0x97db11)){const _0x1547d6=_0x317995[_0x1c7f71(0x1e3)][0x0][_0x1c7f71(0x1e7)][_0x1c7f71(0x1c6)],_0x4b8d67=_0x143b8c(_0x241a32(_0x317995[_0x1c7f71(0x1e2)],_0x1547d6),_0x97db11[_0x1c7f71(0x1e2)]),_0x428c32=_0x317995[_0x1c7f71(0x1e3)][0x0],_0xad1e60=_0x97db11[_0x1c7f71(0x1e3)][0x0];return _0x4b8d67&&this[_0x1c7f71(0x1d8)](_0x428c32,_0xad1e60);}return!0x1;}[_0x3aaa8d(0x1d9)](_0x1c881f){const _0x19ec5b=_0x3aaa8d,_0x7c1152={'types':[],'buffers':[],'baseVersion':0x0};return this[_0x19ec5b(0x1df)][_0x19ec5b(0x1c7)](_0x19ec5b(0x1c4))[_0x19ec5b(0x1ca)](_0x7c1152,[_0x1c881f]),_0x7c1152[_0x19ec5b(0x1d4)][0x0];}[_0x3aaa8d(0x1e0)](_0x4e3ff1){const _0x181df3=_0x3aaa8d,_0x4a6f9b=[];return this[_0x181df3(0x1df)][_0x181df3(0x1c7)](_0x181df3(0x1c4))[_0x181df3(0x1e1)](_0x4a6f9b,_0x4e3ff1),_0x4a6f9b[0x0];}[_0x3aaa8d(0x1db)](_0x30ed77){const _0x2647ce=_0x3aaa8d;return _0x2647ce(0x1c4)==_0x30ed77[_0x2647ce(0x1dd)]&&0x1==_0x30ed77[_0x2647ce(0x1e3)][_0x2647ce(0x1c6)]&&_0x30ed77[_0x2647ce(0x1e3)][0x0][_0x2647ce(0x1e7)]&&!_0x30ed77[_0x2647ce(0x1d1)]&&0x1==Array[_0x2647ce(0x1e6)](_0x30ed77[_0x2647ce(0x1e3)][0x0][_0x2647ce(0x1e7)])[_0x2647ce(0x1c6)];}[_0x3aaa8d(0x1d8)](_0x227941,_0x5b3e79){const _0xeffd05=_0x3aaa8d,_0xeff5=Object[_0xeffd05(0x1cb)](_0x227941[_0xeffd05(0x1cd)]||{}),_0x32da91=Object[_0xeffd05(0x1cb)](_0x5b3e79[_0xeffd05(0x1cd)]||{});return _0xeff5[_0xeffd05(0x1c6)]===_0x32da91[_0xeffd05(0x1c6)]&&_0xeff5[_0xeffd05(0x1d5)](_0x25f450=>_0x5b3e79[_0xeffd05(0x1cd)][_0x25f450]&&_0x5b3e79[_0xeffd05(0x1cd)][_0x25f450]===_0x227941[_0xeffd05(0x1cd)][_0x25f450]);}}