@ckeditor/ckeditor5-operations-compressor 36.0.0 → 37.0.0-rc.0

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 (40) hide show
  1. package/package.json +14 -4
  2. package/src/actioncompressor/actioncompressor.d.ts +56 -0
  3. package/src/actioncompressor/actioncompressor.js +1 -1
  4. package/src/actioncompressor/deletingactioncompressor.d.ts +24 -0
  5. package/src/actioncompressor/deletingactioncompressor.js +1 -1
  6. package/src/actioncompressor/forwarddeletingactioncompressor.d.ts +24 -0
  7. package/src/actioncompressor/forwarddeletingactioncompressor.js +1 -1
  8. package/src/actioncompressor/typingactioncompressor.d.ts +24 -0
  9. package/src/actioncompressor/typingactioncompressor.js +1 -1
  10. package/src/actioncompressor/userselectionactioncompressor.d.ts +12 -0
  11. package/src/actioncompressor/userselectionactioncompressor.js +1 -1
  12. package/src/compressor.d.ts +41 -0
  13. package/src/compressor.js +1 -1
  14. package/src/lib/compiledmessages.d.ts +1435 -0
  15. package/src/lib/compiledmessages.js +23 -0
  16. package/src/operationcompressor/annotationmarkeroperationcompressor.d.ts +18 -0
  17. package/src/operationcompressor/annotationmarkeroperationcompressor.js +1 -1
  18. package/src/operationcompressor/attributeoperationcompressor.d.ts +13 -0
  19. package/src/operationcompressor/attributeoperationcompressor.js +1 -1
  20. package/src/operationcompressor/insertoperationcompressor.d.ts +13 -0
  21. package/src/operationcompressor/insertoperationcompressor.js +1 -1
  22. package/src/operationcompressor/markeroperationcompressor.d.ts +9 -0
  23. package/src/operationcompressor/markeroperationcompressor.js +1 -1
  24. package/src/operationcompressor/nooperationcompressor.d.ts +16 -0
  25. package/src/operationcompressor/nooperationcompressor.js +1 -1
  26. package/src/operationcompressor/operationcompressor.d.ts +24 -0
  27. package/src/operationcompressor/operationcompressor.js +1 -1
  28. package/src/protobufdescriptions.d.ts +12 -0
  29. package/src/protobufdescriptions.js +23 -0
  30. package/src/protobuffactory.d.ts +1 -0
  31. package/src/protobuffactory.js +1 -1
  32. package/src/utils.d.ts +26 -0
  33. package/src/utils.js +1 -1
  34. package/src/commondescriptions.js +0 -23
  35. package/src/errors.jsdoc +0 -18
  36. package/src/operationcompressor/mergeoperationcompressor.js +0 -23
  37. package/src/operationcompressor/moveoperationcompressor.js +0 -23
  38. package/src/operationcompressor/renameoperationcompressor.js +0 -23
  39. package/src/operationcompressor/rootattributeoperationcompressor.js +0 -23
  40. package/src/operationcompressor/splitoperationcompressor.js +0 -23
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-operations-compressor",
3
- "version": "36.0.0",
3
+ "version": "37.0.0-rc.0",
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/",
@@ -27,8 +27,18 @@
27
27
  ],
28
28
  "author": "CKSource (http://cksource.com/)",
29
29
  "dependencies": {
30
- "ckeditor5": "^36.0.0",
30
+ "ckeditor5": "^37.0.0-rc.0",
31
31
  "lodash-es": "^4.17.11",
32
- "protobufjs": "^6.8.8"
33
- }
32
+ "protobufjs": "^7.0.0"
33
+ },
34
+ "files": [
35
+ "src/**/*.js",
36
+ "src/**/*.d.ts",
37
+ "CHANGELOG.md"
38
+ ],
39
+ "scripts": {
40
+ "build": "tsc -p ./tsconfig.json",
41
+ "postversion": "npm run build"
42
+ },
43
+ "obfuscated": true
34
44
  }
@@ -0,0 +1,56 @@
1
+ import type { CompressedOperationsData, default as Compressor } from '../compressor';
2
+ /**
3
+ * * Compresses and decompresses multiple operations into the one buffer.
4
+ */
5
+ export default abstract class ActionCompressor {
6
+ constructor(id: number, context: Compressor);
7
+ /**
8
+ * Combines and compress operations from the list.
9
+ * Operations are consumed as long as match this compressor.
10
+ *
11
+ * @param result Object to which compression result should be added.
12
+ * @param operations List of operations in JSON format to compress.
13
+ * @returns `true` when operation is consumed `false` otherwise.
14
+ */
15
+ compress(result: CompressedOperationsData, operations: Array<any>): boolean;
16
+ /**
17
+ * Decompress and split compressed operations. Decompressed operations are consumed (removed from the input data).
18
+ *
19
+ * @param result Decompressed operations in JSON format.
20
+ * @param data Compressed operations data.
21
+ */
22
+ decompress(result: Array<any>, data: CompressedOperationsData): void;
23
+ /**
24
+ * Compresses single operation using a proper compressor.
25
+ *
26
+ * @param operation Operation in JSON format.
27
+ * @returns Operation JSON compressed to the binary format.
28
+ */
29
+ protected abstract _compressSingleOperation(operation: any): Uint8Array;
30
+ /**
31
+ * Decompresses combined operation using a proper compressor.
32
+ *
33
+ * @param data Data to compress.
34
+ * @returns Decompressed operation in JSON format.
35
+ */
36
+ protected abstract _decompressSingleOperation(data: CompressedOperationsData): any;
37
+ /**
38
+ * Combine next operation into the combined one.
39
+ *
40
+ * @param nextOperation Operation to combine in JSON format.
41
+ * @param combined Combined operation in JSON format.
42
+ * @returns Combined operation in JSON format.
43
+ */
44
+ protected abstract _combineNext(nextOperation: any, combined: any): any;
45
+ /**
46
+ * Split operation from combined one.
47
+ *
48
+ * @param combined Combined operation in JSON format.
49
+ * @returns Split operation in JSON format.
50
+ */
51
+ protected abstract _splitCurrent(combined: any): any;
52
+ /**
53
+ * Checks if two operations can be combined.
54
+ */
55
+ protected abstract _compareOperations(opA: any, opB: any): boolean;
56
+ }
@@ -20,4 +20,4 @@
20
20
  *
21
21
  *
22
22
  */
