@univerjs-pro/collaboration-worktree-service 1.0.0-rc.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object['defineProperty'](exports,Symbol['toStringTag'],{'value':'Module'});let e=require('node:crypto'),t=require('node:util'),n=require('@univerjs-pro/collaboration-service'),r=require('@univerjs/protocol');var i=class extends Error{['code'];['retryable'];['details'];constructor(_0xe44395,_0x18c2a2,_0x533018={}){super(_0x18c2a2,{'cause':_0x533018['cause']}),this['name']='WorktreeError',this['code']=_0xe44395,this['retryable']=_0x533018['retryable']??!0x1,_0x533018['details']!==void 0x0&&(this['details']=_0x533018['details']);}},a=class{['_worktreeID'];['_trunk'];['_worktree'];constructor(_0x5ee308,_0x257e68,_0x283367){this['_worktreeID']=_0x5ee308,this['_trunk']=_0x257e68,this['_worktree']=_0x283367;}async['getUnit'](_0x571873,_0x288809){let _0x1df0da=await this['_worktree']['getWorktreeUnit'](_0x571873,this['_worktreeID'],_0x288809);return _0x1df0da?{'unitID':_0x1df0da['unitID'],'type':_0x1df0da['type'],'headRevision':_0x1df0da['draftHeadRevision']}:null;}async['getSnapshot'](_0x54e7fa,_0x43b995,_0x1dcfeb){let _0x53d0a1=await this['_getUnitRecord'](_0x54e7fa,_0x43b995);if(!_0x53d0a1)return null;let _0x1dbcd0=_0x1dcfeb?.['revision'],_0x215869=_0x1dbcd0===void 0x0?_0x53d0a1['draftHeadRevision']:Math['min'](_0x1dbcd0,_0x53d0a1['draftHeadRevision']);if(_0x53d0a1['source']==='worktree')return _0x215869<0x1?null:(await this['_worktree']['getUnitSeed'](_0x54e7fa,this['_worktreeID'],_0x43b995))?.['snapshot']??null;let _0x578414=o(_0x53d0a1);return this['_trunk']['getSnapshot'](_0x54e7fa,_0x43b995,{'revision':Math['min'](_0x215869,_0x578414)});}async['getSnapshotInfo'](_0x7739bf,_0x24da19,_0x408625){let _0x4ca18b=await this['_getUnitRecord'](_0x7739bf,_0x24da19);if(!_0x4ca18b)return null;let _0x49c8fc=_0x408625?.['revision'],_0x1d1b6b=_0x49c8fc===void 0x0?_0x4ca18b['draftHeadRevision']:Math['min'](_0x49c8fc,_0x4ca18b['draftHeadRevision']);return _0x4ca18b['source']==='worktree'?_0x1d1b6b>=0x1?{'unitID':_0x4ca18b['unitID'],'type':_0x4ca18b['type'],'rev':0x1}:null:this['_trunk']['getSnapshotInfo'](_0x7739bf,_0x24da19,{'revision':Math['min'](_0x1d1b6b,o(_0x4ca18b))});}async['getChangesets'](_0x347524,_0x17c64f,_0x566d72){let _0x3bf5a0=await this['_getUnitRecord'](_0x347524,_0x17c64f);if(!_0x3bf5a0)return null;if(_0x3bf5a0['source']==='worktree')return this['_worktree']['getDraftChangesets'](_0x347524,this['_worktreeID'],_0x17c64f,_0x566d72);let _0x5c7624=o(_0x3bf5a0),_0x37d889=Math['min'](_0x566d72['to']??_0x5c7624,_0x5c7624),_0x5a45c1=_0x566d72['from']<_0x37d889?await this['_trunk']['getChangesets'](_0x347524,_0x17c64f,{'from':_0x566d72['from'],'to':_0x37d889}):[];if(_0x5a45c1===null)return null;let _0x4010c7=Math['max'](_0x566d72['from'],_0x5c7624),_0x134fd4=_0x566d72['to']===void 0x0||_0x4010c7<_0x566d72['to']?await this['_worktree']['getDraftChangesets'](_0x347524,this['_worktreeID'],_0x17c64f,{..._0x566d72,'from':_0x4010c7}):[];return _0x134fd4===null?null:[..._0x5a45c1,..._0x134fd4];}async['createUnit'](_0x5edc32,_0x6dd1ac){switch((await this['_worktree']['createUnit'](_0x5edc32,{'unit':{'worktreeID':this['_worktreeID'],'unitID':_0x6dd1ac['record']['unitID'],'type':_0x6dd1ac['record']['type'],'source':'worktree','draftHeadRevision':0x1},'seed':{'snapshot':_0x6dd1ac['snapshot'],..._0x6dd1ac['sheetBlocks']===void 0x0?{}:{'sheetBlocks':_0x6dd1ac['sheetBlocks']}}}))['status']){case'created':return{'status':'created','record':_0x6dd1ac['record']};case'already-created':return{'status':'already-exists','record':_0x6dd1ac['record']};case'not-found':throw new n['CollabError']('UNIT_NOT_FOUND','Worktree\x20'+this['_worktreeID']+'\x20does\x20not\x20exist');case'unit-exists':throw new n['CollabError']('INVALID_REQUEST','Unit\x20'+_0x6dd1ac['record']['unitID']+'\x20already\x20exists\x20in\x20the\x20Worktree');case'status-mismatch':throw new n['CollabError']('PERMISSION_DENIED','Worktree\x20'+this['_worktreeID']+'\x20is\x20not\x20editable');}}['deleteUnits'](_0x53ac8a,_0x301a70){return Promise['reject'](new n['CollabError']('INVALID_REQUEST','Cannot\x20delete\x20Units\x20through\x20a\x20Worktree\x20draft'));}['recoverUnits'](_0x3c6a7b,_0x306f3f){return Promise['reject'](new n['CollabError']('INVALID_REQUEST','Cannot\x20recover\x20Units\x20through\x20a\x20Worktree\x20draft'));}async['commitChangeset'](_0x1a1ea0,_0x461c77){let _0x47552e=await this['_worktree']['commitDraftChangeset'](_0x1a1ea0,{'worktreeID':this['_worktreeID'],'changeset':_0x461c77['changeset']});switch(_0x47552e['status']){case'committed':case'revision-mismatch':return _0x47552e;case'not-found':throw new n['CollabError']('UNIT_NOT_FOUND','Worktree\x20or\x20Worktree\x20Unit\x20does\x20not\x20exist');case'not-editable':throw new n['CollabError']('PERMISSION_DENIED','Worktree\x20is\x20'+_0x47552e['worktreeStatus']);case'unit-frozen':throw new n['CollabError']('PERMISSION_DENIED','Worktree\x20Unit\x20has\x20already\x20been\x20merged');}}['saveSnapshot'](_0x2a37f3,_0x88f183){return Promise['reject'](new n['CollabError']('INTERNAL_ERROR','Worktree\x20draft\x20snapshots\x20are\x20disabled'));}async['getSheetBlock'](_0x5133ae,_0x535c01,_0x36648e){let _0x48f1a5=await this['_getUnitRecord'](_0x5133ae,_0x535c01);return _0x48f1a5?_0x48f1a5['source']==='worktree'?(await this['_worktree']['getUnitSeed'](_0x5133ae,this['_worktreeID'],_0x535c01))?.['sheetBlocks']?.['find'](_0x46f91d=>_0x46f91d['id']===_0x36648e)??null:this['_trunk']['getSheetBlock'](_0x5133ae,_0x535c01,_0x36648e):null;}['_getUnitRecord'](_0x588d66,_0x2a0213){return this['_worktree']['getWorktreeUnit'](_0x588d66,this['_worktreeID'],_0x2a0213);}};function o(_0xaf4917){if(_0xaf4917['source']!=='trunk'||!Number['isSafeInteger'](_0xaf4917['baselineTrunkRevision'])||_0xaf4917['baselineTrunkRevision']<0x1)throw new n['CollabError']('ADAPTER_FAILURE','Trunk-sourced\x20Worktree\x20Unit\x20has\x20no\x20valid\x20baseline');return _0xaf4917['baselineTrunkRevision'];}async function s(_0x559a59){let _0x1f15e8=new n['UniverUnitRuntime']({'dbAdapter':_0x559a59['dbAdapter'],..._0x559a59['runtime']?.['maxLoadedUnits']===void 0x0?{}:{'maxLoadedUnits':_0x559a59['runtime']['maxLoadedUnits']},..._0x559a59['runtime']?.['idleTimeoutMs']===void 0x0?{}:{'idleTimeoutMs':_0x559a59['runtime']['idleTimeoutMs']}});try{let _0x3bbd4f=await _0x1f15e8['ensureUnit'](_0x559a59['context'],_0x559a59['unitID'],_0x559a59['type']);try{if(_0x3bbd4f['revision']!==_0x559a59['expectedRevision'])throw c('Unit\x20Runtime\x20did\x20not\x20reach\x20the\x20frozen\x20Worktree\x20revision');let _0x468e57=await _0x1f15e8['createSnapshot'](_0x3bbd4f);if(_0x468e57['snapshot']['unitID']!==_0x559a59['unitID']||_0x468e57['snapshot']['type']!==_0x559a59['type']||_0x468e57['snapshot']['rev']!==_0x559a59['expectedRevision'])throw c('Unit\x20Runtime\x20returned\x20an\x20invalid\x20Worktree\x20snapshot');return _0x468e57;}finally{_0x1f15e8['releaseUnit'](_0x3bbd4f);}}finally{await _0x1f15e8['dispose']();}}function c(_0x4f29f6){return new n['CollabError']('ADAPTER_FAILURE',_0x4f29f6,{'retryable':!0x0});}async function l(_0x5f01bf){let _0x421e76=new n['UniverUnitRuntime']({'dbAdapter':_0x5f01bf['dbAdapter'],..._0x5f01bf['runtime']?.['maxLoadedUnits']===void 0x0?{}:{'maxLoadedUnits':_0x5f01bf['runtime']['maxLoadedUnits']},..._0x5f01bf['runtime']?.['idleTimeoutMs']===void 0x0?{}:{'idleTimeoutMs':_0x5f01bf['runtime']['idleTimeoutMs']}});try{let _0xa8e2c8=u(_0x421e76,_0x5f01bf),_0x217e38=await _0x421e76['ensureUnit'](_0x5f01bf['context'],_0x5f01bf['unitID'],_0x5f01bf['type']);try{if(_0x217e38['revision']!==_0x5f01bf['trunkHeadRevision'])throw new n['CollabError']('REVISION_MISMATCH','Trunk\x20changed\x20while\x20materializing\x20Worktree\x20merge\x20preview',{'retryable':!0x0});if(await _0x421e76['applyChangeset'](_0x5f01bf['context'],_0x217e38,_0xa8e2c8),_0x217e38['revision']!==_0xa8e2c8['revision'])throw new n['CollabError']('INTERNAL_ERROR','Preview\x20Runtime\x20did\x20not\x20reach\x20the\x20merge\x20candidate\x20revision',{'retryable':!0x0});return await _0x421e76['createSnapshot'](_0x217e38);}finally{_0x421e76['releaseUnit'](_0x217e38);}}finally{await _0x421e76['dispose']();}}function u(_0x20e555,_0x2b13db){let _0x666674=_0x20e555['changesetTransformer']['parseClient'](_0x2b13db['original']);return{..._0x20e555['changesetTransformer']['transform'](_0x666674,_0x2b13db['trunkHistory']),'unitID':_0x2b13db['original']['unitID'],'type':_0x2b13db['original']['type'],'baseRev':_0x2b13db['trunkHeadRevision'],'revision':_0x2b13db['trunkHeadRevision']+0x1,'sid':_0x2b13db['original']['sid'],'reqId':_0x2b13db['original']['reqId']};}var d=class{['_middlewares']=new Map();['use'](_0x34f0e8,_0x1384c7){let _0x26abd7=this['_middlewares']['get'](_0x34f0e8)??[],_0x50cd8d=_0x1384c7;_0x26abd7['push'](_0x50cd8d),this['_middlewares']['set'](_0x34f0e8,_0x26abd7);let _0x78267d=!0x1;return{'dispose':()=>{if(_0x78267d)return;_0x78267d=!0x0;let _0x35794f=_0x26abd7['indexOf'](_0x50cd8d);_0x35794f>=0x0&&_0x26abd7['splice'](_0x35794f,0x1);}};}async['run'](_0x30692e,_0x5d3d5b,_0x419dcc){let _0x41d390=[...this['_middlewares']['get'](_0x30692e)??[]],_0x37a28b=async _0x4a4366=>{let _0x1cb66f=_0x41d390[_0x4a4366];if(!_0x1cb66f){await _0x419dcc();return;}let _0x1f1dd0=!0x1,_0x5ddd5c,_0x33115f=()=>{if(_0x1f1dd0)throw Error('Middleware\x20for\x20action\x20'+String(_0x30692e)+'\x20called\x20next()\x20more\x20than\x20once');return _0x1f1dd0=!0x0,_0x5ddd5c=_0x37a28b(_0x4a4366+0x1),_0x5ddd5c;};try{await _0x1cb66f(_0x5d3d5b,_0x33115f);}catch(_0x225377){if(_0x5ddd5c)try{await _0x5ddd5c;}catch{}throw _0x225377;}if(!_0x1f1dd0)throw Error('Middleware\x20for\x20action\x20'+String(_0x30692e)+'\x20completed\x20without\x20calling\x20next()');await _0x5ddd5c;};await _0x37a28b(0x0);}['clear'](){this['_middlewares']['clear']();}};function f(_0x4d211){return{'worktreeID':_0x4d211['worktreeID'],'units':_0x4d211['units']??[]};}function p(_0x56d353){return{'worktreeID':_0x56d353['worktreeID']};}function m(_0xa6148){return{'worktreeID':_0xa6148['worktreeID'],'unitID':_0xa6148['unitID']};}function ee(_0x19d933){return{'worktreeID':_0x19d933['worktreeID']};}function te(_0x58646f){return{'worktreeID':_0x58646f['worktreeID']};}function h(_0x397663){return{'worktreeID':_0x397663['worktreeID']};}function g(_0x339924){return{'worktreeID':_0x339924['worktreeID']};}function _(_0x636012){return{'worktreeID':_0x636012['worktreeID'],'unitID':_0x636012['unitID']};}function v(_0x4c2b2f){return{'worktreeID':_0x4c2b2f['worktreeID'],'unitID':_0x4c2b2f['unitID'],'removed':_0x4c2b2f['removed']};}var y=class{['_onListenerError'];['_listeners']=new Map();constructor(_0x3cb4ec){this['_onListenerError']=_0x3cb4ec;}['on'](_0x56581c,_0x10aa2d){let _0x3397f8=this['_listeners']['get'](_0x56581c)??[],_0x3fd710=_0x10aa2d;_0x3397f8['push'](_0x3fd710),this['_listeners']['set'](_0x56581c,_0x3397f8);let _0x43ebca=!0x1;return{'dispose':()=>{if(_0x43ebca)return;_0x43ebca=!0x0;let _0x2c64a7=_0x3397f8['indexOf'](_0x3fd710);_0x2c64a7>=0x0&&_0x3397f8['splice'](_0x2c64a7,0x1);}};}async['emit'](_0x29e526,_0x5b40ac){for(let _0x27c409 of[...this['_listeners']['get'](_0x29e526)??[]])try{await _0x27c409(_0x5b40ac);}catch(_0x475699){try{this['_onListenerError'](_0x475699);}catch{}}}['clear'](){this['_listeners']['clear']();}},b=class{['_state']='running';['_activeCalls']=0x0;['_resolveDrain'];['_disposePromise'];get['state'](){return this['_state'];}['run'](_0x4db183){return this['_state']==='running'?(this['_activeCalls']+=0x1,Promise['resolve']()['then'](_0x4db183)['finally'](()=>{--this['_activeCalls'],this['_activeCalls']===0x0&&(this['_resolveDrain']?.(),this['_resolveDrain']=void 0x0);})):Promise['reject'](new n['CollabError']('INTERNAL_ERROR','Worktree\x20Service\x20is\x20'+this['_state'],{'retryable':!0x0}));}['dispose'](_0x2f8645){return this['_disposePromise']?this['_disposePromise']:(this['_state']='disposing',this['_disposePromise']=this['_finishDispose'](_0x2f8645),this['_disposePromise']);}async['_finishDispose'](_0x332008){this['_activeCalls']>0x0&&await new Promise(_0x508361=>{this['_resolveDrain']=_0x508361;});try{await _0x332008();}finally{this['_state']='disposed';}}},x=new Set([r['UniverType']['UNIVER_SHEET'],r['UniverType']['UNIVER_DOC'],r['UniverType']['UNIVER_SLIDE'],r['UniverType']['UNIVER_BOARD'],r['UniverType']['UNIVER_BASE']]),ne=class{['_trunkService'];['_trunkDbAdapter'];['_dbAdapter'];['_middleware']=new d();['_events'];['_lifecycle']=new b();['_logger'];['_metrics'];['_runtimeOptions'];['_enableUnitPermissionAnalysis'];['_maxRevisionRetries'];['_draftServices']=new Map();constructor(_0x780b9d){if(!_0x780b9d?.['trunk']?.['service']||!_0x780b9d['trunk']['dbAdapter'])throw TypeError('UniverCollabWorktreeService\x20requires\x20trunk\x20service\x20and\x20dbAdapter');if(!_0x780b9d['dbAdapter'])throw TypeError('UniverCollabWorktreeService\x20requires\x20a\x20Worktree\x20dbAdapter');if(this['_trunkService']=_0x780b9d['trunk']['service'],this['_trunkDbAdapter']=_0x780b9d['trunk']['dbAdapter'],this['_dbAdapter']=_0x780b9d['dbAdapter'],this['_runtimeOptions']=_0x780b9d['runtime'],this['_enableUnitPermissionAnalysis']=_0x780b9d['enableUnitPermissionAnalysis']??!0x1,this['_maxRevisionRetries']=_0x780b9d['submitChangeset']?.['maxRevisionRetries'],this['_maxRevisionRetries']!==void 0x0&&(!Number['isSafeInteger'](this['_maxRevisionRetries'])||this['_maxRevisionRetries']<0x0))throw TypeError('submitChangeset.maxRevisionRetries\x20must\x20be\x20a\x20non-negative\x20safe\x20integer');this['_logger']=re(_0x780b9d['logger']),this['_metrics']=ie(_0x780b9d['metrics']),this['_events']=new y(_0x1fd3d7=>{this['_logger']['error']('Worktree\x20Service\x20event\x20listener\x20failed',{'error':$(_0x1fd3d7)});});}['use'](_0x21d210,_0x180fcf){return this['_assertRunning'](),this['_middleware']['use'](_0x21d210,_0x180fcf);}['on'](_0x4c2827,_0x5df059){return this['_assertRunning'](),this['_events']['on'](_0x4c2827,_0x5df059);}['createWorktree'](_0x2e358e,_0x4b02e4){return this['_call']('createWorktree',async()=>{let _0x982fda=C(_0x4b02e4),_0x146d2c=f(_0x2e358e),_0x27fbc2={..._0x982fda,'request':_0x146d2c},_0xa3be61;return await this['_middleware']['run']('createWorktree',_0x27fbc2,async()=>{S(_0x2e358e['worktreeID']),D(_0x146d2c['units']);let _0x16ef2e=await Promise['all'](_0x146d2c['units']['map'](_0x2dc4e1=>this['_requireTrunkUnit'](_0x27fbc2,_0x2dc4e1))),_0x4a9c91=await this['_database'](()=>this['_dbAdapter']['createWorktree'](_0x27fbc2,{'record':{'worktreeID':_0x2e358e['worktreeID'],'sid':(0x0,e['randomUUID'])(),'status':'draft'},'units':_0x16ef2e['map'](_0x24629c=>({'worktreeID':_0x2e358e['worktreeID'],'unitID':_0x24629c['unitID'],'type':_0x24629c['type'],'source':'trunk','baselineTrunkRevision':_0x24629c['headRevision'],'draftHeadRevision':_0x24629c['headRevision']}))})),_0x2d0e3a=R(_0x4a9c91['aggregate'],_0x2e358e['worktreeID']);if(_0x4a9c91['status']==='already-exists')throw new i('WORKTREE_ALREADY_EXISTS','Worktree\x20'+_0x2e358e['worktreeID']+'\x20already\x20exists');L(_0x2d0e3a,_0x146d2c['units']),_0xa3be61={'worktree':_0x2d0e3a},await this['_events']['emit']('worktreeCreated',{'userID':_0x982fda['userID'],'customData':_0x982fda['customData'],'request':_0x146d2c,'worktree':_0x2d0e3a,'occurredAt':Date['now']()});}),_0xa3be61;});}['getWorktree'](_0x903654,_0x390d4e){return this['_call']('getWorktree',async()=>{let _0x50d69e=C(_0x390d4e),_0x402036=p(_0x903654),_0x21ea3a={..._0x50d69e,'request':_0x402036},_0x5343cb;return await this['_middleware']['run']('readWorktreeData',_0x21ea3a,async()=>{S(_0x903654['worktreeID']);let _0x596365=await this['_database'](()=>this['_dbAdapter']['getWorktree'](_0x21ea3a,_0x903654['worktreeID']));if(!_0x596365)throw Y(_0x903654['worktreeID']);_0x5343cb={'worktree':R(_0x596365,_0x903654['worktreeID'])};}),_0x5343cb;});}['addUnit'](_0x53ed63,_0x9d82d2){return this['_call']('addUnit',async()=>{let _0x20d803=C(_0x9d82d2),_0x386891=m(_0x53ed63),_0xfac2a9={..._0x20d803,'request':_0x386891},_0x20ae29;return await this['_middleware']['run']('addWorktreeUnit',_0xfac2a9,async()=>{if(S(_0x53ed63['worktreeID']),!_0x53ed63['unitID'])throw X('unitID\x20is\x20required');let _0xebeb2c=await this['_requireTrunkUnit'](_0xfac2a9,_0x53ed63['unitID']),_0x70bbd=await this['_database'](()=>this['_dbAdapter']['addUnit'](_0xfac2a9,{'unit':{'worktreeID':_0x53ed63['worktreeID'],'unitID':_0xebeb2c['unitID'],'type':_0xebeb2c['type'],'source':'trunk','baselineTrunkRevision':_0xebeb2c['headRevision'],'draftHeadRevision':_0xebeb2c['headRevision']}}));if(_0x70bbd['status']==='not-found')throw Y(_0x53ed63['worktreeID']);let _0x2d2d4f=R(_0x70bbd['aggregate'],_0x53ed63['worktreeID']);if(_0x70bbd['status']==='status-mismatch')throw new i('WORKTREE_NOT_EDITABLE','Worktree\x20'+_0x53ed63['worktreeID']+'\x20is\x20'+_0x2d2d4f['status'],{'details':{'status':_0x2d2d4f['status']}});if(_0x20ae29={'worktree':_0x2d2d4f},_0x70bbd['status']==='added'){let _0x133d70=U(_0x2d2d4f,_0x53ed63['unitID']);await this['_events']['emit']('worktreeUnitAdded',{'userID':_0x20d803['userID'],'customData':_0x20d803['customData'],'request':_0x386891,'worktree':_0x2d2d4f,'unit':_0x133d70,'occurredAt':Date['now']()});}}),_0x20ae29;});}['setUnitRemoved'](_0x220109,_0x327e79){return this['_call']('setUnitRemoved',async()=>{let _0x4e0981=C(_0x327e79),_0x53dd80=v(_0x220109),_0x3e8e0d={..._0x4e0981,'request':_0x53dd80},_0x4cd456;return await this['_middleware']['run']('setWorktreeUnitRemoved',_0x3e8e0d,async()=>{if(S(_0x53dd80['worktreeID']),!_0x53dd80['unitID']||typeof _0x53dd80['removed']!='boolean')throw X('unitID\x20and\x20a\x20boolean\x20removed\x20flag\x20are\x20required');let _0x38fa66=await this['_database'](()=>this['_dbAdapter']['setUnitRemoved'](_0x3e8e0d,_0x53dd80));if(_0x38fa66['status']==='not-found')throw new i('WORKTREE_UNIT_NOT_FOUND','Unit\x20'+_0x53dd80['unitID']+'\x20does\x20not\x20exist\x20in\x20Worktree\x20'+_0x53dd80['worktreeID']);if(_0x38fa66['status']==='not-editable')throw new i('WORKTREE_NOT_EDITABLE','Unit\x20removal\x20can\x20only\x20change\x20in\x20an\x20editable\x20draft');let _0x4ad0ba=R(_0x38fa66['aggregate'],_0x53dd80['worktreeID']);_0x4cd456={'worktree':_0x4ad0ba},_0x38fa66['status']==='updated'&&await this['_events']['emit']('worktreeUnitRemovalChanged',{'userID':_0x4e0981['userID'],'customData':_0x4e0981['customData'],'request':_0x53dd80,'worktree':_0x4ad0ba,'unit':U(_0x4ad0ba,_0x53dd80['unitID']),'occurredAt':Date['now']()});}),_0x4cd456;});}['createUnitFromSnapshot'](_0x405750,_0x3a3aec){return this['_call']('createUnitFromSnapshot',async()=>{S(_0x405750['worktreeID']);let _0x1fc0f4=C(_0x3a3aec),{worktreeID:_0x49ccb0,..._0x5da0a0}=_0x405750;await this['_draftService'](_0x49ccb0)['createUnitFromSnapshot'](_0x5da0a0,_0x1fc0f4);let _0x36a722=p({'worktreeID':_0x49ccb0});return{'worktree':R(await this['_requireWorktreeAggregate']({..._0x1fc0f4,'request':_0x36a722},_0x49ccb0),_0x49ccb0)};});}['createUnitFromData'](_0x2e895a,_0x4c344f){return this['_call']('createUnitFromData',async()=>{S(_0x2e895a['worktreeID']);let _0x33df23=C(_0x4c344f),{worktreeID:_0x419abf,..._0x4abcf4}=_0x2e895a;await this['_draftService'](_0x419abf)['createUnitFromData'](_0x4abcf4,_0x33df23);let _0x2c3c1f=p({'worktreeID':_0x419abf});return{'worktree':R(await this['_requireWorktreeAggregate']({..._0x33df23,'request':_0x2c3c1f},_0x419abf),_0x419abf)};});}['markReady'](_0x2b0c7b,_0x2b441f){return this['_call']('markReady',async()=>{let _0xdf3a60=C(_0x2b441f),_0x1edb96=ee(_0x2b0c7b),_0x2a0cee={..._0xdf3a60,'request':_0x1edb96},_0xe44c03;return await this['_middleware']['run']('markWorktreeReady',_0x2a0cee,async()=>{_0xe44c03=await this['_transition'](_0x2b0c7b['worktreeID'],_0xdf3a60,_0x1edb96,()=>this['_dbAdapter']['markReady'](_0x2a0cee,_0x2b0c7b['worktreeID']));}),_0xe44c03;});}['reopenWorktree'](_0x5da13d,_0x677a11){return this['_call']('reopenWorktree',async()=>{let _0x3198c4=C(_0x677a11),_0x58a434=te(_0x5da13d),_0x2f115c={..._0x3198c4,'request':_0x58a434},_0x24404a;return await this['_middleware']['run']('reopenWorktree',_0x2f115c,async()=>{_0x24404a=await this['_transition'](_0x5da13d['worktreeID'],_0x3198c4,_0x58a434,()=>this['_dbAdapter']['reopenWorktree'](_0x2f115c,_0x5da13d['worktreeID']));}),_0x24404a;});}['discardWorktree'](_0x25e896,_0x2f007f){return this['_call']('discardWorktree',async()=>{let _0x42672d=C(_0x2f007f),_0x5129b3=h(_0x25e896),_0xabe4f9={..._0x42672d,'request':_0x5129b3},_0x33015d;return await this['_middleware']['run']('discardWorktree',_0xabe4f9,async()=>{_0x33015d=await this['_transition'](_0x25e896['worktreeID'],_0x42672d,_0x5129b3,()=>this['_dbAdapter']['discardWorktree'](_0xabe4f9,_0x25e896['worktreeID']));}),_0x33015d;});}['mergeWorktree'](_0x14b845,_0x36310c){return this['_call']('mergeWorktree',async()=>{let _0x4381bd=w(_0x36310c),_0x1f7dc8=g(_0x14b845),_0x1711cf={..._0x4381bd,'request':_0x1f7dc8},_0x3f3e7a;return await this['_middleware']['run']('mergeWorktree',_0x1711cf,async()=>{S(_0x14b845['worktreeID']);let _0x48d7ca=await this['_database'](()=>this['_dbAdapter']['startOrResumeMerge'](_0x1711cf,_0x14b845['worktreeID']));if(_0x48d7ca['status']==='not-found')throw Y(_0x14b845['worktreeID']);let _0x1fd592=_0x48d7ca['aggregate'],_0x22179d=R(_0x1fd592,_0x14b845['worktreeID']);if(_0x48d7ca['status']==='status-mismatch')throw new i('WORKTREE_STATUS_MISMATCH','Worktree\x20'+_0x14b845['worktreeID']+'\x20cannot\x20merge\x20from\x20'+_0x22179d['status'],{'details':{'status':_0x22179d['status']}});if(_0x48d7ca['status']==='already-merged'){_0x3f3e7a={'worktree':_0x22179d};return;}_0x48d7ca['status']==='started'&&await this['_events']['emit']('worktreeStatusChanged',{'userID':_0x4381bd['userID'],'customData':_0x4381bd['customData'],'request':_0x1f7dc8,'worktree':_0x22179d,'previousStatus':'ready','status':'merging','occurredAt':Date['now']()});for(let _0x374c6a of _0x1fd592['units']){if(J(_0x374c6a['mergeResult']))continue;let _0x41c9de=await this['_mergeUnit'](_0x1711cf,_0x1fd592['worktree']['sid'],_0x374c6a,_0x4381bd),_0xfd8a44=await this['_database'](()=>this['_dbAdapter']['recordUnitMergeResult'](_0x1711cf,{'worktreeID':_0x14b845['worktreeID'],'unitID':_0x374c6a['unitID'],'readyDraftHeadRevision':O(_0x374c6a),'mergeResult':_0x41c9de}));if(_0xfd8a44['status']==='not-found')throw Y(_0x14b845['worktreeID']);if(_0xfd8a44['status']==='stale-merge'){if(_0x1fd592=await this['_requireWorktreeAggregate'](_0x1711cf,_0x14b845['worktreeID']),_0x22179d=R(_0x1fd592,_0x14b845['worktreeID']),_0x1fd592['worktree']['status']!=='merging')break;continue;}if(_0xfd8a44['status']!=='recorded'&&_0xfd8a44['status']!=='already-recorded')throw Z('Database\x20returned\x20an\x20invalid\x20merge\x20result\x20status');_0x1fd592=_0xfd8a44['aggregate'],_0x22179d=R(_0x1fd592,_0x14b845['worktreeID']),_0xfd8a44['status']==='recorded'&&await this['_events']['emit']('worktreeUnitMergeResultRecorded',{'userID':_0x4381bd['userID'],'customData':_0x4381bd['customData'],'request':_0x1f7dc8,'worktree':_0x22179d,'unit':U(_0x22179d,_0x374c6a['unitID']),'occurredAt':Date['now']()});}if(_0x1fd592['worktree']['status']==='merging'){let _0x4be3bb=await this['_database'](()=>this['_dbAdapter']['finishMerge'](_0x1711cf,_0x14b845['worktreeID']));if(_0x4be3bb['status']==='not-found')throw Y(_0x14b845['worktreeID']);if(_0x1fd592=_0x4be3bb['aggregate'],_0x22179d=R(_0x1fd592,_0x14b845['worktreeID']),_0x4be3bb['status']==='transitioned')await this['_events']['emit']('worktreeStatusChanged',{'userID':_0x4381bd['userID'],'customData':_0x4381bd['customData'],'request':_0x1f7dc8,'worktree':_0x22179d,'previousStatus':_0x4be3bb['previousStatus'],'status':_0x22179d['status'],'occurredAt':Date['now']()});else{if(_0x4be3bb['status']==='status-mismatch'&&_0x22179d['status']!=='ready'&&_0x22179d['status']!=='merged')throw new i('WORKTREE_STALE_MERGE','Worktree\x20'+_0x14b845['worktreeID']+'\x20merge\x20was\x20superseded',{'retryable':!0x0,'details':{'status':_0x22179d['status']}});}}_0x3f3e7a={'worktree':_0x22179d};}),_0x3f3e7a;});}['evaluateWorktreeUnitMerge'](_0x2d8754,_0xb33012){return this['_call']('evaluateWorktreeUnitMerge',async()=>{let _0x5e60d3=C(_0xb33012),_0x48f975=_(_0x2d8754),_0x422b26={..._0x5e60d3,'request':_0x48f975},_0x1ff130;return await this['_middleware']['run']('readUnitData',_0x422b26,async()=>{if(S(_0x2d8754['worktreeID']),!_0x2d8754['unitID'])throw X('unitID\x20is\x20required');let _0x50d0b7=await this['_requireWorktreeAggregate'](_0x422b26,_0x2d8754['worktreeID']);if(_0x50d0b7['worktree']['status']!=='ready')throw new i('WORKTREE_STATUS_MISMATCH','Worktree\x20'+_0x2d8754['worktreeID']+'\x20cannot\x20preview\x20from\x20'+_0x50d0b7['worktree']['status'],{'details':{'status':_0x50d0b7['worktree']['status']}});let _0x1f8f89=_0x50d0b7['units']['find'](_0x6d0b2f=>_0x6d0b2f['unitID']===_0x2d8754['unitID']);if(!_0x1f8f89)throw new i('WORKTREE_UNIT_NOT_FOUND','Unit\x20'+_0x2d8754['unitID']+'\x20does\x20not\x20exist\x20in\x20Worktree\x20'+_0x2d8754['worktreeID']);if(_0x1f8f89['removed']){_0x1ff130={'status':'not-applicable','reason':'removed-unit','worktreeID':_0x2d8754['worktreeID'],'unitID':_0x2d8754['unitID']};return;}if(_0x1f8f89['source']==='worktree'){_0x1ff130={'status':'not-applicable','reason':'worktree-created-unit','worktreeID':_0x2d8754['worktreeID'],'unitID':_0x2d8754['unitID']};return;}if(J(_0x1f8f89['mergeResult'])){_0x1ff130={'status':'already-merged','worktreeID':_0x2d8754['worktreeID'],'unitID':_0x2d8754['unitID'],'mergeResult':q(_0x1f8f89['mergeResult'])};return;}let _0x38bbe5=B(_0x1f8f89),_0x10b671=O(_0x1f8f89),_0x1cdb05=await this['_trunkService']['getUnitLoadData']({'unitID':_0x1f8f89['unitID'],'type':_0x1f8f89['type'],'revision':0x0},_0x5e60d3);if(_0x1cdb05['targetRevision']===_0x38bbe5){_0x1ff130={'status':'not-behind','worktreeID':_0x2d8754['worktreeID'],'unitID':_0x2d8754['unitID']};return;}if(_0x1cdb05['targetRevision']<_0x38bbe5)throw Z('Trunk\x20head\x20is\x20behind\x20the\x20Worktree\x20baseline');let _0x109552=k(_0x1f8f89,_0x10b671,await this['_database'](()=>this['_dbAdapter']['getDraftChangesets'](_0x422b26,_0x1f8f89['worktreeID'],_0x1f8f89['unitID'],{'from':_0x38bbe5,'to':_0x10b671}))),_0x319302=await this['_trunkService']['getChangesets']({'unitID':_0x1f8f89['unitID'],'type':_0x1f8f89['type'],'from':_0x38bbe5,'to':_0x1cdb05['targetRevision']},_0x5e60d3);try{let _0x464230={'context':_0x422b26,'dbAdapter':this['_trunkDbAdapter'],'unitID':_0x1f8f89['unitID'],'type':_0x1f8f89['type'],...this['_runtimeOptions']===void 0x0?{}:{'runtime':this['_runtimeOptions']}},_0x4bde5c=_0x10b671===_0x38bbe5?await s({..._0x464230,'expectedRevision':_0x1cdb05['targetRevision']}):await l({..._0x464230,'trunkHeadRevision':_0x1cdb05['targetRevision'],'original':A(_0x50d0b7['worktree']['sid'],_0x1f8f89,_0x10b671,_0x109552,{'userID':_0x5e60d3['userID'],'memberID':'worktree-merge-preview'}),'trunkHistory':_0x319302['changesets']});_0x1ff130={'status':'preview','worktreeID':_0x2d8754['worktreeID'],'unitID':_0x2d8754['unitID'],'preview':_0x4bde5c};}catch(_0x5ba0f0){if(_0x5ba0f0 instanceof n['CollabError']&&_0x5ba0f0['code']==='OT_CONFLICT'){_0x1ff130={'status':'conflict','worktreeID':_0x2d8754['worktreeID'],'unitID':_0x2d8754['unitID'],'error':M(_0x5ba0f0)};return;}throw _0x5ba0f0;}}),_0x1ff130;});}['getUnitLoadData'](_0x217920,_0x4bddd7){return this['_call']('getUnitLoadData',()=>(S(_0x217920['worktreeID']),this['_draftService'](_0x217920['worktreeID'])['getUnitLoadData']({'unitID':_0x217920['unitID'],'type':_0x217920['type'],'revision':_0x217920['revision']},C(_0x4bddd7))));}['getChangesets'](_0x1a1a9d,_0x5a84fd){return this['_call']('getChangesets',()=>(S(_0x1a1a9d['worktreeID']),this['_draftService'](_0x1a1a9d['worktreeID'])['getChangesets']({'unitID':_0x1a1a9d['unitID'],'type':_0x1a1a9d['type'],'from':_0x1a1a9d['from'],'to':_0x1a1a9d['to']},C(_0x5a84fd))));}['getSheetBlock'](_0x14e82c,_0x41f082){return this['_call']('getSheetBlock',()=>(S(_0x14e82c['worktreeID']),this['_draftService'](_0x14e82c['worktreeID'])['getSheetBlock']({'unitID':_0x14e82c['unitID'],'type':_0x14e82c['type'],'blockID':_0x14e82c['blockID']},C(_0x41f082))));}['submitChangeset'](_0x46e2d8,_0x3faa7a){return this['_call']('submitChangeset',()=>(S(_0x46e2d8['worktreeID']),this['_draftService'](_0x46e2d8['worktreeID'])['submitChangeset']({'changeset':_0x46e2d8['changeset']},w(_0x3faa7a))));}['dispose'](){return this['_lifecycle']['dispose'](async()=>{this['_middleware']['clear'](),this['_events']['clear']();let _0x397106=[...this['_draftServices']['values']()];this['_draftServices']['clear'](),await Promise['all'](_0x397106['map'](_0x26d2d=>_0x26d2d['dispose']()));});}['_draftService'](_0x3f7a75){let _0x3d002c=this['_draftServices']['get'](_0x3f7a75);if(_0x3d002c)return _0x3d002c;let _0x380eda=new n['UniverCollabService']({'dbAdapter':new a(_0x3f7a75,this['_trunkDbAdapter'],this['_dbAdapter']),'snapshotPolicy':!0x1,'enableUnitPermissionAnalysis':this['_enableUnitPermissionAnalysis'],...this['_runtimeOptions']===void 0x0?{}:{'runtime':this['_runtimeOptions']},...this['_maxRevisionRetries']===void 0x0?{}:{'submitChangeset':{'maxRevisionRetries':this['_maxRevisionRetries']}},'logger':this['_logger'],'metrics':this['_metrics']});return _0x380eda['use']('createUnit',(_0x6a2526,_0x253479)=>{let _0x3e7f71=E(_0x6a2526['request'],_0x3f7a75);return this['_middleware']['run']('createWorktreeUnit',{'userID':_0x6a2526['userID'],'customData':_0x6a2526['customData'],'request':_0x3e7f71},_0x253479);}),_0x380eda['use']('readUnitData',(_0x3014a3,_0x1dda08)=>{let _0x3abc83=E(_0x3014a3['request'],_0x3f7a75);return this['_middleware']['run']('readUnitData',{'userID':_0x3014a3['userID'],'customData':_0x3014a3['customData'],'request':_0x3abc83},_0x1dda08);}),_0x380eda['use']('submitChangeset',(_0xc6b210,_0x323075)=>{let _0xd5343b=E(_0xc6b210['request'],_0x3f7a75);return this['_middleware']['run']('submitChangeset',{'userID':_0xc6b210['userID'],'memberID':_0xc6b210['memberID'],'customData':_0xc6b210['customData'],'request':_0xd5343b},_0x323075);}),_0x380eda['use']('applyChangeset',(_0x90fb76,_0x35bae0)=>{let _0x2d3967=E(_0x90fb76['request'],_0x3f7a75);return this['_middleware']['run']('applyChangeset',{'userID':_0x90fb76['userID'],'memberID':_0x90fb76['memberID'],'customData':_0x90fb76['customData'],'request':_0x2d3967,'attempt':_0x90fb76['attempt'],'currentRevision':_0x90fb76['currentRevision'],'changeset':_0x90fb76['changeset'],'requiredUnitPermissions':_0x90fb76['requiredUnitPermissions']},_0x35bae0);}),_0x380eda['use']('commitChangeset',(_0x4f71a7,_0x16d100)=>{let _0x2b2bf1=E(_0x4f71a7['request'],_0x3f7a75);return this['_middleware']['run']('commitChangeset',{'userID':_0x4f71a7['userID'],'memberID':_0x4f71a7['memberID'],'customData':_0x4f71a7['customData'],'request':_0x2b2bf1,'attempt':_0x4f71a7['attempt'],'expectedHeadRevision':_0x4f71a7['expectedHeadRevision'],'changeset':_0x4f71a7['changeset']},_0x16d100);}),_0x380eda['on']('changesetCommitted',_0x4b187a=>{let _0x381e84=E(_0x4b187a['request'],_0x3f7a75);return this['_events']['emit']('changesetCommitted',{'userID':_0x4b187a['userID'],'memberID':_0x4b187a['memberID'],'customData':_0x4b187a['customData'],'request':_0x381e84,'changeset':_0x4b187a['changeset'],'requiredUnitPermissions':_0x4b187a['requiredUnitPermissions'],'committedAt':_0x4b187a['committedAt']});}),_0x380eda['on']('unitCreated',async _0x1bc514=>{let _0x3568c1=E(_0x1bc514['request'],_0x3f7a75),_0x218999=R(await this['_requireWorktreeAggregate']({'userID':_0x1bc514['userID'],'customData':_0x1bc514['customData'],'request':_0x3568c1},_0x3f7a75),_0x3f7a75);await this['_events']['emit']('worktreeUnitCreated',{'userID':_0x1bc514['userID'],'customData':_0x1bc514['customData'],'request':_0x3568c1,'worktree':_0x218999,'unit':U(_0x218999,_0x1bc514['record']['unitID']),'occurredAt':_0x1bc514['createdAt']});}),this['_draftServices']['set'](_0x3f7a75,_0x380eda),_0x380eda;}async['_mergeUnit'](_0x4968f3,_0x36a135,_0x570d42,_0x56bc67){try{if(_0x570d42['removed'])return{'status':'removed'};if(_0x570d42['source']==='worktree')return await this['_mergeCreatedUnit'](_0x4968f3,_0x570d42,_0x56bc67);let _0xdb7458=B(_0x570d42),_0x1b606d=O(_0x570d42);if(_0x1b606d===_0xdb7458)return{'status':'unchanged'};let _0x404e7b=k(_0x570d42,_0x1b606d,await this['_database'](()=>this['_dbAdapter']['getDraftChangesets'](_0x4968f3,_0x570d42['worktreeID'],_0x570d42['unitID'],{'from':_0xdb7458,'to':_0x1b606d}))),_0x4a0e87=await this['_trunkService']['submitChangeset']({'changeset':A(_0x36a135,_0x570d42,_0x1b606d,_0x404e7b,_0x56bc67)},_0x56bc67);return _0x4a0e87['status']==='committed'||_0x4a0e87['status']==='already-committed'?{'status':'merged','trunkRevision':_0x4a0e87['changeset']['revision']}:j('error'in _0x4a0e87?_0x4a0e87['error']:Error('Trunk\x20merge\x20failed'));}catch(_0x3d6190){return j(_0x3d6190);}}async['_mergeCreatedUnit'](_0x50f632,_0x4130c5,_0x2ee9b4){let _0x434307=O(_0x4130c5),_0x762e33=await this['_database'](()=>this['_dbAdapter']['getUnitMergeArtifact'](_0x50f632,_0x4130c5['worktreeID'],_0x4130c5['unitID']));if(!_0x762e33){let _0x4e1e95=await s({'context':_0x50f632,'dbAdapter':new a(_0x4130c5['worktreeID'],this['_trunkDbAdapter'],this['_dbAdapter']),'unitID':_0x4130c5['unitID'],'type':_0x4130c5['type'],'expectedRevision':_0x434307,...this['_runtimeOptions']===void 0x0?{}:{'runtime':this['_runtimeOptions']}});if(!await this['_database'](()=>this['_dbAdapter']['getUnitSeed'](_0x50f632,_0x4130c5['worktreeID'],_0x4130c5['unitID'])))throw Z('Worktree-created\x20Unit\x20seed\x20is\x20missing');let _0x86c202=await this['_database'](()=>this['_dbAdapter']['saveUnitMergeArtifact'](_0x50f632,{'worktreeID':_0x4130c5['worktreeID'],'unitID':_0x4130c5['unitID'],'artifact':{'readyDraftHeadRevision':_0x434307,'unit':{'snapshot':H(_0x4e1e95['snapshot']),..._0x4e1e95['sheetBlocks']===void 0x0?{}:{'sheetBlocks':_0x4e1e95['sheetBlocks']}}}}));if(_0x86c202['status']==='not-found')throw Y(_0x4130c5['worktreeID']);if(_0x86c202['status']==='stale-merge')throw new i('WORKTREE_STALE_MERGE','Worktree\x20Unit\x20changed\x20while\x20saving\x20its\x20merge\x20artifact',{'retryable':!0x0});if(!('artifact'in _0x86c202))throw Z('Database\x20returned\x20an\x20invalid\x20merge\x20artifact\x20result');_0x762e33=_0x86c202['artifact'];}if(!_0x762e33)throw Z('Worktree\x20Unit\x20merge\x20artifact\x20is\x20missing');V(_0x4130c5,_0x434307,_0x762e33);let _0x4f14d2=_0x762e33['unit'];if(await this['_trunkService']['createUnitFromSnapshot']({'snapshot':_0x4f14d2['snapshot'],'sheetBlocks':[..._0x4f14d2['sheetBlocks']??[]]},_0x2ee9b4),!await this['_matchesCreatedTrunkUnit'](_0x50f632,_0x4130c5,_0x4f14d2))throw new P('Trunk\x20Unit\x20'+_0x4130c5['unitID']+'\x20already\x20exists\x20with\x20different\x20content');return{'status':'merged','trunkRevision':0x1};}async['_matchesCreatedTrunkUnit'](_0x478a8c,_0x893620,_0x36cacd){let _0x4c144c=await this['_database'](()=>this['_trunkDbAdapter']['getUnit'](_0x478a8c,_0x893620['unitID']));if(!_0x4c144c||_0x4c144c['type']!==_0x893620['type']||_0x4c144c['headRevision']<0x1||!F(await this['_database'](()=>this['_trunkDbAdapter']['getSnapshot'](_0x478a8c,_0x893620['unitID'],{'revision':0x1})),_0x36cacd['snapshot']))return!0x1;for(let _0x10251b of _0x36cacd['sheetBlocks']??[])if(!F(await this['_database'](()=>this['_trunkDbAdapter']['getSheetBlock'](_0x478a8c,_0x893620['unitID'],_0x10251b['id'])),_0x10251b))return!0x1;return!0x0;}async['_requireWorktreeAggregate'](_0xa4b163,_0x3113ac){let _0x2782a0=await this['_database'](()=>this['_dbAdapter']['getWorktree'](_0xa4b163,_0x3113ac));if(!_0x2782a0)throw Y(_0x3113ac);return R(_0x2782a0,_0x3113ac),_0x2782a0;}async['_transition'](_0x189a0c,_0x400b63,_0x5ca2fc,_0x1a94eb){S(_0x189a0c);let _0x4cbeef=await this['_database'](_0x1a94eb);if(_0x4cbeef['status']==='not-found')throw Y(_0x189a0c);let _0x582444=R(_0x4cbeef['aggregate'],_0x189a0c);if(_0x4cbeef['status']==='status-mismatch')throw new i('WORKTREE_STATUS_MISMATCH','Worktree\x20'+_0x189a0c+'\x20cannot\x20transition\x20from\x20'+_0x582444['status'],{'details':{'status':_0x582444['status']}});return _0x4cbeef['status']==='transitioned'&&await this['_events']['emit']('worktreeStatusChanged',{'userID':_0x400b63['userID'],'customData':_0x400b63['customData'],'request':_0x5ca2fc,'worktree':_0x582444,'previousStatus':_0x4cbeef['previousStatus'],'status':_0x582444['status'],'occurredAt':Date['now']()}),{'worktree':_0x582444};}async['_requireTrunkUnit'](_0x23ea6d,_0x41686b){let _0x2d70cd=await this['_database'](()=>this['_trunkDbAdapter']['getUnit'](_0x23ea6d,_0x41686b));if(!_0x2d70cd)throw new n['CollabError']('UNIT_NOT_FOUND','Trunk\x20Unit\x20'+_0x41686b+'\x20does\x20not\x20exist');if(_0x2d70cd['unitID']!==_0x41686b||!x['has'](_0x2d70cd['type'])||!Number['isSafeInteger'](_0x2d70cd['headRevision'])||_0x2d70cd['headRevision']<0x1)throw Z('Trunk\x20Database\x20returned\x20invalid\x20Unit\x20metadata');return _0x2d70cd;}async['_database'](_0x11c6f9){try{return await _0x11c6f9();}catch(_0x587cbc){throw _0x587cbc instanceof n['CollabError']||_0x587cbc instanceof i?_0x587cbc:Z('Database\x20Adapter\x20failed',_0x587cbc);}}async['_call'](_0x2a9b73,_0x33dfdc){try{return this['_metrics']['increment']('collaboration.worktree.service.call',{'operation':_0x2a9b73}),await this['_lifecycle']['run'](_0x33dfdc);}catch(_0x3c559d){throw _0x3c559d instanceof n['CollabError']||_0x3c559d instanceof i?_0x3c559d:(this['_logger']['error']('Worktree\x20Service\x20operation\x20failed',{'operation':_0x2a9b73,'error':$(_0x3c559d)}),new n['CollabError']('INTERNAL_ERROR','Worktree\x20Service\x20failed',{'retryable':!0x0,'cause':_0x3c559d}));}}['_assertRunning'](){if(this['_lifecycle']['state']!=='running')throw new n['CollabError']('INTERNAL_ERROR','Worktree\x20Service\x20is\x20'+this['_lifecycle']['state'],{'retryable':!0x0});}};function S(_0x1f9b22){if(!_0x1f9b22)throw X('worktreeID\x20is\x20required');}function C(_0x2caca8){return T(_0x2caca8),{'userID':_0x2caca8['userID'],'customData':_0x2caca8['customData']??Object['create'](null)};}function w(_0x4f6afb){if(T(_0x4f6afb),typeof _0x4f6afb['memberID']!='string'||_0x4f6afb['memberID']['length']===0x0)throw X('memberID\x20must\x20be\x20a\x20non-empty\x20string');return{'userID':_0x4f6afb['userID'],'memberID':_0x4f6afb['memberID'],'customData':_0x4f6afb['customData']??Object['create'](null)};}function T(_0x4fab3e){if(!_0x4fab3e||typeof _0x4fab3e!='object')throw X('context\x20must\x20be\x20an\x20object');if(typeof _0x4fab3e['userID']!='string'||_0x4fab3e['userID']['length']===0x0)throw X('userID\x20must\x20be\x20a\x20non-empty\x20string');if(_0x4fab3e['customData']!==void 0x0&&(_0x4fab3e['customData']===null||typeof _0x4fab3e['customData']!='object'||Array['isArray'](_0x4fab3e['customData'])))throw X('customData\x20must\x20be\x20an\x20object');}function E(_0x4b02e9,_0xd52153){let _0x36ccb5=_0x4b02e9;if(_0x36ccb5['worktreeID']!==void 0x0){if(_0x36ccb5['worktreeID']!==_0xd52153)throw new n['CollabError']('INTERNAL_ERROR','Draft\x20Request\x20is\x20bound\x20to\x20a\x20different\x20Worktree',{'retryable':!0x0});return _0x36ccb5;}return Object['defineProperty'](_0x4b02e9,'worktreeID',{'value':_0xd52153,'enumerable':!0x0,'configurable':!0x1,'writable':!0x1}),_0x4b02e9;}function D(_0x47cdc0){if(_0x47cdc0['some'](_0x289c2d=>!_0x289c2d))throw X('Initial\x20Unit\x20IDs\x20cannot\x20be\x20empty');if(new Set(_0x47cdc0)['size']!==_0x47cdc0['length'])throw X('Initial\x20Unit\x20IDs\x20must\x20be\x20unique');}function O(_0x4e6998){let _0x4b7bcf=_0x4e6998['readyDraftHeadRevision'],_0x22a8b8=_0x4e6998['source']==='trunk'?B(_0x4e6998):0x1;if(_0x4b7bcf===void 0x0||!Number['isSafeInteger'](_0x4b7bcf)||_0x4b7bcf<_0x22a8b8)throw Z('Merging\x20Worktree\x20Unit\x20has\x20no\x20valid\x20frozen\x20draft\x20head');return _0x4b7bcf;}function k(_0x15c07e,_0x405044,_0x531112){let _0x4b3659=B(_0x15c07e);if(_0x531112===null)throw new N('Frozen\x20Worktree\x20draft\x20history\x20is\x20no\x20longer\x20readable');let _0x52bf50=_0x4b3659+0x1,_0x48d54d=[];for(let _0x1096bd of _0x531112){if(_0x1096bd['unitID']!==_0x15c07e['unitID']||_0x1096bd['type']!==_0x15c07e['type']||_0x1096bd['baseRev']!==_0x52bf50-0x1||_0x1096bd['revision']!==_0x52bf50)throw new N('Frozen\x20Worktree\x20draft\x20history\x20is\x20not\x20contiguous');_0x48d54d['push'](...structuredClone(_0x1096bd['mutations'])),_0x52bf50+=0x1;}if(_0x52bf50-0x1!==_0x405044)throw new N('Frozen\x20Worktree\x20draft\x20history\x20is\x20incomplete');return _0x48d54d;}function A(_0x375336,_0x5c2979,_0x435972,_0xbae291,_0x379727){let _0x30c832=B(_0x5c2979);return{'unitID':_0x5c2979['unitID'],'type':_0x5c2979['type'],'baseRev':_0x30c832,'revision':_0x30c832+0x1,'userID':_0x379727['userID'],'memberID':_0x379727['memberID'],'sid':_0x375336,'reqId':_0x435972-_0x30c832,'mutations':_0xbae291};}function j(_0x4536ec){let _0x13b7d7=M(_0x4536ec);return _0x4536ec instanceof N||_0x4536ec instanceof P||_0x4536ec instanceof n['CollabError']&&_0x4536ec['code']==='OT_CONFLICT'?{'status':'conflict','error':_0x13b7d7}:{'status':'failed','error':_0x13b7d7};}function M(_0x1faf3e){return _0x1faf3e instanceof N?{'code':'WORKTREE_DRAFT_HISTORY_INVALID','message':_0x1faf3e['message'],'retryable':!0x0}:_0x1faf3e instanceof P?{'code':'WORKTREE_CREATE_CONFLICT','message':_0x1faf3e['message'],'retryable':!0x1}:_0x1faf3e instanceof n['CollabError']||_0x1faf3e instanceof i?{'code':_0x1faf3e['code'],'message':_0x1faf3e['message'],'retryable':_0x1faf3e['retryable']}:{'code':'INTERNAL_ERROR','message':_0x1faf3e instanceof Error?_0x1faf3e['message']:'Merge\x20failed','retryable':!0x0};}var N=class extends Error{constructor(_0x451795){super(_0x451795),this['name']='FrozenDraftConflict';}},P=class extends Error{constructor(_0x4eebba){super(_0x4eebba),this['name']='WorktreeCreateConflict';}};function F(_0x3e5377,_0x322354){return(0x0,t['isDeepStrictEqual'])(I(_0x3e5377),I(_0x322354));}function I(_0x4175aa){if(_0x4175aa!==void 0x0)return JSON['parse'](JSON['stringify'](_0x4175aa,(_0x1ba235,_0x1beb37)=>_0x1beb37 instanceof Uint8Array?{'__univerCollaborationBinary':[..._0x1beb37]}:_0x1beb37));}function L(_0x44f983,_0x557011){let _0x5ad5a8=new Set(_0x44f983['units']['map'](({unitID:_0x3728d3})=>_0x3728d3));if(_0x5ad5a8['size']!==_0x557011['length']||_0x557011['some'](_0x3a2b2a=>!_0x5ad5a8['has'](_0x3a2b2a)))throw Z('Database\x20returned\x20incomplete\x20initial\x20Worktree\x20Units');}function R(_0x268c4c,_0x3767e5){let {worktree:_0x4eeac2,units:_0x58db9c}=_0x268c4c;if(_0x4eeac2['worktreeID']!==_0x3767e5||!_0x4eeac2['sid']||!W(_0x4eeac2['status']))throw Z('Database\x20returned\x20invalid\x20Worktree\x20metadata');let _0x483469=new Set(),_0x42fc2c=_0x58db9c['map'](_0x55a4ff=>{let _0x5bdf09=_0x55a4ff['source']==='trunk'&&Number['isSafeInteger'](_0x55a4ff['baselineTrunkRevision'])&&_0x55a4ff['baselineTrunkRevision']>=0x1&&_0x55a4ff['draftHeadRevision']>=_0x55a4ff['baselineTrunkRevision']||_0x55a4ff['source']==='worktree'&&_0x55a4ff['baselineTrunkRevision']===void 0x0&&_0x55a4ff['draftHeadRevision']>=0x1;if(_0x55a4ff['worktreeID']!==_0x3767e5||!_0x55a4ff['unitID']||_0x483469['has'](_0x55a4ff['unitID'])||!x['has'](_0x55a4ff['type'])||!_0x5bdf09||!Number['isSafeInteger'](_0x55a4ff['draftHeadRevision'])||_0x55a4ff['readyDraftHeadRevision']!==void 0x0&&_0x55a4ff['readyDraftHeadRevision']!==_0x55a4ff['draftHeadRevision']||_0x55a4ff['mergeResult']!==void 0x0&&_0x55a4ff['readyDraftHeadRevision']===void 0x0||_0x55a4ff['removed']!==void 0x0&&typeof _0x55a4ff['removed']!='boolean'||!G(_0x55a4ff['mergeResult']))throw Z('Database\x20returned\x20invalid\x20Worktree\x20Unit\x20metadata');return _0x483469['add'](_0x55a4ff['unitID']),z(_0x55a4ff);});if(_0x4eeac2['status']==='merged'&&_0x42fc2c['some'](({mergeResult:_0x5643a4})=>!J(_0x5643a4)))throw Z('Merged\x20Worktree\x20contains\x20an\x20incomplete\x20Unit');return{'worktreeID':_0x4eeac2['worktreeID'],'status':_0x4eeac2['status'],'units':_0x42fc2c};}function z(_0x2fdb6e){return{'unitID':_0x2fdb6e['unitID'],'type':_0x2fdb6e['type'],'source':_0x2fdb6e['source'],..._0x2fdb6e['removed']===void 0x0?{}:{'removed':_0x2fdb6e['removed']},..._0x2fdb6e['baselineTrunkRevision']===void 0x0?{}:{'baselineTrunkRevision':_0x2fdb6e['baselineTrunkRevision']},'draftHeadRevision':_0x2fdb6e['draftHeadRevision'],..._0x2fdb6e['readyDraftHeadRevision']===void 0x0?{}:{'readyDraftHeadRevision':_0x2fdb6e['readyDraftHeadRevision']},..._0x2fdb6e['mergeResult']===void 0x0?{}:{'mergeResult':K(_0x2fdb6e['mergeResult'])}};}function B(_0x100cec){if(_0x100cec['source']!=='trunk'||!Number['isSafeInteger'](_0x100cec['baselineTrunkRevision'])||_0x100cec['baselineTrunkRevision']<0x1)throw Z('Trunk-sourced\x20Worktree\x20Unit\x20has\x20no\x20valid\x20baseline');return _0x100cec['baselineTrunkRevision'];}function V(_0x1791cb,_0x5d2221,_0x330557){if(_0x330557['readyDraftHeadRevision']!==_0x5d2221||_0x330557['unit']['snapshot']['unitID']!==_0x1791cb['unitID']||_0x330557['unit']['snapshot']['type']!==_0x1791cb['type']||_0x330557['unit']['snapshot']['rev']!==0x1)throw Z('Database\x20returned\x20an\x20invalid\x20Worktree\x20Unit\x20merge\x20artifact');}function H(_0x1622ac){let _0xadb1ff={..._0x1622ac,'rev':0x1};return _0x1622ac['workbook']?{..._0xadb1ff,'workbook':{..._0x1622ac['workbook'],'rev':0x1}}:_0x1622ac['doc']?{..._0xadb1ff,'doc':{..._0x1622ac['doc'],'rev':0x1}}:_0x1622ac['slide']?{..._0xadb1ff,'slide':{..._0x1622ac['slide'],'rev':0x1}}:_0x1622ac['board']?{..._0xadb1ff,'board':{..._0x1622ac['board'],'rev':0x1}}:_0xadb1ff;}function U(_0x3399ad,_0x278055){let _0x5d30ec=_0x3399ad['units']['find'](_0x7fe1a7=>_0x7fe1a7['unitID']===_0x278055);if(!_0x5d30ec)throw Z('Database\x20omitted\x20the\x20added\x20Worktree\x20Unit');return _0x5d30ec;}function W(_0xeaa5fb){return _0xeaa5fb==='draft'||_0xeaa5fb==='ready'||_0xeaa5fb==='merging'||_0xeaa5fb==='merged'||_0xeaa5fb==='discarded';}function G(_0x361e01){return _0x361e01===void 0x0?!0x0:!_0x361e01||typeof _0x361e01!='object'||!('status'in _0x361e01)?!0x1:_0x361e01['status']==='unchanged'||_0x361e01['status']==='removed'?!0x0:_0x361e01['status']==='merged'&&'trunkRevision'in _0x361e01?typeof _0x361e01['trunkRevision']=='number'&&Number['isSafeInteger'](_0x361e01['trunkRevision'])&&_0x361e01['trunkRevision']>=0x1:_0x361e01['status']!=='conflict'&&_0x361e01['status']!=='failed'||!('error'in _0x361e01)||!_0x361e01['error']||typeof _0x361e01['error']!='object'||!('code'in _0x361e01['error'])||!('message'in _0x361e01['error'])||!('retryable'in _0x361e01['error'])?!0x1:typeof _0x361e01['error']['code']=='string'&&!!_0x361e01['error']['code']&&typeof _0x361e01['error']['message']=='string'&&!!_0x361e01['error']['message']&&typeof _0x361e01['error']['retryable']=='boolean';}function K(_0x4d44bc){return _0x4d44bc['status']==='merged'?{'status':'merged','trunkRevision':_0x4d44bc['trunkRevision']}:_0x4d44bc['status']==='unchanged'||_0x4d44bc['status']==='removed'?{'status':_0x4d44bc['status']}:{'status':_0x4d44bc['status'],'error':{'code':_0x4d44bc['error']['code'],'message':_0x4d44bc['error']['message'],'retryable':_0x4d44bc['error']['retryable']}};}function q(_0x466143){if(_0x466143?.['status']==='merged')return{'status':'merged','trunkRevision':_0x466143['trunkRevision']};if(_0x466143?.['status']==='unchanged')return{'status':'unchanged'};throw Z('Worktree\x20Unit\x20merge\x20result\x20is\x20not\x20terminal');}function J(_0x273ee0){return _0x273ee0?.['status']==='merged'||_0x273ee0?.['status']==='unchanged'||_0x273ee0?.['status']==='removed';}function Y(_0x1f39ab){return new i('WORKTREE_NOT_FOUND','Worktree\x20'+_0x1f39ab+'\x20does\x20not\x20exist');}function X(_0x55f841){return new n['CollabError']('INVALID_REQUEST',_0x55f841);}function Z(_0x3fe46f,_0x1c6fd8){return new n['CollabError']('ADAPTER_FAILURE',_0x3fe46f,{'retryable':!0x0,..._0x1c6fd8===void 0x0?{}:{'cause':_0x1c6fd8}});}function re(_0x4e78a1){return _0x4e78a1?{'debug':(..._0x420053)=>Q(()=>_0x4e78a1['debug'](..._0x420053)),'info':(..._0x40cfb8)=>Q(()=>_0x4e78a1['info'](..._0x40cfb8)),'warn':(..._0x33ee67)=>Q(()=>_0x4e78a1['warn'](..._0x33ee67)),'error':(..._0x161755)=>Q(()=>_0x4e78a1['error'](..._0x161755))}:{'debug':()=>void 0x0,'info':()=>void 0x0,'warn':()=>void 0x0,'error':()=>void 0x0};}function ie(_0x556c27){return _0x556c27?{'increment':(..._0x5cb563)=>Q(()=>_0x556c27['increment'](..._0x5cb563)),'observe':(..._0x2d88c2)=>Q(()=>_0x556c27['observe'](..._0x2d88c2))}:{'increment':()=>void 0x0,'observe':()=>void 0x0};}function Q(_0x57c117){try{_0x57c117();}catch{}}function $(_0x49bab6){return _0x49bab6 instanceof Error?_0x49bab6['message']:String(_0x49bab6);}exports['UniverCollabWorktreeService']=ne,exports['WorktreeError']=i;
1
+ Object['defineProperty'](exports,Symbol['toStringTag'],{'value':'Module'});let e=require('node:crypto'),t=require('node:util'),n=require('@univerjs-pro/collaboration-service'),r=require('@univerjs/protocol');var i=class extends Error{['code'];['retryable'];['details'];constructor(_0x2e9981,_0x59e953,_0x53611f={}){super(_0x59e953,{'cause':_0x53611f['cause']}),this['name']='WorktreeError',this['code']=_0x2e9981,this['retryable']=_0x53611f['retryable']??!0x1,_0x53611f['details']!==void 0x0&&(this['details']=_0x53611f['details']);}},a=class{['_worktreeID'];['_trunk'];['_worktree'];constructor(_0x50d4e1,_0x23f79b,_0x52b599){this['_worktreeID']=_0x50d4e1,this['_trunk']=_0x23f79b,this['_worktree']=_0x52b599;}async['getUnit'](_0x167ba6,_0x4e4d8e){let _0x4eec16=await this['_worktree']['getWorktreeUnit'](_0x167ba6,this['_worktreeID'],_0x4e4d8e);return _0x4eec16?{'unitID':_0x4eec16['unitID'],'type':_0x4eec16['type'],'headRevision':_0x4eec16['draftHeadRevision'],'creatorID':_0x4eec16['creatorID'],'createdAt':_0x4eec16['createdAt']}:null;}async['getSnapshot'](_0x26d6ca,_0x49314b,_0x12500a){let _0x29958c=await this['_getUnitRecord'](_0x26d6ca,_0x49314b);if(!_0x29958c)return null;let _0x4d5028=_0x12500a?.['revision'],_0x552b10=_0x4d5028===void 0x0?_0x29958c['draftHeadRevision']:Math['min'](_0x4d5028,_0x29958c['draftHeadRevision']);if(_0x29958c['source']==='worktree')return _0x552b10<0x1?null:(await this['_worktree']['getUnitSeed'](_0x26d6ca,this['_worktreeID'],_0x49314b))?.['snapshot']??null;let _0x7249a9=o(_0x29958c);return this['_trunk']['getSnapshot'](_0x26d6ca,_0x49314b,{'revision':Math['min'](_0x552b10,_0x7249a9)});}async['getSnapshotInfo'](_0x53c7ad,_0x5b9a49,_0x5ad691){let _0x7a6bd7=await this['_getUnitRecord'](_0x53c7ad,_0x5b9a49);if(!_0x7a6bd7)return null;let _0x3ed348=_0x5ad691?.['revision'],_0x468ca0=_0x3ed348===void 0x0?_0x7a6bd7['draftHeadRevision']:Math['min'](_0x3ed348,_0x7a6bd7['draftHeadRevision']);return _0x7a6bd7['source']==='worktree'?_0x468ca0>=0x1?{'unitID':_0x7a6bd7['unitID'],'type':_0x7a6bd7['type'],'rev':0x1}:null:this['_trunk']['getSnapshotInfo'](_0x53c7ad,_0x5b9a49,{'revision':Math['min'](_0x468ca0,o(_0x7a6bd7))});}async['getChangesets'](_0x548961,_0x20e118,_0x543590){let _0x1534b0=await this['_getUnitRecord'](_0x548961,_0x20e118);if(!_0x1534b0)return null;if(_0x1534b0['source']==='worktree')return this['_worktree']['getDraftChangesets'](_0x548961,this['_worktreeID'],_0x20e118,_0x543590);let _0x55f326=o(_0x1534b0),_0x203774=Math['min'](_0x543590['to']??_0x55f326,_0x55f326),_0x256255=_0x543590['from']<_0x203774?await this['_trunk']['getChangesets'](_0x548961,_0x20e118,{'from':_0x543590['from'],'to':_0x203774}):[];if(_0x256255===null)return null;let _0x56c65c=Math['max'](_0x543590['from'],_0x55f326),_0x1fafc4=_0x543590['to']===void 0x0||_0x56c65c<_0x543590['to']?await this['_worktree']['getDraftChangesets'](_0x548961,this['_worktreeID'],_0x20e118,{..._0x543590,'from':_0x56c65c}):[];return _0x1fafc4===null?null:[..._0x256255,..._0x1fafc4];}async['createUnit'](_0x542e28,_0x10cda3){let _0x3129b1=await this['_worktree']['createUnit'](_0x542e28,{'unit':{'worktreeID':this['_worktreeID'],'unitID':_0x10cda3['record']['unitID'],'type':_0x10cda3['record']['type'],'source':'worktree','draftHeadRevision':0x1,'creatorID':_0x10cda3['record']['creatorID'],'createdAt':_0x10cda3['record']['createdAt']},'seed':{'snapshot':_0x10cda3['snapshot'],..._0x10cda3['sheetBlocks']===void 0x0?{}:{'sheetBlocks':_0x10cda3['sheetBlocks']}}});switch(_0x3129b1['status']){case'created':return{'status':'created','record':_0x10cda3['record']};case'already-created':{let _0x16b4fa=_0x3129b1['aggregate']['units']['find'](_0x645507=>_0x645507['unitID']===_0x10cda3['record']['unitID']);return{'status':'already-exists','record':{'unitID':_0x16b4fa['unitID'],'type':_0x16b4fa['type'],'headRevision':_0x16b4fa['draftHeadRevision'],'creatorID':_0x16b4fa['creatorID'],'createdAt':_0x16b4fa['createdAt']}};}case'not-found':throw new n['CollabError']('UNIT_NOT_FOUND','Worktree\x20'+this['_worktreeID']+'\x20does\x20not\x20exist');case'unit-exists':throw new n['CollabError']('INVALID_REQUEST','Unit\x20'+_0x10cda3['record']['unitID']+'\x20already\x20exists\x20in\x20the\x20Worktree');case'status-mismatch':throw new n['CollabError']('PERMISSION_DENIED','Worktree\x20'+this['_worktreeID']+'\x20is\x20not\x20editable');}}['deleteUnits'](_0x2c00da,_0x1c30a8){return Promise['reject'](new n['CollabError']('INVALID_REQUEST','Cannot\x20delete\x20Units\x20through\x20a\x20Worktree\x20draft'));}['recoverUnits'](_0x6413bd,_0x3490d3){return Promise['reject'](new n['CollabError']('INVALID_REQUEST','Cannot\x20recover\x20Units\x20through\x20a\x20Worktree\x20draft'));}async['commitChangeset'](_0x1b84f2,_0x5b688b){let _0x2574ee=await this['_worktree']['commitDraftChangeset'](_0x1b84f2,{'worktreeID':this['_worktreeID'],'changeset':_0x5b688b['changeset']});switch(_0x2574ee['status']){case'committed':case'revision-mismatch':return _0x2574ee;case'not-found':throw new n['CollabError']('UNIT_NOT_FOUND','Worktree\x20or\x20Worktree\x20Unit\x20does\x20not\x20exist');case'not-editable':throw new n['CollabError']('PERMISSION_DENIED','Worktree\x20is\x20'+_0x2574ee['worktreeStatus']);case'unit-frozen':throw new n['CollabError']('PERMISSION_DENIED','Worktree\x20Unit\x20has\x20already\x20been\x20merged');}}['saveSnapshot'](_0x1897e6,_0x4f114b){return Promise['reject'](new n['CollabError']('INTERNAL_ERROR','Worktree\x20draft\x20snapshots\x20are\x20disabled'));}async['getSheetBlock'](_0x270651,_0x59aa6a,_0xe5567e){let _0xd65895=await this['_getUnitRecord'](_0x270651,_0x59aa6a);return _0xd65895?_0xd65895['source']==='worktree'?(await this['_worktree']['getUnitSeed'](_0x270651,this['_worktreeID'],_0x59aa6a))?.['sheetBlocks']?.['find'](_0x57c7d1=>_0x57c7d1['id']===_0xe5567e)??null:this['_trunk']['getSheetBlock'](_0x270651,_0x59aa6a,_0xe5567e):null;}['_getUnitRecord'](_0x4b15be,_0x350e69){return this['_worktree']['getWorktreeUnit'](_0x4b15be,this['_worktreeID'],_0x350e69);}};function o(_0x49e933){if(_0x49e933['source']!=='trunk'||!Number['isSafeInteger'](_0x49e933['baselineTrunkRevision'])||_0x49e933['baselineTrunkRevision']<0x1)throw new n['CollabError']('ADAPTER_FAILURE','Trunk-sourced\x20Worktree\x20Unit\x20has\x20no\x20valid\x20baseline');return _0x49e933['baselineTrunkRevision'];}async function s(_0x37699e){let _0x5bf56a=new n['UniverUnitRuntime']({'reader':_0x37699e['dbAdapter'],..._0x37699e['runtime']?.['maxLoadedUnits']===void 0x0?{}:{'maxLoadedUnits':_0x37699e['runtime']['maxLoadedUnits']},..._0x37699e['runtime']?.['idleTimeoutMs']===void 0x0?{}:{'idleTimeoutMs':_0x37699e['runtime']['idleTimeoutMs']}});try{let _0xb43be6=await _0x5bf56a['ensureUnit'](_0x37699e['context'],_0x37699e['unitID'],_0x37699e['type']);try{if(_0xb43be6['revision']!==_0x37699e['expectedRevision'])throw c('Unit\x20Runtime\x20did\x20not\x20reach\x20the\x20frozen\x20Worktree\x20revision');let _0x4d9e0e=await _0x5bf56a['createSnapshot'](_0xb43be6);if(_0x4d9e0e['snapshot']['unitID']!==_0x37699e['unitID']||_0x4d9e0e['snapshot']['type']!==_0x37699e['type']||_0x4d9e0e['snapshot']['rev']!==_0x37699e['expectedRevision'])throw c('Unit\x20Runtime\x20returned\x20an\x20invalid\x20Worktree\x20snapshot');return _0x4d9e0e;}finally{_0x5bf56a['releaseUnit'](_0xb43be6);}}finally{await _0x5bf56a['dispose']();}}function c(_0x51a457){return new n['CollabError']('ADAPTER_FAILURE',_0x51a457,{'retryable':!0x0});}async function l(_0x2678a2){let _0x568bb4=new n['UniverUnitRuntime']({'reader':_0x2678a2['dbAdapter'],..._0x2678a2['runtime']?.['maxLoadedUnits']===void 0x0?{}:{'maxLoadedUnits':_0x2678a2['runtime']['maxLoadedUnits']},..._0x2678a2['runtime']?.['idleTimeoutMs']===void 0x0?{}:{'idleTimeoutMs':_0x2678a2['runtime']['idleTimeoutMs']}});try{let _0x346421=u(_0x568bb4,_0x2678a2),_0x1c992a=await _0x568bb4['ensureUnit'](_0x2678a2['context'],_0x2678a2['unitID'],_0x2678a2['type']);try{if(_0x1c992a['revision']!==_0x2678a2['trunkHeadRevision'])throw new n['CollabError']('REVISION_MISMATCH','Trunk\x20changed\x20while\x20materializing\x20Worktree\x20merge\x20preview',{'retryable':!0x0});if(await _0x568bb4['applyChangeset'](_0x2678a2['context'],_0x1c992a,_0x346421),_0x1c992a['revision']!==_0x346421['revision'])throw new n['CollabError']('INTERNAL_ERROR','Preview\x20Runtime\x20did\x20not\x20reach\x20the\x20merge\x20candidate\x20revision',{'retryable':!0x0});return await _0x568bb4['createSnapshot'](_0x1c992a);}finally{_0x568bb4['releaseUnit'](_0x1c992a);}}finally{await _0x568bb4['dispose']();}}function u(_0x2bd56c,_0x348d99){let _0x49925a=_0x2bd56c['changesetTransformer']['parseClient'](_0x348d99['original']);return{..._0x2bd56c['changesetTransformer']['transform'](_0x49925a,_0x348d99['trunkHistory']),'unitID':_0x348d99['original']['unitID'],'type':_0x348d99['original']['type'],'baseRev':_0x348d99['trunkHeadRevision'],'revision':_0x348d99['trunkHeadRevision']+0x1,'sid':_0x348d99['original']['sid'],'reqId':_0x348d99['original']['reqId']};}var d=class{['_middlewares']=new Map();['use'](_0x1e44a0,_0x421264){let _0x1b682a=this['_middlewares']['get'](_0x1e44a0)??[],_0xaf145a=_0x421264;_0x1b682a['push'](_0xaf145a),this['_middlewares']['set'](_0x1e44a0,_0x1b682a);let _0x2dcf83=!0x1;return{'dispose':()=>{if(_0x2dcf83)return;_0x2dcf83=!0x0;let _0x149132=_0x1b682a['indexOf'](_0xaf145a);_0x149132>=0x0&&_0x1b682a['splice'](_0x149132,0x1);}};}async['run'](_0x52d415,_0x5f0a77,_0x468869){let _0x3217ba=[...this['_middlewares']['get'](_0x52d415)??[]],_0x3a511e=async _0x2e64fe=>{let _0x1bcc8e=_0x3217ba[_0x2e64fe];if(!_0x1bcc8e){await _0x468869();return;}let _0xc8482c=!0x1,_0x1ac174,_0x1870f8=()=>{if(_0xc8482c)throw Error('Middleware\x20for\x20action\x20'+String(_0x52d415)+'\x20called\x20next()\x20more\x20than\x20once');return _0xc8482c=!0x0,_0x1ac174=_0x3a511e(_0x2e64fe+0x1),_0x1ac174;};try{await _0x1bcc8e(_0x5f0a77,_0x1870f8);}catch(_0x1fd096){if(_0x1ac174)try{await _0x1ac174;}catch{}throw _0x1fd096;}if(!_0xc8482c)throw Error('Middleware\x20for\x20action\x20'+String(_0x52d415)+'\x20completed\x20without\x20calling\x20next()');await _0x1ac174;};await _0x3a511e(0x0);}['clear'](){this['_middlewares']['clear']();}};function f(_0x946bf){return{'worktreeID':_0x946bf['worktreeID'],'units':_0x946bf['units']??[]};}function p(_0x27a182){return{'worktreeID':_0x27a182['worktreeID']};}function m(_0x63510d){return{'worktreeID':_0x63510d['worktreeID'],'unitID':_0x63510d['unitID']};}function ee(_0x39528a){return{'worktreeID':_0x39528a['worktreeID']};}function te(_0x251ad7){return{'worktreeID':_0x251ad7['worktreeID']};}function h(_0x3357e3){return{'worktreeID':_0x3357e3['worktreeID']};}function g(_0x3488bb){return{'worktreeID':_0x3488bb['worktreeID']};}function _(_0xcf2df8){return{'worktreeID':_0xcf2df8['worktreeID'],'unitID':_0xcf2df8['unitID']};}function v(_0x3530cf){return{'worktreeID':_0x3530cf['worktreeID'],'unitID':_0x3530cf['unitID'],'removed':_0x3530cf['removed']};}var y=class{['_onListenerError'];['_listeners']=new Map();constructor(_0x887cae){this['_onListenerError']=_0x887cae;}['on'](_0x5b8dd3,_0x5de6eb){let _0x26ee93=this['_listeners']['get'](_0x5b8dd3)??[],_0x43d7ce=_0x5de6eb;_0x26ee93['push'](_0x43d7ce),this['_listeners']['set'](_0x5b8dd3,_0x26ee93);let _0x4261b2=!0x1;return{'dispose':()=>{if(_0x4261b2)return;_0x4261b2=!0x0;let _0x453bb2=_0x26ee93['indexOf'](_0x43d7ce);_0x453bb2>=0x0&&_0x26ee93['splice'](_0x453bb2,0x1);}};}async['emit'](_0x3d7d6f,_0x28c4c8){for(let _0xfebe9e of[...this['_listeners']['get'](_0x3d7d6f)??[]])try{await _0xfebe9e(_0x28c4c8);}catch(_0x300963){try{this['_onListenerError'](_0x300963);}catch{}}}['clear'](){this['_listeners']['clear']();}},b=class{['_state']='running';['_activeCalls']=0x0;['_resolveDrain'];['_disposePromise'];get['state'](){return this['_state'];}['run'](_0x848f2b){return this['_state']==='running'?(this['_activeCalls']+=0x1,Promise['resolve']()['then'](_0x848f2b)['finally'](()=>{--this['_activeCalls'],this['_activeCalls']===0x0&&(this['_resolveDrain']?.(),this['_resolveDrain']=void 0x0);})):Promise['reject'](new n['CollabError']('INTERNAL_ERROR','Worktree\x20Service\x20is\x20'+this['_state'],{'retryable':!0x0}));}['dispose'](_0x39d4b3){return this['_disposePromise']?this['_disposePromise']:(this['_state']='disposing',this['_disposePromise']=this['_finishDispose'](_0x39d4b3),this['_disposePromise']);}async['_finishDispose'](_0xd46ad5){this['_activeCalls']>0x0&&await new Promise(_0x341534=>{this['_resolveDrain']=_0x341534;});try{await _0xd46ad5();}finally{this['_state']='disposed';}}},x=new Set([r['UniverType']['UNIVER_SHEET'],r['UniverType']['UNIVER_DOC'],r['UniverType']['UNIVER_SLIDE'],r['UniverType']['UNIVER_BOARD'],r['UniverType']['UNIVER_BASE']]),ne=class{['_trunkService'];['_trunkDbAdapter'];['_dbAdapter'];['_middleware']=new d();['_events'];['_lifecycle']=new b();['_logger'];['_metrics'];['_runtimeOptions'];['_enableUnitPermissionAnalysis'];['_maxRevisionRetries'];['_draftServices']=new Map();constructor(_0x1a3529){if(!_0x1a3529?.['trunk']?.['service']||!_0x1a3529['trunk']['dbAdapter'])throw TypeError('UniverCollabWorktreeService\x20requires\x20trunk\x20service\x20and\x20dbAdapter');if(!_0x1a3529['dbAdapter'])throw TypeError('UniverCollabWorktreeService\x20requires\x20a\x20Worktree\x20dbAdapter');if(this['_trunkService']=_0x1a3529['trunk']['service'],this['_trunkDbAdapter']=_0x1a3529['trunk']['dbAdapter'],this['_dbAdapter']=_0x1a3529['dbAdapter'],this['_runtimeOptions']=_0x1a3529['runtime'],this['_enableUnitPermissionAnalysis']=_0x1a3529['enableUnitPermissionAnalysis']??!0x1,this['_maxRevisionRetries']=_0x1a3529['submitChangeset']?.['maxRevisionRetries'],this['_maxRevisionRetries']!==void 0x0&&(!Number['isSafeInteger'](this['_maxRevisionRetries'])||this['_maxRevisionRetries']<0x0))throw TypeError('submitChangeset.maxRevisionRetries\x20must\x20be\x20a\x20non-negative\x20safe\x20integer');this['_logger']=re(_0x1a3529['logger']),this['_metrics']=ie(_0x1a3529['metrics']),this['_events']=new y(_0x4f6e14=>{this['_logger']['error']('Worktree\x20Service\x20event\x20listener\x20failed',{'error':$(_0x4f6e14)});});}['use'](_0x4bc20d,_0xaccfa6){return this['_assertRunning'](),this['_middleware']['use'](_0x4bc20d,_0xaccfa6);}['on'](_0x117325,_0x12456b){return this['_assertRunning'](),this['_events']['on'](_0x117325,_0x12456b);}['createWorktree'](_0xa056c,_0x2fb940){return this['_call']('createWorktree',async()=>{let _0x1e7421=C(_0x2fb940),_0x3ab88d=f(_0xa056c),_0x4496af={..._0x1e7421,'request':_0x3ab88d},_0x2c61de;return await this['_middleware']['run']('createWorktree',_0x4496af,async()=>{S(_0xa056c['worktreeID']),D(_0x3ab88d['units']);let _0x5c336d=await Promise['all'](_0x3ab88d['units']['map'](_0x2595f7=>this['_requireTrunkUnit'](_0x4496af,_0x2595f7))),_0x4e44a2=await this['_database'](()=>this['_dbAdapter']['createWorktree'](_0x4496af,{'record':{'worktreeID':_0xa056c['worktreeID'],'sid':(0x0,e['randomUUID'])(),'status':'draft'},'units':_0x5c336d['map'](_0x3f40b3=>({'worktreeID':_0xa056c['worktreeID'],'unitID':_0x3f40b3['unitID'],'type':_0x3f40b3['type'],'source':'trunk','baselineTrunkRevision':_0x3f40b3['headRevision'],'draftHeadRevision':_0x3f40b3['headRevision'],'creatorID':_0x3f40b3['creatorID'],'createdAt':_0x3f40b3['createdAt']}))})),_0x188896=R(_0x4e44a2['aggregate'],_0xa056c['worktreeID']);if(_0x4e44a2['status']==='already-exists')throw new i('WORKTREE_ALREADY_EXISTS','Worktree\x20'+_0xa056c['worktreeID']+'\x20already\x20exists');L(_0x188896,_0x3ab88d['units']),_0x2c61de={'worktree':_0x188896},await this['_events']['emit']('worktreeCreated',{'userID':_0x1e7421['userID'],'customData':_0x1e7421['customData'],'request':_0x3ab88d,'worktree':_0x188896,'occurredAt':Date['now']()});}),_0x2c61de;});}['getWorktree'](_0x40d383,_0x350c2b){return this['_call']('getWorktree',async()=>{let _0x42cfb1=C(_0x350c2b),_0x20ae2e=p(_0x40d383),_0x13c3df={..._0x42cfb1,'request':_0x20ae2e},_0x48b923;return await this['_middleware']['run']('readWorktreeData',_0x13c3df,async()=>{S(_0x40d383['worktreeID']);let _0x5de2bc=await this['_database'](()=>this['_dbAdapter']['getWorktree'](_0x13c3df,_0x40d383['worktreeID']));if(!_0x5de2bc)throw Y(_0x40d383['worktreeID']);_0x48b923={'worktree':R(_0x5de2bc,_0x40d383['worktreeID'])};}),_0x48b923;});}['addUnit'](_0x5c0363,_0x373826){return this['_call']('addUnit',async()=>{let _0x26074a=C(_0x373826),_0x1b0760=m(_0x5c0363),_0x193316={..._0x26074a,'request':_0x1b0760},_0x53010b;return await this['_middleware']['run']('addWorktreeUnit',_0x193316,async()=>{if(S(_0x5c0363['worktreeID']),!_0x5c0363['unitID'])throw X('unitID\x20is\x20required');let _0x6094cb=await this['_requireTrunkUnit'](_0x193316,_0x5c0363['unitID']),_0x54a592=await this['_database'](()=>this['_dbAdapter']['addUnit'](_0x193316,{'unit':{'worktreeID':_0x5c0363['worktreeID'],'unitID':_0x6094cb['unitID'],'type':_0x6094cb['type'],'source':'trunk','baselineTrunkRevision':_0x6094cb['headRevision'],'draftHeadRevision':_0x6094cb['headRevision'],'creatorID':_0x6094cb['creatorID'],'createdAt':_0x6094cb['createdAt']}}));if(_0x54a592['status']==='not-found')throw Y(_0x5c0363['worktreeID']);let _0x435fc9=R(_0x54a592['aggregate'],_0x5c0363['worktreeID']);if(_0x54a592['status']==='status-mismatch')throw new i('WORKTREE_NOT_EDITABLE','Worktree\x20'+_0x5c0363['worktreeID']+'\x20is\x20'+_0x435fc9['status'],{'details':{'status':_0x435fc9['status']}});if(_0x53010b={'worktree':_0x435fc9},_0x54a592['status']==='added'){let _0x196b9f=U(_0x435fc9,_0x5c0363['unitID']);await this['_events']['emit']('worktreeUnitAdded',{'userID':_0x26074a['userID'],'customData':_0x26074a['customData'],'request':_0x1b0760,'worktree':_0x435fc9,'unit':_0x196b9f,'occurredAt':Date['now']()});}}),_0x53010b;});}['setUnitRemoved'](_0x350281,_0x58b697){return this['_call']('setUnitRemoved',async()=>{let _0x18eb4a=C(_0x58b697),_0x4a6a08=v(_0x350281),_0x54ea25={..._0x18eb4a,'request':_0x4a6a08},_0x17a342;return await this['_middleware']['run']('setWorktreeUnitRemoved',_0x54ea25,async()=>{if(S(_0x4a6a08['worktreeID']),!_0x4a6a08['unitID']||typeof _0x4a6a08['removed']!='boolean')throw X('unitID\x20and\x20a\x20boolean\x20removed\x20flag\x20are\x20required');let _0xa8b68a=await this['_database'](()=>this['_dbAdapter']['setUnitRemoved'](_0x54ea25,_0x4a6a08));if(_0xa8b68a['status']==='not-found')throw new i('WORKTREE_UNIT_NOT_FOUND','Unit\x20'+_0x4a6a08['unitID']+'\x20does\x20not\x20exist\x20in\x20Worktree\x20'+_0x4a6a08['worktreeID']);if(_0xa8b68a['status']==='not-editable')throw new i('WORKTREE_NOT_EDITABLE','Unit\x20removal\x20can\x20only\x20change\x20in\x20an\x20editable\x20draft');let _0x30e92d=R(_0xa8b68a['aggregate'],_0x4a6a08['worktreeID']);_0x17a342={'worktree':_0x30e92d},_0xa8b68a['status']==='updated'&&await this['_events']['emit']('worktreeUnitRemovalChanged',{'userID':_0x18eb4a['userID'],'customData':_0x18eb4a['customData'],'request':_0x4a6a08,'worktree':_0x30e92d,'unit':U(_0x30e92d,_0x4a6a08['unitID']),'occurredAt':Date['now']()});}),_0x17a342;});}['createUnitFromSnapshot'](_0x1bcd07,_0xfd3729){return this['_call']('createUnitFromSnapshot',async()=>{S(_0x1bcd07['worktreeID']);let _0x99a8a2=C(_0xfd3729),{worktreeID:_0x5d8053,..._0x3c9161}=_0x1bcd07;await this['_draftService'](_0x5d8053)['createUnitFromSnapshot'](_0x3c9161,_0x99a8a2);let _0x231a49=p({'worktreeID':_0x5d8053});return{'worktree':R(await this['_requireWorktreeAggregate']({..._0x99a8a2,'request':_0x231a49},_0x5d8053),_0x5d8053)};});}['createUnitFromData'](_0x3274de,_0x4a5292){return this['_call']('createUnitFromData',async()=>{S(_0x3274de['worktreeID']);let _0x850153=C(_0x4a5292),{worktreeID:_0x155552,..._0xe8c5fc}=_0x3274de;await this['_draftService'](_0x155552)['createUnitFromData'](_0xe8c5fc,_0x850153);let _0x154866=p({'worktreeID':_0x155552});return{'worktree':R(await this['_requireWorktreeAggregate']({..._0x850153,'request':_0x154866},_0x155552),_0x155552)};});}['markReady'](_0x5ae3e1,_0x1f2a83){return this['_call']('markReady',async()=>{let _0x402dac=C(_0x1f2a83),_0x396549=ee(_0x5ae3e1),_0x546244={..._0x402dac,'request':_0x396549},_0x3ba7d9;return await this['_middleware']['run']('markWorktreeReady',_0x546244,async()=>{_0x3ba7d9=await this['_transition'](_0x5ae3e1['worktreeID'],_0x402dac,_0x396549,()=>this['_dbAdapter']['markReady'](_0x546244,_0x5ae3e1['worktreeID']));}),_0x3ba7d9;});}['reopenWorktree'](_0x50e738,_0x46025a){return this['_call']('reopenWorktree',async()=>{let _0x1f5ebe=C(_0x46025a),_0x260c8c=te(_0x50e738),_0x30d6d1={..._0x1f5ebe,'request':_0x260c8c},_0x3503d5;return await this['_middleware']['run']('reopenWorktree',_0x30d6d1,async()=>{_0x3503d5=await this['_transition'](_0x50e738['worktreeID'],_0x1f5ebe,_0x260c8c,()=>this['_dbAdapter']['reopenWorktree'](_0x30d6d1,_0x50e738['worktreeID']));}),_0x3503d5;});}['discardWorktree'](_0x25a9b6,_0x36da1f){return this['_call']('discardWorktree',async()=>{let _0xc1ac39=C(_0x36da1f),_0xc4c17=h(_0x25a9b6),_0x21d3be={..._0xc1ac39,'request':_0xc4c17},_0x1115db;return await this['_middleware']['run']('discardWorktree',_0x21d3be,async()=>{_0x1115db=await this['_transition'](_0x25a9b6['worktreeID'],_0xc1ac39,_0xc4c17,()=>this['_dbAdapter']['discardWorktree'](_0x21d3be,_0x25a9b6['worktreeID']));}),_0x1115db;});}['mergeWorktree'](_0x4aaa05,_0x5aa013){return this['_call']('mergeWorktree',async()=>{let _0x128d94=w(_0x5aa013),_0x1545ee=g(_0x4aaa05),_0x582ced={..._0x128d94,'request':_0x1545ee},_0xaa45d2;return await this['_middleware']['run']('mergeWorktree',_0x582ced,async()=>{S(_0x4aaa05['worktreeID']);let _0x4f29e0=await this['_database'](()=>this['_dbAdapter']['startOrResumeMerge'](_0x582ced,_0x4aaa05['worktreeID']));if(_0x4f29e0['status']==='not-found')throw Y(_0x4aaa05['worktreeID']);let _0x7f91ea=_0x4f29e0['aggregate'],_0x3b5703=R(_0x7f91ea,_0x4aaa05['worktreeID']);if(_0x4f29e0['status']==='status-mismatch')throw new i('WORKTREE_STATUS_MISMATCH','Worktree\x20'+_0x4aaa05['worktreeID']+'\x20cannot\x20merge\x20from\x20'+_0x3b5703['status'],{'details':{'status':_0x3b5703['status']}});if(_0x4f29e0['status']==='already-merged'){_0xaa45d2={'worktree':_0x3b5703};return;}_0x4f29e0['status']==='started'&&await this['_events']['emit']('worktreeStatusChanged',{'userID':_0x128d94['userID'],'customData':_0x128d94['customData'],'request':_0x1545ee,'worktree':_0x3b5703,'previousStatus':'ready','status':'merging','occurredAt':Date['now']()});for(let _0x1d24f1 of _0x7f91ea['units']){if(J(_0x1d24f1['mergeResult']))continue;let _0x293e46=await this['_mergeUnit'](_0x582ced,_0x7f91ea['worktree']['sid'],_0x1d24f1,_0x128d94),_0x5ba892=await this['_database'](()=>this['_dbAdapter']['recordUnitMergeResult'](_0x582ced,{'worktreeID':_0x4aaa05['worktreeID'],'unitID':_0x1d24f1['unitID'],'readyDraftHeadRevision':O(_0x1d24f1),'mergeResult':_0x293e46}));if(_0x5ba892['status']==='not-found')throw Y(_0x4aaa05['worktreeID']);if(_0x5ba892['status']==='stale-merge'){if(_0x7f91ea=await this['_requireWorktreeAggregate'](_0x582ced,_0x4aaa05['worktreeID']),_0x3b5703=R(_0x7f91ea,_0x4aaa05['worktreeID']),_0x7f91ea['worktree']['status']!=='merging')break;continue;}if(_0x5ba892['status']!=='recorded'&&_0x5ba892['status']!=='already-recorded')throw Z('Database\x20returned\x20an\x20invalid\x20merge\x20result\x20status');_0x7f91ea=_0x5ba892['aggregate'],_0x3b5703=R(_0x7f91ea,_0x4aaa05['worktreeID']),_0x5ba892['status']==='recorded'&&await this['_events']['emit']('worktreeUnitMergeResultRecorded',{'userID':_0x128d94['userID'],'customData':_0x128d94['customData'],'request':_0x1545ee,'worktree':_0x3b5703,'unit':U(_0x3b5703,_0x1d24f1['unitID']),'occurredAt':Date['now']()});}if(_0x7f91ea['worktree']['status']==='merging'){let _0x389ef6=await this['_database'](()=>this['_dbAdapter']['finishMerge'](_0x582ced,_0x4aaa05['worktreeID']));if(_0x389ef6['status']==='not-found')throw Y(_0x4aaa05['worktreeID']);if(_0x7f91ea=_0x389ef6['aggregate'],_0x3b5703=R(_0x7f91ea,_0x4aaa05['worktreeID']),_0x389ef6['status']==='transitioned')await this['_events']['emit']('worktreeStatusChanged',{'userID':_0x128d94['userID'],'customData':_0x128d94['customData'],'request':_0x1545ee,'worktree':_0x3b5703,'previousStatus':_0x389ef6['previousStatus'],'status':_0x3b5703['status'],'occurredAt':Date['now']()});else{if(_0x389ef6['status']==='status-mismatch'&&_0x3b5703['status']!=='ready'&&_0x3b5703['status']!=='merged')throw new i('WORKTREE_STALE_MERGE','Worktree\x20'+_0x4aaa05['worktreeID']+'\x20merge\x20was\x20superseded',{'retryable':!0x0,'details':{'status':_0x3b5703['status']}});}}_0xaa45d2={'worktree':_0x3b5703};}),_0xaa45d2;});}['evaluateWorktreeUnitMerge'](_0x3a0c6e,_0x31daef){return this['_call']('evaluateWorktreeUnitMerge',async()=>{let _0x3d11ae=C(_0x31daef),_0x4d52d5=_(_0x3a0c6e),_0x2dbbb0={..._0x3d11ae,'request':_0x4d52d5},_0x59b4bc;return await this['_middleware']['run']('readUnitData',_0x2dbbb0,async()=>{if(S(_0x3a0c6e['worktreeID']),!_0x3a0c6e['unitID'])throw X('unitID\x20is\x20required');let _0x4d1094=await this['_requireWorktreeAggregate'](_0x2dbbb0,_0x3a0c6e['worktreeID']);if(_0x4d1094['worktree']['status']!=='ready')throw new i('WORKTREE_STATUS_MISMATCH','Worktree\x20'+_0x3a0c6e['worktreeID']+'\x20cannot\x20preview\x20from\x20'+_0x4d1094['worktree']['status'],{'details':{'status':_0x4d1094['worktree']['status']}});let _0x3e2ca5=_0x4d1094['units']['find'](_0xbcc4dc=>_0xbcc4dc['unitID']===_0x3a0c6e['unitID']);if(!_0x3e2ca5)throw new i('WORKTREE_UNIT_NOT_FOUND','Unit\x20'+_0x3a0c6e['unitID']+'\x20does\x20not\x20exist\x20in\x20Worktree\x20'+_0x3a0c6e['worktreeID']);if(_0x3e2ca5['removed']){_0x59b4bc={'status':'not-applicable','reason':'removed-unit','worktreeID':_0x3a0c6e['worktreeID'],'unitID':_0x3a0c6e['unitID']};return;}if(_0x3e2ca5['source']==='worktree'){_0x59b4bc={'status':'not-applicable','reason':'worktree-created-unit','worktreeID':_0x3a0c6e['worktreeID'],'unitID':_0x3a0c6e['unitID']};return;}if(J(_0x3e2ca5['mergeResult'])){_0x59b4bc={'status':'already-merged','worktreeID':_0x3a0c6e['worktreeID'],'unitID':_0x3a0c6e['unitID'],'mergeResult':q(_0x3e2ca5['mergeResult'])};return;}let _0x1484f7=B(_0x3e2ca5),_0x8689f7=O(_0x3e2ca5),_0x2d1275=await this['_trunkService']['getUnitLoadData']({'unitID':_0x3e2ca5['unitID'],'type':_0x3e2ca5['type'],'revision':0x0},_0x3d11ae);if(_0x2d1275['targetRevision']===_0x1484f7){_0x59b4bc={'status':'not-behind','worktreeID':_0x3a0c6e['worktreeID'],'unitID':_0x3a0c6e['unitID']};return;}if(_0x2d1275['targetRevision']<_0x1484f7)throw Z('Trunk\x20head\x20is\x20behind\x20the\x20Worktree\x20baseline');let _0x3d03b6=k(_0x3e2ca5,_0x8689f7,await this['_database'](()=>this['_dbAdapter']['getDraftChangesets'](_0x2dbbb0,_0x3e2ca5['worktreeID'],_0x3e2ca5['unitID'],{'from':_0x1484f7,'to':_0x8689f7}))),_0x2ba6ab=await this['_trunkService']['getChangesets']({'unitID':_0x3e2ca5['unitID'],'type':_0x3e2ca5['type'],'from':_0x1484f7,'to':_0x2d1275['targetRevision']},_0x3d11ae);try{let _0x45431c={'context':_0x2dbbb0,'dbAdapter':this['_trunkDbAdapter'],'unitID':_0x3e2ca5['unitID'],'type':_0x3e2ca5['type'],...this['_runtimeOptions']===void 0x0?{}:{'runtime':this['_runtimeOptions']}},_0x1ef788=_0x8689f7===_0x1484f7?await s({..._0x45431c,'expectedRevision':_0x2d1275['targetRevision']}):await l({..._0x45431c,'trunkHeadRevision':_0x2d1275['targetRevision'],'original':A(_0x4d1094['worktree']['sid'],_0x3e2ca5,_0x8689f7,_0x3d03b6,{'userID':_0x3d11ae['userID'],'memberID':'worktree-merge-preview'}),'trunkHistory':_0x2ba6ab['changesets']});_0x59b4bc={'status':'preview','worktreeID':_0x3a0c6e['worktreeID'],'unitID':_0x3a0c6e['unitID'],'preview':_0x1ef788};}catch(_0x5589a3){if(_0x5589a3 instanceof n['CollabError']&&_0x5589a3['code']==='OT_CONFLICT'){_0x59b4bc={'status':'conflict','worktreeID':_0x3a0c6e['worktreeID'],'unitID':_0x3a0c6e['unitID'],'error':M(_0x5589a3)};return;}throw _0x5589a3;}}),_0x59b4bc;});}['getUnitLoadData'](_0x3e6755,_0x39b644){return this['_call']('getUnitLoadData',()=>(S(_0x3e6755['worktreeID']),this['_draftService'](_0x3e6755['worktreeID'])['getUnitLoadData']({'unitID':_0x3e6755['unitID'],'type':_0x3e6755['type'],'revision':_0x3e6755['revision']},C(_0x39b644))));}['getChangesets'](_0x33772e,_0x3f4a9b){return this['_call']('getChangesets',()=>(S(_0x33772e['worktreeID']),this['_draftService'](_0x33772e['worktreeID'])['getChangesets']({'unitID':_0x33772e['unitID'],'type':_0x33772e['type'],'from':_0x33772e['from'],'to':_0x33772e['to']},C(_0x3f4a9b))));}['getSheetBlock'](_0x367405,_0x3eb6b1){return this['_call']('getSheetBlock',()=>(S(_0x367405['worktreeID']),this['_draftService'](_0x367405['worktreeID'])['getSheetBlock']({'unitID':_0x367405['unitID'],'type':_0x367405['type'],'blockID':_0x367405['blockID']},C(_0x3eb6b1))));}['submitChangeset'](_0xe14186,_0x55b157){return this['_call']('submitChangeset',()=>(S(_0xe14186['worktreeID']),this['_draftService'](_0xe14186['worktreeID'])['submitChangeset']({'changeset':_0xe14186['changeset']},w(_0x55b157))));}['dispose'](){return this['_lifecycle']['dispose'](async()=>{this['_middleware']['clear'](),this['_events']['clear']();let _0x171820=[...this['_draftServices']['values']()];this['_draftServices']['clear'](),await Promise['all'](_0x171820['map'](_0x2819ec=>_0x2819ec['dispose']()));});}['_draftService'](_0x1edd47){let _0xc49bff=this['_draftServices']['get'](_0x1edd47);if(_0xc49bff)return _0xc49bff;let _0x1ad3ed=new n['UniverCollabService']({'dbAdapter':new a(_0x1edd47,this['_trunkDbAdapter'],this['_dbAdapter']),'snapshotPolicy':!0x1,'enableUnitPermissionAnalysis':this['_enableUnitPermissionAnalysis'],...this['_runtimeOptions']===void 0x0?{}:{'runtime':this['_runtimeOptions']},...this['_maxRevisionRetries']===void 0x0?{}:{'submitChangeset':{'maxRevisionRetries':this['_maxRevisionRetries']}},'logger':this['_logger'],'metrics':this['_metrics']});return _0x1ad3ed['use']('createUnit',(_0x54246b,_0xaf2a23)=>{let _0x4ebd26=E(_0x54246b['request'],_0x1edd47);return this['_middleware']['run']('createWorktreeUnit',{'userID':_0x54246b['userID'],'customData':_0x54246b['customData'],'request':_0x4ebd26},_0xaf2a23);}),_0x1ad3ed['use']('readUnitData',(_0x495993,_0x5654ba)=>{let _0x3e8d0c=E(_0x495993['request'],_0x1edd47);return this['_middleware']['run']('readUnitData',{'userID':_0x495993['userID'],'customData':_0x495993['customData'],'request':_0x3e8d0c},_0x5654ba);}),_0x1ad3ed['use']('submitChangeset',(_0x6bf649,_0x685b06)=>{let _0x1fb0ba=E(_0x6bf649['request'],_0x1edd47);return this['_middleware']['run']('submitChangeset',{'userID':_0x6bf649['userID'],'memberID':_0x6bf649['memberID'],'customData':_0x6bf649['customData'],'request':_0x1fb0ba},_0x685b06);}),_0x1ad3ed['use']('applyChangeset',(_0x5ea0fb,_0x1883f4)=>{let _0xb659df=E(_0x5ea0fb['request'],_0x1edd47);return this['_middleware']['run']('applyChangeset',{'userID':_0x5ea0fb['userID'],'memberID':_0x5ea0fb['memberID'],'customData':_0x5ea0fb['customData'],'request':_0xb659df,'attempt':_0x5ea0fb['attempt'],'currentRevision':_0x5ea0fb['currentRevision'],'changeset':_0x5ea0fb['changeset']},_0x1883f4);}),_0x1ad3ed['use']('commitChangeset',(_0x16af16,_0x4a7f9e)=>{let _0x18ea4f=E(_0x16af16['request'],_0x1edd47);return this['_middleware']['run']('commitChangeset',{'userID':_0x16af16['userID'],'memberID':_0x16af16['memberID'],'customData':_0x16af16['customData'],'request':_0x18ea4f,'attempt':_0x16af16['attempt'],'expectedHeadRevision':_0x16af16['expectedHeadRevision'],'requiredUnitPermissions':_0x16af16['requiredUnitPermissions'],'changeset':_0x16af16['changeset']},_0x4a7f9e);}),_0x1ad3ed['on']('changesetCommitted',_0x487946=>{let _0x53685a=E(_0x487946['request'],_0x1edd47);return this['_events']['emit']('changesetCommitted',{'userID':_0x487946['userID'],'memberID':_0x487946['memberID'],'customData':_0x487946['customData'],'request':_0x53685a,'changeset':_0x487946['changeset'],'requiredUnitPermissions':_0x487946['requiredUnitPermissions'],'committedAt':_0x487946['committedAt']});}),_0x1ad3ed['on']('unitCreated',async _0x5e9f61=>{let _0x3e92aa=E(_0x5e9f61['request'],_0x1edd47),_0x165b53=R(await this['_requireWorktreeAggregate']({'userID':_0x5e9f61['userID'],'customData':_0x5e9f61['customData'],'request':_0x3e92aa},_0x1edd47),_0x1edd47);await this['_events']['emit']('worktreeUnitCreated',{'userID':_0x5e9f61['userID'],'customData':_0x5e9f61['customData'],'request':_0x3e92aa,'worktree':_0x165b53,'unit':U(_0x165b53,_0x5e9f61['record']['unitID']),'occurredAt':_0x5e9f61['createdAt']});}),this['_draftServices']['set'](_0x1edd47,_0x1ad3ed),_0x1ad3ed;}async['_mergeUnit'](_0x589ee4,_0x4dab7d,_0xd30d05,_0x23af44){try{if(_0xd30d05['removed'])return{'status':'removed'};if(_0xd30d05['source']==='worktree')return await this['_mergeCreatedUnit'](_0x589ee4,_0xd30d05,_0x23af44);let _0x4ef411=B(_0xd30d05),_0x2b7928=O(_0xd30d05);if(_0x2b7928===_0x4ef411)return{'status':'unchanged'};let _0x4d663f=k(_0xd30d05,_0x2b7928,await this['_database'](()=>this['_dbAdapter']['getDraftChangesets'](_0x589ee4,_0xd30d05['worktreeID'],_0xd30d05['unitID'],{'from':_0x4ef411,'to':_0x2b7928}))),_0x2c1f20=await this['_trunkService']['submitChangeset']({'changeset':A(_0x4dab7d,_0xd30d05,_0x2b7928,_0x4d663f,_0x23af44)},_0x23af44);return _0x2c1f20['status']==='committed'||_0x2c1f20['status']==='already-committed'?{'status':'merged','trunkRevision':_0x2c1f20['changeset']['revision']}:j('error'in _0x2c1f20?_0x2c1f20['error']:Error('Trunk\x20merge\x20failed'));}catch(_0x213e33){return j(_0x213e33);}}async['_mergeCreatedUnit'](_0x2566f9,_0x2fc61b,_0x2c917e){let _0x31ad14=O(_0x2fc61b),_0x411cb1=await this['_database'](()=>this['_dbAdapter']['getUnitMergeArtifact'](_0x2566f9,_0x2fc61b['worktreeID'],_0x2fc61b['unitID']));if(!_0x411cb1){let _0x17a5e6=await s({'context':_0x2566f9,'dbAdapter':new a(_0x2fc61b['worktreeID'],this['_trunkDbAdapter'],this['_dbAdapter']),'unitID':_0x2fc61b['unitID'],'type':_0x2fc61b['type'],'expectedRevision':_0x31ad14,...this['_runtimeOptions']===void 0x0?{}:{'runtime':this['_runtimeOptions']}});if(!await this['_database'](()=>this['_dbAdapter']['getUnitSeed'](_0x2566f9,_0x2fc61b['worktreeID'],_0x2fc61b['unitID'])))throw Z('Worktree-created\x20Unit\x20seed\x20is\x20missing');let _0x4b5001=await this['_database'](()=>this['_dbAdapter']['saveUnitMergeArtifact'](_0x2566f9,{'worktreeID':_0x2fc61b['worktreeID'],'unitID':_0x2fc61b['unitID'],'artifact':{'readyDraftHeadRevision':_0x31ad14,'unit':{'snapshot':H(_0x17a5e6['snapshot']),..._0x17a5e6['sheetBlocks']===void 0x0?{}:{'sheetBlocks':_0x17a5e6['sheetBlocks']}}}}));if(_0x4b5001['status']==='not-found')throw Y(_0x2fc61b['worktreeID']);if(_0x4b5001['status']==='stale-merge')throw new i('WORKTREE_STALE_MERGE','Worktree\x20Unit\x20changed\x20while\x20saving\x20its\x20merge\x20artifact',{'retryable':!0x0});if(!('artifact'in _0x4b5001))throw Z('Database\x20returned\x20an\x20invalid\x20merge\x20artifact\x20result');_0x411cb1=_0x4b5001['artifact'];}if(!_0x411cb1)throw Z('Worktree\x20Unit\x20merge\x20artifact\x20is\x20missing');V(_0x2fc61b,_0x31ad14,_0x411cb1);let _0x3f8674=_0x411cb1['unit'];if(await this['_trunkService']['createUnitFromSnapshot']({'snapshot':_0x3f8674['snapshot'],'sheetBlocks':[..._0x3f8674['sheetBlocks']??[]]},_0x2c917e),!await this['_matchesCreatedTrunkUnit'](_0x2566f9,_0x2fc61b,_0x3f8674))throw new P('Trunk\x20Unit\x20'+_0x2fc61b['unitID']+'\x20already\x20exists\x20with\x20different\x20content');return{'status':'merged','trunkRevision':0x1};}async['_matchesCreatedTrunkUnit'](_0x5950df,_0x40ad39,_0x15c83e){let _0x3d4bf8=await this['_database'](()=>this['_trunkDbAdapter']['getUnit'](_0x5950df,_0x40ad39['unitID']));if(!_0x3d4bf8||_0x3d4bf8['type']!==_0x40ad39['type']||_0x3d4bf8['headRevision']<0x1||!F(await this['_database'](()=>this['_trunkDbAdapter']['getSnapshot'](_0x5950df,_0x40ad39['unitID'],{'revision':0x1})),_0x15c83e['snapshot']))return!0x1;for(let _0x252807 of _0x15c83e['sheetBlocks']??[])if(!F(await this['_database'](()=>this['_trunkDbAdapter']['getSheetBlock'](_0x5950df,_0x40ad39['unitID'],_0x252807['id'])),_0x252807))return!0x1;return!0x0;}async['_requireWorktreeAggregate'](_0xabeb1f,_0xececf0){let _0x42402c=await this['_database'](()=>this['_dbAdapter']['getWorktree'](_0xabeb1f,_0xececf0));if(!_0x42402c)throw Y(_0xececf0);return R(_0x42402c,_0xececf0),_0x42402c;}async['_transition'](_0x4e4983,_0x21bdc6,_0x4c26f2,_0x5ca1c1){S(_0x4e4983);let _0x157b52=await this['_database'](_0x5ca1c1);if(_0x157b52['status']==='not-found')throw Y(_0x4e4983);let _0x2d6fbd=R(_0x157b52['aggregate'],_0x4e4983);if(_0x157b52['status']==='status-mismatch')throw new i('WORKTREE_STATUS_MISMATCH','Worktree\x20'+_0x4e4983+'\x20cannot\x20transition\x20from\x20'+_0x2d6fbd['status'],{'details':{'status':_0x2d6fbd['status']}});return _0x157b52['status']==='transitioned'&&await this['_events']['emit']('worktreeStatusChanged',{'userID':_0x21bdc6['userID'],'customData':_0x21bdc6['customData'],'request':_0x4c26f2,'worktree':_0x2d6fbd,'previousStatus':_0x157b52['previousStatus'],'status':_0x2d6fbd['status'],'occurredAt':Date['now']()}),{'worktree':_0x2d6fbd};}async['_requireTrunkUnit'](_0x2e430b,_0x41ca39){let _0x377669=await this['_database'](()=>this['_trunkDbAdapter']['getUnit'](_0x2e430b,_0x41ca39));if(!_0x377669)throw new n['CollabError']('UNIT_NOT_FOUND','Trunk\x20Unit\x20'+_0x41ca39+'\x20does\x20not\x20exist');if(_0x377669['unitID']!==_0x41ca39||!x['has'](_0x377669['type'])||!Number['isSafeInteger'](_0x377669['headRevision'])||_0x377669['headRevision']<0x1)throw Z('Trunk\x20Database\x20returned\x20invalid\x20Unit\x20metadata');return _0x377669;}async['_database'](_0x816729){try{return await _0x816729();}catch(_0x4a8d5e){throw _0x4a8d5e instanceof n['CollabError']||_0x4a8d5e instanceof i?_0x4a8d5e:Z('Database\x20Adapter\x20failed',_0x4a8d5e);}}async['_call'](_0x2a655f,_0x2dcc62){try{return this['_metrics']['increment']('collaboration.worktree.service.call',{'operation':_0x2a655f}),await this['_lifecycle']['run'](_0x2dcc62);}catch(_0x22f48b){throw _0x22f48b instanceof n['CollabError']||_0x22f48b instanceof i?_0x22f48b:(this['_logger']['error']('Worktree\x20Service\x20operation\x20failed',{'operation':_0x2a655f,'error':$(_0x22f48b)}),new n['CollabError']('INTERNAL_ERROR','Worktree\x20Service\x20failed',{'retryable':!0x0,'cause':_0x22f48b}));}}['_assertRunning'](){if(this['_lifecycle']['state']!=='running')throw new n['CollabError']('INTERNAL_ERROR','Worktree\x20Service\x20is\x20'+this['_lifecycle']['state'],{'retryable':!0x0});}};function S(_0x193642){if(!_0x193642)throw X('worktreeID\x20is\x20required');}function C(_0x4789df){return T(_0x4789df),{'userID':_0x4789df['userID'],'customData':_0x4789df['customData']??Object['create'](null)};}function w(_0x21ab58){if(T(_0x21ab58),typeof _0x21ab58['memberID']!='string'||_0x21ab58['memberID']['length']===0x0)throw X('memberID\x20must\x20be\x20a\x20non-empty\x20string');return{'userID':_0x21ab58['userID'],'memberID':_0x21ab58['memberID'],'customData':_0x21ab58['customData']??Object['create'](null)};}function T(_0x3cd9a0){if(!_0x3cd9a0||typeof _0x3cd9a0!='object')throw X('context\x20must\x20be\x20an\x20object');if(typeof _0x3cd9a0['userID']!='string'||_0x3cd9a0['userID']['length']===0x0)throw X('userID\x20must\x20be\x20a\x20non-empty\x20string');if(_0x3cd9a0['customData']!==void 0x0&&(_0x3cd9a0['customData']===null||typeof _0x3cd9a0['customData']!='object'||Array['isArray'](_0x3cd9a0['customData'])))throw X('customData\x20must\x20be\x20an\x20object');}function E(_0x2eb4d5,_0x3622eb){let _0x1629fe=_0x2eb4d5;if(_0x1629fe['worktreeID']!==void 0x0){if(_0x1629fe['worktreeID']!==_0x3622eb)throw new n['CollabError']('INTERNAL_ERROR','Draft\x20Request\x20is\x20bound\x20to\x20a\x20different\x20Worktree',{'retryable':!0x0});return _0x1629fe;}return Object['defineProperty'](_0x2eb4d5,'worktreeID',{'value':_0x3622eb,'enumerable':!0x0,'configurable':!0x1,'writable':!0x1}),_0x2eb4d5;}function D(_0x50654d){if(_0x50654d['some'](_0x4f1f8a=>!_0x4f1f8a))throw X('Initial\x20Unit\x20IDs\x20cannot\x20be\x20empty');if(new Set(_0x50654d)['size']!==_0x50654d['length'])throw X('Initial\x20Unit\x20IDs\x20must\x20be\x20unique');}function O(_0x360f06){let _0x197edd=_0x360f06['readyDraftHeadRevision'],_0x5dccc3=_0x360f06['source']==='trunk'?B(_0x360f06):0x1;if(_0x197edd===void 0x0||!Number['isSafeInteger'](_0x197edd)||_0x197edd<_0x5dccc3)throw Z('Merging\x20Worktree\x20Unit\x20has\x20no\x20valid\x20frozen\x20draft\x20head');return _0x197edd;}function k(_0x4c843d,_0x30d536,_0x5cf761){let _0xe7d471=B(_0x4c843d);if(_0x5cf761===null)throw new N('Frozen\x20Worktree\x20draft\x20history\x20is\x20no\x20longer\x20readable');let _0x5aef8d=_0xe7d471+0x1,_0x391de6=[];for(let _0x5f0712 of _0x5cf761){if(_0x5f0712['unitID']!==_0x4c843d['unitID']||_0x5f0712['type']!==_0x4c843d['type']||_0x5f0712['baseRev']!==_0x5aef8d-0x1||_0x5f0712['revision']!==_0x5aef8d)throw new N('Frozen\x20Worktree\x20draft\x20history\x20is\x20not\x20contiguous');_0x391de6['push'](...structuredClone(_0x5f0712['mutations'])),_0x5aef8d+=0x1;}if(_0x5aef8d-0x1!==_0x30d536)throw new N('Frozen\x20Worktree\x20draft\x20history\x20is\x20incomplete');return _0x391de6;}function A(_0x550d1d,_0x3ca36f,_0x45099c,_0x451ff1,_0x34de76){let _0x46cf5f=B(_0x3ca36f);return{'unitID':_0x3ca36f['unitID'],'type':_0x3ca36f['type'],'baseRev':_0x46cf5f,'revision':_0x46cf5f+0x1,'userID':_0x34de76['userID'],'memberID':_0x34de76['memberID'],'sid':_0x550d1d,'reqId':_0x45099c-_0x46cf5f,'mutations':_0x451ff1};}function j(_0x46bff5){let _0x49a7da=M(_0x46bff5);return _0x46bff5 instanceof N||_0x46bff5 instanceof P||_0x46bff5 instanceof n['CollabError']&&_0x46bff5['code']==='OT_CONFLICT'?{'status':'conflict','error':_0x49a7da}:{'status':'failed','error':_0x49a7da};}function M(_0x2816df){return _0x2816df instanceof N?{'code':'WORKTREE_DRAFT_HISTORY_INVALID','message':_0x2816df['message'],'retryable':!0x0}:_0x2816df instanceof P?{'code':'WORKTREE_CREATE_CONFLICT','message':_0x2816df['message'],'retryable':!0x1}:_0x2816df instanceof n['CollabError']||_0x2816df instanceof i?{'code':_0x2816df['code'],'message':_0x2816df['message'],'retryable':_0x2816df['retryable']}:{'code':'INTERNAL_ERROR','message':_0x2816df instanceof Error?_0x2816df['message']:'Merge\x20failed','retryable':!0x0};}var N=class extends Error{constructor(_0x96b13b){super(_0x96b13b),this['name']='FrozenDraftConflict';}},P=class extends Error{constructor(_0x5db713){super(_0x5db713),this['name']='WorktreeCreateConflict';}};function F(_0x3c8773,_0x5cd56d){return(0x0,t['isDeepStrictEqual'])(I(_0x3c8773),I(_0x5cd56d));}function I(_0x600e49){if(_0x600e49!==void 0x0)return JSON['parse'](JSON['stringify'](_0x600e49,(_0x189e48,_0x1a6eec)=>_0x1a6eec instanceof Uint8Array?{'__univerCollaborationBinary':[..._0x1a6eec]}:_0x1a6eec));}function L(_0x505709,_0x1409ab){let _0x529e98=new Set(_0x505709['units']['map'](({unitID:_0xb61fea})=>_0xb61fea));if(_0x529e98['size']!==_0x1409ab['length']||_0x1409ab['some'](_0x5c3650=>!_0x529e98['has'](_0x5c3650)))throw Z('Database\x20returned\x20incomplete\x20initial\x20Worktree\x20Units');}function R(_0x708424,_0x5a6e9b){let {worktree:_0x120838,units:_0x5b7c36}=_0x708424;if(_0x120838['worktreeID']!==_0x5a6e9b||!_0x120838['sid']||!W(_0x120838['status']))throw Z('Database\x20returned\x20invalid\x20Worktree\x20metadata');let _0x175f0e=new Set(),_0xf80041=_0x5b7c36['map'](_0x83eff=>{let _0x55c6ee=_0x83eff['source']==='trunk'&&Number['isSafeInteger'](_0x83eff['baselineTrunkRevision'])&&_0x83eff['baselineTrunkRevision']>=0x1&&_0x83eff['draftHeadRevision']>=_0x83eff['baselineTrunkRevision']||_0x83eff['source']==='worktree'&&_0x83eff['baselineTrunkRevision']===void 0x0&&_0x83eff['draftHeadRevision']>=0x1;if(_0x83eff['worktreeID']!==_0x5a6e9b||!_0x83eff['unitID']||_0x175f0e['has'](_0x83eff['unitID'])||!x['has'](_0x83eff['type'])||!_0x55c6ee||!Number['isSafeInteger'](_0x83eff['draftHeadRevision'])||_0x83eff['readyDraftHeadRevision']!==void 0x0&&_0x83eff['readyDraftHeadRevision']!==_0x83eff['draftHeadRevision']||_0x83eff['mergeResult']!==void 0x0&&_0x83eff['readyDraftHeadRevision']===void 0x0||_0x83eff['removed']!==void 0x0&&typeof _0x83eff['removed']!='boolean'||!G(_0x83eff['mergeResult']))throw Z('Database\x20returned\x20invalid\x20Worktree\x20Unit\x20metadata');return _0x175f0e['add'](_0x83eff['unitID']),z(_0x83eff);});if(_0x120838['status']==='merged'&&_0xf80041['some'](({mergeResult:_0x5598bf})=>!J(_0x5598bf)))throw Z('Merged\x20Worktree\x20contains\x20an\x20incomplete\x20Unit');return{'worktreeID':_0x120838['worktreeID'],'status':_0x120838['status'],'units':_0xf80041};}function z(_0x170069){return{'unitID':_0x170069['unitID'],'type':_0x170069['type'],'source':_0x170069['source'],..._0x170069['baselineTrunkRevision']===void 0x0?{}:{'baselineTrunkRevision':_0x170069['baselineTrunkRevision']},'draftHeadRevision':_0x170069['draftHeadRevision'],..._0x170069['readyDraftHeadRevision']===void 0x0?{}:{'readyDraftHeadRevision':_0x170069['readyDraftHeadRevision']},..._0x170069['removed']===void 0x0?{}:{'removed':_0x170069['removed']},..._0x170069['mergeResult']===void 0x0?{}:{'mergeResult':K(_0x170069['mergeResult'])}};}function B(_0x4e92e2){if(_0x4e92e2['source']!=='trunk'||!Number['isSafeInteger'](_0x4e92e2['baselineTrunkRevision'])||_0x4e92e2['baselineTrunkRevision']<0x1)throw Z('Trunk-sourced\x20Worktree\x20Unit\x20has\x20no\x20valid\x20baseline');return _0x4e92e2['baselineTrunkRevision'];}function V(_0x2c74e3,_0x48ae70,_0xd1035b){if(_0xd1035b['readyDraftHeadRevision']!==_0x48ae70||_0xd1035b['unit']['snapshot']['unitID']!==_0x2c74e3['unitID']||_0xd1035b['unit']['snapshot']['type']!==_0x2c74e3['type']||_0xd1035b['unit']['snapshot']['rev']!==0x1)throw Z('Database\x20returned\x20an\x20invalid\x20Worktree\x20Unit\x20merge\x20artifact');}function H(_0x3f77b7){let _0x176fa9={..._0x3f77b7,'rev':0x1};return _0x3f77b7['workbook']?{..._0x176fa9,'workbook':{..._0x3f77b7['workbook'],'rev':0x1}}:_0x3f77b7['doc']?{..._0x176fa9,'doc':{..._0x3f77b7['doc'],'rev':0x1}}:_0x3f77b7['slide']?{..._0x176fa9,'slide':{..._0x3f77b7['slide'],'rev':0x1}}:_0x3f77b7['board']?{..._0x176fa9,'board':{..._0x3f77b7['board'],'rev':0x1}}:_0x176fa9;}function U(_0xeb9cd9,_0x20a616){let _0x14b093=_0xeb9cd9['units']['find'](_0xba2fc=>_0xba2fc['unitID']===_0x20a616);if(!_0x14b093)throw Z('Database\x20omitted\x20the\x20added\x20Worktree\x20Unit');return _0x14b093;}function W(_0xb332bc){return _0xb332bc==='draft'||_0xb332bc==='ready'||_0xb332bc==='merging'||_0xb332bc==='merged'||_0xb332bc==='discarded';}function G(_0x32125c){return _0x32125c===void 0x0?!0x0:!_0x32125c||typeof _0x32125c!='object'||!('status'in _0x32125c)?!0x1:_0x32125c['status']==='unchanged'||_0x32125c['status']==='removed'?!0x0:_0x32125c['status']==='merged'&&'trunkRevision'in _0x32125c?typeof _0x32125c['trunkRevision']=='number'&&Number['isSafeInteger'](_0x32125c['trunkRevision'])&&_0x32125c['trunkRevision']>=0x1:_0x32125c['status']!=='conflict'&&_0x32125c['status']!=='failed'||!('error'in _0x32125c)||!_0x32125c['error']||typeof _0x32125c['error']!='object'||!('code'in _0x32125c['error'])||!('message'in _0x32125c['error'])||!('retryable'in _0x32125c['error'])?!0x1:typeof _0x32125c['error']['code']=='string'&&!!_0x32125c['error']['code']&&typeof _0x32125c['error']['message']=='string'&&!!_0x32125c['error']['message']&&typeof _0x32125c['error']['retryable']=='boolean';}function K(_0x2ad003){return _0x2ad003['status']==='merged'?{'status':'merged','trunkRevision':_0x2ad003['trunkRevision']}:_0x2ad003['status']==='unchanged'||_0x2ad003['status']==='removed'?{'status':_0x2ad003['status']}:{'status':_0x2ad003['status'],'error':{'code':_0x2ad003['error']['code'],'message':_0x2ad003['error']['message'],'retryable':_0x2ad003['error']['retryable']}};}function q(_0x298d7c){if(_0x298d7c?.['status']==='merged')return{'status':'merged','trunkRevision':_0x298d7c['trunkRevision']};if(_0x298d7c?.['status']==='unchanged')return{'status':'unchanged'};throw Z('Worktree\x20Unit\x20merge\x20result\x20is\x20not\x20terminal');}function J(_0x3e8582){return _0x3e8582?.['status']==='merged'||_0x3e8582?.['status']==='unchanged'||_0x3e8582?.['status']==='removed';}function Y(_0x28149d){return new i('WORKTREE_NOT_FOUND','Worktree\x20'+_0x28149d+'\x20does\x20not\x20exist');}function X(_0x54a577){return new n['CollabError']('INVALID_REQUEST',_0x54a577);}function Z(_0x3514ae,_0x62f9e9){return new n['CollabError']('ADAPTER_FAILURE',_0x3514ae,{'retryable':!0x0,..._0x62f9e9===void 0x0?{}:{'cause':_0x62f9e9}});}function re(_0x346970){return _0x346970?{'debug':(..._0x4e96c2)=>Q(()=>_0x346970['debug'](..._0x4e96c2)),'info':(..._0x5420fc)=>Q(()=>_0x346970['info'](..._0x5420fc)),'warn':(..._0x12d35b)=>Q(()=>_0x346970['warn'](..._0x12d35b)),'error':(..._0x3bd7b5)=>Q(()=>_0x346970['error'](..._0x3bd7b5))}:{'debug':()=>void 0x0,'info':()=>void 0x0,'warn':()=>void 0x0,'error':()=>void 0x0};}function ie(_0x342666){return _0x342666?{'increment':(..._0x47c576)=>Q(()=>_0x342666['increment'](..._0x47c576)),'observe':(..._0x253e11)=>Q(()=>_0x342666['observe'](..._0x253e11))}:{'increment':()=>void 0x0,'observe':()=>void 0x0};}function Q(_0x4510ab){try{_0x4510ab();}catch{}}function $(_0x1d03d1){return _0x1d03d1 instanceof Error?_0x1d03d1['message']:String(_0x1d03d1);}exports['UniverCollabWorktreeService']=ne,exports['WorktreeError']=i;
package/dist/index.d.ts CHANGED
@@ -34,9 +34,11 @@ interface WorktreeUnitRecord {
34
34
  readonly type: UniverType;
35
35
  readonly source: WorktreeUnitSource;
36
36
  readonly baselineTrunkRevision?: number;
37
- readonly removed?: boolean;
38
37
  readonly draftHeadRevision: number;
39
38
  readonly readyDraftHeadRevision?: number;
39
+ readonly creatorID: string;
40
+ readonly createdAt: number;
41
+ readonly removed?: boolean;
40
42
  readonly mergeResult?: WorktreeUnitMergeResult;
41
43
  }
