@univerjs-pro/collaboration-history-service 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object['defineProperty'](exports,Symbol['toStringTag'],{'value':'Module'});let e=require('@univerjs-pro/collaboration'),t=require('@univerjs-pro/collaboration-service');function n(_0x483fc9,_0x445abf){let _0x138e3d=0x0,_0x35190d=_0x483fc9['length'];for(;_0x138e3d<_0x35190d;){let _0x4730d4=_0x138e3d+_0x35190d>>>0x1;_0x483fc9[_0x4730d4]['startRevision']<=_0x445abf?_0x138e3d=_0x4730d4+0x1:_0x35190d=_0x4730d4;}return _0x138e3d;}function r(_0x1e067a,_0x3cd24d){let _0x403eb2=new Set(_0x3cd24d['userIDs']??[]),_0x40fed6=[],_0x4c93fe=Math['min'](_0x3cd24d['throughRevision'],(_0x3cd24d['beforeRevision']??0x1/0x0)-0x1);for(let _0x4bf2a9=n(_0x1e067a,_0x4c93fe)-0x1;_0x4bf2a9>=0x0;_0x4bf2a9--){let _0x5ab78f=_0x1e067a[_0x4bf2a9];if(!(_0x3cd24d['origin']&&_0x5ab78f['origin']!==_0x3cd24d['origin'])&&!(_0x403eb2['size']&&!_0x403eb2['has'](_0x5ab78f['userID']))){if(_0x40fed6['length']===_0x3cd24d['length'])return{'records':_0x40fed6,'hasMore':!0x0};_0x40fed6['push']({'record':{..._0x5ab78f},'endRevision':Math['min'](_0x3cd24d['throughRevision'],(_0x1e067a[_0x4bf2a9+0x1]?.['startRevision']??0x1/0x0)-0x1)});}}return{'records':_0x40fed6,'hasMore':!0x1};}function i(_0x565bef,_0xc9291b){let _0x5ac1d9=new Map();for(let _0x481717 of _0x565bef){if(_0x481717['startRevision']>_0xc9291b)break;let _0x5dae77=_0x5ac1d9['get'](_0x481717['userID'])??new Set();_0x5dae77['add'](_0x481717['origin']),_0x5ac1d9['set'](_0x481717['userID'],_0x5dae77);}return[..._0x5ac1d9]['sort'](([_0x42143],[_0x3c9727])=>_0x42143<_0x3c9727?-0x1:+(_0x42143>_0x3c9727))['map'](([_0x57661a,_0x446684])=>({'userID':_0x57661a,'origins':[..._0x446684]['sort']((_0x149112,_0x31759a)=>_0x149112-_0x31759a)}));}function a(_0x51bd7e,_0x1247f9){return _0x51bd7e['unitID']===_0x1247f9['unitID']&&_0x51bd7e['startRevision']===_0x1247f9['startRevision']&&_0x51bd7e['userID']===_0x1247f9['userID']&&_0x51bd7e['createdAt']===_0x1247f9['createdAt']&&_0x51bd7e['origin']===_0x1247f9['origin']&&_0x51bd7e['additionalFields']===_0x1247f9['additionalFields'];}function o(_0x4b119a){if(!_0x4b119a['unitID']||!_0x4b119a['userID']||!Number['isSafeInteger'](_0x4b119a['startRevision'])||_0x4b119a['startRevision']<0x1||!Number['isSafeInteger'](_0x4b119a['createdAt'])||_0x4b119a['createdAt']<0x0)throw TypeError('History\x20record\x20is\x20invalid');}var s=class{['_records']=new Map();['_disposed']=!0x1;async['getLatestRecord'](_0x49cfd0,_0xb30804){this['_assertOpen']();let _0x33689a=this['_records']['get'](_0xb30804)?.['at'](-0x1);return _0x33689a?{..._0x33689a}:null;}async['appendRecord'](_0x45eb5a,_0x2c4a9a,_0x37ad75){this['_assertOpen'](),o(_0x2c4a9a);let _0x2c50e2=this['_records']['get'](_0x2c4a9a['unitID'])??[],_0x18ac29=_0x2c50e2[n(_0x2c50e2,_0x2c4a9a['startRevision'])-0x1];if(_0x18ac29?.['startRevision']===_0x2c4a9a['startRevision'])return{'status':a(_0x18ac29,_0x2c4a9a)?'already-exists':'conflict'};let _0x3897e5=_0x2c50e2['at'](-0x1)?.['startRevision']??null;return _0x3897e5!==_0x37ad75['expectedLatestStartRevision']||_0x2c4a9a['startRevision']<=(_0x3897e5??0x0)?{'status':'conflict'}:(_0x2c50e2['push']({..._0x2c4a9a}),this['_records']['set'](_0x2c4a9a['unitID'],_0x2c50e2),{'status':'appended'});}async['listRecords'](_0x23f71e,_0x34a66a,_0x3af16e){return this['_assertOpen'](),r(this['_records']['get'](_0x34a66a)??[],_0x3af16e);}async['listCreators'](_0x406bcc,_0x241ab6,_0x159b99){return this['_assertOpen'](),i(this['_records']['get'](_0x241ab6)??[],_0x159b99['throughRevision']);}async['dispose'](){this['_disposed']=!0x0,this['_records']['clear']();}['_assertOpen'](){if(this['_disposed'])throw Error('Memory\x20History\x20Database\x20Adapter\x20is\x20disposed');}},c=class{['_timeIntervalMs'];['_singleHistoryMutationIds'];constructor(_0x500b2c={}){if(this['_timeIntervalMs']=_0x500b2c['timeIntervalMs']??0xea60,!Number['isSafeInteger'](this['_timeIntervalMs'])||this['_timeIntervalMs']<0x0)throw TypeError('timeIntervalMs\x20must\x20be\x20a\x20non-negative\x20safe\x20integer');this['_singleHistoryMutationIds']=_0x500b2c['singleHistoryMutationIds']??e['SINGLE_HISTORY_MUTATIONS'];}['evaluate'](_0x408727){let _0x8c8cfa=!!_0x408727['changeset']['mutations']['some'](_0x5defaa=>this['_singleHistoryMutationIds']['has'](_0x5defaa['id']));return{'startsNewHistory':_0x408727['currentRecord']===null||_0x8c8cfa||_0x408727['changeset']['createTime']*0x3e8-_0x408727['currentRecord']['createdAt']>=this['_timeIntervalMs'],'forceNextHistory':_0x8c8cfa};}},l=class{['_middlewares']=new Map();['use'](_0x262a9d,_0x5e20d5){let _0x4ac943=this['_middlewares']['get'](_0x262a9d)??[],_0x341270=_0x5e20d5;_0x4ac943['push'](_0x341270),this['_middlewares']['set'](_0x262a9d,_0x4ac943);let _0x83a615=!0x1;return{'dispose':()=>{if(_0x83a615)return;_0x83a615=!0x0;let _0x3fe9cb=_0x4ac943['indexOf'](_0x341270);_0x3fe9cb>=0x0&&_0x4ac943['splice'](_0x3fe9cb,0x1);}};}async['run'](_0x35aefe,_0x575e53,_0x3bef9c){let _0x3004df=[...this['_middlewares']['get'](_0x35aefe)??[]],_0x123bd0=async _0x55bb93=>{let _0x133d55=_0x3004df[_0x55bb93];if(!_0x133d55){await _0x3bef9c();return;}let _0x15b8f1=!0x1,_0x1a6294,_0x46cb18=()=>{if(_0x15b8f1)throw Error('Middleware\x20for\x20action\x20'+_0x35aefe+'\x20called\x20next()\x20more\x20than\x20once');return _0x15b8f1=!0x0,_0x1a6294=_0x123bd0(_0x55bb93+0x1),_0x1a6294;};try{await _0x133d55(_0x575e53,_0x46cb18);}catch(_0x1575b7){if(_0x1a6294)try{await _0x1a6294;}catch{}throw _0x1575b7;}if(!_0x15b8f1)throw Error('Middleware\x20for\x20action\x20'+_0x35aefe+'\x20completed\x20without\x20calling\x20next()');await _0x1a6294;};await _0x123bd0(0x0);}['clear'](){this['_middlewares']['clear']();}},u=0x100;function d(_0x377e6d){let _0x1072b1=_0x377e6d['createTime'];if(_0x1072b1===void 0x0||!Number['isSafeInteger'](_0x1072b1)||_0x1072b1<0x0||!Number['isSafeInteger'](_0x1072b1*0x3e8))throw new t['CollabError']('ADAPTER_FAILURE','History\x20requires\x20a\x20valid\x20persisted\x20changeset\x20createTime');return _0x1072b1*0x3e8;}async function f(_0x5a6f15,_0x1c3ff5,_0x4290e1){let _0x5522af=await _0x5a6f15['dbAdapter']['getUnit'](_0x1c3ff5,_0x4290e1);if(!_0x5522af)throw new t['CollabError']('UNIT_NOT_FOUND','Unit\x20'+_0x4290e1+'\x20does\x20not\x20exist');if(_0x5522af['unitID']!==_0x4290e1||!_0x5522af['creatorID']||!Number['isSafeInteger'](_0x5522af['createdAt'])||_0x5522af['createdAt']<0x0||!Number['isSafeInteger'](_0x5522af['headRevision'])||_0x5522af['headRevision']<0x1)throw new t['CollabError']('ADAPTER_FAILURE','History\x20received\x20invalid\x20Unit\x20creation\x20facts');return _0x5522af;}function p(_0x5c6789,_0x1c28bf,_0x59902b){if(_0x5c6789['unitID']!==_0x1c28bf['unitID']||_0x5c6789['type']!==_0x1c28bf['type']||_0x5c6789['revision']!==_0x59902b||!_0x5c6789['userID'])throw new t['CollabError']('ADAPTER_FAILURE','History\x20received\x20incomplete\x20or\x20invalid\x20changesets');d(_0x5c6789);}async function*m(_0x5275f0,_0x27f8f1,_0x1ee5bc,_0x38b77f,_0x252e09){let _0x428e40=Math['max'](_0x38b77f,0x1);for(;_0x428e40<_0x252e09;){let _0x48da10=Math['min'](_0x428e40+u,_0x252e09),{changesets:_0x4523fc}=await _0x5275f0['getChangesets']({'unitID':_0x1ee5bc['unitID'],'type':_0x1ee5bc['type'],'from':_0x428e40,'to':_0x48da10},_0x27f8f1);if(_0x4523fc['length']!==_0x48da10-_0x428e40)throw new t['CollabError']('ADAPTER_FAILURE','History\x20requires\x20continuous\x20Core\x20changesets');_0x4523fc['forEach']((_0x4e1895,_0x3354a1)=>p(_0x4e1895,_0x1ee5bc,_0x428e40+_0x3354a1+0x1)),yield _0x4523fc,_0x428e40=_0x48da10;}}var h=class extends Error{},g=class{['_core'];['_database'];['_policy'];['_maxCachedUnits'];['_maxRetries'];['_log'];['_states']=new Map();['_queues']=new Map();['_initializations']=new Map();constructor(_0x7896f1,_0x263ece,_0x5c8518,_0x3db86b,_0xe30f44,_0x40869b){this['_core']=_0x7896f1,this['_database']=_0x263ece,this['_policy']=_0x5c8518,this['_maxCachedUnits']=_0x3db86b,this['_maxRetries']=_0xe30f44,this['_log']=_0x40869b;}['committed'](_0x567e4f,_0x2f54b8){let {unitID:_0x4a2c4c,revision:_0xf27ade}=_0x2f54b8;this['_background'](_0x4a2c4c,()=>this['_sync'](_0x567e4f,_0x4a2c4c,_0xf27ade,_0x2f54b8));}['created'](_0x55d1e7,_0x5462f8){this['_background'](_0x5462f8['unitID'],()=>this['_sync'](_0x55d1e7,_0x5462f8['unitID'],0x1));}['initializeIfEmpty'](_0x43f2b2,_0x50cd9c){let _0x104948=this['_initializations']['get'](_0x50cd9c['unitID']);if(_0x104948)return _0x104948;let _0x9b3bad,_0x1e6aa2,_0x2c67a1=new Promise((_0x38736f,_0x323a51)=>{_0x9b3bad=_0x38736f,_0x1e6aa2=_0x323a51;});return this['_initializations']['set'](_0x50cd9c['unitID'],_0x2c67a1),this['_serialize'](_0x50cd9c['unitID'],async()=>{try{if(await this['_database']['getLatestRecord'](_0x43f2b2,_0x50cd9c['unitID'])){_0x9b3bad(null);return;}let _0x170056=_(_0x50cd9c),_0x51650b=[_0x170056['currentRecord']];for await(let _0x2d435e of m(this['_core'],_0x43f2b2,_0x50cd9c,0x1,_0x50cd9c['headRevision']))for(let _0x219b9c of _0x2d435e){let _0x58c59d=this['_advance'](_0x170056,_0x219b9c);_0x58c59d['currentRecord']!==_0x170056['currentRecord']&&_0x51650b['push'](_0x58c59d['currentRecord']),_0x170056=_0x58c59d;}_0x9b3bad(_0x51650b);let _0x4e1b11=null;for(let _0x1f76ef of _0x51650b)await this['_append'](_0x43f2b2,_0x1f76ef,_0x4e1b11),_0x4e1b11=_0x1f76ef['startRevision'];this['_remember'](_0x170056);}catch(_0x4cfd0f){throw this['_states']['delete'](_0x50cd9c['unitID']),_0x1e6aa2(_0x4cfd0f),_0x4cfd0f;}finally{this['_initializations']['get'](_0x50cd9c['unitID'])===_0x2c67a1&&this['_initializations']['delete'](_0x50cd9c['unitID']);}})['catch'](this['_log']),_0x2c67a1;}async['dispose'](){for(;this['_queues']['size'];)await Promise['allSettled']([...this['_queues']['values']()]);this['_states']['clear'](),this['_initializations']['clear']();}async['_sync'](_0x29a152,_0x3d5428,_0x4e3c5e,_0x2b0ef6){for(let _0x459e68=0x0;_0x459e68<=this['_maxRetries'];_0x459e68++)try{let _0x60e8d0=this['_states']['get'](_0x3d5428)??await this['_restore'](_0x29a152,_0x3d5428);if(_0x4e3c5e<=_0x60e8d0['processedRevision']){this['_remember'](_0x60e8d0);return;}if(_0x2b0ef6&&_0x2b0ef6['revision']===_0x60e8d0['processedRevision']+0x1)p(_0x2b0ef6,_0x60e8d0['unit'],_0x2b0ef6['revision']),_0x60e8d0=await this['_apply'](_0x29a152,_0x60e8d0,_0x2b0ef6);else{for await(let _0x24fe24 of m(this['_core'],_0x29a152,_0x60e8d0['unit'],_0x60e8d0['processedRevision'],_0x4e3c5e))for(let _0x1f713c of _0x24fe24)_0x60e8d0=await this['_apply'](_0x29a152,_0x60e8d0,_0x1f713c);}this['_remember'](_0x60e8d0);return;}catch(_0x2d65a5){if(this['_states']['delete'](_0x3d5428),!(_0x2d65a5 instanceof h)||_0x459e68===this['_maxRetries'])throw _0x2d65a5;}}async['_restore'](_0x453d6f,_0x50a182){let _0x1d090e=await f(this['_core'],_0x453d6f,_0x50a182),_0x917c24=await this['_database']['getLatestRecord'](_0x453d6f,_0x50a182);if(!_0x917c24){let _0x498c00=_(_0x1d090e);return await this['_append'](_0x453d6f,_0x498c00['currentRecord'],null),_0x498c00;}if(_0x917c24['startRevision']>_0x1d090e['headRevision'])throw new t['CollabError']('ADAPTER_FAILURE','History\x20boundary\x20exceeds\x20Core\x20head');if(_0x917c24['startRevision']===0x1)return{..._(_0x1d090e),'currentRecord':_0x917c24};let _0x40ed18=await this['_database']['listRecords'](_0x453d6f,_0x50a182,{'throughRevision':_0x917c24['startRevision'],'beforeRevision':_0x917c24['startRevision'],'length':0x1});for await(let _0x448bfe of m(this['_core'],_0x453d6f,_0x1d090e,_0x917c24['startRevision']-0x1,_0x917c24['startRevision'])){let _0x248cfa=_0x448bfe[0x0],_0x4719f9=this['_policy']['evaluate']({'unitID':_0x50a182,'type':_0x1d090e['type'],'currentRecord':_0x40ed18['records'][0x0]?.['record']??null,'changeset':_0x248cfa});return{'unit':_0x1d090e,'processedRevision':_0x917c24['startRevision'],'currentRecord':_0x917c24,'forceNextHistory':_0x4719f9['forceNextHistory']};}throw new t['CollabError']('ADAPTER_FAILURE','History\x20starting\x20changeset\x20is\x20missing');}['_advance'](_0x1417b2,_0x1383da){p(_0x1383da,_0x1417b2['unit'],_0x1417b2['processedRevision']+0x1);let _0x41d833=this['_policy']['evaluate']({'unitID':_0x1417b2['unit']['unitID'],'type':_0x1417b2['unit']['type'],'currentRecord':_0x1417b2['currentRecord'],'changeset':_0x1383da}),_0x5b6e31=_0x1417b2['currentRecord']['startRevision']===0x1||_0x1417b2['forceNextHistory']||_0x41d833['startsNewHistory']?{'unitID':_0x1383da['unitID'],'startRevision':_0x1383da['revision'],'userID':_0x1383da['userID'],'createdAt':d(_0x1383da),'origin':v(_0x1383da['additionalFields']),..._0x1383da['additionalFields']===void 0x0?{}:{'additionalFields':_0x1383da['additionalFields']}}:_0x1417b2['currentRecord'];return{'unit':_0x1417b2['unit'],'processedRevision':_0x1383da['revision'],'currentRecord':_0x5b6e31,'forceNextHistory':_0x41d833['forceNextHistory']};}async['_apply'](_0x17bb41,_0x46eb81,_0x9238fe){let _0x302a72=this['_advance'](_0x46eb81,_0x9238fe);return _0x302a72['currentRecord']!==_0x46eb81['currentRecord']&&await this['_append'](_0x17bb41,_0x302a72['currentRecord'],_0x46eb81['currentRecord']['startRevision']),this['_remember'](_0x302a72),_0x302a72;}async['_append'](_0x1c54ed,_0x29f811,_0x434423){if((await this['_database']['appendRecord'](_0x1c54ed,_0x29f811,{'expectedLatestStartRevision':_0x434423}))['status']==='conflict')throw new h('History\x20boundary\x20changed\x20during\x20indexing');}['_remember'](_0x5d097a){for(this['_states']['delete'](_0x5d097a['unit']['unitID']),this['_states']['set'](_0x5d097a['unit']['unitID'],_0x5d097a);this['_states']['size']>this['_maxCachedUnits'];)this['_states']['delete'](this['_states']['keys']()['next']()['value']);}['_serialize'](_0x1a108e,_0x48aa33){let _0x352bf1=(this['_queues']['get'](_0x1a108e)??Promise['resolve']())['then'](_0x48aa33,_0x48aa33),_0x21c1cc=_0x352bf1['then'](()=>void 0x0,()=>void 0x0)['finally'](()=>{this['_queues']['get'](_0x1a108e)===_0x21c1cc&&this['_queues']['delete'](_0x1a108e);});return this['_queues']['set'](_0x1a108e,_0x21c1cc),_0x352bf1;}['_background'](_0x9bb759,_0x28dc5b){this['_serialize'](_0x9bb759,_0x28dc5b)['catch'](this['_log']);}};function _(_0x41736d){return{'unit':_0x41736d,'processedRevision':0x1,'forceNextHistory':!0x1,'currentRecord':{'unitID':_0x41736d['unitID'],'startRevision':0x1,'userID':_0x41736d['creatorID'],'createdAt':_0x41736d['createdAt'],'origin':0x1}};}function v(_0x2ade38){if(!_0x2ade38)return 0x1;try{return JSON['parse'](_0x2ade38)?.['origin']===0x2?0x2:0x1;}catch{return 0x1;}}async function y(_0x5d71fc,_0x3a4d46,_0x4ce47c,_0x1877e8){let _0x592cc9=[..._0x1877e8]['sort']((_0x3bcd87,_0x3d24c6)=>_0x3bcd87['record']['startRevision']-_0x3d24c6['record']['startRevision'])['map'](_0xbd31a7=>({'range':_0xbd31a7,'commands':new Set(_0xbd31a7['record']['startRevision']===0x1?['univer.mutation.create-unit']:[]),'users':new Set(_0xbd31a7['record']['startRevision']===0x1?[_0x4ce47c['creatorID']]:[]),'startTime':_0xbd31a7['record']['startRevision']===0x1?_0x4ce47c['createdAt']:_0xbd31a7['record']['createdAt'],'endTime':_0xbd31a7['record']['createdAt']})),_0x151f19=new Map([[0x1,_0x4ce47c['createdAt']]]);for(let _0x1aaaf1=0x0;_0x1aaaf1<_0x592cc9['length'];){let _0x65c3d0=_0x1aaaf1;for(;_0x65c3d0+0x1<_0x592cc9['length']&&_0x592cc9[_0x65c3d0]['range']['endRevision']+0x1===_0x592cc9[_0x65c3d0+0x1]['range']['record']['startRevision'];)_0x65c3d0++;let _0x1c98e2=_0x1aaaf1,_0x5212b5=_0x592cc9[_0x1aaaf1]['range']['record']['startRevision']-0x1,_0x53f173=_0x592cc9[_0x65c3d0]['range']['endRevision'];for await(let _0x2d9186 of m(_0x5d71fc,_0x3a4d46,_0x4ce47c,_0x5212b5,_0x53f173))for(let _0x493ac7 of _0x2d9186){for(;_0x493ac7['revision']>_0x592cc9[_0x1c98e2]['range']['endRevision'];)_0x1c98e2++;let _0x3a2f8b=_0x592cc9[_0x1c98e2],_0x187479=d(_0x493ac7);_0x493ac7['revision']===_0x3a2f8b['range']['record']['startRevision']&&(_0x3a2f8b['startTime']=_0x187479),_0x3a2f8b['endTime']=_0x187479,_0x3a2f8b['users']['add'](_0x493ac7['userID']);for(let _0x1f0533 of _0x493ac7['mutations']){if(_0x3a2f8b['commands']['add'](_0x1f0533['id']),_0x1f0533['id']!=='univer.mutation.revert-version')continue;let _0x29b52d;try{_0x29b52d=JSON['parse'](_0x1f0533['data'])['revision'];}catch{throw new t['CollabError']('ADAPTER_FAILURE','History\x20contains\x20invalid\x20restore\x20data');}if(typeof _0x29b52d!='number'||!Number['isSafeInteger'](_0x29b52d)||_0x29b52d<0x1||_0x29b52d>=_0x493ac7['revision'])throw new t['CollabError']('ADAPTER_FAILURE','History\x20contains\x20an\x20invalid\x20restore\x20revision');_0x3a2f8b['restoredRevision']??=_0x29b52d;}}_0x1aaaf1=_0x65c3d0+0x1;}let _0x545cd5=new Set(_0x592cc9['flatMap'](_0x4d2e6=>_0x4d2e6['restoredRevision']===void 0x0?[]:[_0x4d2e6['restoredRevision']]));for(let _0x216510 of _0x545cd5)if(!_0x151f19['has'](_0x216510)){for await(let _0x44ec43 of m(_0x5d71fc,_0x3a4d46,_0x4ce47c,_0x216510-0x1,_0x216510))_0x151f19['set'](_0x216510,d(_0x44ec43[0x0]));}let _0x2909ff=Object['create'](null);for(let _0x3c25fe of _0x592cc9){let _0x49cbd8=_0x3c25fe['range']['record'],_0x3b939f=_0x49cbd8['additionalFields']??(_0x3c25fe['restoredRevision']===void 0x0?void 0x0:JSON['stringify']({'restoredRevision':_0x3c25fe['restoredRevision']}));_0x2909ff[_0x4ce47c['unitID']+':'+_0x49cbd8['startRevision']]={'unitID':_0x4ce47c['unitID'],'userID':_0x49cbd8['userID'],'userIDs':[..._0x3c25fe['users']],'command':[..._0x3c25fe['commands']],'createTime':String(_0x49cbd8['createdAt']),'startRevision':_0x49cbd8['startRevision'],'endRevision':_0x3c25fe['range']['endRevision'],'startRevCreateTime':_0x3c25fe['startTime'],'endRevCreateTime':_0x3c25fe['endTime'],'recoverTime':_0x3c25fe['restoredRevision']===void 0x0?'':String(_0x151f19['get'](_0x3c25fe['restoredRevision'])),'origin':_0x49cbd8['origin'],..._0x3b939f===void 0x0?{}:{'additionalFields':_0x3b939f}};}return _0x2909ff;}var b=class{['_options'];['_dbAdapter'];['_middleware']=new l();['_indexer'];['_subscriptions']=[];['_calls']=new Set();['_state']='running';['_disposePromise'];constructor(_0x329572){if(this['_options']=_0x329572,!_0x329572?.['collabService']||!_0x329572['collabService']['dbAdapter'])throw TypeError('History\x20requires\x20collabService\x20with\x20a\x20dbAdapter');let _0x312409=_0x329572['maxIndexRetries']??0x3,_0x113541=_0x329572['maxCachedUnits']??0x3e8;if(!Number['isSafeInteger'](_0x312409)||_0x312409<0x0)throw TypeError('maxIndexRetries\x20must\x20be\x20a\x20non-negative\x20safe\x20integer');if(!Number['isSafeInteger'](_0x113541)||_0x113541<0x1)throw TypeError('maxCachedUnits\x20must\x20be\x20a\x20positive\x20safe\x20integer');this['_dbAdapter']=_0x329572['dbAdapter']??new s(),this['_indexer']=new g(_0x329572['collabService'],this['_dbAdapter'],_0x329572['policy']??new c(),_0x113541,_0x312409,_0x9db0f4=>this['_logError']('History\x20background\x20indexing\x20failed',_0x9db0f4));try{this['_subscriptions']['push'](_0x329572['collabService']['on']('unitCreated',_0x1acc36=>this['_indexer']['created'](_0x1acc36,_0x1acc36['record']))),this['_subscriptions']['push'](_0x329572['collabService']['on']('changesetCommitted',_0x1e3625=>this['_indexer']['committed'](_0x1e3625,_0x1e3625['changeset'])));}catch(_0x4d7916){for(let _0x29e1ee of this['_subscriptions'])_0x29e1ee['dispose']();throw _0x4d7916;}}['use'](_0x4f5231,_0x3202f7){return this['_assertRunning'](),this['_middleware']['use'](_0x4f5231,_0x3202f7);}['getHistoryList'](_0x353351,_0x1bbf33){return this['_read']('getHistoryList',_0x353351,_0x1bbf33,async _0x4b541c=>{if(!Number['isSafeInteger'](_0x353351['length'])||_0x353351['length']<0x1||_0x353351['length']>0x64)throw E('length\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100');if(_0x353351['origin']!==void 0x0&&![0x0,0x1,0x2]['includes'](_0x353351['origin']))throw E('Invalid\x20History\x20origin');let _0x4cfd0c=w(_0x353351['lastLabel']),_0x55ff92=await f(this['_options']['collabService'],_0x4b541c,_0x353351['unitID']),_0x440f61={'throughRevision':_0x55ff92['headRevision'],'length':_0x353351['length'],..._0x4cfd0c===void 0x0?{}:{'beforeRevision':_0x4cfd0c},..._0x353351['origin']===void 0x0?{}:{'origin':_0x353351['origin']},..._0x353351['userIDs']===void 0x0?{}:{'userIDs':_0x353351['userIDs']}},_0x2898d1=await this['_dbAdapter']['listRecords'](_0x4b541c,_0x55ff92['unitID'],_0x440f61);if(!_0x2898d1['records']['length']&&!await this['_dbAdapter']['getLatestRecord'](_0x4b541c,_0x55ff92['unitID'])){let _0x33fe43=await this['_indexer']['initializeIfEmpty'](_0x4b541c,_0x55ff92);_0x2898d1=_0x33fe43?r(_0x33fe43,_0x440f61):await this['_dbAdapter']['listRecords'](_0x4b541c,_0x55ff92['unitID'],_0x440f61);}let _0x26dd81=await y(this['_options']['collabService'],_0x4b541c,_0x55ff92,_0x2898d1['records']),_0x1b1618=await this['_resolveUsers'](Object['values'](_0x26dd81)['flatMap'](_0x1fc872=>_0x1fc872['userIDs']),_0x4b541c);return{'hasMore':_0x2898d1['hasMore'],'lastLabel':_0x2898d1['records']['at'](-0x1)?.['record']['startRevision']['toString']()??'','entities':{'datas':_0x26dd81,'users':_0x1b1618},'historyIds':_0x2898d1['records']['map'](({record:_0x2cf791})=>_0x2cf791['unitID']+':'+_0x2cf791['startRevision'])};});}['listHistoryCreators'](_0x34edc8,_0x107fbd){return this['_read']('listHistoryCreators',_0x34edc8,_0x107fbd,async _0x37c5cc=>{let _0x1132a3=await f(this['_options']['collabService'],_0x37c5cc,_0x34edc8['unitID']),_0x4b14ac={'throughRevision':_0x1132a3['headRevision']},_0x5d146f=await this['_dbAdapter']['listCreators'](_0x37c5cc,_0x1132a3['unitID'],_0x4b14ac);if(!_0x5d146f['length']&&!await this['_dbAdapter']['getLatestRecord'](_0x37c5cc,_0x1132a3['unitID'])){let _0x403792=await this['_indexer']['initializeIfEmpty'](_0x37c5cc,_0x1132a3);_0x5d146f=_0x403792?i(_0x403792,_0x1132a3['headRevision']):await this['_dbAdapter']['listCreators'](_0x37c5cc,_0x1132a3['unitID'],_0x4b14ac);}let _0x20e829=await this['_resolveUsers'](_0x5d146f['map'](_0x1f75f4=>_0x1f75f4['userID']),_0x37c5cc);return{'creators':_0x5d146f['map'](_0x2e22b6=>({..._0x2e22b6,'name':_0x20e829[_0x2e22b6['userID']]['name'],'avatar':_0x20e829[_0x2e22b6['userID']]['avatar']}))};});}['getHistoryChangesets'](_0x2b68f4,_0x322f91){return this['_read']('getHistoryChangesets',_0x2b68f4,_0x322f91,async _0x13041a=>{if(C('startRevision',_0x2b68f4['startRevision']),C('endRevision',_0x2b68f4['endRevision']),_0x2b68f4['endRevision']<_0x2b68f4['startRevision'])throw E('endRevision\x20must\x20not\x20precede\x20startRevision');let _0x29efca=await f(this['_options']['collabService'],_0x13041a,_0x2b68f4['unitID']);if(_0x2b68f4['endRevision']>_0x29efca['headRevision'])throw E('endRevision\x20exceeds\x20Core\x20head');let _0x46221e=[];for await(let _0x247d88 of m(this['_options']['collabService'],_0x13041a,_0x29efca,_0x2b68f4['startRevision']-0x1,_0x2b68f4['endRevision']))_0x46221e['push'](..._0x247d88);let _0x3492fd=_0x46221e['map'](_0x919376=>_0x919376['userID']);return _0x2b68f4['startRevision']===0x1&&_0x3492fd['push'](_0x29efca['creatorID']),{'changesets':_0x46221e,'users':await this['_resolveUsers'](_0x3492fd,_0x13041a)};});}['dispose'](){if(this['_disposePromise'])return this['_disposePromise'];this['_state']='disposing';for(let _0x4bed69 of this['_subscriptions']['splice'](0x0))_0x4bed69['dispose']();return this['_disposePromise']=((async()=>{await Promise['allSettled']([...this['_calls']]),await this['_indexer']['dispose'](),this['_middleware']['clear'](),this['_options']['dbAdapter']||await this['_dbAdapter']['dispose']?.(),this['_state']='disposed';})()),this['_disposePromise'];}['_read'](_0x733205,_0x1b4729,_0x4700ea,_0x51a0ee){this['_assertRunning']();let _0x2842f2=((async()=>{let _0x58e4bc={...x(_0x4700ea),'request':{..._0x1b4729}},_0x5785de;return await this['_middleware']['run'](_0x733205,_0x58e4bc,async()=>{S(_0x1b4729['unitID']);try{_0x5785de=await _0x51a0ee(_0x58e4bc);}catch(_0x397713){throw _0x397713 instanceof t['CollabError']?_0x397713:new t['CollabError']('ADAPTER_FAILURE','History\x20read\x20failed',{'cause':_0x397713,'retryable':!0x0});}}),_0x5785de;})());return this['_calls']['add'](_0x2842f2),_0x2842f2['then'](()=>this['_calls']['delete'](_0x2842f2),()=>this['_calls']['delete'](_0x2842f2)),_0x2842f2;}async['_resolveUsers'](_0x6a135f,_0x1c2dcc){let _0x33f802=new Set(_0x6a135f),_0x3315ac=Object['create'](null);if(_0x33f802['size']&&this['_options']['userProvider'])try{for(let _0x3256cd of await this['_options']['userProvider']['getUsers']([..._0x33f802],_0x1c2dcc))_0x33f802['has'](_0x3256cd['userID'])&&(_0x3315ac[_0x3256cd['userID']]=_0x3256cd);}catch(_0x4cc9e9){this['_logError']('History\x20user\x20lookup\x20failed',_0x4cc9e9);}for(let _0xa8f880 of _0x33f802)_0x3315ac[_0xa8f880]??=T(_0xa8f880);return _0x3315ac;}['_assertRunning'](){if(this['_state']!=='running')throw new t['CollabError']('INTERNAL_ERROR','History\x20Service\x20is\x20'+this['_state']);}['_logError'](_0x3881c2,_0x12104e){try{this['_options']['logger']?.['error'](_0x3881c2,{'error':_0x12104e instanceof Error?_0x12104e['message']:String(_0x12104e)});}catch{}}};function x(_0x3924b3){if(!_0x3924b3||typeof _0x3924b3!='object')throw E('context\x20must\x20be\x20an\x20object');if(typeof _0x3924b3['userID']!='string'||_0x3924b3['userID']['length']===0x0)throw E('userID\x20must\x20be\x20a\x20non-empty\x20string');if(_0x3924b3['customData']!==void 0x0&&(_0x3924b3['customData']===null||typeof _0x3924b3['customData']!='object'||Array['isArray'](_0x3924b3['customData'])))throw E('customData\x20must\x20be\x20an\x20object');return{'userID':_0x3924b3['userID'],'customData':_0x3924b3['customData']??Object['create'](null)};}function S(_0x2d3f67){if(!_0x2d3f67)throw E('unitID\x20is\x20required');}function C(_0x34903d,_0x15f5c7){if(!Number['isSafeInteger'](_0x15f5c7)||_0x15f5c7<0x1)throw E(_0x34903d+'\x20must\x20be\x20a\x20positive\x20safe\x20integer');}function w(_0x2e1974){if(!_0x2e1974)return;let _0x1c9130=Number(_0x2e1974);return C('lastLabel',_0x1c9130),_0x1c9130;}function T(_0x30bf25){return{'userID':_0x30bf25,'name':_0x30bf25,'avatar':'','anonymous':!0x0,'canBindAnonymous':!0x1,'phone':'','email':'','createTimestamp':0x0};}function E(_0x62d1ed){return new t['CollabError']('INVALID_REQUEST',_0x62d1ed);}exports['DefaultHistoryPolicy']=c,exports['MemoryHistoryDatabaseAdapter']=s,exports['UniverHistoryService']=b;
|
|
1
|
+
Object['defineProperty'](exports,Symbol['toStringTag'],{'value':'Module'});let e=require('@univerjs-pro/collaboration'),t=require('@univerjs-pro/collaboration-service');function n(_0x518a5d,_0x2917b1){let _0x1519c0=0x0,_0x7846d9=_0x518a5d['length'];for(;_0x1519c0<_0x7846d9;){let _0x4914c9=_0x1519c0+_0x7846d9>>>0x1;_0x518a5d[_0x4914c9]['startRevision']<=_0x2917b1?_0x1519c0=_0x4914c9+0x1:_0x7846d9=_0x4914c9;}return _0x1519c0;}function r(_0x412c16,_0xf537ce){let _0x3fcb79=new Set(_0xf537ce['userIDs']??[]),_0x1a3091=[],_0x5f4390=Math['min'](_0xf537ce['throughRevision'],(_0xf537ce['beforeRevision']??0x1/0x0)-0x1);for(let _0x50eaae=n(_0x412c16,_0x5f4390)-0x1;_0x50eaae>=0x0;_0x50eaae--){let _0x1aadec=_0x412c16[_0x50eaae];if(!(_0xf537ce['origin']&&_0x1aadec['origin']!==_0xf537ce['origin'])&&!(_0x3fcb79['size']&&!_0x3fcb79['has'](_0x1aadec['userID']))){if(_0x1a3091['length']===_0xf537ce['length'])return{'records':_0x1a3091,'hasMore':!0x0};_0x1a3091['push']({'record':{..._0x1aadec},'endRevision':Math['min'](_0xf537ce['throughRevision'],(_0x412c16[_0x50eaae+0x1]?.['startRevision']??0x1/0x0)-0x1)});}}return{'records':_0x1a3091,'hasMore':!0x1};}function i(_0x182021,_0x2c9aa0){let _0x7cf440=new Map();for(let _0x268faa of _0x182021){if(_0x268faa['startRevision']>_0x2c9aa0)break;let _0x6902d9=_0x7cf440['get'](_0x268faa['userID'])??new Set();_0x6902d9['add'](_0x268faa['origin']),_0x7cf440['set'](_0x268faa['userID'],_0x6902d9);}return[..._0x7cf440]['sort'](([_0x12e1c8],[_0x435d29])=>_0x12e1c8<_0x435d29?-0x1:+(_0x12e1c8>_0x435d29))['map'](([_0x3c22b2,_0x557540])=>({'userID':_0x3c22b2,'origins':[..._0x557540]['sort']((_0x1c655b,_0x1baee5)=>_0x1c655b-_0x1baee5)}));}function a(_0x11f350,_0x3be67e){return _0x11f350['unitID']===_0x3be67e['unitID']&&_0x11f350['startRevision']===_0x3be67e['startRevision']&&_0x11f350['userID']===_0x3be67e['userID']&&_0x11f350['createdAt']===_0x3be67e['createdAt']&&_0x11f350['origin']===_0x3be67e['origin']&&_0x11f350['additionalFields']===_0x3be67e['additionalFields'];}function o(_0x2206e1){if(!_0x2206e1['unitID']||!_0x2206e1['userID']||!Number['isSafeInteger'](_0x2206e1['startRevision'])||_0x2206e1['startRevision']<0x1||!Number['isSafeInteger'](_0x2206e1['createdAt'])||_0x2206e1['createdAt']<0x0)throw TypeError('History\x20record\x20is\x20invalid');}var s=class{['_records']=new Map();['_disposed']=!0x1;async['getLatestRecord'](_0x4d622b,_0x206f85){this['_assertOpen']();let _0x3027a9=this['_records']['get'](_0x206f85)?.['at'](-0x1);return _0x3027a9?{..._0x3027a9}:null;}async['appendRecord'](_0x12dbbd,_0x56fb8b,_0x2f2b5f){this['_assertOpen'](),o(_0x56fb8b);let _0x2a27d1=this['_records']['get'](_0x56fb8b['unitID'])??[],_0x454714=_0x2a27d1[n(_0x2a27d1,_0x56fb8b['startRevision'])-0x1];if(_0x454714?.['startRevision']===_0x56fb8b['startRevision'])return{'status':a(_0x454714,_0x56fb8b)?'already-exists':'conflict'};let _0x27b130=_0x2a27d1['at'](-0x1)?.['startRevision']??null;return _0x27b130!==_0x2f2b5f['expectedLatestStartRevision']||_0x56fb8b['startRevision']<=(_0x27b130??0x0)?{'status':'conflict'}:(_0x2a27d1['push']({..._0x56fb8b}),this['_records']['set'](_0x56fb8b['unitID'],_0x2a27d1),{'status':'appended'});}async['listRecords'](_0x2f7f2f,_0x7868d2,_0x3fb75f){return this['_assertOpen'](),r(this['_records']['get'](_0x7868d2)??[],_0x3fb75f);}async['listCreators'](_0x5b1bf6,_0x3148c2,_0x35862d){return this['_assertOpen'](),i(this['_records']['get'](_0x3148c2)??[],_0x35862d['throughRevision']);}async['dispose'](){this['_disposed']=!0x0,this['_records']['clear']();}['_assertOpen'](){if(this['_disposed'])throw Error('Memory\x20History\x20Database\x20Adapter\x20is\x20disposed');}},c=class{['_timeIntervalMs'];['_singleHistoryMutationIds'];constructor(_0x59ccf2={}){if(this['_timeIntervalMs']=_0x59ccf2['timeIntervalMs']??0xea60,!Number['isSafeInteger'](this['_timeIntervalMs'])||this['_timeIntervalMs']<0x0)throw TypeError('timeIntervalMs\x20must\x20be\x20a\x20non-negative\x20safe\x20integer');this['_singleHistoryMutationIds']=_0x59ccf2['singleHistoryMutationIds']??e['SINGLE_HISTORY_MUTATIONS'];}['evaluate'](_0x52cce5){let _0x36ac5e=!!_0x52cce5['changeset']['mutations']['some'](_0x4e36ed=>this['_singleHistoryMutationIds']['has'](_0x4e36ed['id']));return{'startsNewHistory':_0x52cce5['currentRecord']===null||_0x36ac5e||_0x52cce5['changeset']['createTime']*0x3e8-_0x52cce5['currentRecord']['createdAt']>=this['_timeIntervalMs'],'forceNextHistory':_0x36ac5e};}},l=class{['_middlewares']=new Map();['use'](_0x575663,_0x8fceec){let _0x179d29=this['_middlewares']['get'](_0x575663)??[],_0x3e8dcf=_0x8fceec;_0x179d29['push'](_0x3e8dcf),this['_middlewares']['set'](_0x575663,_0x179d29);let _0x1f62d2=!0x1;return{'dispose':()=>{if(_0x1f62d2)return;_0x1f62d2=!0x0;let _0xe7694e=_0x179d29['indexOf'](_0x3e8dcf);_0xe7694e>=0x0&&_0x179d29['splice'](_0xe7694e,0x1);}};}async['run'](_0x5601e8,_0x1391b2,_0xa1a07b){let _0x381068=[...this['_middlewares']['get'](_0x5601e8)??[]],_0xd3a30d=async _0x4e75af=>{let _0x1ce0d7=_0x381068[_0x4e75af];if(!_0x1ce0d7){await _0xa1a07b();return;}let _0xa71bf9=!0x1,_0x5a3fe7,_0x5a325d=()=>{if(_0xa71bf9)throw Error('Middleware\x20for\x20action\x20'+_0x5601e8+'\x20called\x20next()\x20more\x20than\x20once');return _0xa71bf9=!0x0,_0x5a3fe7=_0xd3a30d(_0x4e75af+0x1),_0x5a3fe7;};try{await _0x1ce0d7(_0x1391b2,_0x5a325d);}catch(_0x3f49d5){if(_0x5a3fe7)try{await _0x5a3fe7;}catch{}throw _0x3f49d5;}if(!_0xa71bf9)throw Error('Middleware\x20for\x20action\x20'+_0x5601e8+'\x20completed\x20without\x20calling\x20next()');await _0x5a3fe7;};await _0xd3a30d(0x0);}['clear'](){this['_middlewares']['clear']();}},u=0x100;function d(_0x4b884f){let _0x4eaaac=_0x4b884f['createTime'];if(_0x4eaaac===void 0x0||!Number['isSafeInteger'](_0x4eaaac)||_0x4eaaac<0x0||!Number['isSafeInteger'](_0x4eaaac*0x3e8))throw new t['CollabError']('ADAPTER_FAILURE','History\x20requires\x20a\x20valid\x20persisted\x20changeset\x20createTime');return _0x4eaaac*0x3e8;}async function f(_0x1422f3,_0x168428,_0x1a7d59){let _0xc5fab9=await _0x1422f3['dbAdapter']['getUnit'](_0x168428,_0x1a7d59);if(!_0xc5fab9)throw new t['CollabError']('UNIT_NOT_FOUND','Unit\x20'+_0x1a7d59+'\x20does\x20not\x20exist');if(_0xc5fab9['unitID']!==_0x1a7d59||!_0xc5fab9['creatorID']||!Number['isSafeInteger'](_0xc5fab9['createdAt'])||_0xc5fab9['createdAt']<0x0||!Number['isSafeInteger'](_0xc5fab9['headRevision'])||_0xc5fab9['headRevision']<0x1)throw new t['CollabError']('ADAPTER_FAILURE','History\x20received\x20invalid\x20Unit\x20creation\x20facts');return _0xc5fab9;}function p(_0x1db5c7,_0x5e37b4,_0x380496){if(_0x1db5c7['unitID']!==_0x5e37b4['unitID']||_0x1db5c7['type']!==_0x5e37b4['type']||_0x1db5c7['revision']!==_0x380496||!_0x1db5c7['userID'])throw new t['CollabError']('ADAPTER_FAILURE','History\x20received\x20incomplete\x20or\x20invalid\x20changesets');d(_0x1db5c7);}async function*m(_0x111e04,_0x1b1dca,_0x3685f5,_0x3e0f85,_0x32abd0){let _0x1de88b=Math['max'](_0x3e0f85,0x1);for(;_0x1de88b<_0x32abd0;){let _0x78abb0=Math['min'](_0x1de88b+u,_0x32abd0),{changesets:_0x109269}=await _0x111e04['getChangesets']({'unitID':_0x3685f5['unitID'],'type':_0x3685f5['type'],'from':_0x1de88b,'to':_0x78abb0},_0x1b1dca);if(_0x109269['length']!==_0x78abb0-_0x1de88b)throw new t['CollabError']('ADAPTER_FAILURE','History\x20requires\x20continuous\x20Core\x20changesets');_0x109269['forEach']((_0xa86180,_0x34ff7a)=>p(_0xa86180,_0x3685f5,_0x1de88b+_0x34ff7a+0x1)),yield _0x109269,_0x1de88b=_0x78abb0;}}var h=class extends Error{},g=class{['_core'];['_database'];['_policy'];['_maxCachedUnits'];['_maxRetries'];['_log'];['_states']=new Map();['_queues']=new Map();['_initializations']=new Map();constructor(_0xed40f4,_0xb9a9ac,_0x488796,_0x3e637d,_0x4042b8,_0x3109fb){this['_core']=_0xed40f4,this['_database']=_0xb9a9ac,this['_policy']=_0x488796,this['_maxCachedUnits']=_0x3e637d,this['_maxRetries']=_0x4042b8,this['_log']=_0x3109fb;}['committed'](_0x5dfef1,_0x5a1fa2){let {unitID:_0x18d368,revision:_0x539868}=_0x5a1fa2;this['_background'](_0x18d368,()=>this['_sync'](_0x5dfef1,_0x18d368,_0x539868,_0x5a1fa2));}['created'](_0x120b38,_0x246b81){this['_background'](_0x246b81['unitID'],()=>this['_sync'](_0x120b38,_0x246b81['unitID'],0x1));}['initializeIfEmpty'](_0x33d7bf,_0x19a710){let _0x233485=this['_initializations']['get'](_0x19a710['unitID']);if(_0x233485)return _0x233485;let _0xa9c10e,_0x58d3bb,_0x44c23e=new Promise((_0x4a9a08,_0x59b76e)=>{_0xa9c10e=_0x4a9a08,_0x58d3bb=_0x59b76e;});return this['_initializations']['set'](_0x19a710['unitID'],_0x44c23e),this['_serialize'](_0x19a710['unitID'],async()=>{try{if(await this['_database']['getLatestRecord'](_0x33d7bf,_0x19a710['unitID'])){_0xa9c10e(null);return;}let _0x11ee0b=_(_0x19a710),_0x58af24=[_0x11ee0b['currentRecord']];for await(let _0x3ed991 of m(this['_core'],_0x33d7bf,_0x19a710,0x1,_0x19a710['headRevision']))for(let _0x1d9a8a of _0x3ed991){let _0x479770=this['_advance'](_0x11ee0b,_0x1d9a8a);_0x479770['currentRecord']!==_0x11ee0b['currentRecord']&&_0x58af24['push'](_0x479770['currentRecord']),_0x11ee0b=_0x479770;}_0xa9c10e(_0x58af24);let _0x39ab0a=null;for(let _0x159501 of _0x58af24)await this['_append'](_0x33d7bf,_0x159501,_0x39ab0a),_0x39ab0a=_0x159501['startRevision'];this['_remember'](_0x11ee0b);}catch(_0x1b3330){throw this['_states']['delete'](_0x19a710['unitID']),_0x58d3bb(_0x1b3330),_0x1b3330;}finally{this['_initializations']['get'](_0x19a710['unitID'])===_0x44c23e&&this['_initializations']['delete'](_0x19a710['unitID']);}})['catch'](this['_log']),_0x44c23e;}async['dispose'](){for(;this['_queues']['size'];)await Promise['allSettled']([...this['_queues']['values']()]);this['_states']['clear'](),this['_initializations']['clear']();}async['_sync'](_0x1341b1,_0x33a5c2,_0x4f8c55,_0x32aab6){for(let _0x3a34c9=0x0;_0x3a34c9<=this['_maxRetries'];_0x3a34c9++)try{let _0x391b7f=this['_states']['get'](_0x33a5c2)??await this['_restore'](_0x1341b1,_0x33a5c2);if(_0x4f8c55<=_0x391b7f['processedRevision']){this['_remember'](_0x391b7f);return;}if(_0x32aab6&&_0x32aab6['revision']===_0x391b7f['processedRevision']+0x1)p(_0x32aab6,_0x391b7f['unit'],_0x32aab6['revision']),_0x391b7f=await this['_apply'](_0x1341b1,_0x391b7f,_0x32aab6);else{for await(let _0x584392 of m(this['_core'],_0x1341b1,_0x391b7f['unit'],_0x391b7f['processedRevision'],_0x4f8c55))for(let _0x4bccff of _0x584392)_0x391b7f=await this['_apply'](_0x1341b1,_0x391b7f,_0x4bccff);}this['_remember'](_0x391b7f);return;}catch(_0x382a75){if(this['_states']['delete'](_0x33a5c2),!(_0x382a75 instanceof h)||_0x3a34c9===this['_maxRetries'])throw _0x382a75;}}async['_restore'](_0x1c5392,_0x3ae553){let _0x4e1fc2=await f(this['_core'],_0x1c5392,_0x3ae553),_0x1467db=await this['_database']['getLatestRecord'](_0x1c5392,_0x3ae553);if(!_0x1467db){let _0x54cc22=_(_0x4e1fc2);return await this['_append'](_0x1c5392,_0x54cc22['currentRecord'],null),_0x54cc22;}if(_0x1467db['startRevision']>_0x4e1fc2['headRevision'])throw new t['CollabError']('ADAPTER_FAILURE','History\x20boundary\x20exceeds\x20Core\x20head');if(_0x1467db['startRevision']===0x1)return{..._(_0x4e1fc2),'currentRecord':_0x1467db};let _0x4e9632=await this['_database']['listRecords'](_0x1c5392,_0x3ae553,{'throughRevision':_0x1467db['startRevision'],'beforeRevision':_0x1467db['startRevision'],'length':0x1});for await(let _0x18b8fd of m(this['_core'],_0x1c5392,_0x4e1fc2,_0x1467db['startRevision']-0x1,_0x1467db['startRevision'])){let _0x609d5b=_0x18b8fd[0x0],_0x398d58=this['_policy']['evaluate']({'unitID':_0x3ae553,'type':_0x4e1fc2['type'],'currentRecord':_0x4e9632['records'][0x0]?.['record']??null,'changeset':_0x609d5b});return{'unit':_0x4e1fc2,'processedRevision':_0x1467db['startRevision'],'currentRecord':_0x1467db,'forceNextHistory':_0x398d58['forceNextHistory']};}throw new t['CollabError']('ADAPTER_FAILURE','History\x20starting\x20changeset\x20is\x20missing');}['_advance'](_0xa82717,_0x51a5da){p(_0x51a5da,_0xa82717['unit'],_0xa82717['processedRevision']+0x1);let _0x1f0814=this['_policy']['evaluate']({'unitID':_0xa82717['unit']['unitID'],'type':_0xa82717['unit']['type'],'currentRecord':_0xa82717['currentRecord'],'changeset':_0x51a5da}),_0x273ee8=_0xa82717['currentRecord']['startRevision']===0x1||_0xa82717['forceNextHistory']||_0x1f0814['startsNewHistory']?{'unitID':_0x51a5da['unitID'],'startRevision':_0x51a5da['revision'],'userID':_0x51a5da['userID'],'createdAt':d(_0x51a5da),'origin':v(_0x51a5da['additionalFields']),..._0x51a5da['additionalFields']===void 0x0?{}:{'additionalFields':_0x51a5da['additionalFields']}}:_0xa82717['currentRecord'];return{'unit':_0xa82717['unit'],'processedRevision':_0x51a5da['revision'],'currentRecord':_0x273ee8,'forceNextHistory':_0x1f0814['forceNextHistory']};}async['_apply'](_0x54fd57,_0x5d85cb,_0x181387){let _0x5f1752=this['_advance'](_0x5d85cb,_0x181387);return _0x5f1752['currentRecord']!==_0x5d85cb['currentRecord']&&await this['_append'](_0x54fd57,_0x5f1752['currentRecord'],_0x5d85cb['currentRecord']['startRevision']),this['_remember'](_0x5f1752),_0x5f1752;}async['_append'](_0x127b08,_0x1f8acb,_0x2a310d){if((await this['_database']['appendRecord'](_0x127b08,_0x1f8acb,{'expectedLatestStartRevision':_0x2a310d}))['status']==='conflict')throw new h('History\x20boundary\x20changed\x20during\x20indexing');}['_remember'](_0x2a1c7d){for(this['_states']['delete'](_0x2a1c7d['unit']['unitID']),this['_states']['set'](_0x2a1c7d['unit']['unitID'],_0x2a1c7d);this['_states']['size']>this['_maxCachedUnits'];)this['_states']['delete'](this['_states']['keys']()['next']()['value']);}['_serialize'](_0x219c7e,_0x453a5a){let _0xe3ffee=(this['_queues']['get'](_0x219c7e)??Promise['resolve']())['then'](_0x453a5a,_0x453a5a),_0x156d04=_0xe3ffee['then'](()=>void 0x0,()=>void 0x0)['finally'](()=>{this['_queues']['get'](_0x219c7e)===_0x156d04&&this['_queues']['delete'](_0x219c7e);});return this['_queues']['set'](_0x219c7e,_0x156d04),_0xe3ffee;}['_background'](_0xa93c6c,_0x53d20f){this['_serialize'](_0xa93c6c,_0x53d20f)['catch'](this['_log']);}};function _(_0x282eb6){return{'unit':_0x282eb6,'processedRevision':0x1,'forceNextHistory':!0x1,'currentRecord':{'unitID':_0x282eb6['unitID'],'startRevision':0x1,'userID':_0x282eb6['creatorID'],'createdAt':_0x282eb6['createdAt'],'origin':0x1}};}function v(_0x37d4cc){if(!_0x37d4cc)return 0x1;try{return JSON['parse'](_0x37d4cc)?.['origin']===0x2?0x2:0x1;}catch{return 0x1;}}async function y(_0x162cb0,_0x5c112b,_0xcb6d69,_0x1f67fa){let _0x329096=[..._0x1f67fa]['sort']((_0x2ca235,_0x1045ff)=>_0x2ca235['record']['startRevision']-_0x1045ff['record']['startRevision'])['map'](_0x434936=>({'range':_0x434936,'commands':new Set(_0x434936['record']['startRevision']===0x1?['univer.mutation.create-unit']:[]),'users':new Set(_0x434936['record']['startRevision']===0x1?[_0xcb6d69['creatorID']]:[]),'startTime':_0x434936['record']['startRevision']===0x1?_0xcb6d69['createdAt']:_0x434936['record']['createdAt'],'endTime':_0x434936['record']['createdAt']})),_0x85bab1=new Map([[0x1,_0xcb6d69['createdAt']]]);for(let _0x204244=0x0;_0x204244<_0x329096['length'];){let _0x2ed271=_0x204244;for(;_0x2ed271+0x1<_0x329096['length']&&_0x329096[_0x2ed271]['range']['endRevision']+0x1===_0x329096[_0x2ed271+0x1]['range']['record']['startRevision'];)_0x2ed271++;let _0x9511e3=_0x204244,_0xee30ca=_0x329096[_0x204244]['range']['record']['startRevision']-0x1,_0x3d2101=_0x329096[_0x2ed271]['range']['endRevision'];for await(let _0x9e4aaa of m(_0x162cb0,_0x5c112b,_0xcb6d69,_0xee30ca,_0x3d2101))for(let _0x2f6741 of _0x9e4aaa){for(;_0x2f6741['revision']>_0x329096[_0x9511e3]['range']['endRevision'];)_0x9511e3++;let _0x30b03e=_0x329096[_0x9511e3],_0x4d3748=d(_0x2f6741);_0x2f6741['revision']===_0x30b03e['range']['record']['startRevision']&&(_0x30b03e['startTime']=_0x4d3748),_0x30b03e['endTime']=_0x4d3748,_0x30b03e['users']['add'](_0x2f6741['userID']);for(let _0x20ea66 of _0x2f6741['mutations']){if(_0x30b03e['commands']['add'](_0x20ea66['id']),_0x20ea66['id']!=='univer.mutation.revert-version')continue;let _0xaca242;try{_0xaca242=JSON['parse'](_0x20ea66['data'])['revision'];}catch{throw new t['CollabError']('ADAPTER_FAILURE','History\x20contains\x20invalid\x20restore\x20data');}if(typeof _0xaca242!='number'||!Number['isSafeInteger'](_0xaca242)||_0xaca242<0x1||_0xaca242>=_0x2f6741['revision'])throw new t['CollabError']('ADAPTER_FAILURE','History\x20contains\x20an\x20invalid\x20restore\x20revision');_0x30b03e['restoredRevision']??=_0xaca242;}}_0x204244=_0x2ed271+0x1;}let _0x196a19=new Set(_0x329096['flatMap'](_0x18eb87=>_0x18eb87['restoredRevision']===void 0x0?[]:[_0x18eb87['restoredRevision']]));for(let _0x354fee of _0x196a19)if(!_0x85bab1['has'](_0x354fee)){for await(let _0x1d84d2 of m(_0x162cb0,_0x5c112b,_0xcb6d69,_0x354fee-0x1,_0x354fee))_0x85bab1['set'](_0x354fee,d(_0x1d84d2[0x0]));}let _0x196084=Object['create'](null);for(let _0x5d71a6 of _0x329096){let _0x362a7b=_0x5d71a6['range']['record'],_0x48e333=_0x362a7b['additionalFields']??(_0x5d71a6['restoredRevision']===void 0x0?void 0x0:JSON['stringify']({'restoredRevision':_0x5d71a6['restoredRevision']}));_0x196084[_0xcb6d69['unitID']+':'+_0x362a7b['startRevision']]={'unitID':_0xcb6d69['unitID'],'userID':_0x362a7b['userID'],'userIDs':[..._0x5d71a6['users']],'command':[..._0x5d71a6['commands']],'createTime':String(_0x362a7b['createdAt']),'startRevision':_0x362a7b['startRevision'],'endRevision':_0x5d71a6['range']['endRevision'],'startRevCreateTime':_0x5d71a6['startTime'],'endRevCreateTime':_0x5d71a6['endTime'],'recoverTime':_0x5d71a6['restoredRevision']===void 0x0?'':String(_0x85bab1['get'](_0x5d71a6['restoredRevision'])),'origin':_0x362a7b['origin'],..._0x48e333===void 0x0?{}:{'additionalFields':_0x48e333}};}return _0x196084;}var b=class{['_options'];['_dbAdapter'];['_middleware']=new l();['_indexer'];['_subscriptions']=[];['_calls']=new Set();['_state']='running';['_disposePromise'];constructor(_0x6f10dd){if(this['_options']=_0x6f10dd,!_0x6f10dd?.['collabService']||!_0x6f10dd['collabService']['dbAdapter'])throw TypeError('History\x20requires\x20collabService\x20with\x20a\x20dbAdapter');let _0x55eacd=_0x6f10dd['maxIndexRetries']??0x3,_0x2dce5d=_0x6f10dd['maxCachedUnits']??0x3e8;if(!Number['isSafeInteger'](_0x55eacd)||_0x55eacd<0x0)throw TypeError('maxIndexRetries\x20must\x20be\x20a\x20non-negative\x20safe\x20integer');if(!Number['isSafeInteger'](_0x2dce5d)||_0x2dce5d<0x1)throw TypeError('maxCachedUnits\x20must\x20be\x20a\x20positive\x20safe\x20integer');this['_dbAdapter']=_0x6f10dd['dbAdapter']??new s(),this['_indexer']=new g(_0x6f10dd['collabService'],this['_dbAdapter'],_0x6f10dd['policy']??new c(),_0x2dce5d,_0x55eacd,_0x3a714f=>this['_logError']('History\x20background\x20indexing\x20failed',_0x3a714f));try{this['_subscriptions']['push'](_0x6f10dd['collabService']['on']('unitCreated',_0x2ff761=>this['_indexer']['created'](_0x2ff761,_0x2ff761['record']))),this['_subscriptions']['push'](_0x6f10dd['collabService']['on']('changesetCommitted',_0x3e51c0=>this['_indexer']['committed'](_0x3e51c0,_0x3e51c0['changeset'])));}catch(_0x20c6a4){for(let _0x251ff9 of this['_subscriptions'])_0x251ff9['dispose']();throw _0x20c6a4;}}['use'](_0xb345c5,_0x5629c4){return this['_assertRunning'](),this['_middleware']['use'](_0xb345c5,_0x5629c4);}['getHistoryList'](_0xfea711,_0x415a02){return this['_read']('getHistoryList',_0xfea711,_0x415a02,async _0x2b1378=>{if(!Number['isSafeInteger'](_0xfea711['length'])||_0xfea711['length']<0x1||_0xfea711['length']>0x64)throw E('length\x20must\x20be\x20an\x20integer\x20from\x201\x20to\x20100');if(_0xfea711['origin']!==void 0x0&&![0x0,0x1,0x2]['includes'](_0xfea711['origin']))throw E('Invalid\x20History\x20origin');let _0x3767e2=w(_0xfea711['lastLabel']),_0x3798d3=await f(this['_options']['collabService'],_0x2b1378,_0xfea711['unitID']),_0x88ce92={'throughRevision':_0x3798d3['headRevision'],'length':_0xfea711['length'],..._0x3767e2===void 0x0?{}:{'beforeRevision':_0x3767e2},..._0xfea711['origin']===void 0x0?{}:{'origin':_0xfea711['origin']},..._0xfea711['userIDs']===void 0x0?{}:{'userIDs':_0xfea711['userIDs']}},_0x215478=await this['_dbAdapter']['listRecords'](_0x2b1378,_0x3798d3['unitID'],_0x88ce92);if(!_0x215478['records']['length']&&!await this['_dbAdapter']['getLatestRecord'](_0x2b1378,_0x3798d3['unitID'])){let _0x3cc399=await this['_indexer']['initializeIfEmpty'](_0x2b1378,_0x3798d3);_0x215478=_0x3cc399?r(_0x3cc399,_0x88ce92):await this['_dbAdapter']['listRecords'](_0x2b1378,_0x3798d3['unitID'],_0x88ce92);}let _0x42afe8=await y(this['_options']['collabService'],_0x2b1378,_0x3798d3,_0x215478['records']),_0x1841fb=await this['_resolveUsers'](Object['values'](_0x42afe8)['flatMap'](_0x5551cb=>_0x5551cb['userIDs']),_0x2b1378);return{'hasMore':_0x215478['hasMore'],'lastLabel':_0x215478['records']['at'](-0x1)?.['record']['startRevision']['toString']()??'','entities':{'datas':_0x42afe8,'users':_0x1841fb},'historyIds':_0x215478['records']['map'](({record:_0x2eea1c})=>_0x2eea1c['unitID']+':'+_0x2eea1c['startRevision'])};});}['listHistoryCreators'](_0x19e84f,_0x431cc1){return this['_read']('listHistoryCreators',_0x19e84f,_0x431cc1,async _0x569a61=>{let _0x295b7a=await f(this['_options']['collabService'],_0x569a61,_0x19e84f['unitID']),_0x481170={'throughRevision':_0x295b7a['headRevision']},_0x148153=await this['_dbAdapter']['listCreators'](_0x569a61,_0x295b7a['unitID'],_0x481170);if(!_0x148153['length']&&!await this['_dbAdapter']['getLatestRecord'](_0x569a61,_0x295b7a['unitID'])){let _0x17192b=await this['_indexer']['initializeIfEmpty'](_0x569a61,_0x295b7a);_0x148153=_0x17192b?i(_0x17192b,_0x295b7a['headRevision']):await this['_dbAdapter']['listCreators'](_0x569a61,_0x295b7a['unitID'],_0x481170);}let _0x363612=await this['_resolveUsers'](_0x148153['map'](_0x4eb6cb=>_0x4eb6cb['userID']),_0x569a61);return{'creators':_0x148153['map'](_0x15aee3=>({..._0x15aee3,'name':_0x363612[_0x15aee3['userID']]['name'],'avatar':_0x363612[_0x15aee3['userID']]['avatar']}))};});}['getHistoryChangesets'](_0x5f4b2d,_0x3f0dda){return this['_read']('getHistoryChangesets',_0x5f4b2d,_0x3f0dda,async _0xabba43=>{if(C('startRevision',_0x5f4b2d['startRevision']),C('endRevision',_0x5f4b2d['endRevision']),_0x5f4b2d['endRevision']<_0x5f4b2d['startRevision'])throw E('endRevision\x20must\x20not\x20precede\x20startRevision');let _0x3c60a5=await f(this['_options']['collabService'],_0xabba43,_0x5f4b2d['unitID']);if(_0x5f4b2d['endRevision']>_0x3c60a5['headRevision'])throw E('endRevision\x20exceeds\x20Core\x20head');let _0x4b19fe=[];for await(let _0x1851b8 of m(this['_options']['collabService'],_0xabba43,_0x3c60a5,_0x5f4b2d['startRevision']-0x1,_0x5f4b2d['endRevision']))_0x4b19fe['push'](..._0x1851b8);let _0x372cc9=_0x4b19fe['map'](_0x1479ff=>_0x1479ff['userID']);return _0x5f4b2d['startRevision']===0x1&&_0x372cc9['push'](_0x3c60a5['creatorID']),{'changesets':_0x4b19fe,'users':await this['_resolveUsers'](_0x372cc9,_0xabba43)};});}['dispose'](){if(this['_disposePromise'])return this['_disposePromise'];this['_state']='disposing';for(let _0x51f894 of this['_subscriptions']['splice'](0x0))_0x51f894['dispose']();return this['_disposePromise']=((async()=>{await Promise['allSettled']([...this['_calls']]),await this['_indexer']['dispose'](),this['_middleware']['clear'](),this['_options']['dbAdapter']||await this['_dbAdapter']['dispose']?.(),this['_state']='disposed';})()),this['_disposePromise'];}['_read'](_0x3df117,_0x137183,_0x373018,_0x4be24a){this['_assertRunning']();let _0x1a017b=((async()=>{let _0x360053={...x(_0x373018),'request':{..._0x137183}},_0x40ae00;return await this['_middleware']['run'](_0x3df117,_0x360053,async()=>{S(_0x137183['unitID']);try{_0x40ae00=await _0x4be24a(_0x360053);}catch(_0x3f518b){throw _0x3f518b instanceof t['CollabError']?_0x3f518b:new t['CollabError']('ADAPTER_FAILURE','History\x20read\x20failed',{'cause':_0x3f518b,'retryable':!0x0});}}),_0x40ae00;})());return this['_calls']['add'](_0x1a017b),_0x1a017b['then'](()=>this['_calls']['delete'](_0x1a017b),()=>this['_calls']['delete'](_0x1a017b)),_0x1a017b;}async['_resolveUsers'](_0x36c3ba,_0x5417fa){let _0x1b25c5=new Set(_0x36c3ba),_0x58682b=Object['create'](null);if(_0x1b25c5['size']&&this['_options']['userProvider'])try{for(let _0x4d4a96 of await this['_options']['userProvider']['getUsers']([..._0x1b25c5],_0x5417fa))_0x1b25c5['has'](_0x4d4a96['userID'])&&(_0x58682b[_0x4d4a96['userID']]=_0x4d4a96);}catch(_0x256abf){this['_logError']('History\x20user\x20lookup\x20failed',_0x256abf);}for(let _0x1ea468 of _0x1b25c5)_0x58682b[_0x1ea468]??=T(_0x1ea468);return _0x58682b;}['_assertRunning'](){if(this['_state']!=='running')throw new t['CollabError']('INTERNAL_ERROR','History\x20Service\x20is\x20'+this['_state']);}['_logError'](_0x2164ef,_0x1bfede){try{this['_options']['logger']?.['error'](_0x2164ef,{'error':_0x1bfede instanceof Error?_0x1bfede['message']:String(_0x1bfede)});}catch{}}};function x(_0x52450f){if(!_0x52450f||typeof _0x52450f!='object')throw E('context\x20must\x20be\x20an\x20object');if(typeof _0x52450f['userID']!='string'||_0x52450f['userID']['length']===0x0)throw E('userID\x20must\x20be\x20a\x20non-empty\x20string');if(_0x52450f['customData']!==void 0x0&&(_0x52450f['customData']===null||typeof _0x52450f['customData']!='object'||Array['isArray'](_0x52450f['customData'])))throw E('customData\x20must\x20be\x20an\x20object');return{'userID':_0x52450f['userID'],'customData':_0x52450f['customData']??Object['create'](null)};}function S(_0x4e83bc){if(!_0x4e83bc)throw E('unitID\x20is\x20required');}function C(_0x1f9b5b,_0x37d00e){if(!Number['isSafeInteger'](_0x37d00e)||_0x37d00e<0x1)throw E(_0x1f9b5b+'\x20must\x20be\x20a\x20positive\x20safe\x20integer');}function w(_0x549909){if(!_0x549909)return;let _0xdb5cab=Number(_0x549909);return C('lastLabel',_0xdb5cab),_0xdb5cab;}function T(_0x327303){return{'userID':_0x327303,'name':_0x327303,'avatar':'','anonymous':!0x0,'canBindAnonymous':!0x1,'phone':'','email':'','createTimestamp':0x0};}function E(_0x1fe190){return new t['CollabError']('INVALID_REQUEST',_0x1fe190);}exports['DefaultHistoryPolicy']=c,exports['MemoryHistoryDatabaseAdapter']=s,exports['UniverHistoryService']=b;
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x2b8578=_0x108f;(function(_0x278724,_0x594702){const _0x5b1c4d=_0x108f,_0x2e20e6=_0x278724();while(!![]){try{const _0x14648e=parseInt(_0x5b1c4d(0x179))/0x1*(parseInt(_0x5b1c4d(0x185))/0x2)+-parseInt(_0x5b1c4d(0x180))/0x3+parseInt(_0x5b1c4d(0x181))/0x4+parseInt(_0x5b1c4d(0x17c))/0x5+parseInt(_0x5b1c4d(0x17d))/0x6*(parseInt(_0x5b1c4d(0x182))/0x7)+-parseInt(_0x5b1c4d(0x17a))/0x8+-parseInt(_0x5b1c4d(0x17b))/0x9*(parseInt(_0x5b1c4d(0x183))/0xa);if(_0x14648e===_0x594702)break;else _0x2e20e6['push'](_0x2e20e6['shift']());}catch(_0x4b30f9){_0x2e20e6['push'](_0x2e20e6['shift']());}}}(_0xd533,0x722ef));import _0x1fbefa from'./index.cjs';const facadeExport0=_0x1fbefa[_0x2b8578(0x184)],facadeExport1=_0x1fbefa[_0x2b8578(0x17f)],facadeExport2=_0x1fbefa[_0x2b8578(0x17e)];function _0x108f(_0x20071d,_0x5ea8e6){_0x20071d=_0x20071d-0x179;const _0xd533e8=_0xd533();let _0x108f70=_0xd533e8[_0x20071d];return _0x108f70;}export{facadeExport0 as DefaultHistoryPolicy,facadeExport1 as MemoryHistoryDatabaseAdapter,facadeExport2 as UniverHistoryService};function _0xd533(){const _0x97e64d=['DefaultHistoryPolicy','4JjGbga','236389oNmiqV','762552yXmCVs','7860789ZwcbCh','2613195yLOHLG','3210izzQrI','UniverHistoryService','MemoryHistoryDatabaseAdapter','2422506DHvSpc','2766340QiscuG','7287moSRnO','10dkFfqG'];_0xd533=function(){return _0x97e64d;};return _0xd533();}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@univerjs-pro/collaboration-history-service",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.4",
|
|
5
5
|
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
7
7
|
"types": "./dist/index.d.ts",
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"dist"
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@univerjs-pro/collaboration": "1.0.
|
|
20
|
-
"@univerjs-pro/collaboration-service": "1.0.
|
|
21
|
-
"@univerjs/protocol": "1.0.
|
|
19
|
+
"@univerjs-pro/collaboration": "1.0.4",
|
|
20
|
+
"@univerjs-pro/collaboration-service": "1.0.4",
|
|
21
|
+
"@univerjs/protocol": "1.0.4"
|
|
22
22
|
}
|
|
23
23
|
}
|