23
- const _0x299b=['decompress','_combineNext','_decompressSingleOperation','_splitCurrent','_context','length','types','compress','push','_compressSingleOperation','_compareOperations','shift','buffers'];(function(_0x3a894c,_0x299bab){const _0x2a313d=function(_0x2db042){while(--_0x2db042){_0x3a894c['push'](_0x3a894c['shift']());}};_0x2a313d(++_0x299bab);}(_0x299b,0x15a));const _0x2a31=function(_0x3a894c,_0x299bab){_0x3a894c=_0x3a894c-0x0;let _0x2a313d=_0x299b[_0x3a894c];return _0x2a313d;};import{cloneDeep as _0x5c1935}from'lodash-es';export default class j{constructor(_0x35c0dd,_0x34c6b7){this['id']=_0x35c0dd,this[_0x2a31('0x9')]=_0x34c6b7;}[_0x2a31('0xc')](_0x1c3261,_0x29bed4){let _0x4c15f8;for(;_0x29bed4[_0x2a31('0xa')]>0x1&&this[_0x2a31('0x2')](_0x29bed4[0x0],_0x29bed4[0x1]);)_0x4c15f8?(_0x4c15f8=this[_0x2a31('0x6')](_0x29bed4[_0x2a31('0x3')](),_0x4c15f8),_0x1c3261[_0x2a31('0xb')][_0x2a31('0x0')](0x0)):(_0x4c15f8=_0x5c1935(_0x29bed4[_0x2a31('0x3')]()),_0x1c3261[_0x2a31('0xb')][_0x2a31('0x0')](this['id']));return!!_0x4c15f8&&(_0x4c15f8=this[_0x2a31('0x6')](_0x29bed4[_0x2a31('0x3')](),_0x4c15f8),_0x1c3261[_0x2a31('0xb')][_0x2a31('0x0')](0x0),_0x1c3261[_0x2a31('0x4')][_0x2a31('0x0')](this[_0x2a31('0x1')](_0x4c15f8)),!0x0);}[_0x2a31('0x5')](_0x1cfe20,_0x74aabd){const _0x17b0f8=this[_0x2a31('0x7')](_0x74aabd);for(;0x0==_0x74aabd['types'][0x0];)_0x74aabd['types'][_0x2a31('0x3')](),_0x1cfe20[_0x2a31('0x0')](this[_0x2a31('0x8')](_0x17b0f8));_0x1cfe20['push'](_0x17b0f8);}}
23
+ const _0x54da=['length','_compareOperations','push','_decompressSingleOperation','types','_splitCurrent','shift','_compressSingleOperation','_combineNext','compress','_id'];(function(_0x53fbad,_0x54dade){const _0x521280=function(_0x8986d){while(--_0x8986d){_0x53fbad['push'](_0x53fbad['shift']());}};_0x521280(++_0x54dade);}(_0x54da,0x1c5));const _0x5212=function(_0x53fbad,_0x54dade){_0x53fbad=_0x53fbad-0x0;let _0x521280=_0x54da[_0x53fbad];return _0x521280;};import{cloneDeep as _0x1163ed}from'lodash-es';export default class b{constructor(_0x172647,_0x5dcec5){this[_0x5212('0x8')]=_0x172647,this['_context']=_0x5dcec5;}[_0x5212('0x7')](_0x1cd530,_0x266616){let _0x315bcb;for(;_0x266616[_0x5212('0x9')]>0x1&&this[_0x5212('0xa')](_0x266616[0x0],_0x266616[0x1]);)_0x315bcb?(_0x315bcb=this[_0x5212('0x6')](_0x266616['shift'](),_0x315bcb),_0x1cd530[_0x5212('0x2')][_0x5212('0x0')](0x0)):(_0x315bcb=_0x1163ed(_0x266616[_0x5212('0x4')]()),_0x1cd530[_0x5212('0x2')][_0x5212('0x0')](this[_0x5212('0x8')]));return!!_0x315bcb&&(_0x315bcb=this[_0x5212('0x6')](_0x266616['shift'](),_0x315bcb),_0x1cd530[_0x5212('0x2')][_0x5212('0x0')](0x0),_0x1cd530['buffers'][_0x5212('0x0')](this[_0x5212('0x5')](_0x315bcb)),!0x0);}['decompress'](_0x59b549,_0x30f98f){const _0x263dde=this[_0x5212('0x1')](_0x30f98f);for(;0x0==_0x30f98f[_0x5212('0x2')][0x0];)_0x30f98f[_0x5212('0x2')][_0x5212('0x4')](),_0x59b549['push'](this[_0x5212('0x3')](_0x263dde));_0x59b549[_0x5212('0x0')](_0x263dde);}}
@@ -0,0 +1,24 @@
1
+ import ActionCompressor from './actioncompressor';
2
+ import type { CompressedOperationsData } from '../compressor';
3
+ export default class DeletingActionCompressor extends ActionCompressor {
4
+ /**
5
+ * @inheritDoc
6
+ */
7
+ protected _combineNext(nextOperation: any, combined: any): any;
8
+ /**
9
+ * @inheritDoc
10
+ */
11
+ protected _splitCurrent(combined: any): any;
12
+ /**
13
+ * @inheritDoc
14
+ */
15
+ protected _compareOperations(opA: any, opB: any): boolean;
16
+ /**
17
+ * @inheritDoc
18
+ */
19
+ protected _compressSingleOperation(operation: any): Uint8Array;
20
+ /**
21
+ * @inheritDoc
22
+ */
23
+ protected _decompressSingleOperation(data: CompressedOperationsData): any;
24
+ }
@@ -20,4 +20,4 @@
20
20
  *
21
21
  *
22
22
  */