42
44
  interface WorktreeAggregateRecord {
@@ -53,9 +55,9 @@ interface WorktreeUnitData {
53
55
  readonly type: UniverType;
54
56
  readonly source: WorktreeUnitSource;
55
57
  readonly baselineTrunkRevision?: number;
56
- readonly removed?: boolean;
57
58
  readonly draftHeadRevision: number;
58
59
  readonly readyDraftHeadRevision?: number;
60
+ readonly removed?: boolean;
59
61
  readonly mergeResult?: WorktreeUnitMergeResult;
60
62
  }
61
63
  //#endregion
@@ -299,13 +301,13 @@ interface ApplyWorktreeChangesetMiddlewareContext extends MemberWorktreeMiddlewa
299
301
  readonly attempt: number;
300
302
  readonly currentRevision: number;
301
303
  readonly changeset: Readonly<IChangeset>;
302
- readonly requiredUnitPermissions: readonly RequiredUnitPermission[];
303
304
  }
304
305
  interface CommitWorktreeChangesetMiddlewareContext extends MemberWorktreeMiddlewareContext {
305
306
  readonly request: SubmitWorktreeChangesetRequest;
306
307
  readonly attempt: number;
307
308
  readonly expectedHeadRevision: number;
308
309
  readonly changeset: Readonly<IChangeset>;
310
+ readonly requiredUnitPermissions: readonly RequiredUnitPermission[];
309
311
  }
