@univerjs-pro/collaboration-comment-database-memory 1.0.0-insiders.20260808-70eefdd → 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/README.md ADDED
@@ -0,0 +1,23 @@
1
+ # @univerjs-pro/collaboration-comment-database-memory
2
+
3
+ English | [简体中文](./README.zh-CN.md)
4
+
5
+ An in-process `ICommentDatabaseAdapter` for tests, local development, and temporary Thread Comment Services.
6
+
7
+ ```bash
8
+ pnpm add \
9
+ @univerjs-pro/collaboration-comment-service \
10
+ @univerjs-pro/collaboration-comment-database-memory
11
+ ```
12
+
13
+ ```ts
14
+ const database = new MemoryCommentDatabaseAdapter();
15
+ const commentService = new UniverCommentService({ database });
16
+
17
+ await commentService.dispose();
18
+ await database.dispose();
19
+ ```
20
+
21
+ The Adapter serializes operations per Unit and implements the same concurrency-version checks as the SQLite Adapter.
22
+
23
+ All comments are 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,24 @@
1
+ # @univerjs-pro/collaboration-comment-database-memory
2
+
3
+ [English](./README.md) | [简体中文](./README.zh-CN.md)
4
+
5
+ 进程内 `ICommentDatabaseAdapter`,适合测试、本地开发和临时 Thread Comment Service。
6
+
7
+ ```bash
8
+ pnpm add \
9
+ @univerjs-pro/collaboration-comment-service \
10
+ @univerjs-pro/collaboration-comment-database-memory
11
+ ```
12
+
13
+ ```ts
14
+ const database = new MemoryCommentDatabaseAdapter();
15
+ const commentService = new UniverCommentService({ database });
16
+
17
+ await commentService.dispose();
18
+ await database.dispose();
19
+ ```
20
+
21
+ Adapter 按 Unit 串行操作,并实现与 SQLite Adapter 相同的并发版本检查。
22
+
23
+ 进程退出后所有评论丢失,多个 Node.js 进程也不共享状态。持久化生产数据应使用 SQLite
24
+ 或其他持久化 Adapter。
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object['defineProperty'](exports,Symbol['toStringTag'],{'value':'Module'});let e=require('node:crypto'),t=require('@univerjs/protocol');var n=class{['_units']=new Map();['_queues']=new Map();['_calls']=new Set();['_state']='running';['_disposePromise'];['createRoot'](_0xe4754a,_0x854b26){return this['_call'](()=>this['_enqueue'](_0xe4754a['unitID'],()=>{let _0x5862d7=this['_unit'](_0xe4754a['unitID']);if(_0x5862d7['has'](_0xe4754a['threadID']))return{'status':'duplicate'};let _0x52bdd9=Date['now'](),_0x26450a={..._0xe4754a,'replyID':_0xe4754a['threadID'],'mentions':[..._0xe4754a['mentions']],'solved':t['CommentSolvedStatus']['OpenOrReOpen'],'createdAt':_0x52bdd9,'updatedAt':_0x52bdd9,'generation':(0x0,e['randomUUID'])()};return _0x5862d7['set'](_0x26450a['replyID'],_0x26450a),{'status':'created','record':r(_0x26450a)};}));}['createReply'](_0x533bf5,_0x311747){return this['_call'](()=>this['_enqueue'](_0x533bf5['unitID'],()=>{let _0x4ca848=this['_unit'](_0x533bf5['unitID']);if(_0x4ca848['has'](_0x533bf5['replyID']))return{'status':'duplicate'};let _0x515cc1=_0x4ca848['get'](_0x533bf5['threadID']);if(!_0x515cc1||_0x515cc1['replyID']!==_0x515cc1['threadID'])return{'status':'not-found'};if(_0x515cc1['solved']!==t['CommentSolvedStatus']['OpenOrReOpen'])return{'status':'closed'};let _0x297ca6=Date['now'](),_0x25922d={..._0x533bf5,'mentions':[..._0x533bf5['mentions']],'solved':_0x515cc1['solved'],'createdAt':_0x297ca6,'updatedAt':_0x297ca6,'generation':(0x0,e['randomUUID'])()};return _0x4ca848['set'](_0x25922d['replyID'],_0x25922d),{'status':'created','record':r(_0x25922d)};}));}['getComment'](_0x471db7,_0x528105){return this['_call'](()=>this['_enqueue'](_0x471db7['unitID'],()=>{let _0x4549b3=this['_units']['get'](_0x471db7['unitID'])?.['get'](_0x471db7['replyID']);return _0x4549b3?.['threadID']===_0x471db7['threadID']?r(_0x4549b3):null;}));}['listThreads'](_0x1d8016,_0x409762){return this['_call'](()=>this['_enqueue'](_0x1d8016['unitID'],()=>{let _0x577f86=new Set(_0x1d8016['threadIDs']);return[...this['_units']['get'](_0x1d8016['unitID'])?.['values']()??[]]['filter'](_0x574712=>_0x577f86['size']===0x0||_0x577f86['has'](_0x574712['threadID']))['sort'](i)['map'](r);}));}['editComment'](_0x277065,_0x14ac4d){return this['_call'](()=>this['_enqueue'](_0x277065['unitID'],()=>{let _0x31be4a=this['_units']['get'](_0x277065['unitID']),_0x50c35=_0x31be4a?.['get'](_0x277065['replyID']),_0x51a0bf=_0x31be4a?.['get'](_0x277065['threadID']);if(!_0x50c35||_0x50c35['threadID']!==_0x277065['threadID']||!_0x51a0bf)return{'status':'not-found'};if(_0x51a0bf['solved']!==t['CommentSolvedStatus']['OpenOrReOpen'])return{'status':'closed'};if(_0x50c35['authorUserID']!==_0x277065['expectedAuthorUserID'])return{'status':'author-mismatch'};if(_0x50c35['content']===_0x277065['content']&&a(_0x50c35['mentions'],_0x277065['mentions']))return{'status':'unchanged','record':r(_0x50c35)};let _0x4418ec={..._0x50c35,'content':_0x277065['content'],'mentions':[..._0x277065['mentions']],'updatedAt':Math['max'](Date['now'](),_0x50c35['updatedAt']+0x1)};return _0x31be4a['set'](_0x277065['replyID'],_0x4418ec),{'status':'edited','record':r(_0x4418ec)};}));}['setThreadSolved'](_0x589dd4,_0x4d95e8){return this['_call'](()=>this['_enqueue'](_0x589dd4['unitID'],()=>{let _0x178cc7=this['_units']['get'](_0x589dd4['unitID']),_0x277f59=_0x178cc7?.['get'](_0x589dd4['threadID']);return!_0x277f59||_0x277f59['replyID']!==_0x277f59['threadID']?{'status':'not-found'}:_0x277f59['solved']===_0x589dd4['solved']?{'status':'unchanged'}:(_0x178cc7['set'](_0x589dd4['threadID'],{..._0x277f59,'solved':_0x589dd4['solved'],'updatedAt':Math['max'](Date['now'](),_0x277f59['updatedAt']+0x1)}),{'status':'updated'});}));}['deleteComment'](_0x1b4021,_0x3bf491){return this['_call'](()=>this['_enqueue'](_0x1b4021['unitID'],()=>{let _0x49677a=this['_units']['get'](_0x1b4021['unitID']),_0x3e54f3=_0x1b4021['replyID']??_0x1b4021['threadID'],_0x2dfaf4=_0x49677a?.['get'](_0x3e54f3);if(!_0x2dfaf4||_0x2dfaf4['threadID']!==_0x1b4021['threadID'])return{'status':'not-found'};if(_0x2dfaf4['generation']!==_0x1b4021['expectedGeneration'])return{'status':'generation-mismatch'};if(_0x1b4021['replyID']===void 0x0){for(let [_0x47d3e1,_0x2e2fe2]of _0x49677a)_0x2e2fe2['threadID']===_0x1b4021['threadID']&&_0x49677a['delete'](_0x47d3e1);}else _0x49677a['delete'](_0x1b4021['replyID']);return _0x49677a['size']===0x0&&this['_units']['delete'](_0x1b4021['unitID']),{'status':'deleted'};}));}['dispose'](){return this['_disposePromise']?this['_disposePromise']:(this['_state']='disposing',this['_disposePromise']=((async()=>{await Promise['allSettled']([...this['_calls']]),this['_queues']['clear'](),this['_state']='disposed';})()),this['_disposePromise']);}['_unit'](_0x2b1eb1){let _0x370ac6=this['_units']['get'](_0x2b1eb1);if(_0x370ac6)return _0x370ac6;let _0x4cf69d=new Map();return this['_units']['set'](_0x2b1eb1,_0x4cf69d),_0x4cf69d;}['_enqueue'](_0x2e9b4a,_0x41f32c){let _0x5b1591=(this['_queues']['get'](_0x2e9b4a)??Promise['resolve']())['catch'](()=>void 0x0)['then'](_0x41f32c),_0x46c461=_0x5b1591['then'](()=>void 0x0,()=>void 0x0);return this['_queues']['set'](_0x2e9b4a,_0x46c461),_0x46c461['finally'](()=>{this['_queues']['get'](_0x2e9b4a)===_0x46c461&&this['_queues']['delete'](_0x2e9b4a);}),_0x5b1591;}['_call'](_0x590319){if(this['_state']!=='running')return Promise['reject'](Error('Memory\x20Comment\x20Database\x20Adapter\x20is\x20'+this['_state']));let _0x4f234d=_0x590319();return this['_calls']['add'](_0x4f234d),_0x4f234d['finally'](()=>this['_calls']['delete'](_0x4f234d))['catch'](()=>void 0x0),_0x4f234d;}};function r(_0x13bd37){return{..._0x13bd37,'mentions':[..._0x13bd37['mentions']]};}function i(_0x295182,_0x189c62){let _0x1db646=_0x295182['threadID']['localeCompare'](_0x189c62['threadID']);return _0x1db646===0x0?_0x295182['replyID']===_0x295182['threadID']?-0x1:_0x189c62['replyID']===_0x189c62['threadID']?0x1:_0x295182['createdAt']-_0x189c62['createdAt']||_0x295182['replyID']['localeCompare'](_0x189c62['replyID']):_0x1db646;}function a(_0x113568,_0x562573){return _0x113568['length']===_0x562573['length']&&_0x113568['every']((_0x577cef,_0x5b2175)=>_0x577cef===_0x562573[_0x5b2175]);}exports['MemoryCommentDatabaseAdapter']=n;
1
+ Object['defineProperty'](exports,Symbol['toStringTag'],{'value':'Module'});let e=require('node:crypto'),t=require('@univerjs/protocol');var n=class{['_units']=new Map();['_queues']=new Map();['_calls']=new Set();['_state']='running';['_disposePromise'];['createRoot'](_0x2b6fdf,_0x5bb936){return this['_call'](()=>this['_enqueue'](_0x2b6fdf['unitID'],()=>{let _0x32b21f=this['_unit'](_0x2b6fdf['unitID']);if(_0x32b21f['has'](_0x2b6fdf['threadID']))return{'status':'duplicate'};let _0x1763bb=Date['now'](),_0x1d7181={..._0x2b6fdf,'replyID':_0x2b6fdf['threadID'],'mentions':[..._0x2b6fdf['mentions']],'solved':t['CommentSolvedStatus']['OpenOrReOpen'],'createdAt':_0x1763bb,'updatedAt':_0x1763bb,'generation':(0x0,e['randomUUID'])()};return _0x32b21f['set'](_0x1d7181['replyID'],_0x1d7181),{'status':'created','record':r(_0x1d7181)};}));}['createReply'](_0x18b1b7,_0x58124d){return this['_call'](()=>this['_enqueue'](_0x18b1b7['unitID'],()=>{let _0x544f9d=this['_unit'](_0x18b1b7['unitID']);if(_0x544f9d['has'](_0x18b1b7['replyID']))return{'status':'duplicate'};let _0x12bf7e=_0x544f9d['get'](_0x18b1b7['threadID']);if(!_0x12bf7e||_0x12bf7e['replyID']!==_0x12bf7e['threadID'])return{'status':'not-found'};if(_0x12bf7e['solved']!==t['CommentSolvedStatus']['OpenOrReOpen'])return{'status':'closed'};let _0x20a487=Date['now'](),_0x2bf724={..._0x18b1b7,'mentions':[..._0x18b1b7['mentions']],'solved':_0x12bf7e['solved'],'createdAt':_0x20a487,'updatedAt':_0x20a487,'generation':(0x0,e['randomUUID'])()};return _0x544f9d['set'](_0x2bf724['replyID'],_0x2bf724),{'status':'created','record':r(_0x2bf724)};}));}['getComment'](_0x39a951,_0x1a62d9){return this['_call'](()=>this['_enqueue'](_0x39a951['unitID'],()=>{let _0x2f7c1a=this['_units']['get'](_0x39a951['unitID'])?.['get'](_0x39a951['replyID']);return _0x2f7c1a?.['threadID']===_0x39a951['threadID']?r(_0x2f7c1a):null;}));}['listThreads'](_0x43e184,_0x12fedb){return this['_call'](()=>this['_enqueue'](_0x43e184['unitID'],()=>{let _0x12866c=new Set(_0x43e184['threadIDs']);return[...this['_units']['get'](_0x43e184['unitID'])?.['values']()??[]]['filter'](_0x284def=>_0x12866c['size']===0x0||_0x12866c['has'](_0x284def['threadID']))['sort'](i)['map'](r);}));}['editComment'](_0x1e7585,_0x38da63){return this['_call'](()=>this['_enqueue'](_0x1e7585['unitID'],()=>{let _0x59cb3d=this['_units']['get'](_0x1e7585['unitID']),_0x2e9be8=_0x59cb3d?.['get'](_0x1e7585['replyID']),_0x45416a=_0x59cb3d?.['get'](_0x1e7585['threadID']);if(!_0x2e9be8||_0x2e9be8['threadID']!==_0x1e7585['threadID']||!_0x45416a)return{'status':'not-found'};if(_0x45416a['solved']!==t['CommentSolvedStatus']['OpenOrReOpen'])return{'status':'closed'};if(_0x2e9be8['authorUserID']!==_0x1e7585['expectedAuthorUserID'])return{'status':'author-mismatch'};if(_0x2e9be8['content']===_0x1e7585['content']&&a(_0x2e9be8['mentions'],_0x1e7585['mentions']))return{'status':'unchanged','record':r(_0x2e9be8)};let _0x57b476={..._0x2e9be8,'content':_0x1e7585['content'],'mentions':[..._0x1e7585['mentions']],'updatedAt':Math['max'](Date['now'](),_0x2e9be8['updatedAt']+0x1)};return _0x59cb3d['set'](_0x1e7585['replyID'],_0x57b476),{'status':'edited','record':r(_0x57b476)};}));}['setThreadSolved'](_0x34f835,_0x480e7c){return this['_call'](()=>this['_enqueue'](_0x34f835['unitID'],()=>{let _0x1f4724=this['_units']['get'](_0x34f835['unitID']),_0x56ac16=_0x1f4724?.['get'](_0x34f835['threadID']);return!_0x56ac16||_0x56ac16['replyID']!==_0x56ac16['threadID']?{'status':'not-found'}:_0x56ac16['solved']===_0x34f835['solved']?{'status':'unchanged'}:(_0x1f4724['set'](_0x34f835['threadID'],{..._0x56ac16,'solved':_0x34f835['solved'],'updatedAt':Math['max'](Date['now'](),_0x56ac16['updatedAt']+0x1)}),{'status':'updated'});}));}['deleteComment'](_0x27de96,_0x3a6078){return this['_call'](()=>this['_enqueue'](_0x27de96['unitID'],()=>{let _0x193360=this['_units']['get'](_0x27de96['unitID']),_0x967b=_0x27de96['replyID']??_0x27de96['threadID'],_0x4d96e4=_0x193360?.['get'](_0x967b);if(!_0x4d96e4||_0x4d96e4['threadID']!==_0x27de96['threadID'])return{'status':'not-found'};if(_0x4d96e4['generation']!==_0x27de96['expectedGeneration'])return{'status':'generation-mismatch'};if(_0x27de96['replyID']===void 0x0){for(let [_0x190e7d,_0x529158]of _0x193360)_0x529158['threadID']===_0x27de96['threadID']&&_0x193360['delete'](_0x190e7d);}else _0x193360['delete'](_0x27de96['replyID']);return _0x193360['size']===0x0&&this['_units']['delete'](_0x27de96['unitID']),{'status':'deleted'};}));}['dispose'](){return this['_disposePromise']?this['_disposePromise']:(this['_state']='disposing',this['_disposePromise']=((async()=>{await Promise['allSettled']([...this['_calls']]),this['_queues']['clear'](),this['_state']='disposed';})()),this['_disposePromise']);}['_unit'](_0x4a3c5a){let _0x1c886c=this['_units']['get'](_0x4a3c5a);if(_0x1c886c)return _0x1c886c;let _0x3bc44d=new Map();return this['_units']['set'](_0x4a3c5a,_0x3bc44d),_0x3bc44d;}['_enqueue'](_0x459501,_0x2c7981){let _0x34ca6e=(this['_queues']['get'](_0x459501)??Promise['resolve']())['catch'](()=>void 0x0)['then'](_0x2c7981),_0x27cdc0=_0x34ca6e['then'](()=>void 0x0,()=>void 0x0);return this['_queues']['set'](_0x459501,_0x27cdc0),_0x27cdc0['finally'](()=>{this['_queues']['get'](_0x459501)===_0x27cdc0&&this['_queues']['delete'](_0x459501);}),_0x34ca6e;}['_call'](_0x3ff79e){if(this['_state']!=='running')return Promise['reject'](Error('Memory\x20Comment\x20Database\x20Adapter\x20is\x20'+this['_state']));let _0x53eb49=_0x3ff79e();return this['_calls']['add'](_0x53eb49),_0x53eb49['finally'](()=>this['_calls']['delete'](_0x53eb49))['catch'](()=>void 0x0),_0x53eb49;}};function r(_0x32ede2){return{..._0x32ede2,'mentions':[..._0x32ede2['mentions']]};}function i(_0x2e99c4,_0x5a289d){let _0x412198=_0x2e99c4['threadID']['localeCompare'](_0x5a289d['threadID']);return _0x412198===0x0?_0x2e99c4['replyID']===_0x2e99c4['threadID']?-0x1:_0x5a289d['replyID']===_0x5a289d['threadID']?0x1:_0x2e99c4['createdAt']-_0x5a289d['createdAt']||_0x2e99c4['replyID']['localeCompare'](_0x5a289d['replyID']):_0x412198;}function a(_0x256a59,_0x2b680d){return _0x256a59['length']===_0x2b680d['length']&&_0x256a59['every']((_0x7cf05,_0x11ae6b)=>_0x7cf05===_0x2b680d[_0x11ae6b]);}exports['MemoryCommentDatabaseAdapter']=n;
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- const _0x116ba9=_0x2501;function _0x53d9(){const _0x27376a=['1791JQVIQi','1530nLGlRu','15wumlMR','2620xLQzNG','393096rukSlK','MemoryCommentDatabaseAdapter','28773DzzfyK','3306448RNnpWc','200553BQDsJg','1697283IcFFuJ','72248epMdcn'];_0x53d9=function(){return _0x27376a;};return _0x53d9();}(function(_0x326a48,_0x59d03b){const _0x35fdca=_0x2501,_0x4b625c=_0x326a48();while(!![]){try{const _0x4ce4a5=-parseInt(_0x35fdca(0x165))/0x1+-parseInt(_0x35fdca(0x15e))/0x2*(-parseInt(_0x35fdca(0x15d))/0x3)+parseInt(_0x35fdca(0x167))/0x4+-parseInt(_0x35fdca(0x15f))/0x5*(-parseInt(_0x35fdca(0x161))/0x6)+parseInt(_0x35fdca(0x166))/0x7+parseInt(_0x35fdca(0x164))/0x8+parseInt(_0x35fdca(0x163))/0x9*(-parseInt(_0x35fdca(0x160))/0xa);if(_0x4ce4a5===_0x59d03b)break;else _0x4b625c['push'](_0x4b625c['shift']());}catch(_0x7556af){_0x4b625c['push'](_0x4b625c['shift']());}}}(_0x53d9,0x4689b));function _0x2501(_0x5fe672,_0x5605ee){_0x5fe672=_0x5fe672-0x15d;const _0x53d911=_0x53d9();let _0x250176=_0x53d911[_0x5fe672];return _0x250176;}import _0x31117e from'./index.cjs';const facadeExport0=_0x31117e[_0x116ba9(0x162)];export{facadeExport0 as MemoryCommentDatabaseAdapter};
1
+ const _0xf08c01=_0x167c;(function(_0xf2cf5f,_0x23a71e){const _0x13a0fd=_0x167c,_0x454ab8=_0xf2cf5f();while(!![]){try{const _0x1f2d75=-parseInt(_0x13a0fd(0x166))/0x1+parseInt(_0x13a0fd(0x165))/0x2*(parseInt(_0x13a0fd(0x16a))/0x3)+-parseInt(_0x13a0fd(0x164))/0x4+-parseInt(_0x13a0fd(0x169))/0x5+-parseInt(_0x13a0fd(0x167))/0x6+-parseInt(_0x13a0fd(0x16d))/0x7+-parseInt(_0x13a0fd(0x16c))/0x8*(-parseInt(_0x13a0fd(0x16b))/0x9);if(_0x1f2d75===_0x23a71e)break;else _0x454ab8['push'](_0x454ab8['shift']());}catch(_0x294219){_0x454ab8['push'](_0x454ab8['shift']());}}}(_0x3808,0xb4511));function _0x3808(){const _0x364d7e=['1378250yINRWL','6674322FZSxin','MemoryCommentDatabaseAdapter','5177720ulcWGs','17535rPHjHZ','57141PsxdBo','7496TucAXs','9529156AIorcq','1969808LYwFcK','58ZXnWtu'];_0x3808=function(){return _0x364d7e;};return _0x3808();}import _0x579725 from'./index.cjs';function _0x167c(_0x227cd0,_0x31dd21){_0x227cd0=_0x227cd0-0x164;const _0x380862=_0x3808();let _0x167c34=_0x380862[_0x227cd0];return _0x167c34;}const facadeExport0=_0x579725[_0xf08c01(0x168)];export{facadeExport0 as MemoryCommentDatabaseAdapter};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@univerjs-pro/collaboration-comment-database-memory",
3
3
  "type": "module",
4
- "version": "1.0.0-insiders.20260808-70eefdd",
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,10 +16,7 @@
16
16
  "dist"
17
17
  ],
18
18
  "dependencies": {
19
- "@univerjs-pro/collaboration-comment-service": "1.0.0-insiders.20260808-70eefdd",
20
- "@univerjs/protocol": "1.0.0-insiders.20260808-70eefdd"
21
- },
22
- "publishConfig": {
23
- "access": "public"
19
+ "@univerjs-pro/collaboration-comment-service": "1.0.0",
20
+ "@univerjs/protocol": "1.0.0"
24
21
  }
25
- }
22
+ }