23
- const _0x2ffe=['_decompressSingleOperation','buffers','_context','howMany','sourcePosition','decompress','_compressSingleOperation','MoveOperation','_splitCurrent','_compareOperations','compress','targetPosition','$graveyard','_getCompressorByName','root'];(function(_0x5c4f9a,_0x2ffecb){const _0x5e0c4b=function(_0x3c9b5e){while(--_0x3c9b5e){_0x5c4f9a['push'](_0x5c4f9a['shift']());}};_0x5e0c4b(++_0x2ffecb);}(_0x2ffe,0x1e8));const _0x5e0c=function(_0x5c4f9a,_0x2ffecb){_0x5c4f9a=_0x5c4f9a-0x0;let _0x5e0c4b=_0x2ffe[_0x5c4f9a];return _0x5e0c4b;};import _0x4577ba from'./actioncompressor';import{arePositionsEqual as _0x368bcd,getPositionShiftedBy as _0x112606}from'../utils';import{cloneDeep as _0x1b188f}from'lodash-es';export default class u extends _0x4577ba{['_combineNext'](_0x5802be,_0x39f52f){return _0x39f52f[_0x5e0c('0xa')]++,_0x39f52f['sourcePosition']=_0x1b188f(_0x5802be[_0x5e0c('0xb')]),_0x39f52f;}[_0x5e0c('0x0')](_0x4bf61f){const _0x14ad07=_0x1b188f(_0x4bf61f);return _0x4bf61f[_0x5e0c('0xa')]--,_0x14ad07[_0x5e0c('0xa')]=0x1,_0x14ad07[_0x5e0c('0xb')]=_0x112606(_0x14ad07[_0x5e0c('0xb')],_0x4bf61f[_0x5e0c('0xa')]),_0x14ad07;}[_0x5e0c('0x1')](_0xdbca8c,_0x436660){return!(!S(_0xdbca8c)||!S(_0x436660))&&(_0x368bcd(_0x112606(_0xdbca8c[_0x5e0c('0xb')],-0x1),_0x436660[_0x5e0c('0xb')])&&_0x368bcd(_0xdbca8c[_0x5e0c('0x3')],_0x436660[_0x5e0c('0x3')]));}[_0x5e0c('0xd')](_0x337750){const _0x5c8fc3={'types':[],'buffers':[],'baseVersion':0x0};return this[_0x5e0c('0x9')][_0x5e0c('0x5')]('MoveOperation')[_0x5e0c('0x2')](_0x5c8fc3,[_0x337750]),_0x5c8fc3[_0x5e0c('0x8')][0x0];}[_0x5e0c('0x7')](_0x534dc7){const _0x4f0bef=[];return this[_0x5e0c('0x9')][_0x5e0c('0x5')]('MoveOperation')[_0x5e0c('0xc')](_0x4f0bef,_0x534dc7),_0x4f0bef[0x0];}}function S(_0x52af66){return _0x5e0c('0xe')==_0x52af66['__className']&&_0x5e0c('0x4')==_0x52af66[_0x5e0c('0x3')][_0x5e0c('0x6')]&&0x1==_0x52af66[_0x5e0c('0xa')]&&!_0x52af66['wasUndone'];}
23
+ const _0x63c8=['__className','compress','$graveyard','sourcePosition','targetPosition','wasUndone','_compressSingleOperation','_splitCurrent','_checkOperation','_combineNext','howMany','_getCompressorByName','buffers','decompress','MoveOperation','_context'];(function(_0x408d05,_0x63c800){const _0x2539b7=function(_0x132284){while(--_0x132284){_0x408d05['push'](_0x408d05['shift']());}};_0x2539b7(++_0x63c800);}(_0x63c8,0x173));const _0x2539=function(_0x408d05,_0x63c800){_0x408d05=_0x408d05-0x0;let _0x2539b7=_0x63c8[_0x408d05];return _0x2539b7;};import _0x3c1dcd from'./actioncompressor';import{arePositionsEqual as _0x4f04c3,getPositionShiftedBy as _0x46fbaf}from'../utils';import{cloneDeep as _0x4f72b2}from'lodash-es';export default class c extends _0x3c1dcd{[_0x2539('0x6')](_0x28447c,_0x1d4914){return _0x1d4914[_0x2539('0x7')]++,_0x1d4914[_0x2539('0x0')]=_0x4f72b2(_0x28447c[_0x2539('0x0')]),_0x1d4914;}[_0x2539('0x4')](_0xe9961){const _0x5354ba=_0x4f72b2(_0xe9961);return _0xe9961[_0x2539('0x7')]--,_0x5354ba[_0x2539('0x7')]=0x1,_0x5354ba[_0x2539('0x0')]=_0x46fbaf(_0x5354ba[_0x2539('0x0')],_0xe9961['howMany']),_0x5354ba;}['_compareOperations'](_0x37b307,_0x5feca4){return!(!this[_0x2539('0x5')](_0x37b307)||!this[_0x2539('0x5')](_0x5feca4))&&(_0x4f04c3(_0x46fbaf(_0x37b307['sourcePosition'],-0x1),_0x5feca4[_0x2539('0x0')])&&_0x4f04c3(_0x37b307[_0x2539('0x1')],_0x5feca4[_0x2539('0x1')]));}[_0x2539('0x3')](_0x37b25d){const _0x4873d6={'types':[],'buffers':[],'baseVersion':0x0};return this[_0x2539('0xc')]['_getCompressorByName'](_0x2539('0xb'))[_0x2539('0xe')](_0x4873d6,[_0x37b25d]),_0x4873d6[_0x2539('0x9')][0x0];}['_decompressSingleOperation'](_0x5c9de){const _0x4e87b2=[];return this[_0x2539('0xc')][_0x2539('0x8')](_0x2539('0xb'))[_0x2539('0xa')](_0x4e87b2,_0x5c9de),_0x4e87b2[0x0];}[_0x2539('0x5')](_0x48e6be){return _0x2539('0xb')==_0x48e6be[_0x2539('0xd')]&&_0x2539('0xf')==_0x48e6be[_0x2539('0x1')]['root']&&0x1==_0x48e6be[_0x2539('0x7')]&&!_0x48e6be[_0x2539('0x2')];}}
@@ -0,0 +1,24 @@
1
+ import ActionCompressor from './actioncompressor';
2
+ import type { CompressedOperationsData } from '../compressor';
3
+ export default class ForwardDeletingActionCompressor extends ActionCompressor {
4
+ /**
5
+ * @inheritDoc
6
+ */
7
+ protected _combineNext(nextOperation: any, combined: any): any;
8
+ /**
9
+ * @inheritDoc
10
+ */
11
+ protected _splitCurrent(combined: any): any;
12
+ /**
13
+ * @inheritDoc
14
+ */
15
+ protected _compareOperations(opA: any, opB: any): boolean;
16
+ /**
17
+ * @inheritDoc
18
+ */
19
+ protected _compressSingleOperation(operation: any): Uint8Array;
20
+ /**
21
+ * @inheritDoc
22
+ */
23
+ protected _decompressSingleOperation(data: CompressedOperationsData): any;
24
+ }
@@ -20,4 +20,4 @@
20
20
  *
21
21
  *
22
22
  */
23
- const _0x2dff=['_getCompressorByName','decompress','_compressSingleOperation','MoveOperation','_splitCurrent','targetPosition','_context','root','__className','_decompressSingleOperation','buffers','sourcePosition','howMany','_combineNext','wasUndone'];(function(_0x2b22a4,_0x2dffda){const _0xae1e2b=function(_0x2c633d){while(--_0x2c633d){_0x2b22a4['push'](_0x2b22a4['shift']());}};_0xae1e2b(++_0x2dffda);}(_0x2dff,0x119));const _0xae1e=function(_0x2b22a4,_0x2dffda){_0x2b22a4=_0x2b22a4-0x0;let _0xae1e2b=_0x2dff[_0x2b22a4];return _0xae1e2b;};import _0x3f38c7 from'./actioncompressor';import{arePositionsEqual as _0x4ff2f2}from'../utils';import{cloneDeep as _0x2a409c}from'lodash-es';export default class l extends _0x3f38c7{[_0xae1e('0x2')](_0x54abfa,_0x285578){return _0x285578[_0xae1e('0x1')]++,_0x285578;}[_0xae1e('0x8')](_0x385147){const _0x526bac=_0x2a409c(_0x385147);return _0x526bac[_0xae1e('0x1')]=0x1,_0x385147[_0xae1e('0x1')]--,_0x526bac;}['_compareOperations'](_0x5f5ba2,_0x342271){return!(!S(_0x5f5ba2)||!S(_0x342271))&&(_0x4ff2f2(_0x5f5ba2[_0xae1e('0x0')],_0x342271[_0xae1e('0x0')])&&_0x4ff2f2(_0x5f5ba2[_0xae1e('0x9')],_0x342271[_0xae1e('0x9')]));}[_0xae1e('0x6')](_0x505f08){const _0x35633a={'types':[],'buffers':[],'baseVersion':0x0};return this['_context'][_0xae1e('0x4')](_0xae1e('0x7'))['compress'](_0x35633a,[_0x505f08]),_0x35633a[_0xae1e('0xe')][0x0];}[_0xae1e('0xd')](_0xe32b1b){const _0xaf2612=[];return this[_0xae1e('0xa')][_0xae1e('0x4')]('MoveOperation')[_0xae1e('0x5')](_0xaf2612,_0xe32b1b),_0xaf2612[0x0];}}function S(_0xef0c6e){return _0xae1e('0x7')==_0xef0c6e[_0xae1e('0xc')]&&'$graveyard'==_0xef0c6e['targetPosition'][_0xae1e('0xb')]&&0x1==_0xef0c6e[_0xae1e('0x1')]&&!_0xef0c6e[_0xae1e('0x3')];}
23
+ const _0x50e6=['_compareOperations','_getCompressorByName','wasUndone','sourcePosition','__className','_combineNext','targetPosition','_checkOperation','_context','$graveyard','_decompressSingleOperation','root','MoveOperation','_compressSingleOperation','howMany','_splitCurrent'];(function(_0x6e8111,_0x50e6c3){const _0x490635=function(_0x54c0ee){while(--_0x54c0ee){_0x6e8111['push'](_0x6e8111['shift']());}};_0x490635(++_0x50e6c3);}(_0x50e6,0x81));const _0x4906=function(_0x6e8111,_0x50e6c3){_0x6e8111=_0x6e8111-0x0;let _0x490635=_0x50e6[_0x6e8111];return _0x490635;};import _0x27bad0 from'./actioncompressor';import{arePositionsEqual as _0x52a4b3}from'../utils';import{cloneDeep as _0x277371}from'lodash-es';export default class h extends _0x27bad0{[_0x4906('0x4')](_0x2495b0,_0x46230e){return _0x46230e[_0x4906('0xd')]++,_0x46230e;}[_0x4906('0xe')](_0x16eda0){const _0x1d3b9d=_0x277371(_0x16eda0);return _0x1d3b9d[_0x4906('0xd')]=0x1,_0x16eda0['howMany']--,_0x1d3b9d;}[_0x4906('0xf')](_0x4a0dba,_0x5d7f82){return!(!this[_0x4906('0x6')](_0x4a0dba)||!this['_checkOperation'](_0x5d7f82))&&(_0x52a4b3(_0x4a0dba[_0x4906('0x2')],_0x5d7f82[_0x4906('0x2')])&&_0x52a4b3(_0x4a0dba[_0x4906('0x5')],_0x5d7f82[_0x4906('0x5')]));}[_0x4906('0xc')](_0x16e6a1){const _0x1a565a={'types':[],'buffers':[],'baseVersion':0x0};return this[_0x4906('0x7')][_0x4906('0x0')](_0x4906('0xb'))['compress'](_0x1a565a,[_0x16e6a1]),_0x1a565a['buffers'][0x0];}[_0x4906('0x9')](_0x38bd78){const _0x585232=[];return this[_0x4906('0x7')][_0x4906('0x0')](_0x4906('0xb'))['decompress'](_0x585232,_0x38bd78),_0x585232[0x0];}['_checkOperation'](_0x22057b){return _0x4906('0xb')==_0x22057b[_0x4906('0x3')]&&_0x4906('0x8')==_0x22057b['targetPosition'][_0x4906('0xa')]&&0x1==_0x22057b[_0x4906('0xd')]&&!_0x22057b[_0x4906('0x1')];}}
@@ -0,0 +1,24 @@
1
+ import ActionCompressor from './actioncompressor';
2
+ import type { CompressedOperationsData } from '../compressor';
3
+ export default class TypingActionCompressor extends ActionCompressor {
4
+ /**
5
+ * @inheritDocs
6
+ */
7
+ protected _combineNext(nextOperation: any, combined: any): any;
8
+ /**
9
+ * @inheritDoc
10
+ */
11
+ protected _splitCurrent(combined: any): any;
12
+ /**
13
+ * @inheritDoc
14
+ */
15
+ protected _compareOperations(opA: any, opB: any): boolean;
16
+ /**
17
+ * @inheritDoc
18
+ */
19
+ protected _compressSingleOperation(operation: any): Uint8Array;
20
+ /**
21
+ * @inheritDoc
22
+ */
23
+ protected _decompressSingleOperation(data: CompressedOperationsData): any;
24
+ }
@@ -20,4 +20,4 @@
20
20
  *
