@univerjs-pro/collaboration-history-database-sqlite 1.0.0-insiders.20260727-46ed76c
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.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['SQLiteHistoryDatabaseAdapter']=void 0x0;var sqlite_history_database_adapter_js_1=require('./sqlite-history-database-adapter.js');Object['defineProperty'](exports,'SQLiteHistoryDatabaseAdapter',{'enumerable':!![],'get':function(){return sqlite_history_database_adapter_js_1['SQLiteHistoryDatabaseAdapter'];}});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type AppendHistoryRevisionResult, type HistoryCreatorIndex, type HistoryIndexState, type HistoryRevision, type IHistoryDatabaseAdapter, type ListHistoryRecordsOptions, type ListHistoryRecordsResult } from "@univerjs-pro/collaboration-history-service";
|
|
2
|
+
export interface SQLiteHistoryDatabaseAdapterOptions {
|
|
3
|
+
readonly filename: string;
|
|
4
|
+
readonly busyTimeoutMs?: number;
|
|
5
|
+
}
|
|
6
|
+
export declare class SQLiteHistoryDatabaseAdapter implements IHistoryDatabaseAdapter {
|
|
7
|
+
private readonly _database;
|
|
8
|
+
private _disposed;
|
|
9
|
+
constructor(options: SQLiteHistoryDatabaseAdapterOptions);
|
|
10
|
+
getIndexState(unitID: string): Promise<HistoryIndexState | null>;
|
|
11
|
+
getRevision(unitID: string, revision: number): Promise<HistoryRevision | null>;
|
|
12
|
+
appendRevision(entry: HistoryRevision, options: {
|
|
13
|
+
readonly expectedLatestRevision: number;
|
|
14
|
+
}): Promise<AppendHistoryRevisionResult>;
|
|
15
|
+
listRecords(unitID: string, options: ListHistoryRecordsOptions): Promise<ListHistoryRecordsResult>;
|
|
16
|
+
listCreators(unitID: string): Promise<readonly HistoryCreatorIndex[]>;
|
|
17
|
+
dispose(): Promise<void>;
|
|
18
|
+
private _latestEntry;
|
|
19
|
+
private _getEntry;
|
|
20
|
+
private _transaction;
|
|
21
|
+
private _assertOpen;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';const _0x1ecc75=_0x28f7;(function(_0x1f9c62,_0x118263){const _0x32585d=_0x28f7,_0xcddb1e=_0x1f9c62();while(!![]){try{const _0x2fbd74=parseInt(_0x32585d(0xb2))/0x1+-parseInt(_0x32585d(0x91))/0x2+-parseInt(_0x32585d(0xa0))/0x3+parseInt(_0x32585d(0x73))/0x4+-parseInt(_0x32585d(0x89))/0x5+parseInt(_0x32585d(0x81))/0x6+-parseInt(_0x32585d(0x7a))/0x7;if(_0x2fbd74===_0x118263)break;else _0xcddb1e['push'](_0xcddb1e['shift']());}catch(_0x3010fa){_0xcddb1e['push'](_0xcddb1e['shift']());}}}(_0x3033,0xaf980));Object[_0x1ecc75(0xb3)](exports,_0x1ecc75(0x8d),{'value':!![]}),exports['SQLiteHistoryDatabaseAdapter']=void 0x0;function _0x28f7(_0x89315,_0x1aaf56){_0x89315=_0x89315-0x72;const _0x303308=_0x3033();let _0x28f76d=_0x303308[_0x89315];return _0x28f76d;}const node_sqlite_1=require('node:sqlite'),collaboration_history_service_1=require('@univerjs-pro/collaboration-history-service'),DEFAULT_BUSY_TIMEOUT_MS=0x1388;class SQLiteHistoryDatabaseAdapter{[_0x1ecc75(0xa3)];[_0x1ecc75(0xb7)]=![];constructor(_0x4666de){const _0x200762=_0x1ecc75;validateOptions(_0x4666de),this[_0x200762(0xa3)]=new node_sqlite_1[(_0x200762(0x88))](_0x4666de[_0x200762(0x99)]);try{this['_database'][_0x200762(0x82)](_0x200762(0x72)+(_0x4666de[_0x200762(0x79)]??DEFAULT_BUSY_TIMEOUT_MS)+';'),_0x4666de['filename']!==_0x200762(0x84)&&this[_0x200762(0xa3)][_0x200762(0x82)](_0x200762(0x96)),this[_0x200762(0xa3)][_0x200762(0x82)](_0x200762(0x9a));}catch(_0xf54025){this['_database']['close']();throw _0xf54025;}}async[_0x1ecc75(0xa4)](_0x37e87a){const _0x374885=_0x1ecc75;this[_0x374885(0x9e)]();const _0x414e5b=this[_0x374885(0x9d)](_0x37e87a);if(!_0x414e5b)return null;const _0x339954=this['_getEntry'](_0x37e87a,_0x414e5b['historyRevision']);if(!_0x339954)throw new Error(_0x374885(0xb0));return{'unitID':_0x37e87a,'type':_0x414e5b[_0x374885(0xa7)],'latestRevision':_0x414e5b[_0x374885(0xb6)],'currentHistoryRevision':_0x414e5b[_0x374885(0x9c)],'currentHistoryCreatedAt':_0x339954[_0x374885(0x9b)],'forceNextHistory':_0x414e5b[_0x374885(0xac)]};}async[_0x1ecc75(0x83)](_0x3385b7,_0x2e435d){const _0x5dfcfb=_0x1ecc75;return this['_assertOpen'](),this[_0x5dfcfb(0x74)](_0x3385b7,_0x2e435d);}async[_0x1ecc75(0x7b)](_0x5d7492,_0x306eec){const _0x1fada7=_0x1ecc75;return this[_0x1fada7(0x9e)](),validateEntry(_0x5d7492),this[_0x1fada7(0x85)](()=>{const _0x38e288=_0x1fada7;if(this[_0x38e288(0x74)](_0x5d7492[_0x38e288(0x7c)],_0x5d7492['revision']))return{'status':'already-indexed'};const _0x5c6325=this[_0x38e288(0xa3)][_0x38e288(0xa2)](_0x38e288(0x8a))[_0x38e288(0x77)](_0x5d7492[_0x38e288(0x7c)])?.['revision']??0x0;if(_0x5c6325!==_0x306eec[_0x38e288(0xa5)]||_0x5d7492[_0x38e288(0xb6)]!==_0x5c6325+0x1)return{'status':'revision-conflict','actualLatestRevision':_0x5c6325};return this[_0x38e288(0xa3)][_0x38e288(0xa2)]('INSERT\x20INTO\x20collaboration_history_revisions\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(unit_id,\x20type,\x20revision,\x20user_id,\x20commands_json,\x20committed_at,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20additional_fields,\x20origin,\x20history_revision,\x20force_next_history,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20restored_revision)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?)')['run'](_0x5d7492[_0x38e288(0x7c)],_0x5d7492[_0x38e288(0xa7)],_0x5d7492[_0x38e288(0xb6)],_0x5d7492['userId'],JSON[_0x38e288(0x92)](_0x5d7492[_0x38e288(0xa6)]),_0x5d7492[_0x38e288(0x9b)],_0x5d7492[_0x38e288(0x75)]??null,_0x5d7492['origin'],_0x5d7492[_0x38e288(0x9c)],_0x5d7492[_0x38e288(0xac)]?0x1:0x0,_0x5d7492[_0x38e288(0x87)]??null),{'status':'appended'};});}async[_0x1ecc75(0x80)](_0x2f1f74,_0x4f4e3e){const _0x182ec0=_0x1ecc75;this[_0x182ec0(0x9e)]();const _0x14665b=this[_0x182ec0(0xa3)][_0x182ec0(0xa2)](_0x182ec0(0x98))[_0x182ec0(0x8b)](_0x2f1f74)['map'](rowToEntry);return(0x0,collaboration_history_service_1[_0x182ec0(0x97)])((0x0,collaboration_history_service_1['buildHistoryRecords'])(_0x14665b),_0x4f4e3e);}async[_0x1ecc75(0xaf)](_0x4e8888){const _0x37252a=_0x1ecc75;this['_assertOpen']();const _0x209cfa=this['_database'][_0x37252a(0xa2)](_0x37252a(0x98))[_0x37252a(0x8b)](_0x4e8888)[_0x37252a(0x7d)](rowToEntry),_0x3cc0b1=new Map();for(const _0x46c371 of _0x209cfa){const _0x34c989=_0x3cc0b1['get'](_0x46c371[_0x37252a(0xaa)])??new Set();_0x34c989[_0x37252a(0x95)](_0x46c371[_0x37252a(0x78)]),_0x3cc0b1[_0x37252a(0x7f)](_0x46c371[_0x37252a(0xaa)],_0x34c989);}return[..._0x3cc0b1]['map'](([_0x12e9ff,_0x54e14a])=>({'userId':_0x12e9ff,'origins':[..._0x54e14a]}));}async[_0x1ecc75(0x8c)](){const _0x500194=_0x1ecc75;if(this[_0x500194(0xb7)])return;this['_disposed']=!![],this['_database'][_0x500194(0xb4)]();}[_0x1ecc75(0x9d)](_0x52c358){const _0x15232d=_0x1ecc75,_0xbc576b=this[_0x15232d(0xa3)][_0x15232d(0xa2)](_0x15232d(0xa9))[_0x15232d(0x77)](_0x52c358);return _0xbc576b?rowToEntry(_0xbc576b):null;}[_0x1ecc75(0x74)](_0x10f315,_0x147a89){const _0x27a570=_0x1ecc75,_0x332042=this['_database'][_0x27a570(0xa2)](_0x27a570(0xb8))[_0x27a570(0x77)](_0x10f315,_0x147a89);return _0x332042?rowToEntry(_0x332042):null;}['_transaction'](_0x18e028){const _0x17fdb3=_0x1ecc75;this[_0x17fdb3(0xa3)][_0x17fdb3(0x82)](_0x17fdb3(0xae));try{const _0x28a382=_0x18e028();return this['_database'][_0x17fdb3(0x82)]('COMMIT;'),_0x28a382;}catch(_0x229f02){try{this[_0x17fdb3(0xa3)][_0x17fdb3(0x82)](_0x17fdb3(0xad));}catch{}throw _0x229f02;}}[_0x1ecc75(0x9e)](){const _0x316fd2=_0x1ecc75;if(this[_0x316fd2(0xb7)])throw new Error(_0x316fd2(0xab));}}exports[_0x1ecc75(0x8f)]=SQLiteHistoryDatabaseAdapter;function rowToEntry(_0x2c21c1){const _0x5c8abb=_0x1ecc75,_0x4a369f=JSON[_0x5c8abb(0xa1)](_0x2c21c1['commands_json']);if(!Array[_0x5c8abb(0x76)](_0x4a369f)||_0x4a369f[_0x5c8abb(0x93)](_0x44d64e=>typeof _0x44d64e!==_0x5c8abb(0x94)))throw new Error(_0x5c8abb(0x90));if(_0x2c21c1['origin']!==0x0&&_0x2c21c1[_0x5c8abb(0x78)]!==0x1&&_0x2c21c1[_0x5c8abb(0x78)]!==0x2)throw new Error(_0x5c8abb(0xa8));return{'unitID':_0x2c21c1['unit_id'],'type':_0x2c21c1['type'],'revision':_0x2c21c1['revision'],'userId':_0x2c21c1[_0x5c8abb(0xb1)],'commands':_0x4a369f,'committedAt':_0x2c21c1['committed_at'],..._0x2c21c1[_0x5c8abb(0x7e)]===null?{}:{'additionalFields':_0x2c21c1[_0x5c8abb(0x7e)]},'origin':_0x2c21c1[_0x5c8abb(0x78)],'historyRevision':_0x2c21c1[_0x5c8abb(0x9f)],'forceNextHistory':_0x2c21c1['force_next_history']===0x1,..._0x2c21c1[_0x5c8abb(0x86)]===null?{}:{'restoredRevision':_0x2c21c1[_0x5c8abb(0x86)]}};}function validateOptions(_0x368a72){const _0x23c98c=_0x1ecc75;if(!_0x368a72?.[_0x23c98c(0x99)])throw new TypeError(_0x23c98c(0x8e));if(_0x368a72[_0x23c98c(0x79)]!==undefined&&(!Number[_0x23c98c(0xb5)](_0x368a72[_0x23c98c(0x79)])||_0x368a72[_0x23c98c(0x79)]<0x0))throw new TypeError('busyTimeoutMs\x20must\x20be\x20a\x20non-negative\x20safe\x20integer');}function validateEntry(_0xe3cf26){const _0x115ee0=_0x1ecc75;if(!_0xe3cf26[_0x115ee0(0x7c)]||!_0xe3cf26[_0x115ee0(0xaa)]||!Number[_0x115ee0(0xb5)](_0xe3cf26[_0x115ee0(0xb6)])||_0xe3cf26[_0x115ee0(0xb6)]<0x1||!Number[_0x115ee0(0xb5)](_0xe3cf26[_0x115ee0(0x9c)])||_0xe3cf26[_0x115ee0(0x9c)]<0x1||_0xe3cf26[_0x115ee0(0x9c)]>_0xe3cf26[_0x115ee0(0xb6)]||!Number[_0x115ee0(0xb5)](_0xe3cf26[_0x115ee0(0x9b)])||_0xe3cf26[_0x115ee0(0x9b)]<0x0)throw new TypeError('History\x20revision\x20entry\x20is\x20invalid');}function _0x3033(){const _0x215f8d=['SELECT\x20revision\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_history_revisions\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20unit_id\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20revision\x20DESC\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20LIMIT\x201','all','dispose','__esModule','SQLiteHistoryDatabaseAdapter\x20requires\x20a\x20filename','SQLiteHistoryDatabaseAdapter','SQLite\x20History\x20contains\x20invalid\x20commands','2494952HhmjsL','stringify','some','string','add','PRAGMA\x20journal_mode\x20=\x20WAL;','selectHistoryRecords','SELECT\x20unit_id,\x20type,\x20revision,\x20user_id,\x20commands_json,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20committed_at,\x20additional_fields,\x20origin,\x20history_revision,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20force_next_history,\x20restored_revision\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_history_revisions\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20unit_id\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20revision\x20ASC','filename','\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20IF\x20NOT\x20EXISTS\x20collaboration_history_revisions\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20unit_id\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type\x20INTEGER\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20revision\x20INTEGER\x20NOT\x20NULL\x20CHECK\x20(revision\x20>=\x201),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20user_id\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20commands_json\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20committed_at\x20INTEGER\x20NOT\x20NULL\x20CHECK\x20(committed_at\x20>=\x200),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20additional_fields\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20origin\x20INTEGER\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20history_revision\x20INTEGER\x20NOT\x20NULL\x20CHECK\x20(history_revision\x20>=\x201),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20force_next_history\x20INTEGER\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20restored_revision\x20INTEGER,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20PRIMARY\x20KEY\x20(unit_id,\x20revision)\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20collaboration_history_record_lookup\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20collaboration_history_revisions(unit_id,\x20history_revision\x20DESC);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20INDEX\x20IF\x20NOT\x20EXISTS\x20collaboration_history_creator_lookup\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20collaboration_history_revisions(unit_id,\x20user_id);\x0a\x20\x20\x20\x20\x20\x20','committedAt','historyRevision','_latestEntry','_assertOpen','history_revision','266067oPAxXS','parse','prepare','_database','getIndexState','expectedLatestRevision','commands','type','SQLite\x20History\x20contains\x20an\x20invalid\x20origin','SELECT\x20unit_id,\x20type,\x20revision,\x20user_id,\x20commands_json,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20committed_at,\x20additional_fields,\x20origin,\x20history_revision,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20force_next_history,\x20restored_revision\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_history_revisions\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20unit_id\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20revision\x20DESC\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20LIMIT\x201','userId','SQLite\x20History\x20Database\x20Adapter\x20is\x20disposed','forceNextHistory','ROLLBACK;','BEGIN\x20IMMEDIATE;','listCreators','SQLite\x20History\x20contains\x20an\x20invalid\x20history\x20revision','user_id','1042461VAkUCl','defineProperty','close','isSafeInteger','revision','_disposed','SELECT\x20unit_id,\x20type,\x20revision,\x20user_id,\x20commands_json,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20committed_at,\x20additional_fields,\x20origin,\x20history_revision,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20force_next_history,\x20restored_revision\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_history_revisions\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20unit_id\x20=\x20?\x20AND\x20revision\x20=\x20?','PRAGMA\x20busy_timeout\x20=\x20','4264732JMMjOH','_getEntry','additionalFields','isArray','get','origin','busyTimeoutMs','219177obekNw','appendRevision','unitID','map','additional_fields','set','listRecords','2998734YAGODq','exec','getRevision',':memory:','_transaction','restored_revision','restoredRevision','DatabaseSync','2608625KGDTWz'];_0x3033=function(){return _0x215f8d;};return _0x3033();}
|
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@univerjs-pro/collaboration-history-database-sqlite",
|
|
3
|
+
"type": "commonjs",
|
|
4
|
+
"main": "./dist/index.js",
|
|
5
|
+
"types": "./dist/index.d.ts",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"import": "./dist/index.js",
|
|
10
|
+
"require": "./dist/index.js"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist"
|
|
15
|
+
],
|
|
16
|
+
"engines": {
|
|
17
|
+
"node": ">=24"
|
|
18
|
+
},
|
|
19
|
+
"version": "1.0.0-insiders.20260727-46ed76c",
|
|
20
|
+
"dependencies": {
|
|
21
|
+
"@univerjs-pro/collaboration-history-service": "1.0.0-insiders.20260727-46ed76c",
|
|
22
|
+
"@univerjs/protocol": "1.0.0-insiders.20260727-46ed76c"
|
|
23
|
+
},
|
|
24
|
+
"publishConfig": {
|
|
25
|
+
"access": "public"
|
|
26
|
+
}
|
|
27
|
+
}
|