310
312
  interface WorktreeMiddlewareMap {
311
313
  readonly setWorktreeUnitRemoved: Middleware<SetWorktreeUnitRemovedMiddlewareContext>;
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- const _0x141057=_0x5e95;(function(_0x3c4c8e,_0x16a6dd){const _0x381ea5=_0x5e95,_0x128e16=_0x3c4c8e();while(!![]){try{const _0x352c11=parseInt(_0x381ea5(0x9a))/0x1+-parseInt(_0x381ea5(0x95))/0x2+parseInt(_0x381ea5(0x94))/0x3*(-parseInt(_0x381ea5(0x98))/0x4)+-parseInt(_0x381ea5(0x96))/0x5*(parseInt(_0x381ea5(0x91))/0x6)+-parseInt(_0x381ea5(0x8f))/0x7*(parseInt(_0x381ea5(0x92))/0x8)+parseInt(_0x381ea5(0x90))/0x9+-parseInt(_0x381ea5(0x97))/0xa*(-parseInt(_0x381ea5(0x99))/0xb);if(_0x352c11===_0x16a6dd)break;else _0x128e16['push'](_0x128e16['shift']());}catch(_0x454809){_0x128e16['push'](_0x128e16['shift']());}}}(_0x102b,0x25bcb));function _0x5e95(_0x3037b6,_0x581e55){_0x3037b6=_0x3037b6-0x8e;const _0x102b79=_0x102b();let _0x5e9573=_0x102b79[_0x3037b6];return _0x5e9573;}function _0x102b(){const _0x5b395b=['9536tiBBuz','UniverCollabWorktreeService','831201xhfvwr','458694YNTFvi','91790owVAIk','13820zGAprf','4gfetsf','4169EAKLoI','221973vhFsmP','WorktreeError','21uIXGSA','1251954LjWIKN','72XLzlGh'];_0x102b=function(){return _0x5b395b;};return _0x102b();}import _0x52375a from'./index.cjs';const facadeExport0=_0x52375a[_0x141057(0x93)],facadeExport1=_0x52375a[_0x141057(0x8e)];export{facadeExport0 as UniverCollabWorktreeService,facadeExport1 as WorktreeError};
1
+ const _0x25e3f3=_0x500d;function _0x500d(_0x3891d9,_0x5e998c){_0x3891d9=_0x3891d9-0xf2;const _0x23fbb5=_0x23fb();let _0x500d77=_0x23fbb5[_0x3891d9];return _0x500d77;}(function(_0x4fe487,_0x169947){const _0x31edb4=_0x500d,_0x37cb74=_0x4fe487();while(!![]){try{const _0x39f11c=parseInt(_0x31edb4(0xfc))/0x1*(-parseInt(_0x31edb4(0xf5))/0x2)+-parseInt(_0x31edb4(0xf7))/0x3+-parseInt(_0x31edb4(0xf8))/0x4+-parseInt(_0x31edb4(0xfa))/0x5*(-parseInt(_0x31edb4(0xf6))/0x6)+parseInt(_0x31edb4(0xf4))/0x7+parseInt(_0x31edb4(0xfb))/0x8*(-parseInt(_0x31edb4(0xf3))/0x9)+parseInt(_0x31edb4(0xf2))/0xa;if(_0x39f11c===_0x169947)break;else _0x37cb74['push'](_0x37cb74['shift']());}catch(_0x1cee4f){_0x37cb74['push'](_0x37cb74['shift']());}}}(_0x23fb,0xa4260));import _0x301c68 from'./index.cjs';const facadeExport0=_0x301c68[_0x25e3f3(0xf9)],facadeExport1=_0x301c68['WorktreeError'];function _0x23fb(){const _0xaf6ec8=['1982968OOYyTY','1pbGbTf','17475560zpdzAk','36SLGMRV','5545925foaCGU','1083766uxJUop','18JdPbsU','3168195LOyuEQ','195936ElpsXQ','UniverCollabWorktreeService','1284895bArWii'];_0x23fb=function(){return _0xaf6ec8;};return _0x23fb();}export{facadeExport0 as UniverCollabWorktreeService,facadeExport1 as WorktreeError};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@univerjs-pro/collaboration-worktree-service",
3
3
  "type": "module",
4
- "version": "1.0.0-rc.0",
4
+ "version": "1.0.1",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.mjs",
7
7
  "types": "./dist/index.d.ts",
@@ -16,7 +16,7 @@
16
16
  "dist"
17
17
  ],
18
18
  "dependencies": {
19
- "@univerjs-pro/collaboration-service": "1.0.0-rc.0",
20
- "@univerjs/protocol": "1.0.0-rc.0"
19
+ "@univerjs-pro/collaboration-service": "1.0.1",
20
+ "@univerjs/protocol": "1.0.1"
21
21
  }
22
22
  }