21
21
  *
22
22
  */
23
- const _0x4254=['nodes','next','value','_compareOperations','wasUndone','iterator','_splitCurrent','data','__className','_decompressSingleOperation','_combineNext','InsertOperation','_getCompressorByName','keys','length','_context','decompress','position','from','attributes'];(function(_0x15a653,_0x425454){const _0x30dd84=function(_0x36d687){while(--_0x36d687){_0x15a653['push'](_0x15a653['shift']());}};_0x30dd84(++_0x425454);}(_0x4254,0xbf));const _0x30dd=function(_0x15a653,_0x425454){_0x15a653=_0x15a653-0x0;let _0x30dd84=_0x4254[_0x15a653];return _0x30dd84;};import _0xebc114 from'./actioncompressor';import{arePositionsEqual as _0x4725a9,getPositionShiftedBy as _0x559d10}from'../utils';import{cloneDeep as _0xb7658e}from'lodash-es';export default class g extends _0xebc114{[_0x30dd('0x13')](_0x3195fd,_0x471c32){return _0x471c32[_0x30dd('0x9')][0x0][_0x30dd('0x10')]+=_0x3195fd[_0x30dd('0x9')][0x0][_0x30dd('0x10')],_0x471c32;}[_0x30dd('0xf')](_0xca4b92){const _0x4dbcee=_0xb7658e(_0xca4b92),_0x490719=_0x4dbcee[_0x30dd('0x9')][0x0],_0x5ef229=_0xca4b92['nodes'][0x0],_0x593eab=_0x5ef229[_0x30dd('0x10')][Symbol[_0x30dd('0xe')]]()[_0x30dd('0xa')]()[_0x30dd('0xb')],_0x134d10=_0x593eab['length'];return _0x490719[_0x30dd('0x10')]=_0x593eab,_0x5ef229[_0x30dd('0x10')]=_0x5ef229[_0x30dd('0x10')]['substr'](_0x134d10),_0xca4b92[_0x30dd('0x6')]=_0x559d10(_0xca4b92[_0x30dd('0x6')],_0x134d10),_0x4dbcee;}[_0x30dd('0xc')](_0x4dd982,_0xd25b57){if(S(_0x4dd982)&&S(_0xd25b57)){const _0x5056a3=_0x4dd982[_0x30dd('0x9')][0x0]['data'][_0x30dd('0x3')],_0x4486c2=_0x4725a9(_0x559d10(_0x4dd982[_0x30dd('0x6')],_0x5056a3),_0xd25b57[_0x30dd('0x6')]),_0x39abb1=_0x4dd982[_0x30dd('0x9')][0x0],_0x1dab7c=_0xd25b57['nodes'][0x0];return _0x4486c2&&function(_0x446bf9,_0x28c784){const _0x31b185=Object['keys'](_0x446bf9[_0x30dd('0x8')]||{}),_0x18fac8=Object[_0x30dd('0x2')](_0x28c784[_0x30dd('0x8')]||{});if(_0x31b185[_0x30dd('0x3')]!==_0x18fac8[_0x30dd('0x3')])return!0x1;return _0x31b185['every'](_0x37df8a=>_0x28c784[_0x30dd('0x8')][_0x37df8a]&&_0x28c784[_0x30dd('0x8')][_0x37df8a]===_0x446bf9['attributes'][_0x37df8a]);}(_0x39abb1,_0x1dab7c);}return!0x1;}['_compressSingleOperation'](_0x4eec51){const _0x251b7d={'types':[],'buffers':[],'baseVersion':0x0};return this['_context'][_0x30dd('0x1')](_0x30dd('0x0'))['compress'](_0x251b7d,[_0x4eec51]),_0x251b7d['buffers'][0x0];}[_0x30dd('0x12')](_0x556ccf){const _0x4bfec4=[];return this[_0x30dd('0x4')][_0x30dd('0x1')](_0x30dd('0x0'))[_0x30dd('0x5')](_0x4bfec4,_0x556ccf),_0x4bfec4[0x0];}}function S(_0x40c478){return _0x30dd('0x0')==_0x40c478[_0x30dd('0x11')]&&0x1==_0x40c478[_0x30dd('0x9')][_0x30dd('0x3')]&&_0x40c478['nodes'][0x0][_0x30dd('0x10')]&&!_0x40c478[_0x30dd('0xd')]&&0x1==Array[_0x30dd('0x7')](_0x40c478[_0x30dd('0x9')][0x0][_0x30dd('0x10')])['length'];}
23
+ const _0x2b07=['iterator','nodes','_compareOperations','position','data','_combineNext','InsertOperation','next','_checkOperation','substr','_compareAttributes','_decompressSingleOperation','length','attributes','__className','decompress','_splitCurrent','value','_getCompressorByName','_context','keys'];(function(_0x510abc,_0x2b072c){const _0x5216db=function(_0x272b05){while(--_0x272b05){_0x510abc['push'](_0x510abc['shift']());}};_0x5216db(++_0x2b072c);}(_0x2b07,0x1b8));const _0x5216=function(_0x510abc,_0x2b072c){_0x510abc=_0x510abc-0x0;let _0x5216db=_0x2b07[_0x510abc];return _0x5216db;};import _0x14308e from'./actioncompressor';import{arePositionsEqual as _0x4fc537,getPositionShiftedBy as _0x5ba88f}from'../utils';import{cloneDeep as _0x49e0ed}from'lodash-es';export default class m extends _0x14308e{[_0x5216('0x6')](_0x12e89a,_0x54aa12){return _0x54aa12[_0x5216('0x2')][0x0]['data']+=_0x12e89a['nodes'][0x0][_0x5216('0x5')],_0x54aa12;}[_0x5216('0x11')](_0x1b94d4){const _0x4acfcc=_0x49e0ed(_0x1b94d4),_0x286923=_0x4acfcc[_0x5216('0x2')][0x0],_0x4f52bb=_0x1b94d4[_0x5216('0x2')][0x0],_0x5aa491=_0x4f52bb[_0x5216('0x5')][Symbol[_0x5216('0x1')]]()[_0x5216('0x8')]()[_0x5216('0x12')],_0x2f924a=_0x5aa491[_0x5216('0xd')];return _0x286923[_0x5216('0x5')]=_0x5aa491,_0x4f52bb[_0x5216('0x5')]=_0x4f52bb[_0x5216('0x5')][_0x5216('0xa')](_0x2f924a),_0x1b94d4['position']=_0x5ba88f(_0x1b94d4['position'],_0x2f924a),_0x4acfcc;}[_0x5216('0x3')](_0x2a0310,_0x1f77b0){if(this[_0x5216('0x9')](_0x2a0310)&&this['_checkOperation'](_0x1f77b0)){const _0x5d7aa8=_0x2a0310[_0x5216('0x2')][0x0]['data'][_0x5216('0xd')],_0x3b7bd0=_0x4fc537(_0x5ba88f(_0x2a0310[_0x5216('0x4')],_0x5d7aa8),_0x1f77b0[_0x5216('0x4')]),_0x10fa8c=_0x2a0310[_0x5216('0x2')][0x0],_0x11d782=_0x1f77b0['nodes'][0x0];return _0x3b7bd0&&this[_0x5216('0xb')](_0x10fa8c,_0x11d782);}return!0x1;}['_compressSingleOperation'](_0x4cbab9){const _0xe671c5={'types':[],'buffers':[],'baseVersion':0x0};return this[_0x5216('0x14')][_0x5216('0x13')](_0x5216('0x7'))['compress'](_0xe671c5,[_0x4cbab9]),_0xe671c5['buffers'][0x0];}[_0x5216('0xc')](_0x448ba1){const _0x4a0077=[];return this[_0x5216('0x14')][_0x5216('0x13')]('InsertOperation')[_0x5216('0x10')](_0x4a0077,_0x448ba1),_0x4a0077[0x0];}[_0x5216('0x9')](_0x1e4003){return'InsertOperation'==_0x1e4003[_0x5216('0xf')]&&0x1==_0x1e4003[_0x5216('0x2')]['length']&&_0x1e4003[_0x5216('0x2')][0x0]['data']&&!_0x1e4003['wasUndone']&&0x1==Array['from'](_0x1e4003[_0x5216('0x2')][0x0]['data'])[_0x5216('0xd')];}['_compareAttributes'](_0x225cc8,_0x24d4b3){const _0x1e5694=Object[_0x5216('0x0')](_0x225cc8[_0x5216('0xe')]||{}),_0x88c92d=Object[_0x5216('0x0')](_0x24d4b3[_0x5216('0xe')]||{});return _0x1e5694[_0x5216('0xd')]===_0x88c92d[_0x5216('0xd')]&&_0x1e5694['every'](_0xc15197=>_0x24d4b3[_0x5216('0xe')][_0xc15197]&&_0x24d4b3['attributes'][_0xc15197]===_0x225cc8[_0x5216('0xe')][_0xc15197]);}}
@@ -0,0 +1,12 @@
1
+ import ActionCompressor from './actioncompressor';
2
+ import type { CompressedOperationsData } from '../compressor';
3
+ export default class UserSelectionActionCompressor extends ActionCompressor {
4
+ /**
5
+ * @inheritDoc
6
+ */
7
+ compress(result: CompressedOperationsData, operations: Array<any>): boolean;
8
+ /**
9
+ * @inheritDoc
10
+ */
11
+ decompress(result: Array<any>, data: CompressedOperationsData): void;
12
+ }
@@ -20,4 +20,4 @@
20
20
  *
