@univerjs-pro/collaboration-database-sqlite 1.0.1 → 1.0.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/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object['defineProperty'](exports,Symbol['toStringTag'],{'value':'Module'});var e=Object['create'],t=Object['defineProperty'],n=Object['getOwnPropertyDescriptor'],r=Object['getOwnPropertyNames'],i=Object['getPrototypeOf'],a=Object['prototype']['hasOwnProperty'],o=(_0x1d5315,_0xfdb949,_0xd9b2e0,_0x1eb31b)=>{if(_0xfdb949&&typeof _0xfdb949=='object'||typeof _0xfdb949=='function'){for(var _0xd0faca=r(_0xfdb949),_0x4e7ef9=0x0,_0x4eac0f=_0xd0faca['length'],_0x9f2762;_0x4e7ef9<_0x4eac0f;_0x4e7ef9++)_0x9f2762=_0xd0faca[_0x4e7ef9],!a['call'](_0x1d5315,_0x9f2762)&&_0x9f2762!==_0xd9b2e0&&t(_0x1d5315,_0x9f2762,{'get':(_0x3aa1b1=>_0xfdb949[_0x3aa1b1])['bind'](null,_0x9f2762),'enumerable':!(_0x1eb31b=n(_0xfdb949,_0x9f2762))||_0x1eb31b['enumerable']});}return _0x1d5315;},s=(_0x4b1bce,_0x14be88,_0x3b6fd8)=>(_0x3b6fd8=_0x4b1bce==null?{}:e(i(_0x4b1bce)),o(_0x14be88||!_0x4b1bce||!_0x4b1bce['__esModule']?t(_0x3b6fd8,'default',{'value':_0x4b1bce,'enumerable':!0x0}):_0x3b6fd8,_0x4b1bce));let c=require('libsql');c=s(c,0x1);let l=require('@univerjs-pro/collaboration-service');var u=0x1388,d='__univerCollaborationBinary',f='core',p=0x2,m=['collaboration_units','collaboration_unit_tombstones','collaboration_snapshots','collaboration_changesets','collaboration_sheet_blocks'],h=class{['_database'];['_disposed']=!0x1;constructor(_0x37c1d7){g(_0x37c1d7),this['_database']=new c['default'](_0x37c1d7['filename'],{'timeout':_0x37c1d7['busyTimeoutMs']??u});try{this['_database']['exec']('PRAGMA\x20foreign_keys\x20=\x20ON;'),this['_database']['exec']('PRAGMA\x20busy_timeout\x20=\x20'+(_0x37c1d7['busyTimeoutMs']??u)+';'),this['_initializeSchema']();}catch(_0x391c73){throw this['_database']['close'](),_0x391c73;}}async['getUnit'](_0x248542,_0x38e516){this['_assertOpen']();let _0x426a11=this['_database']['prepare']('SELECT\x20unit_id,\x20type,\x20head_revision,\x20creator_id,\x20created_at_ms,\x20soft_deleted_at_ms\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20unit_id\x20=\x20?\x20AND\x20soft_deleted_at_ms\x20IS\x20NULL')['get'](_0x38e516);return _0x426a11?v(_0x426a11):null;}async['getSnapshot'](_0x29f5e1,_0x11d7c8,_0x4d5c15){this['_assertOpen']();let _0x4b59b0=_0x4d5c15?.['revision'];if(_0x4b59b0!==void 0x0&&_0x4b59b0<0x0)throw y('Snapshot\x20revision\x20cannot\x20be\x20negative');let _0x9530e3=this['_database']['prepare']('SELECT\x20collaboration_snapshots.payload_json\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_snapshots\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20JOIN\x20collaboration_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20collaboration_units.unit_id\x20=\x20collaboration_snapshots.unit_id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20collaboration_snapshots.unit_id\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x4b59b0===void 0x0?'':'AND\x20collaboration_snapshots.revision\x20<=\x20?')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20collaboration_units.soft_deleted_at_ms\x20IS\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20collaboration_snapshots.revision\x20DESC\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20LIMIT\x201')['get'](_0x11d7c8,..._0x4b59b0===void 0x0?[]:[_0x4b59b0]);return _0x9530e3?C(_0x9530e3['payload_json']):null;}async['getSnapshotInfo'](_0x57aec3,_0x3dbdab,_0x4c8a74){this['_assertOpen']();let _0x5cd4b2=_0x4c8a74?.['revision'];if(_0x5cd4b2!==void 0x0&&_0x5cd4b2<0x0)throw y('Snapshot\x20revision\x20cannot\x20be\x20negative');let _0x523622=this['_database']['prepare']('SELECT\x20snapshots.unit_id\x20AS\x20unitID,\x20snapshots.type,\x20snapshots.revision\x20AS\x20rev\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_snapshots\x20AS\x20snapshots\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20JOIN\x20collaboration_units\x20AS\x20units\x20ON\x20units.unit_id\x20=\x20snapshots.unit_id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20snapshots.unit_id\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20units.soft_deleted_at_ms\x20IS\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x5cd4b2===void 0x0?'':'AND\x20snapshots.revision\x20<=\x20?')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20snapshots.revision\x20DESC\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20LIMIT\x201')['get'](_0x3dbdab,..._0x5cd4b2===void 0x0?[]:[_0x5cd4b2]);return _0x523622?{'unitID':_0x523622['unitID'],'type':_0x523622['type'],'rev':_0x523622['rev']}:null;}async['getChangesets'](_0x4ffd56,_0x35d27e,_0x2cdfab){if(this['_assertOpen'](),_0x2cdfab['from']<0x0||_0x2cdfab['to']!==void 0x0&&_0x2cdfab['to']<0x0)throw y('Changeset\x20range\x20revisions\x20cannot\x20be\x20negative');let _0x51ed4e=this['_database']['prepare']('SELECT\x20collaboration_changesets.payload_json\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20LEFT\x20JOIN\x20collaboration_changesets\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20collaboration_changesets.unit_id\x20=\x20collaboration_units.unit_id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20collaboration_changesets.revision\x20>\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x2cdfab['to']===void 0x0?'':'AND\x20collaboration_changesets.revision\x20<=\x20?')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20collaboration_units.unit_id\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20collaboration_units.soft_deleted_at_ms\x20IS\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20collaboration_changesets.revision\x20ASC')['all'](_0x2cdfab['from'],..._0x2cdfab['to']===void 0x0?[]:[_0x2cdfab['to']],_0x35d27e);return _0x51ed4e['length']===0x0?null:_0x51ed4e['flatMap'](_0x26343b=>_0x26343b['payload_json']?[C(_0x26343b['payload_json'])]:[]);}async['createUnit'](_0x5f0ec9,_0x3fbeff){this['_assertOpen'](),_(_0x3fbeff);let _0x1147be=S(_0x3fbeff['snapshot']),_0x3db414=(_0x3fbeff['sheetBlocks']??[])['map'](_0x4b05d3=>({'id':_0x4b05d3['id'],'payload':S(_0x4b05d3)}));return this['_transaction'](()=>{if(this['_hasTombstone'](_0x3fbeff['record']['unitID']))throw y('Cannot\x20reuse\x20a\x20hard-deleted\x20unit\x20ID');let _0x588dae=this['_getStoredUnitRow'](_0x3fbeff['record']['unitID']);if(_0x588dae){if(_0x588dae['soft_deleted_at_ms']!==null)throw y('Cannot\x20reuse\x20a\x20soft-deleted\x20unit\x20ID');return{'status':'already-exists','record':v(_0x588dae)};}return this['_database']['prepare']('INSERT\x20INTO\x20collaboration_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(unit_id,\x20type,\x20head_revision,\x20creator_id,\x20created_at_ms,\x20soft_deleted_at_ms)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x201,\x20?,\x20?,\x20NULL)')['run'](_0x3fbeff['record']['unitID'],_0x3fbeff['record']['type'],_0x3fbeff['record']['creatorID'],_0x3fbeff['record']['createdAt']),this['_writeSheetBlocks'](_0x3fbeff['record']['unitID'],_0x3db414),this['_database']['prepare']('INSERT\x20INTO\x20collaboration_snapshots\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(unit_id,\x20revision,\x20type,\x20payload_json)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x201,\x20?,\x20?)')['run'](_0x3fbeff['record']['unitID'],_0x3fbeff['record']['type'],_0x1147be),{'status':'created','record':{..._0x3fbeff['record']}};});}async['deleteUnits'](_0x1dc96f,_0x28d358){return this['_assertOpen'](),this['_transaction'](()=>{let _0x3531bd=x(_0x28d358['unitIDs'])['map'](_0x332029=>{let _0x39f73c=this['_getStoredUnitRow'](_0x332029);if(!_0x39f73c){if(_0x28d358['hardDelete']&&this['_hasTombstone'](_0x332029))return{'unitID':_0x332029,'status':'already-hard-deleted'};throw new l['CollabError']('UNIT_NOT_FOUND','Cannot\x20delete\x20a\x20missing\x20unit');}return _0x28d358['hardDelete']?{'unitID':_0x332029,'status':'hard-deleted'}:{'unitID':_0x332029,'status':_0x39f73c['soft_deleted_at_ms']===null?'soft-deleted':'already-soft-deleted'};}),_0x5e311f=this['_database']['prepare']('UPDATE\x20collaboration_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20SET\x20soft_deleted_at_ms\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20unit_id\x20=\x20?\x20AND\x20soft_deleted_at_ms\x20IS\x20NULL'),_0x3b240a=this['_database']['prepare']('INSERT\x20INTO\x20collaboration_unit_tombstones\x20(unit_id,\x20purged_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?)'),_0x3fd847=this['_database']['prepare']('DELETE\x20FROM\x20collaboration_units\x20WHERE\x20unit_id\x20=\x20?'),_0x358b15=Date['now']();for(let _0x76fc9f of _0x3531bd)_0x76fc9f['status']==='soft-deleted'?_0x5e311f['run'](_0x358b15,_0x76fc9f['unitID']):_0x76fc9f['status']==='hard-deleted'&&(_0x3b240a['run'](_0x76fc9f['unitID'],_0x358b15),_0x3fd847['run'](_0x76fc9f['unitID']));return{'units':_0x3531bd};});}async['recoverUnits'](_0x51ee6a,_0x5e5a55){return this['_assertOpen'](),this['_transaction'](()=>{let _0x4adc4c=x(_0x5e5a55['unitIDs'])['map'](_0x5b8a0e=>{let _0x1f9141=this['_getStoredUnitRow'](_0x5b8a0e);if(!_0x1f9141)throw this['_hasTombstone'](_0x5b8a0e)?y('Cannot\x20recover\x20a\x20hard-deleted\x20unit'):new l['CollabError']('UNIT_NOT_FOUND','Cannot\x20recover\x20a\x20missing\x20unit');return{'unitID':_0x5b8a0e,'status':_0x1f9141['soft_deleted_at_ms']===null?'already-active':'recovered'};}),_0x260fdf=this['_database']['prepare']('UPDATE\x20collaboration_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20SET\x20soft_deleted_at_ms\x20=\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20unit_id\x20=\x20?\x20AND\x20soft_deleted_at_ms\x20IS\x20NOT\x20NULL');for(let _0x2a2ab5 of _0x4adc4c)_0x2a2ab5['status']==='recovered'&&_0x260fdf['run'](_0x2a2ab5['unitID']);return{'units':_0x4adc4c};});}async['commitChangeset'](_0x591073,_0x5194cf){return this['_assertOpen'](),this['_transaction'](()=>{let {changeset:_0x412f5f}=_0x5194cf,_0x142d74=this['_getActiveUnitRow'](_0x412f5f['unitID']);if(!_0x142d74)throw new l['CollabError']('UNIT_NOT_FOUND','Cannot\x20commit\x20to\x20a\x20missing\x20unit');if(_0x142d74['head_revision']!==_0x412f5f['revision']-0x1)return{'status':'revision-mismatch','actualHeadRevision':_0x142d74['head_revision']};let _0x60982d=Date['now'](),_0x189762=S({..._0x412f5f,'createTime':Math['floor'](_0x60982d/0x3e8)});if(this['_database']['prepare']('INSERT\x20INTO\x20collaboration_changesets\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(unit_id,\x20revision,\x20base_revision,\x20sid,\x20req_id,\x20created_at_ms,\x20payload_json)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?)')['run'](_0x412f5f['unitID'],_0x412f5f['revision'],_0x412f5f['baseRev'],_0x412f5f['sid'],_0x412f5f['reqId'],_0x60982d,_0x189762),this['_database']['prepare']('UPDATE\x20collaboration_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SET\x20head_revision\x20=\x20?\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\x20\x20\x20AND\x20head_revision\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20soft_deleted_at_ms\x20IS\x20NULL')['run'](_0x412f5f['revision'],_0x412f5f['unitID'],_0x412f5f['revision']-0x1)['changes']!==0x1)throw new l['CollabError']('INTERNAL_ERROR','SQLite\x20head\x20changed\x20inside\x20an\x20exclusive\x20write\x20transaction');return{'status':'committed','changeset':C(_0x189762),'headRevision':_0x412f5f['revision']};});}async['saveSnapshot'](_0x13d24d,_0x499b0e){this['_assertOpen']();let _0x258ed6=S(_0x499b0e['snapshot']),_0x1fed5b=(_0x499b0e['sheetBlocks']??[])['map'](_0x40a733=>({'id':_0x40a733['id'],'payload':S(_0x40a733)}));this['_transaction'](()=>{let _0x2b3b0b=this['_getActiveUnitRow'](_0x499b0e['snapshot']['unitID']);if(!_0x2b3b0b)throw new l['CollabError']('UNIT_NOT_FOUND','Cannot\x20snapshot\x20a\x20missing\x20unit');if(_0x499b0e['snapshot']['type']!==_0x2b3b0b['type']||_0x499b0e['snapshot']['rev']<0x1||_0x499b0e['snapshot']['rev']>_0x2b3b0b['head_revision'])throw y('Snapshot\x20does\x20not\x20match\x20the\x20stored\x20unit\x20head');this['_writeSheetBlocks'](_0x499b0e['snapshot']['unitID'],_0x1fed5b),this['_database']['prepare']('INSERT\x20INTO\x20collaboration_snapshots\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(unit_id,\x20revision,\x20type,\x20payload_json)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20CONFLICT(unit_id,\x20revision)\x20DO\x20UPDATE\x20SET\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type\x20=\x20excluded.type,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20payload_json\x20=\x20excluded.payload_json')['run'](_0x499b0e['snapshot']['unitID'],_0x499b0e['snapshot']['rev'],_0x499b0e['snapshot']['type'],_0x258ed6);});}async['getSheetBlock'](_0x133cda,_0x4dc414,_0x16b408){this['_assertOpen']();let _0x3b19b3=this['_database']['prepare']('SELECT\x20collaboration_sheet_blocks.payload_json\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_sheet_blocks\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20JOIN\x20collaboration_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20collaboration_units.unit_id\x20=\x20collaboration_sheet_blocks.unit_id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20collaboration_sheet_blocks.unit_id\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20collaboration_sheet_blocks.block_id\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20collaboration_units.soft_deleted_at_ms\x20IS\x20NULL')['get'](_0x4dc414,_0x16b408);return _0x3b19b3?C(_0x3b19b3['payload_json']):null;}async['dispose'](){this['_disposed']||(this['_disposed']=!0x0,this['_database']['close']());}['_initializeSchema'](){this['_transaction'](()=>{if(!this['_hasTable']('collaboration_schema_versions')){if(this['_hasAnyCoreTable']())throw b('SQLite\x20collaboration\x20core\x20tables\x20exist\x20without\x20a\x20schema\x20version');this['_database']['exec']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20collaboration_schema_versions\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20component\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20version\x20INTEGER\x20NOT\x20NULL\x20CHECK\x20(version\x20>=\x201)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20');}let _0x51869f=this['_database']['prepare']('SELECT\x20version\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_schema_versions\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20component\x20=\x20?')['get'](f);if(_0x51869f){if(_0x51869f['version']!==p)throw b('SQLite\x20collaboration\x20core\x20schema\x20version\x20'+_0x51869f['version']+'\x20is\x20not\x20supported;\x20version\x201\x20requires\x20explicit\x20migrateSQLiteCoreV1ToV2\x20with\x20a\x20Unit\x20creation\x20resolver');let _0x4598ad=m['filter'](_0x18280b=>!this['_hasTable'](_0x18280b));if(_0x4598ad['length']>0x0)throw b('SQLite\x20collaboration\x20core\x20schema\x20v'+_0x51869f['version']+'\x20is\x20incomplete:\x20missing\x20'+_0x4598ad['join'](',\x20'));if(!this['_database']['prepare']('PRAGMA\x20table_info(collaboration_changesets)')['all']()['some'](_0x44a2d=>_0x44a2d['name']==='created_at_ms'&&_0x44a2d['notnull']===0x1))throw b('Changeset\x20schema\x20requires\x20NOT\x20NULL\x20created_at_ms');let _0x5f418f=this['_database']['prepare']('PRAGMA\x20table_info(collaboration_units)')['all']();if(!['creator_id','created_at_ms']['every'](_0x39e4dc=>_0x5f418f['some'](_0x52ed78=>_0x52ed78['name']===_0x39e4dc&&_0x52ed78['notnull']===0x1)))throw b('SQLite\x20collaboration\x20core\x20schema\x20v2\x20requires\x20NOT\x20NULL\x20creator_id\x20and\x20created_at_ms');return;}if(this['_hasAnyCoreTable']())throw b('SQLite\x20collaboration\x20core\x20tables\x20exist\x20without\x20a\x20schema\x20version');this['_database']['exec']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20collaboration_units\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20unit_id\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type\x20INTEGER\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20head_revision\x20INTEGER\x20NOT\x20NULL\x20CHECK\x20(head_revision\x20>=\x201),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20creator_id\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20created_at_ms\x20INTEGER\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20soft_deleted_at_ms\x20INTEGER\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20collaboration_unit_tombstones\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20unit_id\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20purged_at\x20INTEGER\x20NOT\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20collaboration_snapshots\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\x20revision\x20INTEGER\x20NOT\x20NULL\x20CHECK\x20(revision\x20>=\x201),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type\x20INTEGER\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20payload_json\x20TEXT\x20NOT\x20NULL,\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\x20\x20FOREIGN\x20KEY\x20(unit_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20REFERENCES\x20collaboration_units(unit_id)\x20ON\x20DELETE\x20CASCADE\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20collaboration_changesets\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\x20revision\x20INTEGER\x20NOT\x20NULL\x20CHECK\x20(revision\x20>=\x202),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20base_revision\x20INTEGER\x20NOT\x20NULL\x20CHECK\x20(base_revision\x20>=\x201),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20sid\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20req_id\x20INTEGER\x20NOT\x20NULL\x20CHECK\x20(req_id\x20>=\x201),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20created_at_ms\x20INTEGER\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20payload_json\x20TEXT\x20NOT\x20NULL,\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\x20\x20UNIQUE\x20(unit_id,\x20sid,\x20req_id),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FOREIGN\x20KEY\x20(unit_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20REFERENCES\x20collaboration_units(unit_id)\x20ON\x20DELETE\x20CASCADE\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20collaboration_sheet_blocks\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\x20block_id\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20payload_json\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20PRIMARY\x20KEY\x20(unit_id,\x20block_id),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FOREIGN\x20KEY\x20(unit_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20REFERENCES\x20collaboration_units(unit_id)\x20ON\x20DELETE\x20CASCADE\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20INDEX\x20collaboration_snapshots_nearest_revision\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20collaboration_snapshots(unit_id,\x20revision\x20DESC);\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20INDEX\x20collaboration_changesets_revision_range\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20collaboration_changesets(unit_id,\x20revision\x20ASC);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20collaboration_schema_versions\x20(component,\x20version)\x0a\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(\x27core\x27,\x202);\x0a\x20\x20\x20\x20\x20\x20');});}['_getActiveUnitRow'](_0x15f837){return this['_database']['prepare']('SELECT\x20unit_id,\x20type,\x20head_revision,\x20creator_id,\x20created_at_ms,\x20soft_deleted_at_ms\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20unit_id\x20=\x20?\x20AND\x20soft_deleted_at_ms\x20IS\x20NULL')['get'](_0x15f837)??null;}['_getStoredUnitRow'](_0x57683e){return this['_database']['prepare']('SELECT\x20unit_id,\x20type,\x20head_revision,\x20creator_id,\x20created_at_ms,\x20soft_deleted_at_ms\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20unit_id\x20=\x20?')['get'](_0x57683e)??null;}['_hasTombstone'](_0x5197f5){return!!this['_database']['prepare']('SELECT\x201\x20FROM\x20collaboration_unit_tombstones\x20WHERE\x20unit_id\x20=\x20?')['get'](_0x5197f5);}['_hasTable'](_0x186377){return!!this['_database']['prepare']('SELECT\x201\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20sqlite_schema\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20type\x20=\x20\x27table\x27\x20AND\x20name\x20=\x20?')['get'](_0x186377);}['_hasAnyCoreTable'](){return m['some'](_0x5ce4c4=>this['_hasTable'](_0x5ce4c4));}['_writeSheetBlocks'](_0x4117c8,_0x1d976d){let _0x1b49bd=this['_database']['prepare']('INSERT\x20INTO\x20collaboration_sheet_blocks\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20(unit_id,\x20block_id,\x20payload_json)\x0a\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?)\x0a\x20\x20\x20\x20\x20\x20\x20ON\x20CONFLICT(unit_id,\x20block_id)\x20DO\x20UPDATE\x20SET\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20payload_json\x20=\x20excluded.payload_json');for(let _0x1120b9 of _0x1d976d)_0x1b49bd['run'](_0x4117c8,_0x1120b9['id'],_0x1120b9['payload']);}['_transaction'](_0x131a76){this['_database']['exec']('BEGIN\x20IMMEDIATE;');try{let _0x455b9a=_0x131a76();return this['_database']['exec']('COMMIT;'),_0x455b9a;}catch(_0x56deb8){throw this['_database']['inTransaction']&&this['_database']['exec']('ROLLBACK;'),_0x56deb8;}}['_assertOpen'](){if(this['_disposed'])throw new l['CollabError']('INTERNAL_ERROR','SQLite\x20Database\x20Adapter\x20is\x20disposed');}};function g(_0x49f717){if(!_0x49f717['filename'])throw y('SQLite\x20filename\x20is\x20required');if(_0x49f717['busyTimeoutMs']!==void 0x0&&(!Number['isSafeInteger'](_0x49f717['busyTimeoutMs'])||_0x49f717['busyTimeoutMs']<0x0))throw y('SQLite\x20busyTimeoutMs\x20must\x20be\x20a\x20non-negative\x20integer');}function _(_0x3baabf){let {record:_0x25e480,snapshot:_0xdc04d6}=_0x3baabf;if(_0x25e480['headRevision']!==0x1||_0xdc04d6['rev']!==0x1||_0xdc04d6['unitID']!==_0x25e480['unitID']||_0xdc04d6['type']!==_0x25e480['type'])throw y('Initial\x20unit\x20record\x20and\x20snapshot\x20must\x20match\x20at\x20revision\x201');if(typeof _0x25e480['creatorID']!='string'||_0x25e480['creatorID']['length']===0x0||!Number['isSafeInteger'](_0x25e480['createdAt'])||_0x25e480['createdAt']<0x0)throw y('Unit\x20creation\x20requires\x20creatorID\x20and\x20createdAt\x20in\x20Unix\x20milliseconds');}function v(_0xb5e47f){return{'unitID':_0xb5e47f['unit_id'],'type':_0xb5e47f['type'],'headRevision':_0xb5e47f['head_revision'],'creatorID':_0xb5e47f['creator_id'],'createdAt':_0xb5e47f['created_at_ms']};}function y(_0x3285f1){return new l['CollabError']('INVALID_REQUEST',_0x3285f1);}function b(_0xf00676){return new l['CollabError']('INTERNAL_ERROR',_0xf00676);}function x(_0xfab486){return[...new Set(_0xfab486)];}function S(_0x3e9401){return JSON['stringify'](_0x3e9401,function(_0x4ce97d,_0x10af77){let _0x55aeed=this[_0x4ce97d];return _0x55aeed instanceof Uint8Array?{[d]:Buffer['from'](_0x55aeed)['toString']('base64')}:_0x10af77;});}function C(_0x24c5d9){return JSON['parse'](_0x24c5d9,(_0x39dd96,_0xd2f2f6)=>w(_0xd2f2f6)?Uint8Array['from'](Buffer['from'](_0xd2f2f6[d],'base64')):_0xd2f2f6);}function w(_0x10720d){return typeof _0x10720d=='object'&&!!_0x10720d&&Object['keys'](_0x10720d)['length']===0x1&&typeof _0x10720d[d]=='string';}async function T(_0x3b539b){let _0x144124=Date['now'](),_0x355079=new c['default'](_0x3b539b['filename'],{'fileMustExist':!0x0}),_0x51bbe9=!0x1;try{if(_0x355079['exec']('PRAGMA\x20foreign_keys\x20=\x20OFF;\x20PRAGMA\x20legacy_alter_table\x20=\x20ON;\x20BEGIN\x20IMMEDIATE;'),_0x51bbe9=!0x0,_0x355079['prepare']('SELECT\x20version\x20FROM\x20collaboration_schema_versions\x20WHERE\x20component\x20=\x20\x27core\x27')['get']()?.['version']!==0x1)throw new l['CollabError']('INVALID_REQUEST','migrateSQLiteCoreV1ToV2\x20requires\x20core\x20schema\x20version\x201');for(let _0x2435a8 of['collaboration_unit_tombstones','collaboration_snapshots','collaboration_changesets','collaboration_sheet_blocks'])_0x355079['prepare']('SELECT\x201\x20FROM\x20'+_0x2435a8+'\x20LIMIT\x200')['all']();let _0x31d88b=_0x355079['prepare']('SELECT\x201\x20FROM\x20sqlite_schema\x20WHERE\x20type\x20=\x20\x27table\x27\x20AND\x20name\x20=\x20\x27collaboration_history_revisions\x27')['get']()?_0x355079['prepare']('SELECT\x20user_id,\x20committed_at\x20FROM\x20collaboration_history_revisions\x20WHERE\x20unit_id\x20=\x20?\x20AND\x20revision\x20=\x20?'):void 0x0,_0x4c501b=(_0x4dac39,_0x2ad5b7)=>_0x31d88b?.['get'](_0x4dac39,_0x2ad5b7),_0x17eb37=_0x355079['prepare']('PRAGMA\x20table_info(collaboration_units)')['all'](),_0x358da0=['unit_id','type','head_revision','soft_deleted_at_ms'];if(_0x17eb37['length']!==_0x358da0['length']||_0x358da0['some'](_0x44c7f7=>!_0x17eb37['some'](_0x5ee2ee=>_0x5ee2ee['name']===_0x44c7f7)))throw new l['CollabError']('INVALID_REQUEST','Core\x20v1\x20Unit\x20columns\x20differ\x20from\x20the\x20supported\x20schema;\x20refusing\x20a\x20potentially\x20lossy\x20migration');let _0x1b1805=_0x355079['prepare']('SELECT\x20sql\x20FROM\x20sqlite_schema\x20WHERE\x20tbl_name\x20=\x20\x27collaboration_units\x27\x20AND\x20type\x20IN\x20(\x27index\x27,\x20\x27trigger\x27)\x20AND\x20sql\x20IS\x20NOT\x20NULL')['all']();_0x355079['exec']('CREATE\x20TABLE\x20collaboration_units_v2\x20(\x0a\x20\x20\x20\x20\x20\x20unit_id\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20\x20\x20type\x20INTEGER\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20head_revision\x20INTEGER\x20NOT\x20NULL\x20CHECK\x20(head_revision\x20>=\x201),\x0a\x20\x20\x20\x20\x20\x20creator_id\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20created_at_ms\x20INTEGER\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20soft_deleted_at_ms\x20INTEGER\x0a\x20\x20\x20\x20);');let _0x50ac0d=D(_0x355079,'collaboration_units',['unit_id']),_0x394771=_0x355079['prepare']('INSERT\x20INTO\x20collaboration_units_v2\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?)');for(let _0x144d7a of _0x50ac0d){let _0x383c54=_0x3b539b['resolveUnitCreation']?void 0x0:_0x4c501b(_0x144d7a['unit_id'],0x1),_0xa2a518=_0x3b539b['resolveUnitCreation']?await _0x3b539b['resolveUnitCreation'](_0x144d7a['unit_id']):{'creatorID':_0x383c54?.['user_id']||'anonymous','createdAt':E(_0x383c54?.['committed_at'])?_0x383c54['committed_at']:_0x144124};if(!_0xa2a518||typeof _0xa2a518['creatorID']!='string'||_0xa2a518['creatorID']['length']===0x0||!Number['isSafeInteger'](_0xa2a518['createdAt'])||_0xa2a518['createdAt']<0x0)throw new l['CollabError']('INVALID_REQUEST','Missing\x20or\x20invalid\x20creation\x20facts\x20for\x20Unit\x20'+_0x144d7a['unit_id']);_0x394771['run'](_0x144d7a['unit_id'],_0x144d7a['type'],_0x144d7a['head_revision'],_0xa2a518['creatorID'],_0xa2a518['createdAt'],_0x144d7a['soft_deleted_at_ms']);}_0x355079['exec']('DROP\x20TABLE\x20collaboration_units;\x20ALTER\x20TABLE\x20collaboration_units_v2\x20RENAME\x20TO\x20collaboration_units;');for(let _0x21ae33 of _0x1b1805)_0x355079['exec'](_0x21ae33['sql']);let _0x1d9415=_0x355079['prepare']('SELECT\x20sql\x20FROM\x20sqlite_schema\x20WHERE\x20type\x20=\x20\x27table\x27\x20AND\x20name\x20=\x20\x27collaboration_changesets\x27')['get'](),_0xce2734=_0x355079['prepare']('PRAGMA\x20table_info(collaboration_changesets)')['all']();if(_0xce2734['some'](_0x56c6d3=>_0x56c6d3['name']==='created_at_ms'))throw new l['CollabError']('INVALID_REQUEST','Unexpected\x20changeset\x20creation-time\x20column\x20in\x20legacy\x20schema');let _0x3a77e3=_0x355079['prepare']('SELECT\x20sql\x20FROM\x20sqlite_schema\x20WHERE\x20tbl_name\x20=\x20\x27collaboration_changesets\x27\x20AND\x20type\x20IN\x20(\x27index\x27,\x20\x27trigger\x27)\x20AND\x20sql\x20IS\x20NOT\x20NULL')['all']();_0x355079['exec']('CREATE\x20TABLE\x20collaboration_changesets_new\x20(\x0a\x20\x20\x20\x20\x20\x20created_at_ms\x20INTEGER\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20'+_0x1d9415['sql']['slice'](_0x1d9415['sql']['indexOf']('(')+0x1));let _0x55ab8a=D(_0x355079,'collaboration_changesets',['unit_id','revision']),_0x76a9b0=_0xce2734['map'](_0x14d5f5=>'\x22'+_0x14d5f5['name']['replaceAll']('\x22','\x22\x22')+'\x22')['join'](',\x20'),_0x39ce79=_0x355079['prepare']('INSERT\x20INTO\x20collaboration_changesets_new\x20('+_0x76a9b0+',\x20created_at_ms)\x20VALUES\x20('+_0xce2734['map'](()=>'?')['join'](',\x20')+',\x20?)');for(let _0x334f60 of _0x55ab8a){let _0x303a0a=JSON['parse'](_0x334f60['payload_json']),_0x118b05=typeof _0x303a0a['createTime']=='number'?_0x303a0a['createTime']*0x3e8:void 0x0,_0x470224=!_0x3b539b['resolveChangesetCreatedAt']&&!E(_0x118b05)?_0x4c501b(_0x334f60['unit_id'],_0x334f60['revision'])?.['committed_at']:void 0x0,_0x2666c6=_0x3b539b['resolveChangesetCreatedAt']?await _0x3b539b['resolveChangesetCreatedAt'](_0x334f60['unit_id'],_0x334f60['revision']):E(_0x118b05)?_0x118b05:E(_0x470224)?_0x470224:_0x144124;if(!Number['isSafeInteger'](_0x2666c6)||_0x2666c6<0x0)throw new l['CollabError']('INVALID_REQUEST','Missing\x20or\x20invalid\x20changeset\x20time\x20for\x20Unit\x20'+_0x334f60['unit_id']+'\x20revision\x20'+_0x334f60['revision']);_0x303a0a['createTime']=Math['floor'](_0x2666c6/0x3e8),_0x39ce79['run'](..._0xce2734['map'](_0x145d74=>_0x145d74['name']==='payload_json'?JSON['stringify'](_0x303a0a):_0x334f60[_0x145d74['name']]),_0x2666c6);}_0x355079['exec']('DROP\x20TABLE\x20collaboration_changesets;\x20ALTER\x20TABLE\x20collaboration_changesets_new\x20RENAME\x20TO\x20collaboration_changesets;');for(let _0x22e5f0 of _0x3a77e3)_0x355079['exec'](_0x22e5f0['sql']);if(_0x355079['prepare']('PRAGMA\x20foreign_key_check')['all']()['length']>0x0)throw new l['CollabError']('INVALID_REQUEST','Foreign\x20key\x20validation\x20failed\x20during\x20core\x20migration');_0x355079['exec']('UPDATE\x20collaboration_schema_versions\x20SET\x20version\x20=\x202\x20WHERE\x20component\x20=\x20\x27core\x27;\x20COMMIT;'),_0x51bbe9=!0x1;}finally{try{_0x51bbe9&&_0x355079['exec']('ROLLBACK;');}finally{_0x355079['close']();}}}function E(_0x5069a7){return typeof _0x5069a7=='number'&&Number['isSafeInteger'](_0x5069a7)&&_0x5069a7>=0x0;}function*D(_0x583f83,_0x5ee2f4,_0x1243ca){let _0x2485b4=_0x1243ca['join'](',\x20'),_0x49d21d=_0x583f83['prepare']('SELECT\x20*\x20FROM\x20'+_0x5ee2f4+'\x20ORDER\x20BY\x20'+_0x2485b4+'\x20LIMIT\x20100'),_0x19e24c=_0x583f83['prepare']('SELECT\x20*\x20FROM\x20'+_0x5ee2f4+'\x20WHERE\x20('+_0x2485b4+')\x20>\x20('+_0x1243ca['map'](()=>'?')['join'](',\x20')+')\x20ORDER\x20BY\x20'+_0x2485b4+'\x20LIMIT\x20100'),_0x5d9a69=_0x49d21d['all']();for(;_0x5d9a69['length']>0x0;){yield*_0x5d9a69;let _0x1313d6=_0x1243ca['map'](_0x46dcc6=>_0x5d9a69[_0x5d9a69['length']-0x1][_0x46dcc6]);_0x5d9a69=[],_0x5d9a69=_0x19e24c['all'](..._0x1313d6);}}exports['SQLiteDatabaseAdapter']=h,exports['migrateSQLiteCoreV1ToV2']=T;
|
|
1
|
+
Object['defineProperty'](exports,Symbol['toStringTag'],{'value':'Module'});var e=Object['create'],t=Object['defineProperty'],n=Object['getOwnPropertyDescriptor'],r=Object['getOwnPropertyNames'],i=Object['getPrototypeOf'],a=Object['prototype']['hasOwnProperty'],o=(_0x3d01ca,_0x32ed56,_0x2de50a,_0x2947fd)=>{if(_0x32ed56&&typeof _0x32ed56=='object'||typeof _0x32ed56=='function'){for(var _0x48c624=r(_0x32ed56),_0x596aca=0x0,_0x5629c8=_0x48c624['length'],_0x256fa8;_0x596aca<_0x5629c8;_0x596aca++)_0x256fa8=_0x48c624[_0x596aca],!a['call'](_0x3d01ca,_0x256fa8)&&_0x256fa8!==_0x2de50a&&t(_0x3d01ca,_0x256fa8,{'get':(_0x278fc5=>_0x32ed56[_0x278fc5])['bind'](null,_0x256fa8),'enumerable':!(_0x2947fd=n(_0x32ed56,_0x256fa8))||_0x2947fd['enumerable']});}return _0x3d01ca;},s=(_0x11a049,_0x26dea9,_0x3f9fb5)=>(_0x3f9fb5=_0x11a049==null?{}:e(i(_0x11a049)),o(_0x26dea9||!_0x11a049||!_0x11a049['__esModule']?t(_0x3f9fb5,'default',{'value':_0x11a049,'enumerable':!0x0}):_0x3f9fb5,_0x11a049));let c=require('libsql');c=s(c,0x1);let l=require('@univerjs-pro/collaboration-service');var u=0x1388,d='__univerCollaborationBinary',f='core',p=0x2,m=['collaboration_units','collaboration_unit_tombstones','collaboration_snapshots','collaboration_changesets','collaboration_sheet_blocks'],h=class{['_database'];['_disposed']=!0x1;constructor(_0x3bc2f5){g(_0x3bc2f5),this['_database']=new c['default'](_0x3bc2f5['filename'],{'timeout':_0x3bc2f5['busyTimeoutMs']??u});try{this['_database']['exec']('PRAGMA\x20foreign_keys\x20=\x20ON;'),this['_database']['exec']('PRAGMA\x20busy_timeout\x20=\x20'+(_0x3bc2f5['busyTimeoutMs']??u)+';'),this['_initializeSchema']();}catch(_0x5e87ad){throw this['_database']['close'](),_0x5e87ad;}}async['getUnit'](_0x26aee8,_0x264ae3){this['_assertOpen']();let _0x22be0e=this['_database']['prepare']('SELECT\x20unit_id,\x20type,\x20head_revision,\x20creator_id,\x20created_at_ms,\x20soft_deleted_at_ms\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20unit_id\x20=\x20?\x20AND\x20soft_deleted_at_ms\x20IS\x20NULL')['get'](_0x264ae3);return _0x22be0e?v(_0x22be0e):null;}async['getSnapshot'](_0x153132,_0x3f5468,_0x355636){this['_assertOpen']();let _0x5b602a=_0x355636?.['revision'];if(_0x5b602a!==void 0x0&&_0x5b602a<0x0)throw y('Snapshot\x20revision\x20cannot\x20be\x20negative');let _0x131658=this['_database']['prepare']('SELECT\x20collaboration_snapshots.payload_json\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_snapshots\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20JOIN\x20collaboration_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20collaboration_units.unit_id\x20=\x20collaboration_snapshots.unit_id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20collaboration_snapshots.unit_id\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x5b602a===void 0x0?'':'AND\x20collaboration_snapshots.revision\x20<=\x20?')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20collaboration_units.soft_deleted_at_ms\x20IS\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20collaboration_snapshots.revision\x20DESC\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20LIMIT\x201')['get'](_0x3f5468,..._0x5b602a===void 0x0?[]:[_0x5b602a]);return _0x131658?C(_0x131658['payload_json']):null;}async['getSnapshotInfo'](_0x52e7fb,_0x457153,_0x2bd3db){this['_assertOpen']();let _0x57df88=_0x2bd3db?.['revision'];if(_0x57df88!==void 0x0&&_0x57df88<0x0)throw y('Snapshot\x20revision\x20cannot\x20be\x20negative');let _0x37ce35=this['_database']['prepare']('SELECT\x20snapshots.unit_id\x20AS\x20unitID,\x20snapshots.type,\x20snapshots.revision\x20AS\x20rev\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_snapshots\x20AS\x20snapshots\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20JOIN\x20collaboration_units\x20AS\x20units\x20ON\x20units.unit_id\x20=\x20snapshots.unit_id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20snapshots.unit_id\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20units.soft_deleted_at_ms\x20IS\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x57df88===void 0x0?'':'AND\x20snapshots.revision\x20<=\x20?')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20snapshots.revision\x20DESC\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20LIMIT\x201')['get'](_0x457153,..._0x57df88===void 0x0?[]:[_0x57df88]);return _0x37ce35?{'unitID':_0x37ce35['unitID'],'type':_0x37ce35['type'],'rev':_0x37ce35['rev']}:null;}async['getChangesets'](_0x4079e2,_0x224680,_0x1b76dc){if(this['_assertOpen'](),_0x1b76dc['from']<0x0||_0x1b76dc['to']!==void 0x0&&_0x1b76dc['to']<0x0)throw y('Changeset\x20range\x20revisions\x20cannot\x20be\x20negative');let _0x7c427c=this['_database']['prepare']('SELECT\x20collaboration_changesets.payload_json\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20LEFT\x20JOIN\x20collaboration_changesets\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20collaboration_changesets.unit_id\x20=\x20collaboration_units.unit_id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20collaboration_changesets.revision\x20>\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x1b76dc['to']===void 0x0?'':'AND\x20collaboration_changesets.revision\x20<=\x20?')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20collaboration_units.unit_id\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20collaboration_units.soft_deleted_at_ms\x20IS\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20collaboration_changesets.revision\x20ASC')['all'](_0x1b76dc['from'],..._0x1b76dc['to']===void 0x0?[]:[_0x1b76dc['to']],_0x224680);return _0x7c427c['length']===0x0?null:_0x7c427c['flatMap'](_0x23c3a2=>_0x23c3a2['payload_json']?[C(_0x23c3a2['payload_json'])]:[]);}async['createUnit'](_0xa432a8,_0x314781){this['_assertOpen'](),_(_0x314781);let _0x568fca=S(_0x314781['snapshot']),_0x872ac5=(_0x314781['sheetBlocks']??[])['map'](_0x22fa62=>({'id':_0x22fa62['id'],'payload':S(_0x22fa62)}));return this['_transaction'](()=>{if(this['_hasTombstone'](_0x314781['record']['unitID']))throw y('Cannot\x20reuse\x20a\x20hard-deleted\x20unit\x20ID');let _0x1b35bd=this['_getStoredUnitRow'](_0x314781['record']['unitID']);if(_0x1b35bd){if(_0x1b35bd['soft_deleted_at_ms']!==null)throw y('Cannot\x20reuse\x20a\x20soft-deleted\x20unit\x20ID');return{'status':'already-exists','record':v(_0x1b35bd)};}return this['_database']['prepare']('INSERT\x20INTO\x20collaboration_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(unit_id,\x20type,\x20head_revision,\x20creator_id,\x20created_at_ms,\x20soft_deleted_at_ms)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x201,\x20?,\x20?,\x20NULL)')['run'](_0x314781['record']['unitID'],_0x314781['record']['type'],_0x314781['record']['creatorID'],_0x314781['record']['createdAt']),this['_writeSheetBlocks'](_0x314781['record']['unitID'],_0x872ac5),this['_database']['prepare']('INSERT\x20INTO\x20collaboration_snapshots\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(unit_id,\x20revision,\x20type,\x20payload_json)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x201,\x20?,\x20?)')['run'](_0x314781['record']['unitID'],_0x314781['record']['type'],_0x568fca),{'status':'created','record':{..._0x314781['record']}};});}async['deleteUnits'](_0x54b9f1,_0x1ff00c){return this['_assertOpen'](),this['_transaction'](()=>{let _0x516c1c=x(_0x1ff00c['unitIDs'])['map'](_0x5d41ad=>{let _0x109bb6=this['_getStoredUnitRow'](_0x5d41ad);if(!_0x109bb6){if(_0x1ff00c['hardDelete']&&this['_hasTombstone'](_0x5d41ad))return{'unitID':_0x5d41ad,'status':'already-hard-deleted'};throw new l['CollabError']('UNIT_NOT_FOUND','Cannot\x20delete\x20a\x20missing\x20unit');}return _0x1ff00c['hardDelete']?{'unitID':_0x5d41ad,'status':'hard-deleted'}:{'unitID':_0x5d41ad,'status':_0x109bb6['soft_deleted_at_ms']===null?'soft-deleted':'already-soft-deleted'};}),_0x469274=this['_database']['prepare']('UPDATE\x20collaboration_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20SET\x20soft_deleted_at_ms\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20unit_id\x20=\x20?\x20AND\x20soft_deleted_at_ms\x20IS\x20NULL'),_0x11b56b=this['_database']['prepare']('INSERT\x20INTO\x20collaboration_unit_tombstones\x20(unit_id,\x20purged_at)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?)'),_0x2f9fec=this['_database']['prepare']('DELETE\x20FROM\x20collaboration_units\x20WHERE\x20unit_id\x20=\x20?'),_0x47bec6=Date['now']();for(let _0x4122bd of _0x516c1c)_0x4122bd['status']==='soft-deleted'?_0x469274['run'](_0x47bec6,_0x4122bd['unitID']):_0x4122bd['status']==='hard-deleted'&&(_0x11b56b['run'](_0x4122bd['unitID'],_0x47bec6),_0x2f9fec['run'](_0x4122bd['unitID']));return{'units':_0x516c1c};});}async['recoverUnits'](_0x19f2d6,_0xb778d9){return this['_assertOpen'](),this['_transaction'](()=>{let _0x32729c=x(_0xb778d9['unitIDs'])['map'](_0x6d002f=>{let _0x216d03=this['_getStoredUnitRow'](_0x6d002f);if(!_0x216d03)throw this['_hasTombstone'](_0x6d002f)?y('Cannot\x20recover\x20a\x20hard-deleted\x20unit'):new l['CollabError']('UNIT_NOT_FOUND','Cannot\x20recover\x20a\x20missing\x20unit');return{'unitID':_0x6d002f,'status':_0x216d03['soft_deleted_at_ms']===null?'already-active':'recovered'};}),_0x4316e9=this['_database']['prepare']('UPDATE\x20collaboration_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20SET\x20soft_deleted_at_ms\x20=\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20unit_id\x20=\x20?\x20AND\x20soft_deleted_at_ms\x20IS\x20NOT\x20NULL');for(let _0x4cb7a3 of _0x32729c)_0x4cb7a3['status']==='recovered'&&_0x4316e9['run'](_0x4cb7a3['unitID']);return{'units':_0x32729c};});}async['commitChangeset'](_0x592529,_0x351609){return this['_assertOpen'](),this['_transaction'](()=>{let {changeset:_0x59e989}=_0x351609,_0x3fc85f=this['_getActiveUnitRow'](_0x59e989['unitID']);if(!_0x3fc85f)throw new l['CollabError']('UNIT_NOT_FOUND','Cannot\x20commit\x20to\x20a\x20missing\x20unit');if(_0x3fc85f['head_revision']!==_0x59e989['revision']-0x1)return{'status':'revision-mismatch','actualHeadRevision':_0x3fc85f['head_revision']};let _0xc7945a=Date['now'](),_0x2cde05=S({..._0x59e989,'createTime':Math['floor'](_0xc7945a/0x3e8)});if(this['_database']['prepare']('INSERT\x20INTO\x20collaboration_changesets\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(unit_id,\x20revision,\x20base_revision,\x20sid,\x20req_id,\x20created_at_ms,\x20payload_json)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?)')['run'](_0x59e989['unitID'],_0x59e989['revision'],_0x59e989['baseRev'],_0x59e989['sid'],_0x59e989['reqId'],_0xc7945a,_0x2cde05),this['_database']['prepare']('UPDATE\x20collaboration_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SET\x20head_revision\x20=\x20?\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\x20\x20\x20AND\x20head_revision\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20soft_deleted_at_ms\x20IS\x20NULL')['run'](_0x59e989['revision'],_0x59e989['unitID'],_0x59e989['revision']-0x1)['changes']!==0x1)throw new l['CollabError']('INTERNAL_ERROR','SQLite\x20head\x20changed\x20inside\x20an\x20exclusive\x20write\x20transaction');return{'status':'committed','changeset':C(_0x2cde05),'headRevision':_0x59e989['revision']};});}async['saveSnapshot'](_0x5179f2,_0x507d4f){this['_assertOpen']();let _0x4ec223=S(_0x507d4f['snapshot']),_0x136fc2=(_0x507d4f['sheetBlocks']??[])['map'](_0x88690a=>({'id':_0x88690a['id'],'payload':S(_0x88690a)}));this['_transaction'](()=>{let _0x59b32f=this['_getActiveUnitRow'](_0x507d4f['snapshot']['unitID']);if(!_0x59b32f)throw new l['CollabError']('UNIT_NOT_FOUND','Cannot\x20snapshot\x20a\x20missing\x20unit');if(_0x507d4f['snapshot']['type']!==_0x59b32f['type']||_0x507d4f['snapshot']['rev']<0x1||_0x507d4f['snapshot']['rev']>_0x59b32f['head_revision'])throw y('Snapshot\x20does\x20not\x20match\x20the\x20stored\x20unit\x20head');this['_writeSheetBlocks'](_0x507d4f['snapshot']['unitID'],_0x136fc2),this['_database']['prepare']('INSERT\x20INTO\x20collaboration_snapshots\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(unit_id,\x20revision,\x20type,\x20payload_json)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20CONFLICT(unit_id,\x20revision)\x20DO\x20UPDATE\x20SET\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type\x20=\x20excluded.type,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20payload_json\x20=\x20excluded.payload_json')['run'](_0x507d4f['snapshot']['unitID'],_0x507d4f['snapshot']['rev'],_0x507d4f['snapshot']['type'],_0x4ec223);});}async['getSheetBlock'](_0xa365c5,_0x158048,_0x3937c9){this['_assertOpen']();let _0x1bea73=this['_database']['prepare']('SELECT\x20collaboration_sheet_blocks.payload_json\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_sheet_blocks\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20JOIN\x20collaboration_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20collaboration_units.unit_id\x20=\x20collaboration_sheet_blocks.unit_id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20collaboration_sheet_blocks.unit_id\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20collaboration_sheet_blocks.block_id\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20collaboration_units.soft_deleted_at_ms\x20IS\x20NULL')['get'](_0x158048,_0x3937c9);return _0x1bea73?C(_0x1bea73['payload_json']):null;}async['dispose'](){this['_disposed']||(this['_disposed']=!0x0,this['_database']['close']());}['_initializeSchema'](){this['_transaction'](()=>{if(!this['_hasTable']('collaboration_schema_versions')){if(this['_hasAnyCoreTable']())throw b('SQLite\x20collaboration\x20core\x20tables\x20exist\x20without\x20a\x20schema\x20version');this['_database']['exec']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20collaboration_schema_versions\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20component\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20version\x20INTEGER\x20NOT\x20NULL\x20CHECK\x20(version\x20>=\x201)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x20\x20\x20\x20\x20\x20\x20\x20');}let _0x429547=this['_database']['prepare']('SELECT\x20version\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_schema_versions\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20component\x20=\x20?')['get'](f);if(_0x429547){if(_0x429547['version']!==p)throw b('SQLite\x20collaboration\x20core\x20schema\x20version\x20'+_0x429547['version']+'\x20is\x20not\x20supported;\x20version\x201\x20requires\x20explicit\x20migrateSQLiteCoreV1ToV2\x20with\x20a\x20Unit\x20creation\x20resolver');let _0x57d617=m['filter'](_0x532f00=>!this['_hasTable'](_0x532f00));if(_0x57d617['length']>0x0)throw b('SQLite\x20collaboration\x20core\x20schema\x20v'+_0x429547['version']+'\x20is\x20incomplete:\x20missing\x20'+_0x57d617['join'](',\x20'));if(!this['_database']['prepare']('PRAGMA\x20table_info(collaboration_changesets)')['all']()['some'](_0x17f59b=>_0x17f59b['name']==='created_at_ms'&&_0x17f59b['notnull']===0x1))throw b('Changeset\x20schema\x20requires\x20NOT\x20NULL\x20created_at_ms');let _0x3f63d4=this['_database']['prepare']('PRAGMA\x20table_info(collaboration_units)')['all']();if(!['creator_id','created_at_ms']['every'](_0x5aeada=>_0x3f63d4['some'](_0x429eae=>_0x429eae['name']===_0x5aeada&&_0x429eae['notnull']===0x1)))throw b('SQLite\x20collaboration\x20core\x20schema\x20v2\x20requires\x20NOT\x20NULL\x20creator_id\x20and\x20created_at_ms');return;}if(this['_hasAnyCoreTable']())throw b('SQLite\x20collaboration\x20core\x20tables\x20exist\x20without\x20a\x20schema\x20version');this['_database']['exec']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20collaboration_units\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20unit_id\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type\x20INTEGER\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20head_revision\x20INTEGER\x20NOT\x20NULL\x20CHECK\x20(head_revision\x20>=\x201),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20creator_id\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20created_at_ms\x20INTEGER\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20soft_deleted_at_ms\x20INTEGER\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20collaboration_unit_tombstones\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20unit_id\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20purged_at\x20INTEGER\x20NOT\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20collaboration_snapshots\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\x20revision\x20INTEGER\x20NOT\x20NULL\x20CHECK\x20(revision\x20>=\x201),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type\x20INTEGER\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20payload_json\x20TEXT\x20NOT\x20NULL,\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\x20\x20FOREIGN\x20KEY\x20(unit_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20REFERENCES\x20collaboration_units(unit_id)\x20ON\x20DELETE\x20CASCADE\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20collaboration_changesets\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\x20revision\x20INTEGER\x20NOT\x20NULL\x20CHECK\x20(revision\x20>=\x202),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20base_revision\x20INTEGER\x20NOT\x20NULL\x20CHECK\x20(base_revision\x20>=\x201),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20sid\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20req_id\x20INTEGER\x20NOT\x20NULL\x20CHECK\x20(req_id\x20>=\x201),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20created_at_ms\x20INTEGER\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20payload_json\x20TEXT\x20NOT\x20NULL,\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\x20\x20UNIQUE\x20(unit_id,\x20sid,\x20req_id),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FOREIGN\x20KEY\x20(unit_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20REFERENCES\x20collaboration_units(unit_id)\x20ON\x20DELETE\x20CASCADE\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20collaboration_sheet_blocks\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\x20block_id\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20payload_json\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20PRIMARY\x20KEY\x20(unit_id,\x20block_id),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FOREIGN\x20KEY\x20(unit_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20REFERENCES\x20collaboration_units(unit_id)\x20ON\x20DELETE\x20CASCADE\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20INDEX\x20collaboration_snapshots_nearest_revision\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20collaboration_snapshots(unit_id,\x20revision\x20DESC);\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20INDEX\x20collaboration_changesets_revision_range\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20collaboration_changesets(unit_id,\x20revision\x20ASC);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20INSERT\x20INTO\x20collaboration_schema_versions\x20(component,\x20version)\x0a\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(\x27core\x27,\x202);\x0a\x20\x20\x20\x20\x20\x20');});}['_getActiveUnitRow'](_0x4743d8){return this['_database']['prepare']('SELECT\x20unit_id,\x20type,\x20head_revision,\x20creator_id,\x20created_at_ms,\x20soft_deleted_at_ms\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20unit_id\x20=\x20?\x20AND\x20soft_deleted_at_ms\x20IS\x20NULL')['get'](_0x4743d8)??null;}['_getStoredUnitRow'](_0x51ef55){return this['_database']['prepare']('SELECT\x20unit_id,\x20type,\x20head_revision,\x20creator_id,\x20created_at_ms,\x20soft_deleted_at_ms\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20unit_id\x20=\x20?')['get'](_0x51ef55)??null;}['_hasTombstone'](_0x42813e){return!!this['_database']['prepare']('SELECT\x201\x20FROM\x20collaboration_unit_tombstones\x20WHERE\x20unit_id\x20=\x20?')['get'](_0x42813e);}['_hasTable'](_0x381588){return!!this['_database']['prepare']('SELECT\x201\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20sqlite_schema\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20type\x20=\x20\x27table\x27\x20AND\x20name\x20=\x20?')['get'](_0x381588);}['_hasAnyCoreTable'](){return m['some'](_0x2b06b6=>this['_hasTable'](_0x2b06b6));}['_writeSheetBlocks'](_0x2ff6e3,_0x296771){let _0x2a94f2=this['_database']['prepare']('INSERT\x20INTO\x20collaboration_sheet_blocks\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20(unit_id,\x20block_id,\x20payload_json)\x0a\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?)\x0a\x20\x20\x20\x20\x20\x20\x20ON\x20CONFLICT(unit_id,\x20block_id)\x20DO\x20UPDATE\x20SET\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20payload_json\x20=\x20excluded.payload_json');for(let _0x565593 of _0x296771)_0x2a94f2['run'](_0x2ff6e3,_0x565593['id'],_0x565593['payload']);}['_transaction'](_0x42e412){this['_database']['exec']('BEGIN\x20IMMEDIATE;');try{let _0x77f65b=_0x42e412();return this['_database']['exec']('COMMIT;'),_0x77f65b;}catch(_0x312e05){throw this['_database']['inTransaction']&&this['_database']['exec']('ROLLBACK;'),_0x312e05;}}['_assertOpen'](){if(this['_disposed'])throw new l['CollabError']('INTERNAL_ERROR','SQLite\x20Database\x20Adapter\x20is\x20disposed');}};function g(_0x359a9e){if(!_0x359a9e['filename'])throw y('SQLite\x20filename\x20is\x20required');if(_0x359a9e['busyTimeoutMs']!==void 0x0&&(!Number['isSafeInteger'](_0x359a9e['busyTimeoutMs'])||_0x359a9e['busyTimeoutMs']<0x0))throw y('SQLite\x20busyTimeoutMs\x20must\x20be\x20a\x20non-negative\x20integer');}function _(_0x5977f8){let {record:_0x12978d,snapshot:_0x39127e}=_0x5977f8;if(_0x12978d['headRevision']!==0x1||_0x39127e['rev']!==0x1||_0x39127e['unitID']!==_0x12978d['unitID']||_0x39127e['type']!==_0x12978d['type'])throw y('Initial\x20unit\x20record\x20and\x20snapshot\x20must\x20match\x20at\x20revision\x201');if(typeof _0x12978d['creatorID']!='string'||_0x12978d['creatorID']['length']===0x0||!Number['isSafeInteger'](_0x12978d['createdAt'])||_0x12978d['createdAt']<0x0)throw y('Unit\x20creation\x20requires\x20creatorID\x20and\x20createdAt\x20in\x20Unix\x20milliseconds');}function v(_0x4523b1){return{'unitID':_0x4523b1['unit_id'],'type':_0x4523b1['type'],'headRevision':_0x4523b1['head_revision'],'creatorID':_0x4523b1['creator_id'],'createdAt':_0x4523b1['created_at_ms']};}function y(_0x46d455){return new l['CollabError']('INVALID_REQUEST',_0x46d455);}function b(_0x312a07){return new l['CollabError']('INTERNAL_ERROR',_0x312a07);}function x(_0x3dfa60){return[...new Set(_0x3dfa60)];}function S(_0x356928){return JSON['stringify'](_0x356928,function(_0x5b81b3,_0x2fd34f){let _0xdd9f69=this[_0x5b81b3];return _0xdd9f69 instanceof Uint8Array?{[d]:Buffer['from'](_0xdd9f69)['toString']('base64')}:_0x2fd34f;});}function C(_0x19b764){return JSON['parse'](_0x19b764,(_0x3d5379,_0x210d0f)=>w(_0x210d0f)?Uint8Array['from'](Buffer['from'](_0x210d0f[d],'base64')):_0x210d0f);}function w(_0x3be4ba){return typeof _0x3be4ba=='object'&&!!_0x3be4ba&&Object['keys'](_0x3be4ba)['length']===0x1&&typeof _0x3be4ba[d]=='string';}async function T(_0xcd7d07){let _0x5f05ed=Date['now'](),_0x3c259c=new c['default'](_0xcd7d07['filename'],{'fileMustExist':!0x0}),_0x1441bf=!0x1;try{if(_0x3c259c['exec']('PRAGMA\x20foreign_keys\x20=\x20OFF;\x20PRAGMA\x20legacy_alter_table\x20=\x20ON;\x20BEGIN\x20IMMEDIATE;'),_0x1441bf=!0x0,_0x3c259c['prepare']('SELECT\x20version\x20FROM\x20collaboration_schema_versions\x20WHERE\x20component\x20=\x20\x27core\x27')['get']()?.['version']!==0x1)throw new l['CollabError']('INVALID_REQUEST','migrateSQLiteCoreV1ToV2\x20requires\x20core\x20schema\x20version\x201');for(let _0x5bdf32 of['collaboration_unit_tombstones','collaboration_snapshots','collaboration_changesets','collaboration_sheet_blocks'])_0x3c259c['prepare']('SELECT\x201\x20FROM\x20'+_0x5bdf32+'\x20LIMIT\x200')['all']();let _0x2da892=_0x3c259c['prepare']('SELECT\x201\x20FROM\x20sqlite_schema\x20WHERE\x20type\x20=\x20\x27table\x27\x20AND\x20name\x20=\x20\x27collaboration_history_revisions\x27')['get']()?_0x3c259c['prepare']('SELECT\x20user_id,\x20committed_at\x20FROM\x20collaboration_history_revisions\x20WHERE\x20unit_id\x20=\x20?\x20AND\x20revision\x20=\x20?'):void 0x0,_0x1fbeef=(_0x1be7cf,_0x313643)=>_0x2da892?.['get'](_0x1be7cf,_0x313643),_0x2d5d15=_0x3c259c['prepare']('PRAGMA\x20table_info(collaboration_units)')['all'](),_0x3dce41=['unit_id','type','head_revision','soft_deleted_at_ms'];if(_0x2d5d15['length']!==_0x3dce41['length']||_0x3dce41['some'](_0x1df83f=>!_0x2d5d15['some'](_0x496b7f=>_0x496b7f['name']===_0x1df83f)))throw new l['CollabError']('INVALID_REQUEST','Core\x20v1\x20Unit\x20columns\x20differ\x20from\x20the\x20supported\x20schema;\x20refusing\x20a\x20potentially\x20lossy\x20migration');let _0x35bfca=_0x3c259c['prepare']('SELECT\x20sql\x20FROM\x20sqlite_schema\x20WHERE\x20tbl_name\x20=\x20\x27collaboration_units\x27\x20AND\x20type\x20IN\x20(\x27index\x27,\x20\x27trigger\x27)\x20AND\x20sql\x20IS\x20NOT\x20NULL')['all']();_0x3c259c['exec']('CREATE\x20TABLE\x20collaboration_units_v2\x20(\x0a\x20\x20\x20\x20\x20\x20unit_id\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20\x20\x20type\x20INTEGER\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20head_revision\x20INTEGER\x20NOT\x20NULL\x20CHECK\x20(head_revision\x20>=\x201),\x0a\x20\x20\x20\x20\x20\x20creator_id\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20created_at_ms\x20INTEGER\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20soft_deleted_at_ms\x20INTEGER\x0a\x20\x20\x20\x20);');let _0x595d12=D(_0x3c259c,'collaboration_units',['unit_id']),_0x1131c6=_0x3c259c['prepare']('INSERT\x20INTO\x20collaboration_units_v2\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?)');for(let _0x457c8f of _0x595d12){let _0x37592a=_0xcd7d07['resolveUnitCreation']?void 0x0:_0x1fbeef(_0x457c8f['unit_id'],0x1),_0x479b7b=_0xcd7d07['resolveUnitCreation']?await _0xcd7d07['resolveUnitCreation'](_0x457c8f['unit_id']):{'creatorID':_0x37592a?.['user_id']||'anonymous','createdAt':E(_0x37592a?.['committed_at'])?_0x37592a['committed_at']:_0x5f05ed};if(!_0x479b7b||typeof _0x479b7b['creatorID']!='string'||_0x479b7b['creatorID']['length']===0x0||!Number['isSafeInteger'](_0x479b7b['createdAt'])||_0x479b7b['createdAt']<0x0)throw new l['CollabError']('INVALID_REQUEST','Missing\x20or\x20invalid\x20creation\x20facts\x20for\x20Unit\x20'+_0x457c8f['unit_id']);_0x1131c6['run'](_0x457c8f['unit_id'],_0x457c8f['type'],_0x457c8f['head_revision'],_0x479b7b['creatorID'],_0x479b7b['createdAt'],_0x457c8f['soft_deleted_at_ms']);}_0x3c259c['exec']('DROP\x20TABLE\x20collaboration_units;\x20ALTER\x20TABLE\x20collaboration_units_v2\x20RENAME\x20TO\x20collaboration_units;');for(let _0x6d821b of _0x35bfca)_0x3c259c['exec'](_0x6d821b['sql']);let _0x3fa1be=_0x3c259c['prepare']('SELECT\x20sql\x20FROM\x20sqlite_schema\x20WHERE\x20type\x20=\x20\x27table\x27\x20AND\x20name\x20=\x20\x27collaboration_changesets\x27')['get'](),_0x4764f7=_0x3c259c['prepare']('PRAGMA\x20table_info(collaboration_changesets)')['all']();if(_0x4764f7['some'](_0xa5edad=>_0xa5edad['name']==='created_at_ms'))throw new l['CollabError']('INVALID_REQUEST','Unexpected\x20changeset\x20creation-time\x20column\x20in\x20legacy\x20schema');let _0x11427e=_0x3c259c['prepare']('SELECT\x20sql\x20FROM\x20sqlite_schema\x20WHERE\x20tbl_name\x20=\x20\x27collaboration_changesets\x27\x20AND\x20type\x20IN\x20(\x27index\x27,\x20\x27trigger\x27)\x20AND\x20sql\x20IS\x20NOT\x20NULL')['all']();_0x3c259c['exec']('CREATE\x20TABLE\x20collaboration_changesets_new\x20(\x0a\x20\x20\x20\x20\x20\x20created_at_ms\x20INTEGER\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20'+_0x3fa1be['sql']['slice'](_0x3fa1be['sql']['indexOf']('(')+0x1));let _0x1a62da=D(_0x3c259c,'collaboration_changesets',['unit_id','revision']),_0xd36288=_0x4764f7['map'](_0x2e517f=>'\x22'+_0x2e517f['name']['replaceAll']('\x22','\x22\x22')+'\x22')['join'](',\x20'),_0x4eeb73=_0x3c259c['prepare']('INSERT\x20INTO\x20collaboration_changesets_new\x20('+_0xd36288+',\x20created_at_ms)\x20VALUES\x20('+_0x4764f7['map'](()=>'?')['join'](',\x20')+',\x20?)');for(let _0x559b23 of _0x1a62da){let _0x4a1c10=JSON['parse'](_0x559b23['payload_json']),_0x1e41db=typeof _0x4a1c10['createTime']=='number'?_0x4a1c10['createTime']*0x3e8:void 0x0,_0x1ebdb8=!_0xcd7d07['resolveChangesetCreatedAt']&&!E(_0x1e41db)?_0x1fbeef(_0x559b23['unit_id'],_0x559b23['revision'])?.['committed_at']:void 0x0,_0x13ae45=_0xcd7d07['resolveChangesetCreatedAt']?await _0xcd7d07['resolveChangesetCreatedAt'](_0x559b23['unit_id'],_0x559b23['revision']):E(_0x1e41db)?_0x1e41db:E(_0x1ebdb8)?_0x1ebdb8:_0x5f05ed;if(!Number['isSafeInteger'](_0x13ae45)||_0x13ae45<0x0)throw new l['CollabError']('INVALID_REQUEST','Missing\x20or\x20invalid\x20changeset\x20time\x20for\x20Unit\x20'+_0x559b23['unit_id']+'\x20revision\x20'+_0x559b23['revision']);_0x4a1c10['createTime']=Math['floor'](_0x13ae45/0x3e8),_0x4eeb73['run'](..._0x4764f7['map'](_0x22f5b9=>_0x22f5b9['name']==='payload_json'?JSON['stringify'](_0x4a1c10):_0x559b23[_0x22f5b9['name']]),_0x13ae45);}_0x3c259c['exec']('DROP\x20TABLE\x20collaboration_changesets;\x20ALTER\x20TABLE\x20collaboration_changesets_new\x20RENAME\x20TO\x20collaboration_changesets;');for(let _0x1aac47 of _0x11427e)_0x3c259c['exec'](_0x1aac47['sql']);if(_0x3c259c['prepare']('PRAGMA\x20foreign_key_check')['all']()['length']>0x0)throw new l['CollabError']('INVALID_REQUEST','Foreign\x20key\x20validation\x20failed\x20during\x20core\x20migration');_0x3c259c['exec']('UPDATE\x20collaboration_schema_versions\x20SET\x20version\x20=\x202\x20WHERE\x20component\x20=\x20\x27core\x27;\x20COMMIT;'),_0x1441bf=!0x1;}finally{try{_0x1441bf&&_0x3c259c['exec']('ROLLBACK;');}finally{_0x3c259c['close']();}}}function E(_0x44fb85){return typeof _0x44fb85=='number'&&Number['isSafeInteger'](_0x44fb85)&&_0x44fb85>=0x0;}function*D(_0x42953b,_0x5684e1,_0x5e538a){let _0x57add7=_0x5e538a['join'](',\x20'),_0xbd322a=_0x42953b['prepare']('SELECT\x20*\x20FROM\x20'+_0x5684e1+'\x20ORDER\x20BY\x20'+_0x57add7+'\x20LIMIT\x20100'),_0x6dd2a1=_0x42953b['prepare']('SELECT\x20*\x20FROM\x20'+_0x5684e1+'\x20WHERE\x20('+_0x57add7+')\x20>\x20('+_0x5e538a['map'](()=>'?')['join'](',\x20')+')\x20ORDER\x20BY\x20'+_0x57add7+'\x20LIMIT\x20100'),_0xe9a581=_0xbd322a['all']();for(;_0xe9a581['length']>0x0;){yield*_0xe9a581;let _0x38c81b=_0x5e538a['map'](_0x46b36e=>_0xe9a581[_0xe9a581['length']-0x1][_0x46b36e]);_0xe9a581=[],_0xe9a581=_0x6dd2a1['all'](..._0x38c81b);}}exports['SQLiteDatabaseAdapter']=h,exports['migrateSQLiteCoreV1ToV2']=T;
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x681444=_0xc29e;(function(_0x25090f,_0x71ebd6){const _0x4ed037=_0xc29e,_0x20afcc=_0x25090f();while(!![]){try{const _0x4babf6=-parseInt(_0x4ed037(0x1cb))/0x1*(parseInt(_0x4ed037(0x1cd))/0x2)+-parseInt(_0x4ed037(0x1cc))/0x3+parseInt(_0x4ed037(0x1d1))/0x4+parseInt(_0x4ed037(0x1ce))/0x5+parseInt(_0x4ed037(0x1d4))/0x6+-parseInt(_0x4ed037(0x1d0))/0x7*(parseInt(_0x4ed037(0x1ca))/0x8)+-parseInt(_0x4ed037(0x1d2))/0x9;if(_0x4babf6===_0x71ebd6)break;else _0x20afcc['push'](_0x20afcc['shift']());}catch(_0x2eaf45){_0x20afcc['push'](_0x20afcc['shift']());}}}(_0x18bd,0xc8164));import _0x4b0baf from'./index.cjs';const facadeExport0=_0x4b0baf[_0x681444(0x1cf)],facadeExport1=_0x4b0baf[_0x681444(0x1d3)];function _0xc29e(_0x376380,_0x184b55){_0x376380=_0x376380-0x1ca;const _0x18bd35=_0x18bd();let _0xc29e4d=_0x18bd35[_0x376380];return _0xc29e4d;}function _0x18bd(){const _0x312ced=['3896442XsJQcW','migrateSQLiteCoreV1ToV2','3328812DTfJye','16XCzIWC','421381RyKXoj','670710rfsXSQ','2hbjBOY','6270455TGIQpR','SQLiteDatabaseAdapter','5155808nyqgZw','6246560CcFteA'];_0x18bd=function(){return _0x312ced;};return _0x18bd();}export{facadeExport0 as SQLiteDatabaseAdapter,facadeExport1 as migrateSQLiteCoreV1ToV2};
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"engines": {
|
|
5
5
|
"node": ">=22"
|
|
6
6
|
},
|
|
7
|
-
"version": "1.0.
|
|
7
|
+
"version": "1.0.2",
|
|
8
8
|
"main": "./dist/index.cjs",
|
|
9
9
|
"module": "./dist/index.mjs",
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"dist"
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@univerjs-pro/collaboration-service": "1.0.
|
|
23
|
-
"@univerjs/protocol": "1.0.
|
|
22
|
+
"@univerjs-pro/collaboration-service": "1.0.2",
|
|
23
|
+
"@univerjs/protocol": "1.0.2",
|
|
24
24
|
"libsql": "^0.5.29"
|
|
25
25
|
}
|
|
26
26
|
}
|