@univerjs-pro/collaboration-worktree-database-memory 1.0.0-beta.2

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/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # @univerjs-pro/collaboration-worktree-database-memory
2
+
3
+ English | [简体中文](./README.zh-CN.md)
4
+
5
+ An in-process `IWorktreeDatabaseAdapter` for tests, local development, and temporary Worktree data.
6
+
7
+ ```bash
8
+ pnpm add \
9
+ @univerjs-pro/collaboration-worktree-service \
10
+ @univerjs-pro/collaboration-worktree-database-memory
11
+ ```
12
+
13
+ ```ts
14
+ const worktreeDatabase = new MemoryWorktreeDatabaseAdapter();
15
+ const worktreeService = new UniverCollabWorktreeService({
16
+ trunk: {
17
+ service: collabService,
18
+ dbAdapter: trunkDatabase,
19
+ },
20
+ dbAdapter: worktreeDatabase,
21
+ });
22
+
23
+ await worktreeService.dispose();
24
+ await worktreeDatabase.dispose();
25
+ ```
26
+
27
+ It implements Worktree state transitions, draft revision CAS, and per-Unit merge-result contracts. Draft submission idempotency is resolved by Worktree Service from continuous history.
28
+
29
+ All Worktree data is lost when the process exits, and state is not shared between Node.js processes. Use SQLite or another persistent Adapter for persistent production data.
@@ -0,0 +1,31 @@
1
+ # @univerjs-pro/collaboration-worktree-database-memory
2
+
3
+ [English](./README.md) | [简体中文](./README.zh-CN.md)
4
+
5
+ 进程内 `IWorktreeDatabaseAdapter`,适合测试、本地开发和临时 Worktree 数据。
6
+
7
+ ```bash
8
+ pnpm add \
9
+ @univerjs-pro/collaboration-worktree-service \
10
+ @univerjs-pro/collaboration-worktree-database-memory
11
+ ```
12
+
13
+ ```ts
14
+ const worktreeDatabase = new MemoryWorktreeDatabaseAdapter();
15
+ const worktreeService = new UniverCollabWorktreeService({
16
+ trunk: {
17
+ service: collabService,
18
+ dbAdapter: trunkDatabase,
19
+ },
20
+ dbAdapter: worktreeDatabase,
21
+ });
22
+
23
+ await worktreeService.dispose();
24
+ await worktreeDatabase.dispose();
25
+ ```
26
+
27
+ 它实现 Worktree 状态转换、draft revision CAS 和逐 Unit merge result 契约。draft 提交
28
+ 幂等由 Worktree Service 从连续 history 中判断。
29
+
30
+ 进程退出后所有 Worktree 数据丢失,多个 Node.js 进程之间也不共享状态。持久化生产数据
31
+ 应使用 SQLite 或其他持久化 Adapter。
package/dist/index.cjs ADDED
@@ -0,0 +1 @@
1
+ Object['defineProperty'](exports,Symbol['toStringTag'],{'value':'Module'});let e=require('node:util'),t=require('@univerjs-pro/collaboration-service'),n=require('@univerjs/protocol');var r=new Set([n['UniverType']['UNIVER_SHEET'],n['UniverType']['UNIVER_DOC'],n['UniverType']['UNIVER_SLIDE'],n['UniverType']['UNIVER_BOARD'],n['UniverType']['UNIVER_BASE']]),i=class{['_worktrees']=new Map();['_disposed']=!0x1;async['getWorktree'](_0x1689ae,_0x85c58a){this['_assertOpen']();let _0x46f9a8=this['_worktrees']['get'](_0x85c58a);return _0x46f9a8?a(_0x46f9a8):null;}async['getWorktreeUnit'](_0x1911e1,_0x554b42,_0x40c34e){this['_assertOpen']();let _0x53bcd1=this['_worktrees']['get'](_0x554b42)?.['units']['get'](_0x40c34e);return _0x53bcd1?_(_0x53bcd1['record']):null;}async['getDraftChangesets'](_0x50e875,_0x84a1d5,_0x229448,_0xf08510){this['_assertOpen'](),f(_0xf08510);let _0x41b583=this['_worktrees']['get'](_0x84a1d5)?.['units']['get'](_0x229448);if(!_0x41b583)return{'changesets':[],'latestRevision':0x0};let _0x82ed73=_0xf08510['to']===0x0?_0x41b583['record']['draftHeadRevision']:Math['min'](_0xf08510['to'],_0x41b583['record']['draftHeadRevision']);return{'changesets':[..._0x41b583['changesets']['entries']()]['filter'](([_0x86450])=>_0x86450>_0xf08510['from']&&_0x86450<=_0x82ed73)['sort'](([_0x1f93f4],[_0x74d768])=>_0x1f93f4-_0x74d768)['map'](([,_0x16ad7d])=>_(_0x16ad7d)),'latestRevision':_0x41b583['record']['draftHeadRevision']};}async['getUnitSeed'](_0x429072,_0x59fcc0,_0x24f4cd){this['_assertOpen']();let _0x39d7c4=this['_worktrees']['get'](_0x59fcc0)?.['units']['get'](_0x24f4cd)?.['seed'];return _0x39d7c4?_(_0x39d7c4):null;}async['getUnitMergeArtifact'](_0x22f896,_0x22a73d,_0xdf1d3b){this['_assertOpen']();let _0x65c36d=this['_worktrees']['get'](_0x22a73d)?.['units']['get'](_0xdf1d3b)?.['mergeArtifact'];return _0x65c36d?_(_0x65c36d):null;}async['createWorktree'](_0x847ada,_0x1c0e67){this['_assertOpen'](),o(_0x1c0e67);let _0x3d27a4=this['_worktrees']['get'](_0x1c0e67['record']['worktreeID']);if(_0x3d27a4)return{'status':'already-exists','aggregate':a(_0x3d27a4)};let _0x1633ab=new Map();for(let _0x4aaca6 of _0x1c0e67['units'])_0x1633ab['set'](_0x4aaca6['unitID'],{'record':_(_0x4aaca6),'changesets':new Map()});let _0x1526ac={'record':_(_0x1c0e67['record']),'units':_0x1633ab};return this['_worktrees']['set'](_0x1c0e67['record']['worktreeID'],_0x1526ac),{'status':'created','aggregate':a(_0x1526ac)};}async['addUnit'](_0x28fbe8,_0x11bd3b){this['_assertOpen']();let {unit:_0x57730b}=_0x11bd3b;s(_0x57730b);let _0x1bfd09=this['_worktrees']['get'](_0x57730b['worktreeID']);return _0x1bfd09?_0x1bfd09['units']['has'](_0x57730b['unitID'])?{'status':'already-exists','aggregate':a(_0x1bfd09)}:_0x1bfd09['record']['status']==='draft'?(c(_0x57730b),_0x1bfd09['units']['set'](_0x57730b['unitID'],{'record':_(_0x57730b),'changesets':new Map()}),{'status':'added','aggregate':a(_0x1bfd09)}):{'status':'status-mismatch','aggregate':a(_0x1bfd09)}:{'status':'not-found'};}async['createUnit'](_0x1e2456,_0x3f5b42){this['_assertOpen'](),l(_0x3f5b42['unit'],_0x3f5b42['seed']);let _0x1a6c98=this['_worktrees']['get'](_0x3f5b42['unit']['worktreeID']);if(!_0x1a6c98)return{'status':'not-found'};let _0x3e689f=_0x1a6c98['units']['get'](_0x3f5b42['unit']['unitID']);return _0x3e689f?{'status':_0x3e689f['record']['source']==='worktree'&&_0x3e689f['record']['type']===_0x3f5b42['unit']['type']&&_0x3e689f['seed']!==void 0x0&&(0x0,e['isDeepStrictEqual'])(_0x3e689f['seed'],_0x3f5b42['seed'])?'already-created':'unit-exists','aggregate':a(_0x1a6c98)}:_0x1a6c98['record']['status']==='draft'?(_0x1a6c98['units']['set'](_0x3f5b42['unit']['unitID'],{'record':_(_0x3f5b42['unit']),'seed':_(_0x3f5b42['seed']),'changesets':new Map()}),{'status':'created','aggregate':a(_0x1a6c98)}):{'status':'status-mismatch','aggregate':a(_0x1a6c98)};}async['saveUnitMergeArtifact'](_0xe0274c,_0x1664ea){this['_assertOpen']();let _0x28d83d=this['_worktrees']['get'](_0x1664ea['worktreeID']),_0x2b94a0=_0x28d83d?.['units']['get'](_0x1664ea['unitID']);return!_0x28d83d||!_0x2b94a0?{'status':'not-found'}:_0x28d83d['record']['status']!=='merging'||_0x2b94a0['record']['source']!=='worktree'||_0x2b94a0['record']['readyDraftHeadRevision']!==_0x1664ea['artifact']['readyDraftHeadRevision']||m(_0x2b94a0['record'])?{'status':'stale-merge'}:_0x2b94a0['mergeArtifact']?{'status':'already-saved','artifact':_(_0x2b94a0['mergeArtifact'])}:(d(_0x2b94a0['record'],_0x1664ea['artifact']),_0x2b94a0['mergeArtifact']=_(_0x1664ea['artifact']),{'status':'saved','artifact':_(_0x1664ea['artifact'])});}async['commitDraftChangeset'](_0x44d41a,_0x468321){this['_assertOpen']();let _0x3fb4cf=this['_worktrees']['get'](_0x468321['worktreeID']),_0x14a230=_0x3fb4cf?.['units']['get'](_0x468321['changeset']['unitID']);if(!_0x3fb4cf||!_0x14a230)return{'status':'not-found'};if(_0x3fb4cf['record']['status']!=='draft')return{'status':'not-editable','worktreeStatus':_0x3fb4cf['record']['status']};if(m(_0x14a230['record']))return{'status':'unit-frozen'};if(_0x14a230['record']['draftHeadRevision']!==_0x468321['changeset']['revision']-0x1)return{'status':'revision-mismatch','actualHeadRevision':_0x14a230['record']['draftHeadRevision']};let _0x3fc448=_(_0x468321['changeset']);return _0x14a230['changesets']['set'](_0x3fc448['revision'],_0x3fc448),_0x14a230['record']={..._0x14a230['record'],'draftHeadRevision':_0x3fc448['revision']},{'status':'committed','changeset':_(_0x3fc448),'headRevision':_0x3fc448['revision']};}async['markReady'](_0x329a4b,_0x50d063){this['_assertOpen']();let _0x554005=this['_worktrees']['get'](_0x50d063);if(!_0x554005)return{'status':'not-found'};if(_0x554005['record']['status']==='ready')return{'status':'already-in-target','aggregate':a(_0x554005)};if(_0x554005['record']['status']!=='draft')return{'status':'status-mismatch','aggregate':a(_0x554005)};for(let _0x4319b5 of _0x554005['units']['values']())m(_0x4319b5['record'])||(_0x4319b5['record']={..._0x4319b5['record'],'readyDraftHeadRevision':_0x4319b5['record']['draftHeadRevision']});return _0x554005['record']={..._0x554005['record'],'status':'ready'},{'status':'transitioned','previousStatus':'draft','aggregate':a(_0x554005)};}async['reopenWorktree'](_0x4de3b6,_0x15d839){this['_assertOpen']();let _0x1b48d5=this['_worktrees']['get'](_0x15d839);if(!_0x1b48d5)return{'status':'not-found'};if(_0x1b48d5['record']['status']==='draft')return{'status':'already-in-target','aggregate':a(_0x1b48d5)};if(_0x1b48d5['record']['status']!=='ready')return{'status':'status-mismatch','aggregate':a(_0x1b48d5)};for(let _0x41fc4b of _0x1b48d5['units']['values']())m(_0x41fc4b['record'])||(_0x41fc4b['record']=p(_0x41fc4b['record']),delete _0x41fc4b['mergeArtifact']);return _0x1b48d5['record']={..._0x1b48d5['record'],'status':'draft'},{'status':'transitioned','previousStatus':'ready','aggregate':a(_0x1b48d5)};}async['discardWorktree'](_0x4627d3,_0x358107){this['_assertOpen']();let _0x316354=this['_worktrees']['get'](_0x358107);if(!_0x316354)return{'status':'not-found'};if(_0x316354['record']['status']==='discarded')return{'status':'already-in-target','aggregate':a(_0x316354)};if(_0x316354['record']['status']!=='draft'&&_0x316354['record']['status']!=='ready')return{'status':'status-mismatch','aggregate':a(_0x316354)};let _0x46fbbf=_0x316354['record']['status'];return _0x316354['record']={..._0x316354['record'],'status':'discarded'},{'status':'transitioned','previousStatus':_0x46fbbf,'aggregate':a(_0x316354)};}async['startOrResumeMerge'](_0x563bfe,_0x2a0ba5){this['_assertOpen']();let _0x2ea903=this['_worktrees']['get'](_0x2a0ba5);return _0x2ea903?_0x2ea903['record']['status']==='merged'?{'status':'already-merged','aggregate':a(_0x2ea903)}:_0x2ea903['record']['status']==='merging'?{'status':'resumed','aggregate':a(_0x2ea903)}:_0x2ea903['record']['status']==='ready'?(_0x2ea903['record']={..._0x2ea903['record'],'status':'merging'},{'status':'started','aggregate':a(_0x2ea903)}):{'status':'status-mismatch','aggregate':a(_0x2ea903)}:{'status':'not-found'};}async['recordUnitMergeResult'](_0x35cbc9,_0x273f23){this['_assertOpen'](),u(_0x273f23['mergeResult']);let _0x50463f=this['_worktrees']['get'](_0x273f23['worktreeID']),_0x195ab8=_0x50463f?.['units']['get'](_0x273f23['unitID']);if(!_0x50463f||!_0x195ab8)return{'status':'not-found'};if(_0x50463f['record']['status']!=='merging'||_0x195ab8['record']['readyDraftHeadRevision']!==_0x273f23['readyDraftHeadRevision'])return{'status':'stale-merge'};let _0x225b21=_0x195ab8['record']['mergeResult'];return _0x225b21&&(0x0,e['isDeepStrictEqual'])(_0x225b21,_0x273f23['mergeResult'])?{'status':'already-recorded','aggregate':a(_0x50463f)}:_0x225b21&&h(_0x225b21)?{'status':'stale-merge'}:(_0x195ab8['record']={..._0x195ab8['record'],'mergeResult':_(_0x273f23['mergeResult'])},{'status':'recorded','aggregate':a(_0x50463f)});}async['finishMerge'](_0xa94885,_0x5ce13c){this['_assertOpen']();let _0x155d7e=this['_worktrees']['get'](_0x5ce13c);if(!_0x155d7e)return{'status':'not-found'};if(_0x155d7e['record']['status']==='merged')return{'status':'already-in-target','aggregate':a(_0x155d7e)};if(_0x155d7e['record']['status']!=='merging')return{'status':'status-mismatch','aggregate':a(_0x155d7e)};let _0x174e88=[..._0x155d7e['units']['values']()]['every'](_0x53edda=>m(_0x53edda['record']));return _0x155d7e['record']={..._0x155d7e['record'],'status':_0x174e88?'merged':'ready'},{'status':'transitioned','previousStatus':'merging','aggregate':a(_0x155d7e)};}async['dispose'](){this['_disposed']||(this['_disposed']=!0x0,this['_worktrees']['clear']());}['_assertOpen'](){if(this['_disposed'])throw new t['CollabError']('INTERNAL_ERROR','Memory\x20Worktree\x20Database\x20Adapter\x20is\x20disposed');}};function a(_0x5e6077){return{'worktree':_(_0x5e6077['record']),'units':[..._0x5e6077['units']['values']()]['map'](({record:_0x18829b})=>_(_0x18829b))};}function o(_0xb4939e){if(!_0xb4939e['record']['worktreeID']||!_0xb4939e['record']['sid']||_0xb4939e['record']['status']!=='draft')throw g('New\x20Worktree\x20record\x20must\x20be\x20a\x20draft\x20with\x20identity');let _0x2c4a15=new Set();for(let _0x39befd of _0xb4939e['units']){if(_0x39befd['worktreeID']!==_0xb4939e['record']['worktreeID'])throw g('Initial\x20Unit\x20belongs\x20to\x20a\x20different\x20Worktree');if(_0x2c4a15['has'](_0x39befd['unitID']))throw g('Initial\x20Worktree\x20Units\x20must\x20be\x20unique');_0x2c4a15['add'](_0x39befd['unitID']),c(_0x39befd);}}function s(_0x5049b8){if(!_0x5049b8['worktreeID']||!_0x5049b8['unitID'])throw g('Worktree\x20and\x20Unit\x20identity\x20are\x20required');}function c(_0x38820f){if(s(_0x38820f),_0x38820f['source']!=='trunk'||!Number['isSafeInteger'](_0x38820f['baselineTrunkRevision'])||_0x38820f['baselineTrunkRevision']<0x1||!r['has'](_0x38820f['type'])||_0x38820f['draftHeadRevision']!==_0x38820f['baselineTrunkRevision']||_0x38820f['readyDraftHeadRevision']!==void 0x0||_0x38820f['mergeResult']!==void 0x0)throw g('New\x20Worktree\x20Unit\x20must\x20start\x20at\x20its\x20trunk\x20baseline');}function l(_0x22bfeb,_0x2096bd){if(s(_0x22bfeb),_0x22bfeb['source']!=='worktree'||_0x22bfeb['baselineTrunkRevision']!==void 0x0||!r['has'](_0x22bfeb['type'])||_0x22bfeb['draftHeadRevision']!==0x1||_0x22bfeb['readyDraftHeadRevision']!==void 0x0||_0x22bfeb['mergeResult']!==void 0x0||_0x2096bd['snapshot']['unitID']!==_0x22bfeb['unitID']||_0x2096bd['snapshot']['type']!==_0x22bfeb['type']||_0x2096bd['snapshot']['rev']!==0x1)throw g('Worktree-created\x20Unit\x20must\x20start\x20from\x20its\x20revision\x201\x20seed');}function u(_0x426952){if(_0x426952['status']==='merged'){if(!Number['isSafeInteger'](_0x426952['trunkRevision'])||_0x426952['trunkRevision']<0x1)throw g('Merged\x20result\x20requires\x20a\x20positive\x20trunk\x20revision');return;}if(_0x426952['status']!=='unchanged'&&(!_0x426952['error']['code']||!_0x426952['error']['message']||typeof _0x426952['error']['retryable']!='boolean'))throw g('Merge\x20error\x20must\x20be\x20stable\x20and\x20serializable');}function d(_0x19c3f0,_0x212696){if(_0x212696['unit']['snapshot']['unitID']!==_0x19c3f0['unitID']||_0x212696['unit']['snapshot']['type']!==_0x19c3f0['type']||_0x212696['unit']['snapshot']['rev']!==0x1)throw g('Worktree\x20Unit\x20merge\x20artifact\x20must\x20be\x20a\x20revision\x201\x20snapshot');}function f(_0x45b839){if(!Number['isSafeInteger'](_0x45b839['from'])||!Number['isSafeInteger'](_0x45b839['to'])||_0x45b839['from']<0x0||_0x45b839['to']<0x0)throw g('Changeset\x20range\x20revisions\x20must\x20be\x20non-negative');}function p(_0x1ef0ef){let {readyDraftHeadRevision:_0x9c2889,mergeResult:_0x2c4e3f,..._0xff3fe1}=_0x1ef0ef;return _0xff3fe1;}function m(_0x508099){return _0x508099['mergeResult']?h(_0x508099['mergeResult']):!0x1;}function h(_0x363d6e){return _0x363d6e['status']==='merged'||_0x363d6e['status']==='unchanged';}function g(_0x4b5cac){return new t['CollabError']('INVALID_REQUEST',_0x4b5cac);}function _(_0x187882){return structuredClone(_0x187882);}exports['MemoryWorktreeDatabaseAdapter']=i;
@@ -0,0 +1,28 @@
1
+ import { ChangesetRange, DatabaseContext } from "@univerjs-pro/collaboration-service";
2
+ import { AddWorktreeUnitDatabaseInput, AddWorktreeUnitDatabaseResult, CommitWorktreeChangesetInput, CommitWorktreeChangesetResult, CreateWorktreeDatabaseInput, CreateWorktreeDatabaseResult, CreateWorktreeUnitDatabaseInput, CreateWorktreeUnitDatabaseResult, IWorktreeDatabaseAdapter, RecordUnitMergeResultInput, RecordUnitMergeResultResult, SaveWorktreeUnitMergeArtifactInput, SaveWorktreeUnitMergeArtifactResult, StartMergeResult, WorktreeAggregateRecord, WorktreeRevisionRange, WorktreeTransitionResult, WorktreeUnitMergeArtifact, WorktreeUnitRecord, WorktreeUnitSeed } from "@univerjs-pro/collaboration-worktree-service";
3
+
4
+ //#region src/memory-worktree-database-adapter.d.ts
5
+ declare class MemoryWorktreeDatabaseAdapter implements IWorktreeDatabaseAdapter {
6
+ private readonly _worktrees;
7
+ private _disposed;
8
+ getWorktree(_context: DatabaseContext, worktreeID: string): Promise<WorktreeAggregateRecord | null>;
9
+ getWorktreeUnit(_context: DatabaseContext, worktreeID: string, unitID: string): Promise<WorktreeUnitRecord | null>;
10
+ getDraftChangesets(_context: DatabaseContext, worktreeID: string, unitID: string, range: WorktreeRevisionRange): Promise<ChangesetRange>;
11
+ getUnitSeed(_context: DatabaseContext, worktreeID: string, unitID: string): Promise<WorktreeUnitSeed | null>;
12
+ getUnitMergeArtifact(_context: DatabaseContext, worktreeID: string, unitID: string): Promise<WorktreeUnitMergeArtifact | null>;
13
+ createWorktree(_context: DatabaseContext, input: CreateWorktreeDatabaseInput): Promise<CreateWorktreeDatabaseResult>;
14
+ addUnit(_context: DatabaseContext, input: AddWorktreeUnitDatabaseInput): Promise<AddWorktreeUnitDatabaseResult>;
15
+ createUnit(_context: DatabaseContext, input: CreateWorktreeUnitDatabaseInput): Promise<CreateWorktreeUnitDatabaseResult>;
16
+ saveUnitMergeArtifact(_context: DatabaseContext, input: SaveWorktreeUnitMergeArtifactInput): Promise<SaveWorktreeUnitMergeArtifactResult>;
17
+ commitDraftChangeset(_context: DatabaseContext, input: CommitWorktreeChangesetInput): Promise<CommitWorktreeChangesetResult>;
18
+ markReady(_context: DatabaseContext, worktreeID: string): Promise<WorktreeTransitionResult>;
19
+ reopenWorktree(_context: DatabaseContext, worktreeID: string): Promise<WorktreeTransitionResult>;
20
+ discardWorktree(_context: DatabaseContext, worktreeID: string): Promise<WorktreeTransitionResult>;
21
+ startOrResumeMerge(_context: DatabaseContext, worktreeID: string): Promise<StartMergeResult>;
22
+ recordUnitMergeResult(_context: DatabaseContext, input: RecordUnitMergeResultInput): Promise<RecordUnitMergeResultResult>;
23
+ finishMerge(_context: DatabaseContext, worktreeID: string): Promise<WorktreeTransitionResult>;
24
+ dispose(): Promise<void>;
25
+ private _assertOpen;
26
+ }
27
+ //#endregion
28
+ export { MemoryWorktreeDatabaseAdapter };
package/dist/index.mjs ADDED
@@ -0,0 +1 @@
1
+ function _0x2324(_0x198f99,_0x184d0f){_0x198f99=_0x198f99-0xdb;const _0x31e2aa=_0x31e2();let _0x2324eb=_0x31e2aa[_0x198f99];return _0x2324eb;}function _0x31e2(){const _0x1ecb19=['4266XOxeVx','2598104OQCkvC','5749626DDUcfV','21465910sIFZDk','1281554AJJTOh','7cpaOPK','7606773BbqkFz','MemoryWorktreeDatabaseAdapter','521320yFXJNV','903KjvRaB','5Fgmvoe'];_0x31e2=function(){return _0x1ecb19;};return _0x31e2();}const _0x4ff3ff=_0x2324;(function(_0x19309f,_0x1237a5){const _0x5b2448=_0x2324,_0xfefa1b=_0x19309f();while(!![]){try{const _0x551b8a=-parseInt(_0x5b2448(0xde))/0x1+parseInt(_0x5b2448(0xe5))/0x2*(-parseInt(_0x5b2448(0xe3))/0x3)+parseInt(_0x5b2448(0xe2))/0x4+-parseInt(_0x5b2448(0xe4))/0x5*(-parseInt(_0x5b2448(0xdc))/0x6)+parseInt(_0x5b2448(0xdf))/0x7*(parseInt(_0x5b2448(0xdb))/0x8)+-parseInt(_0x5b2448(0xe0))/0x9+parseInt(_0x5b2448(0xdd))/0xa;if(_0x551b8a===_0x1237a5)break;else _0xfefa1b['push'](_0xfefa1b['shift']());}catch(_0x2c4212){_0xfefa1b['push'](_0xfefa1b['shift']());}}}(_0x31e2,0xc1283));import _0x48c1c5 from'./index.cjs';const facadeExport0=_0x48c1c5[_0x4ff3ff(0xe1)];export{facadeExport0 as MemoryWorktreeDatabaseAdapter};
package/package.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "@univerjs-pro/collaboration-worktree-database-memory",
3
+ "type": "module",
4
+ "version": "1.0.0-beta.2",
5
+ "main": "./dist/index.cjs",
6
+ "module": "./dist/index.mjs",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.mjs",
12
+ "require": "./dist/index.cjs"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "dependencies": {
19
+ "@univerjs-pro/collaboration-service": "1.0.0-beta.2",
20
+ "@univerjs-pro/collaboration-worktree-service": "1.0.0-beta.2",
21
+ "@univerjs/protocol": "1.0.0-beta.2"
22
+ }
23
+ }