21
21
  *
22
22
  */
23
- const _0x419e=['startsWith','start','_compressSingleOperation','decompress','MarkerOperation','_decompressSingleOperation','end','_context','oldRange','push','types','__className','user:position:','newRange','split','name','_getCompressorByName','buffers','compress','shift','stickiness'];(function(_0x18500b,_0x419eba){const _0x470702=function(_0x11209e){while(--_0x11209e){_0x18500b['push'](_0x18500b['shift']());}};_0x470702(++_0x419eba);}(_0x419e,0xca));const _0x4707=function(_0x18500b,_0x419eba){_0x18500b=_0x18500b-0x0;let _0x470702=_0x419e[_0x18500b];return _0x470702;};import _0x1af251 from'./actioncompressor';import{arePositionsEqual as _0xe15bea}from'../utils';import{cloneDeep as _0x11ac23}from'lodash-es';export default class M extends _0x1af251{[_0x4707('0x5')](_0x553661,_0xfba7c3){if(!function(_0x2c6ab9,_0x212aa7){if(!_0x2c6ab9||!_0x212aa7)return!0x1;if(_0x4707('0xc')!=_0x2c6ab9[_0x4707('0x13')]||_0x4707('0xc')!=_0x212aa7[_0x4707('0x13')])return!0x1;if(_0x2c6ab9[_0x4707('0x2')]['startsWith']('user:')&&_0x212aa7[_0x4707('0x2')][_0x4707('0x8')]('user:')&&_0x2c6ab9['name']!=_0x212aa7[_0x4707('0x2')])return!0x0;return!0x1;}(_0xfba7c3[0x0],_0xfba7c3[0x1]))return!0x1;const _0x56cbeb=_0xfba7c3[_0x4707('0x6')]();return _0x56cbeb[_0x4707('0x10')]=null,_0x56cbeb[_0x4707('0x0')]&&_0xe15bea(_0x56cbeb[_0x4707('0x0')][_0x4707('0x9')],_0x56cbeb['newRange']['end'])&&(_0x56cbeb['newRange'][_0x4707('0xe')]=null),_0xfba7c3[_0x4707('0x6')](),_0x553661[_0x4707('0x12')][_0x4707('0x11')](this['id']),_0x553661[_0x4707('0x12')][_0x4707('0x11')](0x0),_0x553661['buffers']['push'](this[_0x4707('0xa')](_0x56cbeb)),!0x0;}[_0x4707('0xb')](_0x4fe34b,_0x46a778){const _0x56bd15=this[_0x4707('0xd')](_0x46a778);_0x56bd15[_0x4707('0x0')]&&!_0x56bd15[_0x4707('0x0')][_0x4707('0xe')]&&(_0x56bd15[_0x4707('0x0')][_0x4707('0xe')]=_0x11ac23(_0x56bd15[_0x4707('0x0')][_0x4707('0x9')]));const _0x33c745=_0x11ac23(_0x56bd15);_0x33c745[_0x4707('0x0')]&&(_0x33c745[_0x4707('0x0')][_0x4707('0x9')][_0x4707('0x7')]='toNone',_0x33c745['newRange'][_0x4707('0xe')]=_0x11ac23(_0x33c745[_0x4707('0x0')][_0x4707('0x9')])),_0x33c745[_0x4707('0x2')]=_0x4707('0x14')+_0x33c745[_0x4707('0x2')][_0x4707('0x1')](':')[0x2],_0x46a778['types']['shift'](),_0x4fe34b[_0x4707('0x11')](_0x56bd15),_0x4fe34b[_0x4707('0x11')](_0x33c745);}[_0x4707('0xa')](_0x303132){const _0x338302={'types':[],'buffers':[],'baseVersion':0x0};return this[_0x4707('0xf')][_0x4707('0x3')](_0x4707('0xc'))['compress'](_0x338302,[_0x303132]),_0x338302[_0x4707('0x4')][0x0];}[_0x4707('0xd')](_0x198d58){const _0x5e65fa=[];return this[_0x4707('0xf')][_0x4707('0x3')](_0x4707('0xc'))['decompress'](_0x5e65fa,_0x198d58),_0x5e65fa[0x0];}}
23
+ const _0x14c9=['__className','_compareOperations','user:position:','push','compress','start','types','decompress','startsWith','end','buffers','_context','_getCompressorByName','_compressSingleOperation','newRange','_id','_decompressSingleOperation','user:','MarkerOperation','name','shift'];(function(_0x384d6f,_0x14c962){const _0x4fb77a=function(_0x50b4bf){while(--_0x50b4bf){_0x384d6f['push'](_0x384d6f['shift']());}};_0x4fb77a(++_0x14c962);}(_0x14c9,0x150));const _0x4fb7=function(_0x384d6f,_0x14c962){_0x384d6f=_0x384d6f-0x0;let _0x4fb77a=_0x14c9[_0x384d6f];return _0x4fb77a;};import _0x410a6b from'./actioncompressor';import{arePositionsEqual as _0xc2e7e3}from'../utils';import{cloneDeep as _0x44a154}from'lodash-es';export default class f extends _0x410a6b{['compress'](_0x12e121,_0x139a08){if(!this[_0x4fb7('0x1')](_0x139a08[0x0],_0x139a08[0x1]))return!0x1;const _0x2a9dee=_0x139a08[_0x4fb7('0x14')]();return _0x2a9dee['oldRange']=null,_0x2a9dee[_0x4fb7('0xe')]&&_0xc2e7e3(_0x2a9dee[_0x4fb7('0xe')][_0x4fb7('0x5')],_0x2a9dee[_0x4fb7('0xe')][_0x4fb7('0x9')])&&(_0x2a9dee['newRange'][_0x4fb7('0x9')]=null),_0x139a08[_0x4fb7('0x14')](),_0x12e121['types'][_0x4fb7('0x3')](this[_0x4fb7('0xf')]),_0x12e121[_0x4fb7('0x6')][_0x4fb7('0x3')](0x0),_0x12e121[_0x4fb7('0xa')]['push'](this[_0x4fb7('0xd')](_0x2a9dee)),!0x0;}[_0x4fb7('0x7')](_0x168561,_0x4569c9){const _0x338293=this['_decompressSingleOperation'](_0x4569c9);_0x338293[_0x4fb7('0xe')]&&!_0x338293[_0x4fb7('0xe')][_0x4fb7('0x9')]&&(_0x338293[_0x4fb7('0xe')][_0x4fb7('0x9')]=_0x44a154(_0x338293['newRange']['start']));const _0x4fd7b5=_0x44a154(_0x338293);_0x4fd7b5[_0x4fb7('0xe')]&&(_0x4fd7b5['newRange'][_0x4fb7('0x5')]['stickiness']='toNone',_0x4fd7b5[_0x4fb7('0xe')]['end']=_0x44a154(_0x4fd7b5['newRange'][_0x4fb7('0x5')])),_0x4fd7b5[_0x4fb7('0x13')]=_0x4fb7('0x2')+_0x4fd7b5['name']['split'](':')[0x2],_0x4569c9['types'][_0x4fb7('0x14')](),_0x168561[_0x4fb7('0x3')](_0x338293),_0x168561[_0x4fb7('0x3')](_0x4fd7b5);}['_compressSingleOperation'](_0x1bc415){const _0x12cb01={'types':[],'buffers':[],'baseVersion':0x0};return this[_0x4fb7('0xb')][_0x4fb7('0xc')](_0x4fb7('0x12'))[_0x4fb7('0x4')](_0x12cb01,[_0x1bc415]),_0x12cb01[_0x4fb7('0xa')][0x0];}[_0x4fb7('0x10')](_0x577d82){const _0x51b5a9=[];return this[_0x4fb7('0xb')][_0x4fb7('0xc')]('MarkerOperation')[_0x4fb7('0x7')](_0x51b5a9,_0x577d82),_0x51b5a9[0x0];}[_0x4fb7('0x1')](_0x3563ee,_0x43345f){return!(!_0x3563ee||!_0x43345f)&&(_0x4fb7('0x12')==_0x3563ee[_0x4fb7('0x0')]&&'MarkerOperation'==_0x43345f[_0x4fb7('0x0')]&&!(!_0x3563ee[_0x4fb7('0x13')][_0x4fb7('0x8')](_0x4fb7('0x11'))||!_0x43345f['name'][_0x4fb7('0x8')]('user:')||_0x3563ee['name']==_0x43345f['name']));}}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Compresses and decompresses given set of operations in JSON format to/from the binary format using `Protocol Buffers`.
3
+ */
4
+ export default class Compressor {
5
+ constructor();
6
+ /**
7
+ * Compress given list of operations in JSON format.
8
+ *
9
+ * **Note** It tries to combine typing-like or deleting-like operations into the one buffer.
10
+ * **Note** Input data will be consumed and modified during compression process. If you need untouched data
11
+ * you need to copy it before the compression.
12
+ */
13
+ compress(operations: Array<any>): CompressedOperationsData;
14
+ /**
15
+ * Decompress given data to the list of operations in JSON format.
16
+ *
17
+ * **Note** Input data will be consumed during decompression process. If you need untouched data
18
+ * you need to copy it before the decompression.
19
+ *
20
+ * @param data Compressed operations.
21
+ * @returns List of operations in JSON format.
22
+ */
23
+ decompress(data: CompressedOperationsData): Array<any>;
24
+ }
25
+ /**
26
+ * Compressed operations data.
27
+ */
28
+ export type CompressedOperationsData = {
29
+ /**
30
+ * List of operations compressed to the binary format.
31
+ */
32
+ buffers: Array<Uint8Array>;
33
+ /**
34
+ * List of compressor identifiers. According to this types a proper compressor will be used for the decompression.
35
+ */
36
+ types: Array<number>;
37
+ /**
38
+ * Base version of the first compressed operation.
39
+ */
40
+ baseVersion: number;
41
+ };
package/src/compressor.js CHANGED
@@ -20,4 +20,4 @@
20
20
  *
