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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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(_0x9fd380,_0x8d3888,_0x5312ae={}){super(_0x8d3888,{'cause':_0x5312ae['cause']}),this['name']='WorktreeError',this['code']=_0x9fd380,this['retryable']=_0x5312ae['retryable']??!0x1,_0x5312ae['details']!==void 0x0&&(this['details']=_0x5312ae['details']);}},a=class{['_worktreeID'];['_trunk'];['_worktree'];constructor(_0x18050a,_0xfac114,_0x29e1e3){this['_worktreeID']=_0x18050a,this['_trunk']=_0xfac114,this['_worktree']=_0x29e1e3;}async['getUnit'](_0x2571f3,_0x388623){let _0x350c0f=await this['_worktree']['getWorktreeUnit'](_0x2571f3,this['_worktreeID'],_0x388623);return _0x350c0f?{'unitID':_0x350c0f['unitID'],'type':_0x350c0f['type'],'headRevision':_0x350c0f['draftHeadRevision'],'creatorID':_0x350c0f['creatorID'],'createdAt':_0x350c0f['createdAt']}:null;}async['getSnapshot'](_0x231c49,_0x49f2d1,_0x105993){let _0x59f116=await this['_getUnitRecord'](_0x231c49,_0x49f2d1);if(!_0x59f116)return null;let _0x48a03e=_0x105993?.['revision'],_0x1df7fb=_0x48a03e===void 0x0?_0x59f116['draftHeadRevision']:Math['min'](_0x48a03e,_0x59f116['draftHeadRevision']);if(_0x59f116['source']==='worktree')return _0x1df7fb<0x1?null:(await this['_worktree']['getUnitSeed'](_0x231c49,this['_worktreeID'],_0x49f2d1))?.['snapshot']??null;let _0xd45b9b=o(_0x59f116);return this['_trunk']['getSnapshot'](_0x231c49,_0x49f2d1,{'revision':Math['min'](_0x1df7fb,_0xd45b9b)});}async['getSnapshotInfo'](_0x566170,_0x55db66,_0x24161b){let _0x1c52ed=await this['_getUnitRecord'](_0x566170,_0x55db66);if(!_0x1c52ed)return null;let _0x372cef=_0x24161b?.['revision'],_0x2d4c16=_0x372cef===void 0x0?_0x1c52ed['draftHeadRevision']:Math['min'](_0x372cef,_0x1c52ed['draftHeadRevision']);return _0x1c52ed['source']==='worktree'?_0x2d4c16>=0x1?{'unitID':_0x1c52ed['unitID'],'type':_0x1c52ed['type'],'rev':0x1}:null:this['_trunk']['getSnapshotInfo'](_0x566170,_0x55db66,{'revision':Math['min'](_0x2d4c16,o(_0x1c52ed))});}async['getChangesets'](_0x2f4be5,_0xab8f26,_0x4abafb){let _0x1eac34=await this['_getUnitRecord'](_0x2f4be5,_0xab8f26);if(!_0x1eac34)return null;if(_0x1eac34['source']==='worktree')return this['_worktree']['getDraftChangesets'](_0x2f4be5,this['_worktreeID'],_0xab8f26,_0x4abafb);let _0xa2c4a8=o(_0x1eac34),_0x4501e3=Math['min'](_0x4abafb['to']??_0xa2c4a8,_0xa2c4a8),_0x5e34fd=_0x4abafb['from']<_0x4501e3?await this['_trunk']['getChangesets'](_0x2f4be5,_0xab8f26,{'from':_0x4abafb['from'],'to':_0x4501e3}):[];if(_0x5e34fd===null)return null;let _0x7ba6b0=Math['max'](_0x4abafb['from'],_0xa2c4a8),_0x2824d2=_0x4abafb['to']===void 0x0||_0x7ba6b0<_0x4abafb['to']?await this['_worktree']['getDraftChangesets'](_0x2f4be5,this['_worktreeID'],_0xab8f26,{..._0x4abafb,'from':_0x7ba6b0}):[];return _0x2824d2===null?null:[..._0x5e34fd,..._0x2824d2];}async['createUnit'](_0x3f7484,_0x48dc0a){let _0x148032=await this['_worktree']['createUnit'](_0x3f7484,{'unit':{'worktreeID':this['_worktreeID'],'unitID':_0x48dc0a['record']['unitID'],'type':_0x48dc0a['record']['type'],'source':'worktree','draftHeadRevision':0x1,'creatorID':_0x48dc0a['record']['creatorID'],'createdAt':_0x48dc0a['record']['createdAt']},'seed':{'snapshot':_0x48dc0a['snapshot'],..._0x48dc0a['sheetBlocks']===void 0x0?{}:{'sheetBlocks':_0x48dc0a['sheetBlocks']}}});switch(_0x148032['status']){case'created':return{'status':'created','record':_0x48dc0a['record']};case'already-created':{let _0x58918d=_0x148032['aggregate']['units']['find'](_0x174a34=>_0x174a34['unitID']===_0x48dc0a['record']['unitID']);return{'status':'already-exists','record':{'unitID':_0x58918d['unitID'],'type':_0x58918d['type'],'headRevision':_0x58918d['draftHeadRevision'],'creatorID':_0x58918d['creatorID'],'createdAt':_0x58918d['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'+_0x48dc0a['record']['unitID']+'\x20already\x20exists\x20in\x20the\x20Worktree');case'status-mismatch':throw new n['CollabError']('PERMISSION_DENIED','Worktree\x20'+this['_worktreeID']+'\x20is\x20not\x20editable');}}['deleteUnits'](_0x25480c,_0x25b303){return Promise['reject'](new n['CollabError']('INVALID_REQUEST','Cannot\x20delete\x20Units\x20through\x20a\x20Worktree\x20draft'));}['recoverUnits'](_0x2c1dab,_0x2780b5){return Promise['reject'](new n['CollabError']('INVALID_REQUEST','Cannot\x20recover\x20Units\x20through\x20a\x20Worktree\x20draft'));}async['commitChangeset'](_0x127a6f,_0x3184f6){let _0xe36d5e=await this['_worktree']['commitDraftChangeset'](_0x127a6f,{'worktreeID':this['_worktreeID'],'changeset':_0x3184f6['changeset']});switch(_0xe36d5e['status']){case'committed':case'revision-mismatch':return _0xe36d5e;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'+_0xe36d5e['worktreeStatus']);case'unit-frozen':throw new n['CollabError']('PERMISSION_DENIED','Worktree\x20Unit\x20has\x20already\x20been\x20merged');}}['saveSnapshot'](_0x40ff11,_0x13db2a){return Promise['reject'](new n['CollabError']('INTERNAL_ERROR','Worktree\x20draft\x20snapshots\x20are\x20disabled'));}async['getSheetBlock'](_0x577634,_0x526e5b,_0x1da023){let _0x20662d=await this['_getUnitRecord'](_0x577634,_0x526e5b);return _0x20662d?_0x20662d['source']==='worktree'?(await this['_worktree']['getUnitSeed'](_0x577634,this['_worktreeID'],_0x526e5b))?.['sheetBlocks']?.['find'](_0x3597a9=>_0x3597a9['id']===_0x1da023)??null:this['_trunk']['getSheetBlock'](_0x577634,_0x526e5b,_0x1da023):null;}['_getUnitRecord'](_0x15558f,_0x3a7e33){return this['_worktree']['getWorktreeUnit'](_0x15558f,this['_worktreeID'],_0x3a7e33);}};function o(_0x28f63f){if(_0x28f63f['source']!=='trunk'||!Number['isSafeInteger'](_0x28f63f['baselineTrunkRevision'])||_0x28f63f['baselineTrunkRevision']<0x1)throw new n['CollabError']('ADAPTER_FAILURE','Trunk-sourced\x20Worktree\x20Unit\x20has\x20no\x20valid\x20baseline');return _0x28f63f['baselineTrunkRevision'];}async function s(_0x662d65){let _0x25cb14=new n['UniverUnitRuntime']({'reader':_0x662d65['dbAdapter'],..._0x662d65['runtime']?.['maxLoadedUnits']===void 0x0?{}:{'maxLoadedUnits':_0x662d65['runtime']['maxLoadedUnits']},..._0x662d65['runtime']?.['idleTimeoutMs']===void 0x0?{}:{'idleTimeoutMs':_0x662d65['runtime']['idleTimeoutMs']}});try{let _0x3fba45=await _0x25cb14['ensureUnit'](_0x662d65['context'],_0x662d65['unitID'],_0x662d65['type']);try{if(_0x3fba45['revision']!==_0x662d65['expectedRevision'])throw c('Unit\x20Runtime\x20did\x20not\x20reach\x20the\x20frozen\x20Worktree\x20revision');let _0x4b34d7=await _0x25cb14['createSnapshot'](_0x3fba45);if(_0x4b34d7['snapshot']['unitID']!==_0x662d65['unitID']||_0x4b34d7['snapshot']['type']!==_0x662d65['type']||_0x4b34d7['snapshot']['rev']!==_0x662d65['expectedRevision'])throw c('Unit\x20Runtime\x20returned\x20an\x20invalid\x20Worktree\x20snapshot');return _0x4b34d7;}finally{_0x25cb14['releaseUnit'](_0x3fba45);}}finally{await _0x25cb14['dispose']();}}function c(_0x460a7f){return new n['CollabError']('ADAPTER_FAILURE',_0x460a7f,{'retryable':!0x0});}async function l(_0x4a9f38){let _0x456a69=new n['UniverUnitRuntime']({'reader':_0x4a9f38['dbAdapter'],..._0x4a9f38['runtime']?.['maxLoadedUnits']===void 0x0?{}:{'maxLoadedUnits':_0x4a9f38['runtime']['maxLoadedUnits']},..._0x4a9f38['runtime']?.['idleTimeoutMs']===void 0x0?{}:{'idleTimeoutMs':_0x4a9f38['runtime']['idleTimeoutMs']}});try{let _0x337d50=u(_0x456a69,_0x4a9f38),_0x13e131=await _0x456a69['ensureUnit'](_0x4a9f38['context'],_0x4a9f38['unitID'],_0x4a9f38['type']);try{if(_0x13e131['revision']!==_0x4a9f38['trunkHeadRevision'])throw new n['CollabError']('REVISION_MISMATCH','Trunk\x20changed\x20while\x20materializing\x20Worktree\x20merge\x20preview',{'retryable':!0x0});if(await _0x456a69['applyChangeset'](_0x4a9f38['context'],_0x13e131,_0x337d50),_0x13e131['revision']!==_0x337d50['revision'])throw new n['CollabError']('INTERNAL_ERROR','Preview\x20Runtime\x20did\x20not\x20reach\x20the\x20merge\x20candidate\x20revision',{'retryable':!0x0});return await _0x456a69['createSnapshot'](_0x13e131);}finally{_0x456a69['releaseUnit'](_0x13e131);}}finally{await _0x456a69['dispose']();}}function u(_0x13047e,_0x579870){let _0x37233c=_0x13047e['changesetTransformer']['parseClient'](_0x579870['original']);return{..._0x13047e['changesetTransformer']['transform'](_0x37233c,_0x579870['trunkHistory']),'unitID':_0x579870['original']['unitID'],'type':_0x579870['original']['type'],'baseRev':_0x579870['trunkHeadRevision'],'revision':_0x579870['trunkHeadRevision']+0x1,'sid':_0x579870['original']['sid'],'reqId':_0x579870['original']['reqId']};}var d=class{['_middlewares']=new Map();['use'](_0x2d52e0,_0x1cebe6){let _0x5f1914=this['_middlewares']['get'](_0x2d52e0)??[],_0x3fc0ac=_0x1cebe6;_0x5f1914['push'](_0x3fc0ac),this['_middlewares']['set'](_0x2d52e0,_0x5f1914);let _0x3464ff=!0x1;return{'dispose':()=>{if(_0x3464ff)return;_0x3464ff=!0x0;let _0x21cba2=_0x5f1914['indexOf'](_0x3fc0ac);_0x21cba2>=0x0&&_0x5f1914['splice'](_0x21cba2,0x1);}};}async['run'](_0x6c83f2,_0x3a1695,_0x2bf72){let _0x155952=[...this['_middlewares']['get'](_0x6c83f2)??[]],_0x1853e3=async _0x55ed4a=>{let _0x2d9684=_0x155952[_0x55ed4a];if(!_0x2d9684){await _0x2bf72();return;}let _0x3bbe16=!0x1,_0x49d180,_0x16d194=()=>{if(_0x3bbe16)throw Error('Middleware\x20for\x20action\x20'+String(_0x6c83f2)+'\x20called\x20next()\x20more\x20than\x20once');return _0x3bbe16=!0x0,_0x49d180=_0x1853e3(_0x55ed4a+0x1),_0x49d180;};try{await _0x2d9684(_0x3a1695,_0x16d194);}catch(_0x3f69d0){if(_0x49d180)try{await _0x49d180;}catch{}throw _0x3f69d0;}if(!_0x3bbe16)throw Error('Middleware\x20for\x20action\x20'+String(_0x6c83f2)+'\x20completed\x20without\x20calling\x20next()');await _0x49d180;};await _0x1853e3(0x0);}['clear'](){this['_middlewares']['clear']();}};function f(_0x266c66){return{'worktreeID':_0x266c66['worktreeID'],'units':_0x266c66['units']??[]};}function p(_0xeca2a8){return{'worktreeID':_0xeca2a8['worktreeID']};}function m(_0x116d27){return{'worktreeID':_0x116d27['worktreeID'],'unitID':_0x116d27['unitID']};}function ee(_0x689dc0){return{'worktreeID':_0x689dc0['worktreeID']};}function te(_0x4ce618){return{'worktreeID':_0x4ce618['worktreeID']};}function h(_0x7cfb7b){return{'worktreeID':_0x7cfb7b['worktreeID']};}function g(_0xb34d16){return{'worktreeID':_0xb34d16['worktreeID']};}function _(_0x3f1765){return{'worktreeID':_0x3f1765['worktreeID'],'unitID':_0x3f1765['unitID']};}function v(_0x4d7ad7){return{'worktreeID':_0x4d7ad7['worktreeID'],'unitID':_0x4d7ad7['unitID'],'removed':_0x4d7ad7['removed']};}var y=class{['_onListenerError'];['_listeners']=new Map();constructor(_0x4773f6){this['_onListenerError']=_0x4773f6;}['on'](_0x2bcaca,_0x1c3466){let _0x33b41b=this['_listeners']['get'](_0x2bcaca)??[],_0x30f6a6=_0x1c3466;_0x33b41b['push'](_0x30f6a6),this['_listeners']['set'](_0x2bcaca,_0x33b41b);let _0x47b2f2=!0x1;return{'dispose':()=>{if(_0x47b2f2)return;_0x47b2f2=!0x0;let _0x2cfc07=_0x33b41b['indexOf'](_0x30f6a6);_0x2cfc07>=0x0&&_0x33b41b['splice'](_0x2cfc07,0x1);}};}async['emit'](_0xd19a98,_0x26ddbc){for(let _0x21ddac of[...this['_listeners']['get'](_0xd19a98)??[]])try{await _0x21ddac(_0x26ddbc);}catch(_0x59bd71){try{this['_onListenerError'](_0x59bd71);}catch{}}}['clear'](){this['_listeners']['clear']();}},b=class{['_state']='running';['_activeCalls']=0x0;['_resolveDrain'];['_disposePromise'];get['state'](){return this['_state'];}['run'](_0x2fbee5){return this['_state']==='running'?(this['_activeCalls']+=0x1,Promise['resolve']()['then'](_0x2fbee5)['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'](_0x56a39d){return this['_disposePromise']?this['_disposePromise']:(this['_state']='disposing',this['_disposePromise']=this['_finishDispose'](_0x56a39d),this['_disposePromise']);}async['_finishDispose'](_0x14633c){this['_activeCalls']>0x0&&await new Promise(_0x440c82=>{this['_resolveDrain']=_0x440c82;});try{await _0x14633c();}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(_0x46245f){if(!_0x46245f?.['trunk']?.['service']||!_0x46245f['trunk']['dbAdapter'])throw TypeError('UniverCollabWorktreeService\x20requires\x20trunk\x20service\x20and\x20dbAdapter');if(!_0x46245f['dbAdapter'])throw TypeError('UniverCollabWorktreeService\x20requires\x20a\x20Worktree\x20dbAdapter');if(this['_trunkService']=_0x46245f['trunk']['service'],this['_trunkDbAdapter']=_0x46245f['trunk']['dbAdapter'],this['_dbAdapter']=_0x46245f['dbAdapter'],this['_runtimeOptions']=_0x46245f['runtime'],this['_enableUnitPermissionAnalysis']=_0x46245f['enableUnitPermissionAnalysis']??!0x1,this['_maxRevisionRetries']=_0x46245f['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(_0x46245f['logger']),this['_metrics']=ie(_0x46245f['metrics']),this['_events']=new y(_0x16e5ac=>{this['_logger']['error']('Worktree\x20Service\x20event\x20listener\x20failed',{'error':$(_0x16e5ac)});});}['use'](_0x3a62c9,_0x3ddd34){return this['_assertRunning'](),this['_middleware']['use'](_0x3a62c9,_0x3ddd34);}['on'](_0x281a43,_0x975667){return this['_assertRunning'](),this['_events']['on'](_0x281a43,_0x975667);}['createWorktree'](_0x12b8f1,_0x401102){return this['_call']('createWorktree',async()=>{let _0x566bb9=C(_0x401102),_0x302cf1=f(_0x12b8f1),_0xbf68b2={..._0x566bb9,'request':_0x302cf1},_0x4bb199;return await this['_middleware']['run']('createWorktree',_0xbf68b2,async()=>{S(_0x12b8f1['worktreeID']),D(_0x302cf1['units']);let _0x52039f=await Promise['all'](_0x302cf1['units']['map'](_0x180f98=>this['_requireTrunkUnit'](_0xbf68b2,_0x180f98))),_0x4e4f5f=await this['_database'](()=>this['_dbAdapter']['createWorktree'](_0xbf68b2,{'record':{'worktreeID':_0x12b8f1['worktreeID'],'sid':(0x0,e['randomUUID'])(),'status':'draft'},'units':_0x52039f['map'](_0x6d03c7=>({'worktreeID':_0x12b8f1['worktreeID'],'unitID':_0x6d03c7['unitID'],'type':_0x6d03c7['type'],'source':'trunk','baselineTrunkRevision':_0x6d03c7['headRevision'],'draftHeadRevision':_0x6d03c7['headRevision'],'creatorID':_0x6d03c7['creatorID'],'createdAt':_0x6d03c7['createdAt']}))})),_0x4de569=R(_0x4e4f5f['aggregate'],_0x12b8f1['worktreeID']);if(_0x4e4f5f['status']==='already-exists')throw new i('WORKTREE_ALREADY_EXISTS','Worktree\x20'+_0x12b8f1['worktreeID']+'\x20already\x20exists');L(_0x4de569,_0x302cf1['units']),_0x4bb199={'worktree':_0x4de569},await this['_events']['emit']('worktreeCreated',{'userID':_0x566bb9['userID'],'customData':_0x566bb9['customData'],'request':_0x302cf1,'worktree':_0x4de569,'occurredAt':Date['now']()});}),_0x4bb199;});}['getWorktree'](_0xd0ed27,_0xfde207){return this['_call']('getWorktree',async()=>{let _0x4e26b3=C(_0xfde207),_0x24cc13=p(_0xd0ed27),_0x20ca5f={..._0x4e26b3,'request':_0x24cc13},_0x235e81;return await this['_middleware']['run']('readWorktreeData',_0x20ca5f,async()=>{S(_0xd0ed27['worktreeID']);let _0x27787a=await this['_database'](()=>this['_dbAdapter']['getWorktree'](_0x20ca5f,_0xd0ed27['worktreeID']));if(!_0x27787a)throw Y(_0xd0ed27['worktreeID']);_0x235e81={'worktree':R(_0x27787a,_0xd0ed27['worktreeID'])};}),_0x235e81;});}['addUnit'](_0x22d4fa,_0x2e5593){return this['_call']('addUnit',async()=>{let _0x3f01c9=C(_0x2e5593),_0xb2133c=m(_0x22d4fa),_0x5e21f6={..._0x3f01c9,'request':_0xb2133c},_0x518da0;return await this['_middleware']['run']('addWorktreeUnit',_0x5e21f6,async()=>{if(S(_0x22d4fa['worktreeID']),!_0x22d4fa['unitID'])throw X('unitID\x20is\x20required');let _0x369421=await this['_requireTrunkUnit'](_0x5e21f6,_0x22d4fa['unitID']),_0x38f97f=await this['_database'](()=>this['_dbAdapter']['addUnit'](_0x5e21f6,{'unit':{'worktreeID':_0x22d4fa['worktreeID'],'unitID':_0x369421['unitID'],'type':_0x369421['type'],'source':'trunk','baselineTrunkRevision':_0x369421['headRevision'],'draftHeadRevision':_0x369421['headRevision'],'creatorID':_0x369421['creatorID'],'createdAt':_0x369421['createdAt']}}));if(_0x38f97f['status']==='not-found')throw Y(_0x22d4fa['worktreeID']);let _0x1affca=R(_0x38f97f['aggregate'],_0x22d4fa['worktreeID']);if(_0x38f97f['status']==='status-mismatch')throw new i('WORKTREE_NOT_EDITABLE','Worktree\x20'+_0x22d4fa['worktreeID']+'\x20is\x20'+_0x1affca['status'],{'details':{'status':_0x1affca['status']}});if(_0x518da0={'worktree':_0x1affca},_0x38f97f['status']==='added'){let _0x3f9e26=U(_0x1affca,_0x22d4fa['unitID']);await this['_events']['emit']('worktreeUnitAdded',{'userID':_0x3f01c9['userID'],'customData':_0x3f01c9['customData'],'request':_0xb2133c,'worktree':_0x1affca,'unit':_0x3f9e26,'occurredAt':Date['now']()});}}),_0x518da0;});}['setUnitRemoved'](_0x3ce2ed,_0xef44c8){return this['_call']('setUnitRemoved',async()=>{let _0x4389fc=C(_0xef44c8),_0x57c9bf=v(_0x3ce2ed),_0x3eaf88={..._0x4389fc,'request':_0x57c9bf},_0x190334;return await this['_middleware']['run']('setWorktreeUnitRemoved',_0x3eaf88,async()=>{if(S(_0x57c9bf['worktreeID']),!_0x57c9bf['unitID']||typeof _0x57c9bf['removed']!='boolean')throw X('unitID\x20and\x20a\x20boolean\x20removed\x20flag\x20are\x20required');let _0x32a354=await this['_database'](()=>this['_dbAdapter']['setUnitRemoved'](_0x3eaf88,_0x57c9bf));if(_0x32a354['status']==='not-found')throw new i('WORKTREE_UNIT_NOT_FOUND','Unit\x20'+_0x57c9bf['unitID']+'\x20does\x20not\x20exist\x20in\x20Worktree\x20'+_0x57c9bf['worktreeID']);if(_0x32a354['status']==='not-editable')throw new i('WORKTREE_NOT_EDITABLE','Unit\x20removal\x20can\x20only\x20change\x20in\x20an\x20editable\x20draft');let _0x36f1ab=R(_0x32a354['aggregate'],_0x57c9bf['worktreeID']);_0x190334={'worktree':_0x36f1ab},_0x32a354['status']==='updated'&&await this['_events']['emit']('worktreeUnitRemovalChanged',{'userID':_0x4389fc['userID'],'customData':_0x4389fc['customData'],'request':_0x57c9bf,'worktree':_0x36f1ab,'unit':U(_0x36f1ab,_0x57c9bf['unitID']),'occurredAt':Date['now']()});}),_0x190334;});}['createUnitFromSnapshot'](_0x3934ad,_0x2a1d74){return this['_call']('createUnitFromSnapshot',async()=>{S(_0x3934ad['worktreeID']);let _0x2d233d=C(_0x2a1d74),{worktreeID:_0x59b8b8,..._0x1fa471}=_0x3934ad;await this['_draftService'](_0x59b8b8)['createUnitFromSnapshot'](_0x1fa471,_0x2d233d);let _0x534b53=p({'worktreeID':_0x59b8b8});return{'worktree':R(await this['_requireWorktreeAggregate']({..._0x2d233d,'request':_0x534b53},_0x59b8b8),_0x59b8b8)};});}['createUnitFromData'](_0x46f26f,_0x1ced37){return this['_call']('createUnitFromData',async()=>{S(_0x46f26f['worktreeID']);let _0x3aba43=C(_0x1ced37),{worktreeID:_0x165e17,..._0x4911a2}=_0x46f26f;await this['_draftService'](_0x165e17)['createUnitFromData'](_0x4911a2,_0x3aba43);let _0x21df38=p({'worktreeID':_0x165e17});return{'worktree':R(await this['_requireWorktreeAggregate']({..._0x3aba43,'request':_0x21df38},_0x165e17),_0x165e17)};});}['markReady'](_0x941d56,_0x340963){return this['_call']('markReady',async()=>{let _0x2fc9f7=C(_0x340963),_0x426fd8=ee(_0x941d56),_0x290728={..._0x2fc9f7,'request':_0x426fd8},_0x83df20;return await this['_middleware']['run']('markWorktreeReady',_0x290728,async()=>{_0x83df20=await this['_transition'](_0x941d56['worktreeID'],_0x2fc9f7,_0x426fd8,()=>this['_dbAdapter']['markReady'](_0x290728,_0x941d56['worktreeID']));}),_0x83df20;});}['reopenWorktree'](_0x47d224,_0x320594){return this['_call']('reopenWorktree',async()=>{let _0x537887=C(_0x320594),_0x1b9356=te(_0x47d224),_0x210930={..._0x537887,'request':_0x1b9356},_0x5d9d0e;return await this['_middleware']['run']('reopenWorktree',_0x210930,async()=>{_0x5d9d0e=await this['_transition'](_0x47d224['worktreeID'],_0x537887,_0x1b9356,()=>this['_dbAdapter']['reopenWorktree'](_0x210930,_0x47d224['worktreeID']));}),_0x5d9d0e;});}['discardWorktree'](_0x4bb0dc,_0x2b7bdf){return this['_call']('discardWorktree',async()=>{let _0x45d5ea=C(_0x2b7bdf),_0x15206f=h(_0x4bb0dc),_0x22ba92={..._0x45d5ea,'request':_0x15206f},_0x5512b9;return await this['_middleware']['run']('discardWorktree',_0x22ba92,async()=>{_0x5512b9=await this['_transition'](_0x4bb0dc['worktreeID'],_0x45d5ea,_0x15206f,()=>this['_dbAdapter']['discardWorktree'](_0x22ba92,_0x4bb0dc['worktreeID']));}),_0x5512b9;});}['mergeWorktree'](_0x3f8a4e,_0x5d5f73){return this['_call']('mergeWorktree',async()=>{let _0x25a837=w(_0x5d5f73),_0x210c2c=g(_0x3f8a4e),_0x5c8e95={..._0x25a837,'request':_0x210c2c},_0x5b57fb;return await this['_middleware']['run']('mergeWorktree',_0x5c8e95,async()=>{S(_0x3f8a4e['worktreeID']);let _0x5e94fb=await this['_database'](()=>this['_dbAdapter']['startOrResumeMerge'](_0x5c8e95,_0x3f8a4e['worktreeID']));if(_0x5e94fb['status']==='not-found')throw Y(_0x3f8a4e['worktreeID']);let _0x57019f=_0x5e94fb['aggregate'],_0x5c6557=R(_0x57019f,_0x3f8a4e['worktreeID']);if(_0x5e94fb['status']==='status-mismatch')throw new i('WORKTREE_STATUS_MISMATCH','Worktree\x20'+_0x3f8a4e['worktreeID']+'\x20cannot\x20merge\x20from\x20'+_0x5c6557['status'],{'details':{'status':_0x5c6557['status']}});if(_0x5e94fb['status']==='already-merged'){_0x5b57fb={'worktree':_0x5c6557};return;}_0x5e94fb['status']==='started'&&await this['_events']['emit']('worktreeStatusChanged',{'userID':_0x25a837['userID'],'customData':_0x25a837['customData'],'request':_0x210c2c,'worktree':_0x5c6557,'previousStatus':'ready','status':'merging','occurredAt':Date['now']()});for(let _0x559d9e of _0x57019f['units']){if(J(_0x559d9e['mergeResult']))continue;let _0x2610ed=await this['_mergeUnit'](_0x5c8e95,_0x57019f['worktree']['sid'],_0x559d9e,_0x25a837),_0x3863c4=await this['_database'](()=>this['_dbAdapter']['recordUnitMergeResult'](_0x5c8e95,{'worktreeID':_0x3f8a4e['worktreeID'],'unitID':_0x559d9e['unitID'],'readyDraftHeadRevision':O(_0x559d9e),'mergeResult':_0x2610ed}));if(_0x3863c4['status']==='not-found')throw Y(_0x3f8a4e['worktreeID']);if(_0x3863c4['status']==='stale-merge'){if(_0x57019f=await this['_requireWorktreeAggregate'](_0x5c8e95,_0x3f8a4e['worktreeID']),_0x5c6557=R(_0x57019f,_0x3f8a4e['worktreeID']),_0x57019f['worktree']['status']!=='merging')break;continue;}if(_0x3863c4['status']!=='recorded'&&_0x3863c4['status']!=='already-recorded')throw Z('Database\x20returned\x20an\x20invalid\x20merge\x20result\x20status');_0x57019f=_0x3863c4['aggregate'],_0x5c6557=R(_0x57019f,_0x3f8a4e['worktreeID']),_0x3863c4['status']==='recorded'&&await this['_events']['emit']('worktreeUnitMergeResultRecorded',{'userID':_0x25a837['userID'],'customData':_0x25a837['customData'],'request':_0x210c2c,'worktree':_0x5c6557,'unit':U(_0x5c6557,_0x559d9e['unitID']),'occurredAt':Date['now']()});}if(_0x57019f['worktree']['status']==='merging'){let _0x279eef=await this['_database'](()=>this['_dbAdapter']['finishMerge'](_0x5c8e95,_0x3f8a4e['worktreeID']));if(_0x279eef['status']==='not-found')throw Y(_0x3f8a4e['worktreeID']);if(_0x57019f=_0x279eef['aggregate'],_0x5c6557=R(_0x57019f,_0x3f8a4e['worktreeID']),_0x279eef['status']==='transitioned')await this['_events']['emit']('worktreeStatusChanged',{'userID':_0x25a837['userID'],'customData':_0x25a837['customData'],'request':_0x210c2c,'worktree':_0x5c6557,'previousStatus':_0x279eef['previousStatus'],'status':_0x5c6557['status'],'occurredAt':Date['now']()});else{if(_0x279eef['status']==='status-mismatch'&&_0x5c6557['status']!=='ready'&&_0x5c6557['status']!=='merged')throw new i('WORKTREE_STALE_MERGE','Worktree\x20'+_0x3f8a4e['worktreeID']+'\x20merge\x20was\x20superseded',{'retryable':!0x0,'details':{'status':_0x5c6557['status']}});}}_0x5b57fb={'worktree':_0x5c6557};}),_0x5b57fb;});}['evaluateWorktreeUnitMerge'](_0x480189,_0x1e77f8){return this['_call']('evaluateWorktreeUnitMerge',async()=>{let _0x5b89d9=C(_0x1e77f8),_0x62e99e=_(_0x480189),_0x86d7c3={..._0x5b89d9,'request':_0x62e99e},_0x3f3632;return await this['_middleware']['run']('readUnitData',_0x86d7c3,async()=>{if(S(_0x480189['worktreeID']),!_0x480189['unitID'])throw X('unitID\x20is\x20required');let _0x558850=await this['_requireWorktreeAggregate'](_0x86d7c3,_0x480189['worktreeID']);if(_0x558850['worktree']['status']!=='ready')throw new i('WORKTREE_STATUS_MISMATCH','Worktree\x20'+_0x480189['worktreeID']+'\x20cannot\x20preview\x20from\x20'+_0x558850['worktree']['status'],{'details':{'status':_0x558850['worktree']['status']}});let _0xa242af=_0x558850['units']['find'](_0x3cad4b=>_0x3cad4b['unitID']===_0x480189['unitID']);if(!_0xa242af)throw new i('WORKTREE_UNIT_NOT_FOUND','Unit\x20'+_0x480189['unitID']+'\x20does\x20not\x20exist\x20in\x20Worktree\x20'+_0x480189['worktreeID']);if(_0xa242af['removed']){_0x3f3632={'status':'not-applicable','reason':'removed-unit','worktreeID':_0x480189['worktreeID'],'unitID':_0x480189['unitID']};return;}if(_0xa242af['source']==='worktree'){_0x3f3632={'status':'not-applicable','reason':'worktree-created-unit','worktreeID':_0x480189['worktreeID'],'unitID':_0x480189['unitID']};return;}if(J(_0xa242af['mergeResult'])){_0x3f3632={'status':'already-merged','worktreeID':_0x480189['worktreeID'],'unitID':_0x480189['unitID'],'mergeResult':q(_0xa242af['mergeResult'])};return;}let _0x1c0a3b=B(_0xa242af),_0x1bdc04=O(_0xa242af),_0x3c6943=await this['_trunkService']['getUnitLoadData']({'unitID':_0xa242af['unitID'],'type':_0xa242af['type'],'revision':0x0},_0x5b89d9);if(_0x3c6943['targetRevision']===_0x1c0a3b){_0x3f3632={'status':'not-behind','worktreeID':_0x480189['worktreeID'],'unitID':_0x480189['unitID']};return;}if(_0x3c6943['targetRevision']<_0x1c0a3b)throw Z('Trunk\x20head\x20is\x20behind\x20the\x20Worktree\x20baseline');let _0x2bc393=k(_0xa242af,_0x1bdc04,await this['_database'](()=>this['_dbAdapter']['getDraftChangesets'](_0x86d7c3,_0xa242af['worktreeID'],_0xa242af['unitID'],{'from':_0x1c0a3b,'to':_0x1bdc04}))),_0x4f7439=await this['_trunkService']['getChangesets']({'unitID':_0xa242af['unitID'],'type':_0xa242af['type'],'from':_0x1c0a3b,'to':_0x3c6943['targetRevision']},_0x5b89d9);try{let _0x1c2cb4={'context':_0x86d7c3,'dbAdapter':this['_trunkDbAdapter'],'unitID':_0xa242af['unitID'],'type':_0xa242af['type'],...this['_runtimeOptions']===void 0x0?{}:{'runtime':this['_runtimeOptions']}},_0x41312b=_0x1bdc04===_0x1c0a3b?await s({..._0x1c2cb4,'expectedRevision':_0x3c6943['targetRevision']}):await l({..._0x1c2cb4,'trunkHeadRevision':_0x3c6943['targetRevision'],'original':A(_0x558850['worktree']['sid'],_0xa242af,_0x1bdc04,_0x2bc393,{'userID':_0x5b89d9['userID'],'memberID':'worktree-merge-preview'}),'trunkHistory':_0x4f7439['changesets']});_0x3f3632={'status':'preview','worktreeID':_0x480189['worktreeID'],'unitID':_0x480189['unitID'],'preview':_0x41312b};}catch(_0x301cee){if(_0x301cee instanceof n['CollabError']&&_0x301cee['code']==='OT_CONFLICT'){_0x3f3632={'status':'conflict','worktreeID':_0x480189['worktreeID'],'unitID':_0x480189['unitID'],'error':M(_0x301cee)};return;}throw _0x301cee;}}),_0x3f3632;});}['getUnitLoadData'](_0x3e5529,_0x2ff82f){return this['_call']('getUnitLoadData',()=>(S(_0x3e5529['worktreeID']),this['_draftService'](_0x3e5529['worktreeID'])['getUnitLoadData']({'unitID':_0x3e5529['unitID'],'type':_0x3e5529['type'],'revision':_0x3e5529['revision']},C(_0x2ff82f))));}['getChangesets'](_0x249711,_0x15772e){return this['_call']('getChangesets',()=>(S(_0x249711['worktreeID']),this['_draftService'](_0x249711['worktreeID'])['getChangesets']({'unitID':_0x249711['unitID'],'type':_0x249711['type'],'from':_0x249711['from'],'to':_0x249711['to']},C(_0x15772e))));}['getSheetBlock'](_0x1795d1,_0x555cef){return this['_call']('getSheetBlock',()=>(S(_0x1795d1['worktreeID']),this['_draftService'](_0x1795d1['worktreeID'])['getSheetBlock']({'unitID':_0x1795d1['unitID'],'type':_0x1795d1['type'],'blockID':_0x1795d1['blockID']},C(_0x555cef))));}['submitChangeset'](_0x1eeb65,_0x1c8274){return this['_call']('submitChangeset',()=>(S(_0x1eeb65['worktreeID']),this['_draftService'](_0x1eeb65['worktreeID'])['submitChangeset']({'changeset':_0x1eeb65['changeset']},w(_0x1c8274))));}['dispose'](){return this['_lifecycle']['dispose'](async()=>{this['_middleware']['clear'](),this['_events']['clear']();let _0x11725a=[...this['_draftServices']['values']()];this['_draftServices']['clear'](),await Promise['all'](_0x11725a['map'](_0x245b8c=>_0x245b8c['dispose']()));});}['_draftService'](_0x1c7c11){let _0x3f4bfa=this['_draftServices']['get'](_0x1c7c11);if(_0x3f4bfa)return _0x3f4bfa;let _0x4e37d5=new n['UniverCollabService']({'dbAdapter':new a(_0x1c7c11,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 _0x4e37d5['use']('createUnit',(_0x286ca9,_0x3d71a0)=>{let _0x62efaf=E(_0x286ca9['request'],_0x1c7c11);return this['_middleware']['run']('createWorktreeUnit',{'userID':_0x286ca9['userID'],'customData':_0x286ca9['customData'],'request':_0x62efaf},_0x3d71a0);}),_0x4e37d5['use']('readUnitData',(_0x46d75d,_0x2d83be)=>{let _0x13e3aa=E(_0x46d75d['request'],_0x1c7c11);return this['_middleware']['run']('readUnitData',{'userID':_0x46d75d['userID'],'customData':_0x46d75d['customData'],'request':_0x13e3aa},_0x2d83be);}),_0x4e37d5['use']('submitChangeset',(_0x50e66c,_0x3ed7a3)=>{let _0x7dca44=E(_0x50e66c['request'],_0x1c7c11);return this['_middleware']['run']('submitChangeset',{'userID':_0x50e66c['userID'],'memberID':_0x50e66c['memberID'],'customData':_0x50e66c['customData'],'request':_0x7dca44},_0x3ed7a3);}),_0x4e37d5['use']('applyChangeset',(_0x24f1ba,_0x186818)=>{let _0x3d0b70=E(_0x24f1ba['request'],_0x1c7c11);return this['_middleware']['run']('applyChangeset',{'userID':_0x24f1ba['userID'],'memberID':_0x24f1ba['memberID'],'customData':_0x24f1ba['customData'],'request':_0x3d0b70,'attempt':_0x24f1ba['attempt'],'currentRevision':_0x24f1ba['currentRevision'],'changeset':_0x24f1ba['changeset']},_0x186818);}),_0x4e37d5['use']('commitChangeset',(_0x498f5b,_0x1f1d26)=>{let _0x6aed05=E(_0x498f5b['request'],_0x1c7c11);return this['_middleware']['run']('commitChangeset',{'userID':_0x498f5b['userID'],'memberID':_0x498f5b['memberID'],'customData':_0x498f5b['customData'],'request':_0x6aed05,'attempt':_0x498f5b['attempt'],'expectedHeadRevision':_0x498f5b['expectedHeadRevision'],'requiredUnitPermissions':_0x498f5b['requiredUnitPermissions'],'changeset':_0x498f5b['changeset']},_0x1f1d26);}),_0x4e37d5['on']('changesetCommitted',_0x4ca888=>{let _0x3703cb=E(_0x4ca888['request'],_0x1c7c11);return this['_events']['emit']('changesetCommitted',{'userID':_0x4ca888['userID'],'memberID':_0x4ca888['memberID'],'customData':_0x4ca888['customData'],'request':_0x3703cb,'changeset':_0x4ca888['changeset'],'requiredUnitPermissions':_0x4ca888['requiredUnitPermissions'],'committedAt':_0x4ca888['committedAt']});}),_0x4e37d5['on']('unitCreated',async _0x4efb7d=>{let _0x554d6e=E(_0x4efb7d['request'],_0x1c7c11),_0x1adfb8=R(await this['_requireWorktreeAggregate']({'userID':_0x4efb7d['userID'],'customData':_0x4efb7d['customData'],'request':_0x554d6e},_0x1c7c11),_0x1c7c11);await this['_events']['emit']('worktreeUnitCreated',{'userID':_0x4efb7d['userID'],'customData':_0x4efb7d['customData'],'request':_0x554d6e,'worktree':_0x1adfb8,'unit':U(_0x1adfb8,_0x4efb7d['record']['unitID']),'occurredAt':_0x4efb7d['createdAt']});}),this['_draftServices']['set'](_0x1c7c11,_0x4e37d5),_0x4e37d5;}async['_mergeUnit'](_0x37df53,_0x24ba9f,_0x4b3d78,_0x376ab7){try{if(_0x4b3d78['removed'])return{'status':'removed'};if(_0x4b3d78['source']==='worktree')return await this['_mergeCreatedUnit'](_0x37df53,_0x4b3d78,_0x376ab7);let _0x8763f4=B(_0x4b3d78),_0xd48c9c=O(_0x4b3d78);if(_0xd48c9c===_0x8763f4)return{'status':'unchanged'};let _0x12ed79=k(_0x4b3d78,_0xd48c9c,await this['_database'](()=>this['_dbAdapter']['getDraftChangesets'](_0x37df53,_0x4b3d78['worktreeID'],_0x4b3d78['unitID'],{'from':_0x8763f4,'to':_0xd48c9c}))),_0xdc1566=await this['_trunkService']['submitChangeset']({'changeset':A(_0x24ba9f,_0x4b3d78,_0xd48c9c,_0x12ed79,_0x376ab7)},_0x376ab7);return _0xdc1566['status']==='committed'||_0xdc1566['status']==='already-committed'?{'status':'merged','trunkRevision':_0xdc1566['changeset']['revision']}:j('error'in _0xdc1566?_0xdc1566['error']:Error('Trunk\x20merge\x20failed'));}catch(_0x260f70){return j(_0x260f70);}}async['_mergeCreatedUnit'](_0x21e63f,_0x3c494c,_0x114d2f){let _0x45eb35=O(_0x3c494c),_0x243474=await this['_database'](()=>this['_dbAdapter']['getUnitMergeArtifact'](_0x21e63f,_0x3c494c['worktreeID'],_0x3c494c['unitID']));if(!_0x243474){let _0x435eef=await s({'context':_0x21e63f,'dbAdapter':new a(_0x3c494c['worktreeID'],this['_trunkDbAdapter'],this['_dbAdapter']),'unitID':_0x3c494c['unitID'],'type':_0x3c494c['type'],'expectedRevision':_0x45eb35,...this['_runtimeOptions']===void 0x0?{}:{'runtime':this['_runtimeOptions']}});if(!await this['_database'](()=>this['_dbAdapter']['getUnitSeed'](_0x21e63f,_0x3c494c['worktreeID'],_0x3c494c['unitID'])))throw Z('Worktree-created\x20Unit\x20seed\x20is\x20missing');let _0x5a9950=await this['_database'](()=>this['_dbAdapter']['saveUnitMergeArtifact'](_0x21e63f,{'worktreeID':_0x3c494c['worktreeID'],'unitID':_0x3c494c['unitID'],'artifact':{'readyDraftHeadRevision':_0x45eb35,'unit':{'snapshot':H(_0x435eef['snapshot']),..._0x435eef['sheetBlocks']===void 0x0?{}:{'sheetBlocks':_0x435eef['sheetBlocks']}}}}));if(_0x5a9950['status']==='not-found')throw Y(_0x3c494c['worktreeID']);if(_0x5a9950['status']==='stale-merge')throw new i('WORKTREE_STALE_MERGE','Worktree\x20Unit\x20changed\x20while\x20saving\x20its\x20merge\x20artifact',{'retryable':!0x0});if(!('artifact'in _0x5a9950))throw Z('Database\x20returned\x20an\x20invalid\x20merge\x20artifact\x20result');_0x243474=_0x5a9950['artifact'];}if(!_0x243474)throw Z('Worktree\x20Unit\x20merge\x20artifact\x20is\x20missing');V(_0x3c494c,_0x45eb35,_0x243474);let _0x5e98f5=_0x243474['unit'];if(await this['_trunkService']['createUnitFromSnapshot']({'snapshot':_0x5e98f5['snapshot'],'sheetBlocks':[..._0x5e98f5['sheetBlocks']??[]]},_0x114d2f),!await this['_matchesCreatedTrunkUnit'](_0x21e63f,_0x3c494c,_0x5e98f5))throw new P('Trunk\x20Unit\x20'+_0x3c494c['unitID']+'\x20already\x20exists\x20with\x20different\x20content');return{'status':'merged','trunkRevision':0x1};}async['_matchesCreatedTrunkUnit'](_0x4d2f13,_0x1f9e08,_0x428f5e){let _0x597be9=await this['_database'](()=>this['_trunkDbAdapter']['getUnit'](_0x4d2f13,_0x1f9e08['unitID']));if(!_0x597be9||_0x597be9['type']!==_0x1f9e08['type']||_0x597be9['headRevision']<0x1||!F(await this['_database'](()=>this['_trunkDbAdapter']['getSnapshot'](_0x4d2f13,_0x1f9e08['unitID'],{'revision':0x1})),_0x428f5e['snapshot']))return!0x1;for(let _0x4462c5 of _0x428f5e['sheetBlocks']??[])if(!F(await this['_database'](()=>this['_trunkDbAdapter']['getSheetBlock'](_0x4d2f13,_0x1f9e08['unitID'],_0x4462c5['id'])),_0x4462c5))return!0x1;return!0x0;}async['_requireWorktreeAggregate'](_0x5eddc7,_0x16b473){let _0x44cf6f=await this['_database'](()=>this['_dbAdapter']['getWorktree'](_0x5eddc7,_0x16b473));if(!_0x44cf6f)throw Y(_0x16b473);return R(_0x44cf6f,_0x16b473),_0x44cf6f;}async['_transition'](_0x2c1b03,_0x5300dc,_0x2b269a,_0x9e1447){S(_0x2c1b03);let _0x40f981=await this['_database'](_0x9e1447);if(_0x40f981['status']==='not-found')throw Y(_0x2c1b03);let _0x51374e=R(_0x40f981['aggregate'],_0x2c1b03);if(_0x40f981['status']==='status-mismatch')throw new i('WORKTREE_STATUS_MISMATCH','Worktree\x20'+_0x2c1b03+'\x20cannot\x20transition\x20from\x20'+_0x51374e['status'],{'details':{'status':_0x51374e['status']}});return _0x40f981['status']==='transitioned'&&await this['_events']['emit']('worktreeStatusChanged',{'userID':_0x5300dc['userID'],'customData':_0x5300dc['customData'],'request':_0x2b269a,'worktree':_0x51374e,'previousStatus':_0x40f981['previousStatus'],'status':_0x51374e['status'],'occurredAt':Date['now']()}),{'worktree':_0x51374e};}async['_requireTrunkUnit'](_0x2b9fef,_0x3a72f4){let _0xcf4f4d=await this['_database'](()=>this['_trunkDbAdapter']['getUnit'](_0x2b9fef,_0x3a72f4));if(!_0xcf4f4d)throw new n['CollabError']('UNIT_NOT_FOUND','Trunk\x20Unit\x20'+_0x3a72f4+'\x20does\x20not\x20exist');if(_0xcf4f4d['unitID']!==_0x3a72f4||!x['has'](_0xcf4f4d['type'])||!Number['isSafeInteger'](_0xcf4f4d['headRevision'])||_0xcf4f4d['headRevision']<0x1)throw Z('Trunk\x20Database\x20returned\x20invalid\x20Unit\x20metadata');return _0xcf4f4d;}async['_database'](_0x12eda9){try{return await _0x12eda9();}catch(_0x5701b8){throw _0x5701b8 instanceof n['CollabError']||_0x5701b8 instanceof i?_0x5701b8:Z('Database\x20Adapter\x20failed',_0x5701b8);}}async['_call'](_0x2f0743,_0xd27f6a){try{return this['_metrics']['increment']('collaboration.worktree.service.call',{'operation':_0x2f0743}),await this['_lifecycle']['run'](_0xd27f6a);}catch(_0x2be1f8){throw _0x2be1f8 instanceof n['CollabError']||_0x2be1f8 instanceof i?_0x2be1f8:(this['_logger']['error']('Worktree\x20Service\x20operation\x20failed',{'operation':_0x2f0743,'error':$(_0x2be1f8)}),new n['CollabError']('INTERNAL_ERROR','Worktree\x20Service\x20failed',{'retryable':!0x0,'cause':_0x2be1f8}));}}['_assertRunning'](){if(this['_lifecycle']['state']!=='running')throw new n['CollabError']('INTERNAL_ERROR','Worktree\x20Service\x20is\x20'+this['_lifecycle']['state'],{'retryable':!0x0});}};function S(_0x1bea6b){if(!_0x1bea6b)throw X('worktreeID\x20is\x20required');}function C(_0x123e2f){return T(_0x123e2f),{'userID':_0x123e2f['userID'],'customData':_0x123e2f['customData']??Object['create'](null)};}function w(_0x5b9cfb){if(T(_0x5b9cfb),typeof _0x5b9cfb['memberID']!='string'||_0x5b9cfb['memberID']['length']===0x0)throw X('memberID\x20must\x20be\x20a\x20non-empty\x20string');return{'userID':_0x5b9cfb['userID'],'memberID':_0x5b9cfb['memberID'],'customData':_0x5b9cfb['customData']??Object['create'](null)};}function T(_0x59e0bc){if(!_0x59e0bc||typeof _0x59e0bc!='object')throw X('context\x20must\x20be\x20an\x20object');if(typeof _0x59e0bc['userID']!='string'||_0x59e0bc['userID']['length']===0x0)throw X('userID\x20must\x20be\x20a\x20non-empty\x20string');if(_0x59e0bc['customData']!==void 0x0&&(_0x59e0bc['customData']===null||typeof _0x59e0bc['customData']!='object'||Array['isArray'](_0x59e0bc['customData'])))throw X('customData\x20must\x20be\x20an\x20object');}function E(_0x4d7d0a,_0x2a186b){let _0x3d5d50=_0x4d7d0a;if(_0x3d5d50['worktreeID']!==void 0x0){if(_0x3d5d50['worktreeID']!==_0x2a186b)throw new n['CollabError']('INTERNAL_ERROR','Draft\x20Request\x20is\x20bound\x20to\x20a\x20different\x20Worktree',{'retryable':!0x0});return _0x3d5d50;}return Object['defineProperty'](_0x4d7d0a,'worktreeID',{'value':_0x2a186b,'enumerable':!0x0,'configurable':!0x1,'writable':!0x1}),_0x4d7d0a;}function D(_0x42d9e5){if(_0x42d9e5['some'](_0x2860d2=>!_0x2860d2))throw X('Initial\x20Unit\x20IDs\x20cannot\x20be\x20empty');if(new Set(_0x42d9e5)['size']!==_0x42d9e5['length'])throw X('Initial\x20Unit\x20IDs\x20must\x20be\x20unique');}function O(_0x41ad2c){let _0x3ae430=_0x41ad2c['readyDraftHeadRevision'],_0xafa6d0=_0x41ad2c['source']==='trunk'?B(_0x41ad2c):0x1;if(_0x3ae430===void 0x0||!Number['isSafeInteger'](_0x3ae430)||_0x3ae430<_0xafa6d0)throw Z('Merging\x20Worktree\x20Unit\x20has\x20no\x20valid\x20frozen\x20draft\x20head');return _0x3ae430;}function k(_0xca4543,_0x26ddb0,_0x2a516c){let _0x1c70bf=B(_0xca4543);if(_0x2a516c===null)throw new N('Frozen\x20Worktree\x20draft\x20history\x20is\x20no\x20longer\x20readable');let _0xa81f62=_0x1c70bf+0x1,_0x417c63=[];for(let _0x191958 of _0x2a516c){if(_0x191958['unitID']!==_0xca4543['unitID']||_0x191958['type']!==_0xca4543['type']||_0x191958['baseRev']!==_0xa81f62-0x1||_0x191958['revision']!==_0xa81f62)throw new N('Frozen\x20Worktree\x20draft\x20history\x20is\x20not\x20contiguous');_0x417c63['push'](...structuredClone(_0x191958['mutations'])),_0xa81f62+=0x1;}if(_0xa81f62-0x1!==_0x26ddb0)throw new N('Frozen\x20Worktree\x20draft\x20history\x20is\x20incomplete');return _0x417c63;}function A(_0x3c8886,_0x1bd4ea,_0x2273cf,_0x2e6216,_0x4a8cae){let _0x8aa7f1=B(_0x1bd4ea);return{'unitID':_0x1bd4ea['unitID'],'type':_0x1bd4ea['type'],'baseRev':_0x8aa7f1,'revision':_0x8aa7f1+0x1,'userID':_0x4a8cae['userID'],'memberID':_0x4a8cae['memberID'],'sid':_0x3c8886,'reqId':_0x2273cf-_0x8aa7f1,'mutations':_0x2e6216};}function j(_0x5ab010){let _0x3947e7=M(_0x5ab010);return _0x5ab010 instanceof N||_0x5ab010 instanceof P||_0x5ab010 instanceof n['CollabError']&&_0x5ab010['code']==='OT_CONFLICT'?{'status':'conflict','error':_0x3947e7}:{'status':'failed','error':_0x3947e7};}function M(_0x4a7310){return _0x4a7310 instanceof N?{'code':'WORKTREE_DRAFT_HISTORY_INVALID','message':_0x4a7310['message'],'retryable':!0x0}:_0x4a7310 instanceof P?{'code':'WORKTREE_CREATE_CONFLICT','message':_0x4a7310['message'],'retryable':!0x1}:_0x4a7310 instanceof n['CollabError']||_0x4a7310 instanceof i?{'code':_0x4a7310['code'],'message':_0x4a7310['message'],'retryable':_0x4a7310['retryable']}:{'code':'INTERNAL_ERROR','message':_0x4a7310 instanceof Error?_0x4a7310['message']:'Merge\x20failed','retryable':!0x0};}var N=class extends Error{constructor(_0x531601){super(_0x531601),this['name']='FrozenDraftConflict';}},P=class extends Error{constructor(_0x54bca1){super(_0x54bca1),this['name']='WorktreeCreateConflict';}};function F(_0x1646ca,_0x3d8ada){return(0x0,t['isDeepStrictEqual'])(I(_0x1646ca),I(_0x3d8ada));}function I(_0x3eac18){if(_0x3eac18!==void 0x0)return JSON['parse'](JSON['stringify'](_0x3eac18,(_0x35a86f,_0x2b0149)=>_0x2b0149 instanceof Uint8Array?{'__univerCollaborationBinary':[..._0x2b0149]}:_0x2b0149));}function L(_0x1800f6,_0x39dd05){let _0x53f534=new Set(_0x1800f6['units']['map'](({unitID:_0x493aa4})=>_0x493aa4));if(_0x53f534['size']!==_0x39dd05['length']||_0x39dd05['some'](_0x55fc9d=>!_0x53f534['has'](_0x55fc9d)))throw Z('Database\x20returned\x20incomplete\x20initial\x20Worktree\x20Units');}function R(_0x4d79b0,_0x5b238b){let {worktree:_0x16e2a6,units:_0x32085c}=_0x4d79b0;if(_0x16e2a6['worktreeID']!==_0x5b238b||!_0x16e2a6['sid']||!W(_0x16e2a6['status']))throw Z('Database\x20returned\x20invalid\x20Worktree\x20metadata');let _0x233148=new Set(),_0x10523c=_0x32085c['map'](_0x55609b=>{let _0x1c7964=_0x55609b['source']==='trunk'&&Number['isSafeInteger'](_0x55609b['baselineTrunkRevision'])&&_0x55609b['baselineTrunkRevision']>=0x1&&_0x55609b['draftHeadRevision']>=_0x55609b['baselineTrunkRevision']||_0x55609b['source']==='worktree'&&_0x55609b['baselineTrunkRevision']===void 0x0&&_0x55609b['draftHeadRevision']>=0x1;if(_0x55609b['worktreeID']!==_0x5b238b||!_0x55609b['unitID']||_0x233148['has'](_0x55609b['unitID'])||!x['has'](_0x55609b['type'])||!_0x1c7964||!Number['isSafeInteger'](_0x55609b['draftHeadRevision'])||_0x55609b['readyDraftHeadRevision']!==void 0x0&&_0x55609b['readyDraftHeadRevision']!==_0x55609b['draftHeadRevision']||_0x55609b['mergeResult']!==void 0x0&&_0x55609b['readyDraftHeadRevision']===void 0x0||_0x55609b['removed']!==void 0x0&&typeof _0x55609b['removed']!='boolean'||!G(_0x55609b['mergeResult']))throw Z('Database\x20returned\x20invalid\x20Worktree\x20Unit\x20metadata');return _0x233148['add'](_0x55609b['unitID']),z(_0x55609b);});if(_0x16e2a6['status']==='merged'&&_0x10523c['some'](({mergeResult:_0x1342b6})=>!J(_0x1342b6)))throw Z('Merged\x20Worktree\x20contains\x20an\x20incomplete\x20Unit');return{'worktreeID':_0x16e2a6['worktreeID'],'status':_0x16e2a6['status'],'units':_0x10523c};}function z(_0x17ec2d){return{'unitID':_0x17ec2d['unitID'],'type':_0x17ec2d['type'],'source':_0x17ec2d['source'],..._0x17ec2d['baselineTrunkRevision']===void 0x0?{}:{'baselineTrunkRevision':_0x17ec2d['baselineTrunkRevision']},'draftHeadRevision':_0x17ec2d['draftHeadRevision'],..._0x17ec2d['readyDraftHeadRevision']===void 0x0?{}:{'readyDraftHeadRevision':_0x17ec2d['readyDraftHeadRevision']},..._0x17ec2d['removed']===void 0x0?{}:{'removed':_0x17ec2d['removed']},..._0x17ec2d['mergeResult']===void 0x0?{}:{'mergeResult':K(_0x17ec2d['mergeResult'])}};}function B(_0x5c77a9){if(_0x5c77a9['source']!=='trunk'||!Number['isSafeInteger'](_0x5c77a9['baselineTrunkRevision'])||_0x5c77a9['baselineTrunkRevision']<0x1)throw Z('Trunk-sourced\x20Worktree\x20Unit\x20has\x20no\x20valid\x20baseline');return _0x5c77a9['baselineTrunkRevision'];}function V(_0x2c08e1,_0x3f2fc7,_0x39a4df){if(_0x39a4df['readyDraftHeadRevision']!==_0x3f2fc7||_0x39a4df['unit']['snapshot']['unitID']!==_0x2c08e1['unitID']||_0x39a4df['unit']['snapshot']['type']!==_0x2c08e1['type']||_0x39a4df['unit']['snapshot']['rev']!==0x1)throw Z('Database\x20returned\x20an\x20invalid\x20Worktree\x20Unit\x20merge\x20artifact');}function H(_0x5ceee9){let _0x190bce={..._0x5ceee9,'rev':0x1};return _0x5ceee9['workbook']?{..._0x190bce,'workbook':{..._0x5ceee9['workbook'],'rev':0x1}}:_0x5ceee9['doc']?{..._0x190bce,'doc':{..._0x5ceee9['doc'],'rev':0x1}}:_0x5ceee9['slide']?{..._0x190bce,'slide':{..._0x5ceee9['slide'],'rev':0x1}}:_0x5ceee9['board']?{..._0x190bce,'board':{..._0x5ceee9['board'],'rev':0x1}}:_0x190bce;}function U(_0x412992,_0xa087d7){let _0x521a64=_0x412992['units']['find'](_0x13776f=>_0x13776f['unitID']===_0xa087d7);if(!_0x521a64)throw Z('Database\x20omitted\x20the\x20added\x20Worktree\x20Unit');return _0x521a64;}function W(_0x5258b6){return _0x5258b6==='draft'||_0x5258b6==='ready'||_0x5258b6==='merging'||_0x5258b6==='merged'||_0x5258b6==='discarded';}function G(_0xe01eb5){return _0xe01eb5===void 0x0?!0x0:!_0xe01eb5||typeof _0xe01eb5!='object'||!('status'in _0xe01eb5)?!0x1:_0xe01eb5['status']==='unchanged'||_0xe01eb5['status']==='removed'?!0x0:_0xe01eb5['status']==='merged'&&'trunkRevision'in _0xe01eb5?typeof _0xe01eb5['trunkRevision']=='number'&&Number['isSafeInteger'](_0xe01eb5['trunkRevision'])&&_0xe01eb5['trunkRevision']>=0x1:_0xe01eb5['status']!=='conflict'&&_0xe01eb5['status']!=='failed'||!('error'in _0xe01eb5)||!_0xe01eb5['error']||typeof _0xe01eb5['error']!='object'||!('code'in _0xe01eb5['error'])||!('message'in _0xe01eb5['error'])||!('retryable'in _0xe01eb5['error'])?!0x1:typeof _0xe01eb5['error']['code']=='string'&&!!_0xe01eb5['error']['code']&&typeof _0xe01eb5['error']['message']=='string'&&!!_0xe01eb5['error']['message']&&typeof _0xe01eb5['error']['retryable']=='boolean';}function K(_0x4ce707){return _0x4ce707['status']==='merged'?{'status':'merged','trunkRevision':_0x4ce707['trunkRevision']}:_0x4ce707['status']==='unchanged'||_0x4ce707['status']==='removed'?{'status':_0x4ce707['status']}:{'status':_0x4ce707['status'],'error':{'code':_0x4ce707['error']['code'],'message':_0x4ce707['error']['message'],'retryable':_0x4ce707['error']['retryable']}};}function q(_0x5f0b50){if(_0x5f0b50?.['status']==='merged')return{'status':'merged','trunkRevision':_0x5f0b50['trunkRevision']};if(_0x5f0b50?.['status']==='unchanged')return{'status':'unchanged'};throw Z('Worktree\x20Unit\x20merge\x20result\x20is\x20not\x20terminal');}function J(_0x9ebf47){return _0x9ebf47?.['status']==='merged'||_0x9ebf47?.['status']==='unchanged'||_0x9ebf47?.['status']==='removed';}function Y(_0x2a5908){return new i('WORKTREE_NOT_FOUND','Worktree\x20'+_0x2a5908+'\x20does\x20not\x20exist');}function X(_0x39ba68){return new n['CollabError']('INVALID_REQUEST',_0x39ba68);}function Z(_0x2d014f,_0x2e5733){return new n['CollabError']('ADAPTER_FAILURE',_0x2d014f,{'retryable':!0x0,..._0x2e5733===void 0x0?{}:{'cause':_0x2e5733}});}function re(_0x44740e){return _0x44740e?{'debug':(..._0x321f67)=>Q(()=>_0x44740e['debug'](..._0x321f67)),'info':(..._0x534c09)=>Q(()=>_0x44740e['info'](..._0x534c09)),'warn':(..._0x320774)=>Q(()=>_0x44740e['warn'](..._0x320774)),'error':(..._0x10816b)=>Q(()=>_0x44740e['error'](..._0x10816b))}:{'debug':()=>void 0x0,'info':()=>void 0x0,'warn':()=>void 0x0,'error':()=>void 0x0};}function ie(_0x59379d){return _0x59379d?{'increment':(..._0x11edc5)=>Q(()=>_0x59379d['increment'](..._0x11edc5)),'observe':(..._0x3e23de)=>Q(()=>_0x59379d['observe'](..._0x3e23de))}:{'increment':()=>void 0x0,'observe':()=>void 0x0};}function Q(_0x521cf3){try{_0x521cf3();}catch{}}function $(_0xd73931){return _0xd73931 instanceof Error?_0xd73931['message']:String(_0xd73931);}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
+ (function(_0x57d3bf,_0xc337e7){const _0x3aaa4c=_0x594d,_0x65cbbb=_0x57d3bf();while(!![]){try{const _0x164df1=parseInt(_0x3aaa4c(0x11a))/0x1*(parseInt(_0x3aaa4c(0x117))/0x2)+-parseInt(_0x3aaa4c(0x115))/0x3+-parseInt(_0x3aaa4c(0x114))/0x4+-parseInt(_0x3aaa4c(0x112))/0x5*(-parseInt(_0x3aaa4c(0x111))/0x6)+-parseInt(_0x3aaa4c(0x113))/0x7+-parseInt(_0x3aaa4c(0x110))/0x8*(-parseInt(_0x3aaa4c(0x118))/0x9)+-parseInt(_0x3aaa4c(0x119))/0xa*(-parseInt(_0x3aaa4c(0x116))/0xb);if(_0x164df1===_0xc337e7)break;else _0x65cbbb['push'](_0x65cbbb['shift']());}catch(_0x37830c){_0x65cbbb['push'](_0x65cbbb['shift']());}}}(_0x11c4,0x9d1a6));function _0x594d(_0x1a5b1a,_0x44c921){_0x1a5b1a=_0x1a5b1a-0x110;const _0x11c464=_0x11c4();let _0x594dfb=_0x11c464[_0x1a5b1a];return _0x594dfb;}import _0x31b48e from'./index.cjs';function _0x11c4(){const _0x5dfff7=['18UfZUGc','1335175PwZUOF','8950921kETsGu','443976bXTxQC','1355526KrsbGA','57167IzpHBT','71424eAFXTY','19953ijsmBE','1150jkWRjE','9ecsGBq','2760KHMQfk'];_0x11c4=function(){return _0x5dfff7;};return _0x11c4();}const facadeExport0=_0x31b48e['UniverCollabWorktreeService'],facadeExport1=_0x31b48e['WorktreeError'];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.0",
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.0",
20
+ "@univerjs/protocol": "1.0.0"
21
21
  }
22
22
  }