21
21
  *
22
22
  */
23
- const _0x28f3=['__className','AttributeOperation','CommentMarkerOperation','comment','Position','NoOperation','DeletingAction','Range','description','MarkerOperation','forEach','TypingAction','Element','RenameOperation','MoveOperation','_registerCompressor','baseVersion','SplitOperation','types','RootAttributeOperation','MergeOperation','_compressorById','set','length','_registerActionCompressor','_compressorByName','registerDescriptor','decompress','get','_registerOperationCompressor','SuggestionMarkerOperation','ForwardDeletingAction','_getCompressorByName','no-operations-provided','compress','getDescriptor','build','UserSelectionAction','_protobufFactory'];(function(_0x38f0d0,_0x28f354){const _0x3c3b0c=function(_0x4acb84){while(--_0x4acb84){_0x38f0d0['push'](_0x38f0d0['shift']());}};_0x3c3b0c(++_0x28f354);}(_0x28f3,0x153));const _0x3c3b=function(_0x38f0d0,_0x28f354){_0x38f0d0=_0x38f0d0-0x0;let _0x3c3b0c=_0x28f3[_0x38f0d0];return _0x3c3b0c;};import{CKEditorError as _0x13ec08}from'ckeditor5/src/utils';import _0x2227bf from'./protobuffactory';import _0x2be7ed from'./commondescriptions';import _0x283d8d from'./operationcompressor/attributeoperationcompressor';import _0x4daf9b from'./operationcompressor/insertoperationcompressor';import _0x284750 from'./operationcompressor/markeroperationcompressor';import _0x4e9363 from'./operationcompressor/mergeoperationcompressor';import _0x3dc57c from'./operationcompressor/moveoperationcompressor';import _0x1c5815 from'./operationcompressor/renameoperationcompressor';import _0x339ddd from'./operationcompressor/rootattributeoperationcompressor';import _0x2a0b5f from'./operationcompressor/splitoperationcompressor';import _0x5b20b1 from'./operationcompressor/nooperationcompressor';import _0x27e724 from'./operationcompressor/annotationmarkeroperationcompressor';import _0x18c690 from'./actioncompressor/typingactioncompressor';import _0x3b386c from'./actioncompressor/deletingactioncompressor';import _0x547b75 from'./actioncompressor/forwarddeletingactioncompressor';import _0x4c5e89 from'./actioncompressor/userselectionactioncompressor';export default class w{constructor(){this[_0x3c3b('0x21')]=new Map(),this[_0x3c3b('0x25')]=new Map(),this[_0x3c3b('0xb')]=new _0x2227bf(),this[_0x3c3b('0xb')][_0x3c3b('0x26')](_0x3c3b('0x10'),_0x2be7ed['Position']),this[_0x3c3b('0xb')]['registerDescriptor'](_0x3c3b('0x13'),_0x2be7ed[_0x3c3b('0x13')]),this[_0x3c3b('0xb')][_0x3c3b('0x26')](_0x3c3b('0x18'),_0x2be7ed[_0x3c3b('0x18')]),this[_0x3c3b('0xb')][_0x3c3b('0x26')](_0x3c3b('0xd'),_0x283d8d['description']),this['_protobufFactory'][_0x3c3b('0x26')]('InsertOperation',_0x4daf9b[_0x3c3b('0x14')]),this[_0x3c3b('0xb')]['registerDescriptor'](_0x3c3b('0x15'),_0x284750['description']),this[_0x3c3b('0xb')]['registerDescriptor'](_0x3c3b('0x20'),_0x4e9363[_0x3c3b('0x14')]),this[_0x3c3b('0xb')]['registerDescriptor'](_0x3c3b('0x1a'),_0x3dc57c[_0x3c3b('0x14')]),this[_0x3c3b('0xb')][_0x3c3b('0x26')](_0x3c3b('0x19'),_0x1c5815['description']),this['_protobufFactory'][_0x3c3b('0x26')](_0x3c3b('0x1f'),_0x339ddd[_0x3c3b('0x14')]),this[_0x3c3b('0xb')][_0x3c3b('0x26')](_0x3c3b('0x1d'),_0x2a0b5f[_0x3c3b('0x14')]),this['_protobufFactory'][_0x3c3b('0x9')](),this[_0x3c3b('0x1b')](0x1,'NoOperation',new _0x5b20b1(0x1,_0x3c3b('0x11'))),this['_registerOperationCompressor'](0xa,_0x3c3b('0xd'),_0x283d8d),this[_0x3c3b('0x2')](0xb,'InsertOperation',_0x4daf9b),this[_0x3c3b('0x2')](0xc,_0x3c3b('0x15'),_0x284750),this[_0x3c3b('0x2')](0xd,_0x3c3b('0x20'),_0x4e9363),this['_registerOperationCompressor'](0xe,_0x3c3b('0x1a'),_0x3dc57c),this[_0x3c3b('0x2')](0xf,'RenameOperation',_0x1c5815),this[_0x3c3b('0x2')](0x10,_0x3c3b('0x1f'),_0x339ddd),this[_0x3c3b('0x2')](0x11,_0x3c3b('0x1d'),_0x2a0b5f);const _0x292709=this[_0x3c3b('0xb')][_0x3c3b('0x8')]('MarkerOperation');this[_0x3c3b('0x1b')](0x12,'CommentMarkerOperation',new _0x27e724(0x12,_0x3c3b('0x15'),_0x292709,_0x3c3b('0xf'))),this[_0x3c3b('0x1b')](0x13,_0x3c3b('0x3'),new _0x27e724(0x13,_0x3c3b('0x15'),_0x292709,'suggestion')),this['_registerActionCompressor'](0x64,_0x3c3b('0x17'),_0x18c690),this[_0x3c3b('0x24')](0x65,_0x3c3b('0x12'),_0x3b386c),this[_0x3c3b('0x24')](0x66,_0x3c3b('0x4'),_0x547b75),this[_0x3c3b('0x24')](0x67,_0x3c3b('0xa'),_0x4c5e89);}['_registerOperationCompressor'](_0x31f8e7,_0x55979e,_0x146f3e){const _0x30c815=new _0x146f3e(_0x31f8e7,_0x55979e,this['_protobufFactory'][_0x3c3b('0x8')](_0x55979e));this[_0x3c3b('0x1b')](_0x31f8e7,_0x55979e,_0x30c815);}[_0x3c3b('0x24')](_0x5f2322,_0x76af87,_0x40ebed){const _0x358618=new _0x40ebed(_0x5f2322,this);this['_registerCompressor'](_0x5f2322,_0x76af87,_0x358618);}[_0x3c3b('0x1b')](_0x5e8467,_0x54541b,_0x1d8cb2){this[_0x3c3b('0x21')]['set'](_0x5e8467,_0x1d8cb2),this[_0x3c3b('0x25')][_0x3c3b('0x22')](_0x54541b,_0x1d8cb2);}['_getCompressorByName'](_0x3f9e10){return this[_0x3c3b('0x25')][_0x3c3b('0x1')](_0x3f9e10);}[_0x3c3b('0x7')](_0x45b361){if(!_0x45b361||!_0x45b361[0x0])throw new _0x13ec08(_0x3c3b('0x6'),this);const _0x31340f={'types':[],'buffers':[],'baseVersion':_0x45b361[0x0][_0x3c3b('0x1c')]};for(;_0x45b361[_0x3c3b('0x23')];)this[_0x3c3b('0x5')]('UserSelectionAction')['compress'](_0x31340f,_0x45b361)||this[_0x3c3b('0x5')]('TypingAction')[_0x3c3b('0x7')](_0x31340f,_0x45b361)||this['_getCompressorByName'](_0x3c3b('0x12'))[_0x3c3b('0x7')](_0x31340f,_0x45b361)||this[_0x3c3b('0x5')](_0x3c3b('0x4'))[_0x3c3b('0x7')](_0x31340f,_0x45b361)||this[_0x3c3b('0x5')](_0x3c3b('0xe'))[_0x3c3b('0x7')](_0x31340f,_0x45b361)||this[_0x3c3b('0x5')]('SuggestionMarkerOperation')['compress'](_0x31340f,_0x45b361)||this[_0x3c3b('0x5')](_0x45b361[0x0][_0x3c3b('0xc')])[_0x3c3b('0x7')](_0x31340f,_0x45b361);return _0x31340f;}['decompress'](_0x5d2dbb){const _0x4f2e25=[];for(;_0x5d2dbb[_0x3c3b('0x1e')][_0x3c3b('0x23')];){this[_0x3c3b('0x21')]['get'](_0x5d2dbb[_0x3c3b('0x1e')][0x0])[_0x3c3b('0x0')](_0x4f2e25,_0x5d2dbb);}return _0x4f2e25[_0x3c3b('0x16')]((_0x1cbe31,_0x7b4d0f)=>_0x1cbe31[_0x3c3b('0x1c')]=_0x5d2dbb[_0x3c3b('0x1c')]+_0x7b4d0f),_0x4f2e25;}}
23
+ const _0x44d7=['CommentMarkerOperation','_protobufFactory','SplitOperation','getDescriptor','baseVersion','comment','SuggestionMarkerOperation','_registerActionCompressor','_compressorByName','_getCompressorByName','get','_registerOperationCompressor','AttributeOperation','InsertOperation','types','NoOperation','ForwardDeletingAction','set','UserSelectionAction','forEach','_compressorById','RootOperation','MarkerOperation','decompress','MoveOperation','DeletingAction','__className','TypingAction','no-operations-provided','compress','_registerCompressor'];(function(_0x4ddbb1,_0x44d7f7){const _0x3f080e=function(_0x4915a1){while(--_0x4915a1){_0x4ddbb1['push'](_0x4ddbb1['shift']());}};_0x3f080e(++_0x44d7f7);}(_0x44d7,0x1ab));const _0x3f08=function(_0x4ddbb1,_0x44d7f7){_0x4ddbb1=_0x4ddbb1-0x0;let _0x3f080e=_0x44d7[_0x4ddbb1];return _0x3f080e;};import{CKEditorError as _0x4c2a55}from'ckeditor5/src/utils';import _0x53b782 from'./protobuffactory';import _0x451aa7 from'./operationcompressor/operationcompressor';import _0x1a668b from'./operationcompressor/attributeoperationcompressor';import _0x403be3 from'./operationcompressor/insertoperationcompressor';import _0x5be628 from'./operationcompressor/markeroperationcompressor';import _0x2f87b7 from'./operationcompressor/nooperationcompressor';import _0x31a86c from'./operationcompressor/annotationmarkeroperationcompressor';import _0x823004 from'./actioncompressor/typingactioncompressor';import _0x424024 from'./actioncompressor/deletingactioncompressor';import _0x32fcd3 from'./actioncompressor/forwarddeletingactioncompressor';import _0x5d2d37 from'./actioncompressor/userselectionactioncompressor';export default class g{constructor(){this['_compressorById']=new Map(),this[_0x3f08('0xf')]=new Map(),this['_protobufFactory']=new _0x53b782();const _0x476ad5=this[_0x3f08('0x8')][_0x3f08('0xa')]('MarkerOperation');this[_0x3f08('0x6')](0x1,_0x3f08('0x16'),new _0x2f87b7(0x1,'NoOperation',void 0x0)),this[_0x3f08('0x12')](0xa,_0x3f08('0x13'),_0x1a668b),this['_registerOperationCompressor'](0xb,_0x3f08('0x14'),_0x403be3),this[_0x3f08('0x12')](0xc,_0x3f08('0x1d'),_0x5be628),this[_0x3f08('0x12')](0xd,'MergeOperation',_0x451aa7),this['_registerOperationCompressor'](0xe,_0x3f08('0x0'),_0x451aa7),this[_0x3f08('0x12')](0xf,'RenameOperation',_0x451aa7),this[_0x3f08('0x12')](0x10,'RootAttributeOperation',_0x1a668b),this[_0x3f08('0x12')](0x11,_0x3f08('0x9'),_0x451aa7),this[_0x3f08('0x6')](0x12,_0x3f08('0x7'),new _0x31a86c(0x12,_0x3f08('0x1d'),_0x476ad5,_0x3f08('0xc'))),this[_0x3f08('0x6')](0x13,'SuggestionMarkerOperation',new _0x31a86c(0x13,_0x3f08('0x1d'),_0x476ad5,'suggestion')),this[_0x3f08('0x12')](0x14,_0x3f08('0x1c'),_0x451aa7),this['_registerActionCompressor'](0x64,'TypingAction',_0x823004),this[_0x3f08('0xe')](0x65,_0x3f08('0x1'),_0x424024),this[_0x3f08('0xe')](0x66,_0x3f08('0x17'),_0x32fcd3),this['_registerActionCompressor'](0x67,_0x3f08('0x19'),_0x5d2d37);}[_0x3f08('0x5')](_0x658496){if(!_0x658496||!_0x658496[0x0])throw new _0x4c2a55(_0x3f08('0x4'),this);const _0x5a4fe5={'types':[],'buffers':[],'baseVersion':_0x658496[0x0][_0x3f08('0xb')]};for(;_0x658496['length'];)this[_0x3f08('0x10')]('UserSelectionAction')[_0x3f08('0x5')](_0x5a4fe5,_0x658496)||this[_0x3f08('0x10')](_0x3f08('0x3'))[_0x3f08('0x5')](_0x5a4fe5,_0x658496)||this[_0x3f08('0x10')]('DeletingAction')[_0x3f08('0x5')](_0x5a4fe5,_0x658496)||this['_getCompressorByName'](_0x3f08('0x17'))[_0x3f08('0x5')](_0x5a4fe5,_0x658496)||this[_0x3f08('0x10')](_0x3f08('0x7'))[_0x3f08('0x5')](_0x5a4fe5,_0x658496)||this[_0x3f08('0x10')](_0x3f08('0xd'))[_0x3f08('0x5')](_0x5a4fe5,_0x658496)||this['_getCompressorByName'](_0x658496[0x0][_0x3f08('0x2')])['compress'](_0x5a4fe5,_0x658496);return _0x5a4fe5;}[_0x3f08('0x1e')](_0x198b4b){const _0x4685f6=[];for(;_0x198b4b['types']['length'];){this['_compressorById'][_0x3f08('0x11')](_0x198b4b[_0x3f08('0x15')][0x0])['decompress'](_0x4685f6,_0x198b4b);}return _0x4685f6[_0x3f08('0x1a')]((_0x2e6a4e,_0x2ae6bc)=>_0x2e6a4e[_0x3f08('0xb')]=_0x198b4b['baseVersion']+_0x2ae6bc),_0x4685f6;}['_getCompressorByName'](_0x20cfd5){return this['_compressorByName'][_0x3f08('0x11')](_0x20cfd5);}['_registerOperationCompressor'](_0x57c21f,_0x4cc1d1,_0x5230fb){const _0x32acad=new _0x5230fb(_0x57c21f,_0x4cc1d1,this[_0x3f08('0x8')]['getDescriptor'](_0x4cc1d1));this[_0x3f08('0x6')](_0x57c21f,_0x4cc1d1,_0x32acad);}[_0x3f08('0xe')](_0x566558,_0x3bb3af,_0x1993a6){const _0x4c7e81=new _0x1993a6(_0x566558,this);this[_0x3f08('0x6')](_0x566558,_0x3bb3af,_0x4c7e81);}[_0x3f08('0x6')](_0x314c2e,_0x776eb9,_0x3b5ee6){this[_0x3f08('0x1b')][_0x3f08('0x18')](_0x314c2e,_0x3b5ee6),this[_0x3f08('0xf')][_0x3f08('0x18')](_0x776eb9,_0x3b5ee6);}}