@univerjs-pro/collaboration-worktree-database-sqlite 1.0.0-rc.0 → 1.0.1

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 CHANGED
@@ -34,7 +34,7 @@ The caller must create the database parent directory in advance and dispose the
34
34
  ## Storage contract
35
35
 
36
36
  - Tables use the `collaboration_worktree_*` prefix.
37
- - Schema version `('worktree', 2)` is stored in shared `collaboration_schema_versions`; `PRAGMA user_version` is not used.
37
+ - Schema version `('worktree', 3)` is stored in shared `collaboration_schema_versions`; `PRAGMA user_version` is not used.
38
38
  - Draft-changeset scalar columns and the submission unique constraint provide database-level integrity, while commits use revision CAS and do not query the submission key.
39
39
  - It can share a database file with trunk, Comment, and History SQLite Adapters.
40
40
  - State transitions, draft CAS, and merge results use SQLite transactions for atomicity.
@@ -42,9 +42,23 @@ The caller must create the database parent directory in advance and dispose the
42
42
 
43
43
  Worktree Adapter does not own trunk collaboration data and does not manage Worktree names, list discovery, ACLs, or product-resource extension data for the application.
44
44
 
45
- Schema v1 upgrades transactionally to v2 by adding a removal flag, defaulting
46
- to false for all existing Units. Draft changesets, merge artifacts, and pending
47
- merge results are preserved. Stop old writers and back up the database before
48
- upgrading; older Adapters reject v2. Restarting v2 does not rerun the migration.
49
- Removal updates and draft commits share the Adapter transaction boundary, so a
50
- commit cannot succeed after removal has been persisted.
45
+ ## Explicit migrations
46
+
47
+ V3 adds required `creator_id` (creator) and `created_at_ms` (creation time, Unix milliseconds)
48
+ to `collaboration_worktree_units`, and required `created_at_ms` (commit time, Unix milliseconds)
49
+ to `collaboration_worktree_changesets`.
50
+
51
+ Stop writers and back up the file,
52
+ then call `migrateSQLiteWorktreeV2ToV3({ filename })` before constructing the Adapter.
53
+ For v1 databases, first call `migrateSQLiteWorktreeV1ToV2({ filename })`.
54
+ Both functions are exported from the package root; opening an old database does not migrate it automatically.
55
+
56
+ For trunk-sourced Units, creation facts default to revision 1 in History in the same database.
57
+ Draft changeset times use their payload `createTime` (seconds). Missing or invalid information
58
+ falls back to `anonymous` and the migration start time. Trunk History cannot identify draft revisions.
59
+
60
+ Optional async `resolveUnitCreation(worktreeID, unitID)` and
61
+ `resolveChangesetCreatedAt(worktreeID, unitID, revision)` callbacks replace these defaults,
62
+ returning `{ creatorID, createdAt }` and a timestamp, respectively, using Unix milliseconds.
63
+ Callbacks cover removed Units too and must not write to the same database.
64
+ Invalid callback results or exceptions roll back the migration.
package/README.zh-CN.md CHANGED
@@ -35,7 +35,7 @@ await worktreeDatabase.dispose();
35
35
  ## 存储契约
36
36
 
37
37
  - 表使用 `collaboration_worktree_*` 前缀。
38
- - schema 版本 `('worktree', 1)` 记录在共享的
38
+ - schema 版本 `('worktree', 3)` 记录在共享的
39
39
  `collaboration_schema_versions`,不占用 `PRAGMA user_version`。
40
40
  - draft changeset 标量列和 submission unique constraint 提供数据库级完整性;提交只做
41
41
  revision CAS,不按 submission key 点查。
@@ -45,3 +45,22 @@ await worktreeDatabase.dispose();
45
45
 
46
46
  Worktree Adapter 不拥有 trunk 协同数据,也不替应用管理 Worktree 名称、列表发现、ACL 或
47
47
  产品资源扩展数据。
48
+
49
+ ## 显式迁移
50
+
51
+ v3 为 `collaboration_worktree_units` 新增必填的 `creator_id`(创建者)和
52
+ `created_at_ms`(创建时间,Unix 毫秒),为 `collaboration_worktree_changesets` 新增必填的
53
+ `created_at_ms`(提交时间,Unix 毫秒)。
54
+
55
+ 停写并备份后,在构造 Adapter 前调用
56
+ `migrateSQLiteWorktreeV2ToV3({ filename })`;v1 库先调用
57
+ `migrateSQLiteWorktreeV1ToV2({ filename })`。两个方法均从包根入口导出,打开旧库不会自动迁移。
58
+
59
+ 从 trunk 加入的 Unit 默认使用同一数据库中 History revision 1 的创建信息。
60
+ Draft changeset 时间使用其 payload 的 `createTime`(秒)。信息缺失或非法时使用
61
+ `anonymous` 和本次迁移开始时间;trunk History 不能用于识别 draft revision。
62
+
63
+ 可选异步回调 `resolveUnitCreation(worktreeID, unitID)` 和
64
+ `resolveChangesetCreatedAt(worktreeID, unitID, revision)` 可覆盖默认策略,
65
+ 分别返回 `{ creatorID, createdAt }` 和时间值,时间均为 Unix 毫秒。
66
+ 回调也包含 removed Unit,不得写入同一数据库;返回非法值或抛出异常会使迁移整体回滚。
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=(_0xe17632,_0x176475,_0x55a337,_0x107690)=>{if(_0x176475&&typeof _0x176475=='object'||typeof _0x176475=='function'){for(var _0x2f516a=r(_0x176475),_0x31e505=0x0,_0x1ea650=_0x2f516a['length'],_0x3f2e66;_0x31e505<_0x1ea650;_0x31e505++)_0x3f2e66=_0x2f516a[_0x31e505],!a['call'](_0xe17632,_0x3f2e66)&&_0x3f2e66!==_0x55a337&&t(_0xe17632,_0x3f2e66,{'get':(_0x49dc3e=>_0x176475[_0x49dc3e])['bind'](null,_0x3f2e66),'enumerable':!(_0x107690=n(_0x176475,_0x3f2e66))||_0x107690['enumerable']});}return _0xe17632;},s=(_0x29dbca,_0x53e208,_0x252420)=>(_0x252420=_0x29dbca==null?{}:e(i(_0x29dbca)),o(_0x53e208||!_0x29dbca||!_0x29dbca['__esModule']?t(_0x252420,'default',{'value':_0x29dbca,'enumerable':!0x0}):_0x252420,_0x29dbca));let c=require('node:util'),l=require('libsql');l=s(l,0x1);let u=require('@univerjs-pro/collaboration-service'),d=require('@univerjs/protocol');var f='worktree',p=0x2,m=['collaboration_worktrees','collaboration_worktree_units','collaboration_worktree_changesets','collaboration_worktree_unit_seeds','collaboration_worktree_unit_merge_artifacts'],h=0x1388,g='__univerCollaborationBinary',_=new Set([d['UniverType']['UNIVER_SHEET'],d['UniverType']['UNIVER_DOC'],d['UniverType']['UNIVER_SLIDE'],d['UniverType']['UNIVER_BOARD'],d['UniverType']['UNIVER_BASE']]),v=class{['_database'];['_disposed']=!0x1;constructor(_0x1ac4cf){b(_0x1ac4cf),this['_database']=new l['default'](_0x1ac4cf['filename'],{'timeout':_0x1ac4cf['busyTimeoutMs']??h});try{this['_database']['exec']('PRAGMA\x20foreign_keys\x20=\x20ON;'),this['_database']['exec']('PRAGMA\x20busy_timeout\x20=\x20'+(_0x1ac4cf['busyTimeoutMs']??h)+';'),this['_initializeSchema']();}catch(_0x567b49){throw this['_database']['close'](),_0x567b49;}}async['getWorktree'](_0x3509a3,_0x13dd8a){return this['_assertOpen'](),this['_getAggregate'](_0x13dd8a);}async['getWorktreeUnit'](_0x520e38,_0x24b128,_0x4d2448){this['_assertOpen']();let _0x4b1aac=this['_getUnitRow'](_0x24b128,_0x4d2448);return _0x4b1aac?y(_0x4b1aac):null;}async['getDraftChangesets'](_0x24d46c,_0x25bae4,_0x3bb814,_0x7dc0d2){this['_assertOpen'](),T(_0x7dc0d2);let _0x295c1e=this['_database']['prepare']('SELECT\x20changesets.payload_json\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_worktree_units\x20AS\x20units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20LEFT\x20JOIN\x20collaboration_worktree_changesets\x20AS\x20changesets\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20changesets.worktree_id\x20=\x20units.worktree_id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20changesets.unit_id\x20=\x20units.unit_id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20changesets.revision\x20>\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x7dc0d2['to']===void 0x0?'':'AND\x20changesets.revision\x20<=\x20?')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20units.worktree_id\x20=\x20?\x20AND\x20units.unit_id\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20changesets.revision\x20ASC')['all'](_0x7dc0d2['from'],..._0x7dc0d2['to']===void 0x0?[]:[_0x7dc0d2['to']],_0x25bae4,_0x3bb814);return _0x295c1e['length']===0x0?null:_0x295c1e['flatMap'](({payload_json:_0x347f1f})=>_0x347f1f?[F(_0x347f1f)]:[]);}async['getUnitSeed'](_0x5d2ddb,_0xc23920,_0x54102a){return this['_assertOpen'](),this['_getUnitSeed'](_0xc23920,_0x54102a);}async['getUnitMergeArtifact'](_0x29bc3a,_0x414e57,_0x3a6812){return this['_assertOpen'](),this['_getUnitMergeArtifact'](_0x414e57,_0x3a6812);}async['createWorktree'](_0x8de60,_0x280c06){return this['_assertOpen'](),x(_0x280c06),this['_transaction'](()=>{let _0x46241d=this['_getAggregate'](_0x280c06['record']['worktreeID']);if(_0x46241d)return{'status':'already-exists','aggregate':_0x46241d};this['_database']['prepare']('INSERT\x20INTO\x20collaboration_worktrees\x20(worktree_id,\x20sid,\x20status)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20\x27draft\x27)')['run'](_0x280c06['record']['worktreeID'],_0x280c06['record']['sid']);let _0x3eba60=this['_database']['prepare']('INSERT\x20INTO\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(worktree_id,\x20unit_id,\x20unit_order,\x20type,\x20source,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20baseline_trunk_revision,\x20draft_head_revision)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20\x27trunk\x27,\x20?,\x20?)');return _0x280c06['units']['forEach']((_0x382d76,_0x94985e)=>{_0x3eba60['run'](_0x382d76['worktreeID'],_0x382d76['unitID'],_0x94985e,_0x382d76['type'],_0x382d76['baselineTrunkRevision'],_0x382d76['draftHeadRevision']);}),{'status':'created','aggregate':this['_requireAggregate'](_0x280c06['record']['worktreeID'])};});}async['addUnit'](_0x425ecb,_0x574984){return this['_assertOpen'](),w(_0x574984['unit']),this['_transaction'](()=>{let {unit:_0x29ad66}=_0x574984,_0x10855e=this['_getWorktreeRow'](_0x29ad66['worktreeID']);if(!_0x10855e)return{'status':'not-found'};if(this['_getUnitRow'](_0x29ad66['worktreeID'],_0x29ad66['unitID']))return{'status':'already-exists','aggregate':this['_requireAggregate'](_0x29ad66['worktreeID'])};if(_0x10855e['status']!=='draft')return{'status':'status-mismatch','aggregate':this['_requireAggregate'](_0x29ad66['worktreeID'])};S(_0x29ad66);let _0x1d3d6e=this['_database']['prepare']('SELECT\x20COALESCE(MAX(unit_order),\x20-1)\x20+\x201\x20AS\x20next_order\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?')['get'](_0x29ad66['worktreeID']);return this['_database']['prepare']('INSERT\x20INTO\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(worktree_id,\x20unit_id,\x20unit_order,\x20type,\x20source,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20baseline_trunk_revision,\x20draft_head_revision)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20\x27trunk\x27,\x20?,\x20?)')['run'](_0x29ad66['worktreeID'],_0x29ad66['unitID'],_0x1d3d6e['next_order'],_0x29ad66['type'],_0x29ad66['baselineTrunkRevision'],_0x29ad66['draftHeadRevision']),{'status':'added','aggregate':this['_requireAggregate'](_0x29ad66['worktreeID'])};});}async['createUnit'](_0x257894,_0x43cb20){return this['_assertOpen'](),C(_0x43cb20['unit'],_0x43cb20['seed']),this['_transaction'](()=>{let {unit:_0x2636be,seed:_0x1d2c7f}=_0x43cb20,_0x58ad36=this['_getWorktreeRow'](_0x2636be['worktreeID']);if(!_0x58ad36)return{'status':'not-found'};let _0x3f7497=this['_getUnitRow'](_0x2636be['worktreeID'],_0x2636be['unitID']);if(_0x3f7497){let _0x5a7b3c=this['_getUnitSeed'](_0x2636be['worktreeID'],_0x2636be['unitID']);return{'status':_0x3f7497['source']==='worktree'&&_0x3f7497['type']===_0x2636be['type']&&_0x5a7b3c!==null&&P(_0x5a7b3c)===P(_0x1d2c7f)?'already-created':'unit-exists','aggregate':this['_requireAggregate'](_0x2636be['worktreeID'])};}if(_0x58ad36['status']!=='draft')return{'status':'status-mismatch','aggregate':this['_requireAggregate'](_0x2636be['worktreeID'])};let _0x31576c=this['_database']['prepare']('SELECT\x20COALESCE(MAX(unit_order),\x20-1)\x20+\x201\x20AS\x20next_order\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?')['get'](_0x2636be['worktreeID']);return this['_database']['prepare']('INSERT\x20INTO\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(worktree_id,\x20unit_id,\x20unit_order,\x20type,\x20source,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20baseline_trunk_revision,\x20draft_head_revision)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20\x27worktree\x27,\x201,\x201)')['run'](_0x2636be['worktreeID'],_0x2636be['unitID'],_0x31576c['next_order'],_0x2636be['type']),this['_database']['prepare']('INSERT\x20INTO\x20collaboration_worktree_unit_seeds\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(worktree_id,\x20unit_id,\x20snapshot_json,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20sheet_blocks_json)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?)')['run'](_0x2636be['worktreeID'],_0x2636be['unitID'],P(_0x1d2c7f['snapshot']),_0x1d2c7f['sheetBlocks']===void 0x0?null:P(_0x1d2c7f['sheetBlocks'])),{'status':'created','aggregate':this['_requireAggregate'](_0x2636be['worktreeID'])};});}async['saveUnitMergeArtifact'](_0xf06380,_0x130c44){return this['_assertOpen'](),this['_transaction'](()=>{let _0x3053c9=this['_getWorktreeRow'](_0x130c44['worktreeID']),_0x570a6c=this['_getUnitRow'](_0x130c44['worktreeID'],_0x130c44['unitID']);if(!_0x3053c9||!_0x570a6c)return{'status':'not-found'};let _0x190b1f=y(_0x570a6c);if(_0x3053c9['status']!=='merging'||_0x190b1f['source']!=='worktree'||_0x190b1f['readyDraftHeadRevision']!==_0x130c44['artifact']['readyDraftHeadRevision']||O(_0x190b1f))return{'status':'stale-merge'};let _0x298a76=this['_getUnitMergeArtifact'](_0x130c44['worktreeID'],_0x130c44['unitID']);return _0x298a76?{'status':'already-saved','artifact':_0x298a76}:(D(_0x190b1f,_0x130c44['artifact']),this['_database']['prepare']('INSERT\x20INTO\x20collaboration_worktree_unit_merge_artifacts\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(worktree_id,\x20unit_id,\x20ready_draft_head_revision,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20snapshot_json,\x20sheet_blocks_json)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?)')['run'](_0x130c44['worktreeID'],_0x130c44['unitID'],_0x130c44['artifact']['readyDraftHeadRevision'],P(_0x130c44['artifact']['unit']['snapshot']),_0x130c44['artifact']['unit']['sheetBlocks']===void 0x0?null:P(_0x130c44['artifact']['unit']['sheetBlocks'])),{'status':'saved','artifact':F(P(_0x130c44['artifact']))});});}async['setUnitRemoved'](_0x391dce,_0x4e3afd){return this['_assertOpen'](),this['_transaction'](()=>{let _0x2c78e3=this['_getWorktreeRow'](_0x4e3afd['worktreeID']),_0xbac36b=this['_getUnitRow'](_0x4e3afd['worktreeID'],_0x4e3afd['unitID']);return!_0x2c78e3||!_0xbac36b?{'status':'not-found'}:_0x2c78e3['status']!=='draft'||O(y(_0xbac36b))?{'status':'not-editable','aggregate':this['_requireAggregate'](_0x4e3afd['worktreeID'])}:_0xbac36b['removed']===0x1===_0x4e3afd['removed']?{'status':'unchanged','aggregate':this['_requireAggregate'](_0x4e3afd['worktreeID'])}:(this['_database']['prepare']('UPDATE\x20collaboration_worktree_units\x20SET\x20removed\x20=\x20?\x20WHERE\x20worktree_id\x20=\x20?\x20AND\x20unit_id\x20=\x20?')['run'](+!!_0x4e3afd['removed'],_0x4e3afd['worktreeID'],_0x4e3afd['unitID']),{'status':'updated','aggregate':this['_requireAggregate'](_0x4e3afd['worktreeID'])});});}async['commitDraftChangeset'](_0x2052ea,_0x17824a){return this['_assertOpen'](),this['_transaction'](()=>{let {worktreeID:_0x466fa3,changeset:_0x61030e}=_0x17824a,_0x46143c=this['_getWorktreeRow'](_0x466fa3),_0x3b1da3=this['_getUnitRow'](_0x466fa3,_0x61030e['unitID']);if(!_0x46143c||!_0x3b1da3)return{'status':'not-found'};if(_0x46143c['status']!=='draft')return{'status':'not-editable','worktreeStatus':A(_0x46143c['status'])};let _0x3b603c=y(_0x3b1da3);if(_0x3b603c['removed']||O(_0x3b603c))return{'status':'unit-frozen'};if(_0x3b603c['draftHeadRevision']!==_0x61030e['revision']-0x1)return{'status':'revision-mismatch','actualHeadRevision':_0x3b603c['draftHeadRevision']};if(this['_database']['prepare']('INSERT\x20INTO\x20collaboration_worktree_changesets\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(worktree_id,\x20unit_id,\x20revision,\x20base_revision,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20sid,\x20req_id,\x20payload_json)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?,\x20?,\x20?)')['run'](_0x466fa3,_0x61030e['unitID'],_0x61030e['revision'],_0x61030e['baseRev'],_0x61030e['sid'],_0x61030e['reqId'],P(_0x61030e)),this['_database']['prepare']('UPDATE\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SET\x20draft_head_revision\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?\x20AND\x20unit_id\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20draft_head_revision\x20=\x20?')['run'](_0x61030e['revision'],_0x466fa3,_0x61030e['unitID'],_0x61030e['revision']-0x1)['changes']!==0x1)throw new u['CollabError']('INTERNAL_ERROR','SQLite\x20draft\x20head\x20changed\x20inside\x20a\x20write\x20transaction');return{'status':'committed','changeset':F(P(_0x61030e)),'headRevision':_0x61030e['revision']};});}async['markReady'](_0x969d8a,_0x48d5b2){return this['_assertOpen'](),this['_transaction'](()=>{let _0x3786b1=this['_getWorktreeRow'](_0x48d5b2);if(!_0x3786b1)return{'status':'not-found'};if(_0x3786b1['status']==='ready')return{'status':'already-in-target','aggregate':this['_requireAggregate'](_0x48d5b2)};if(_0x3786b1['status']!=='draft')return{'status':'status-mismatch','aggregate':this['_requireAggregate'](_0x48d5b2)};for(let _0x4e2a94 of this['_getUnitRows'](_0x48d5b2))O(y(_0x4e2a94))||(this['_database']['prepare']('UPDATE\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SET\x20ready_draft_head_revision\x20=\x20draft_head_revision\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?\x20AND\x20unit_id\x20=\x20?')['run'](_0x48d5b2,_0x4e2a94['unit_id']),this['_database']['prepare']('DELETE\x20FROM\x20collaboration_worktree_unit_merge_artifacts\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?\x20AND\x20unit_id\x20=\x20?')['run'](_0x48d5b2,_0x4e2a94['unit_id']));return this['_updateStatus'](_0x48d5b2,'ready'),{'status':'transitioned','previousStatus':'draft','aggregate':this['_requireAggregate'](_0x48d5b2)};});}async['reopenWorktree'](_0x1f9f9c,_0x255232){return this['_assertOpen'](),this['_transaction'](()=>{let _0x54b5c9=this['_getWorktreeRow'](_0x255232);if(!_0x54b5c9)return{'status':'not-found'};if(_0x54b5c9['status']==='draft')return{'status':'already-in-target','aggregate':this['_requireAggregate'](_0x255232)};if(_0x54b5c9['status']!=='ready')return{'status':'status-mismatch','aggregate':this['_requireAggregate'](_0x255232)};for(let _0xc030ff of this['_getUnitRows'](_0x255232))O(y(_0xc030ff))||(this['_database']['prepare']('UPDATE\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SET\x20ready_draft_head_revision\x20=\x20NULL,\x20merge_result_json\x20=\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?\x20AND\x20unit_id\x20=\x20?')['run'](_0x255232,_0xc030ff['unit_id']),this['_database']['prepare']('DELETE\x20FROM\x20collaboration_worktree_unit_merge_artifacts\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?\x20AND\x20unit_id\x20=\x20?')['run'](_0x255232,_0xc030ff['unit_id']));return this['_updateStatus'](_0x255232,'draft'),{'status':'transitioned','previousStatus':'ready','aggregate':this['_requireAggregate'](_0x255232)};});}async['discardWorktree'](_0x5895d2,_0x32aed4){return this['_assertOpen'](),this['_transaction'](()=>{let _0x560420=this['_getWorktreeRow'](_0x32aed4);if(!_0x560420)return{'status':'not-found'};if(_0x560420['status']==='discarded')return{'status':'already-in-target','aggregate':this['_requireAggregate'](_0x32aed4)};if(_0x560420['status']!=='draft'&&_0x560420['status']!=='ready')return{'status':'status-mismatch','aggregate':this['_requireAggregate'](_0x32aed4)};let _0x35765c=A(_0x560420['status']);return this['_updateStatus'](_0x32aed4,'discarded'),{'status':'transitioned','previousStatus':_0x35765c,'aggregate':this['_requireAggregate'](_0x32aed4)};});}async['startOrResumeMerge'](_0x470d2a,_0x2b595c){return this['_assertOpen'](),this['_transaction'](()=>{let _0x9d9940=this['_getWorktreeRow'](_0x2b595c);return _0x9d9940?_0x9d9940['status']==='merged'?{'status':'already-merged','aggregate':this['_requireAggregate'](_0x2b595c)}:_0x9d9940['status']==='merging'?{'status':'resumed','aggregate':this['_requireAggregate'](_0x2b595c)}:_0x9d9940['status']==='ready'?(this['_updateStatus'](_0x2b595c,'merging'),{'status':'started','aggregate':this['_requireAggregate'](_0x2b595c)}):{'status':'status-mismatch','aggregate':this['_requireAggregate'](_0x2b595c)}:{'status':'not-found'};});}async['recordUnitMergeResult'](_0x33e0e3,_0x4fd159){return this['_assertOpen'](),E(_0x4fd159['mergeResult']),this['_transaction'](()=>{let _0x232bce=this['_getWorktreeRow'](_0x4fd159['worktreeID']),_0x1fef1c=this['_getUnitRow'](_0x4fd159['worktreeID'],_0x4fd159['unitID']);if(!_0x232bce||!_0x1fef1c)return{'status':'not-found'};let _0xa53fe9=y(_0x1fef1c);if(_0x232bce['status']!=='merging'||_0xa53fe9['readyDraftHeadRevision']!==_0x4fd159['readyDraftHeadRevision'])return{'status':'stale-merge'};if(_0x4fd159['mergeResult']['status']==='removed'&&!_0xa53fe9['removed']||_0xa53fe9['removed']&&(_0x4fd159['mergeResult']['status']==='merged'||_0x4fd159['mergeResult']['status']==='unchanged'))throw new u['CollabError']('INVALID_REQUEST','Merge\x20result\x20does\x20not\x20match\x20frozen\x20Unit\x20removal\x20intent');let _0x74b82f=_0xa53fe9['mergeResult'];return _0x74b82f&&(0x0,c['isDeepStrictEqual'])(_0x74b82f,_0x4fd159['mergeResult'])?{'status':'already-recorded','aggregate':this['_requireAggregate'](_0x4fd159['worktreeID'])}:_0x74b82f&&k(_0x74b82f)?{'status':'stale-merge'}:(this['_database']['prepare']('UPDATE\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SET\x20merge_result_json\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?\x20AND\x20unit_id\x20=\x20?')['run'](P(_0x4fd159['mergeResult']),_0x4fd159['worktreeID'],_0x4fd159['unitID']),{'status':'recorded','aggregate':this['_requireAggregate'](_0x4fd159['worktreeID'])});});}async['finishMerge'](_0x2ce0fa,_0x5066b3){return this['_assertOpen'](),this['_transaction'](()=>{let _0x847488=this['_getWorktreeRow'](_0x5066b3);if(!_0x847488)return{'status':'not-found'};if(_0x847488['status']==='merged')return{'status':'already-in-target','aggregate':this['_requireAggregate'](_0x5066b3)};if(_0x847488['status']!=='merging')return{'status':'status-mismatch','aggregate':this['_requireAggregate'](_0x5066b3)};let _0x2c590b=this['_getUnitRows'](_0x5066b3)['every'](_0x41b771=>O(y(_0x41b771)));return this['_updateStatus'](_0x5066b3,_0x2c590b?'merged':'ready'),{'status':'transitioned','previousStatus':'merging','aggregate':this['_requireAggregate'](_0x5066b3)};});}async['dispose'](){this['_disposed']||(this['_disposed']=!0x0,this['_database']['close']());}['_initializeSchema'](){this['_transaction'](()=>{if(!this['_hasTable']('collaboration_schema_versions')){if(this['_hasAnyOwnedTable']())throw N('SQLite\x20Worktree\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 _0x3ee407=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(_0x3ee407){if(_0x3ee407['version']!==0x1&&_0x3ee407['version']!==p)throw N('SQLite\x20Worktree\x20schema\x20version\x20'+_0x3ee407['version']+'\x20is\x20not\x20supported');let _0x4c9777=m['filter'](_0x240af4=>!this['_hasTable'](_0x240af4));if(_0x4c9777['length']>0x0)throw N('SQLite\x20Worktree\x20schema\x20v'+_0x3ee407['version']+'\x20is\x20incomplete:\x20missing\x20'+_0x4c9777['join'](',\x20'));if(_0x3ee407['version']===0x1&&(this['_database']['exec']('ALTER\x20TABLE\x20collaboration_worktree_units\x20ADD\x20COLUMN\x20removed\x20INTEGER\x20NOT\x20NULL\x20DEFAULT\x200\x20CHECK\x20(removed\x20IN\x20(0,\x201))'),this['_database']['prepare']('UPDATE\x20collaboration_schema_versions\x20SET\x20version\x20=\x20?\x20WHERE\x20component\x20=\x20?')['run'](p,f)),!this['_database']['prepare']('PRAGMA\x20table_info(collaboration_worktree_units)')['all']()['some'](_0xf6bf24=>_0xf6bf24['name']==='removed'))throw N('SQLite\x20Worktree\x20schema\x20v2\x20is\x20missing\x20the\x20removed\x20column');return;}if(this['_hasAnyOwnedTable']())throw N('SQLite\x20Worktree\x20tables\x20exist\x20without\x20a\x20schema\x20version');this['_database']['exec']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20collaboration_worktrees\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20worktree_id\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20sid\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status\x20TEXT\x20NOT\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20CHECK\x20(status\x20IN\x20(\x27draft\x27,\x20\x27ready\x27,\x20\x27merging\x27,\x20\x27merged\x27,\x20\x27discarded\x27))\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20collaboration_worktree_units\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20removed\x20INTEGER\x20NOT\x20NULL\x20DEFAULT\x200\x20CHECK\x20(removed\x20IN\x20(0,\x201)),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20worktree_id\x20TEXT\x20NOT\x20NULL,\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\x20unit_order\x20INTEGER\x20NOT\x20NULL\x20CHECK\x20(unit_order\x20>=\x200),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type\x20INTEGER\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20source\x20TEXT\x20NOT\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20CHECK\x20(source\x20IN\x20(\x27trunk\x27,\x20\x27worktree\x27)),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20baseline_trunk_revision\x20INTEGER\x20NOT\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20CHECK\x20(baseline_trunk_revision\x20>=\x201),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20draft_head_revision\x20INTEGER\x20NOT\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20CHECK\x20(draft_head_revision\x20>=\x20baseline_trunk_revision),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ready_draft_head_revision\x20INTEGER,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20merge_result_json\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20PRIMARY\x20KEY\x20(worktree_id,\x20unit_id),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20UNIQUE\x20(worktree_id,\x20unit_order),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FOREIGN\x20KEY\x20(worktree_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20REFERENCES\x20collaboration_worktrees(worktree_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_worktree_changesets\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20worktree_id\x20TEXT\x20NOT\x20NULL,\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\x20payload_json\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20PRIMARY\x20KEY\x20(worktree_id,\x20unit_id,\x20revision),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20UNIQUE\x20(worktree_id,\x20unit_id,\x20sid,\x20req_id),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FOREIGN\x20KEY\x20(worktree_id,\x20unit_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20REFERENCES\x20collaboration_worktree_units(worktree_id,\x20unit_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20DELETE\x20CASCADE\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20INDEX\x20collaboration_worktree_changesets_revision\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20collaboration_worktree_changesets(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20worktree_id,\x20unit_id,\x20revision\x20ASC\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20collaboration_worktree_unit_seeds\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20worktree_id\x20TEXT\x20NOT\x20NULL,\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\x20snapshot_json\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20sheet_blocks_json\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resources_json\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20PRIMARY\x20KEY\x20(worktree_id,\x20unit_id),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FOREIGN\x20KEY\x20(worktree_id,\x20unit_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20REFERENCES\x20collaboration_worktree_units(worktree_id,\x20unit_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20DELETE\x20CASCADE\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20collaboration_worktree_unit_merge_artifacts\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20worktree_id\x20TEXT\x20NOT\x20NULL,\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\x20ready_draft_head_revision\x20INTEGER\x20NOT\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20CHECK\x20(ready_draft_head_revision\x20>=\x201),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20snapshot_json\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20sheet_blocks_json\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resources_json\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20PRIMARY\x20KEY\x20(worktree_id,\x20unit_id),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FOREIGN\x20KEY\x20(worktree_id,\x20unit_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20REFERENCES\x20collaboration_worktree_units(worktree_id,\x20unit_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20DELETE\x20CASCADE\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\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(\x27worktree\x27,\x20'+p+');\x0a\x20\x20\x20\x20\x20\x20');});}['_hasTable'](_0x37a56d){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'](_0x37a56d);}['_hasAnyOwnedTable'](){return m['some'](_0x2bcfb6=>this['_hasTable'](_0x2bcfb6));}['_getWorktreeRow'](_0xa6039a){return this['_database']['prepare']('SELECT\x20worktree_id,\x20sid,\x20status\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_worktrees\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?')['get'](_0xa6039a)??null;}['_getUnitRow'](_0x319899,_0x5f48d4){return this['_database']['prepare']('SELECT\x20worktree_id,\x20unit_id,\x20type,\x20source,\x20baseline_trunk_revision,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20draft_head_revision,\x20ready_draft_head_revision,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20merge_result_json,\x20removed\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?\x20AND\x20unit_id\x20=\x20?')['get'](_0x319899,_0x5f48d4)??null;}['_getUnitRows'](_0x508e92){return this['_database']['prepare']('SELECT\x20worktree_id,\x20unit_id,\x20type,\x20source,\x20baseline_trunk_revision,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20draft_head_revision,\x20ready_draft_head_revision,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20merge_result_json,\x20removed\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20unit_order\x20ASC')['all'](_0x508e92);}['_getUnitSeed'](_0x1a02ab,_0x16fb0b){let _0x2b4199=this['_database']['prepare']('SELECT\x20snapshot_json,\x20sheet_blocks_json\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_worktree_unit_seeds\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?\x20AND\x20unit_id\x20=\x20?')['get'](_0x1a02ab,_0x16fb0b);return _0x2b4199?{'snapshot':F(_0x2b4199['snapshot_json']),..._0x2b4199['sheet_blocks_json']===null?{}:{'sheetBlocks':F(_0x2b4199['sheet_blocks_json'])}}:null;}['_getUnitMergeArtifact'](_0x40be7f,_0x25aa4c){let _0x425b55=this['_database']['prepare']('SELECT\x20ready_draft_head_revision,\x20snapshot_json,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20sheet_blocks_json\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_worktree_unit_merge_artifacts\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?\x20AND\x20unit_id\x20=\x20?')['get'](_0x40be7f,_0x25aa4c);return _0x425b55?{'readyDraftHeadRevision':_0x425b55['ready_draft_head_revision'],'unit':{'snapshot':F(_0x425b55['snapshot_json']),..._0x425b55['sheet_blocks_json']===null?{}:{'sheetBlocks':F(_0x425b55['sheet_blocks_json'])}}}:null;}['_getAggregate'](_0x1f2fdd){let _0x40714d=this['_getWorktreeRow'](_0x1f2fdd);return _0x40714d?{'worktree':{'worktreeID':_0x40714d['worktree_id'],'sid':_0x40714d['sid'],'status':A(_0x40714d['status'])},'units':this['_getUnitRows'](_0x1f2fdd)['map'](y)}:null;}['_requireAggregate'](_0x17dd15){let _0x1190cf=this['_getAggregate'](_0x17dd15);if(!_0x1190cf)throw new u['CollabError']('INTERNAL_ERROR','SQLite\x20Worktree\x20disappeared\x20inside\x20a\x20write\x20transaction');return _0x1190cf;}['_updateStatus'](_0x5dd102,_0x2c434b){if(this['_database']['prepare']('UPDATE\x20collaboration_worktrees\x20SET\x20status\x20=\x20?\x20WHERE\x20worktree_id\x20=\x20?')['run'](_0x2c434b,_0x5dd102)['changes']!==0x1)throw new u['CollabError']('INTERNAL_ERROR','SQLite\x20Worktree\x20status\x20update\x20did\x20not\x20affect\x20one\x20record');}['_transaction'](_0x5be5dd){this['_database']['exec']('BEGIN\x20IMMEDIATE;');try{let _0x2da354=_0x5be5dd();return this['_database']['exec']('COMMIT;'),_0x2da354;}catch(_0x559e24){throw this['_database']['inTransaction']&&this['_database']['exec']('ROLLBACK;'),_0x559e24;}}['_assertOpen'](){if(this['_disposed'])throw new u['CollabError']('INTERNAL_ERROR','SQLite\x20Worktree\x20Database\x20Adapter\x20is\x20disposed');}};function y(_0x5016ec){let _0x1fd237=j(_0x5016ec['source']);return{'worktreeID':_0x5016ec['worktree_id'],'unitID':_0x5016ec['unit_id'],'type':_0x5016ec['type'],'source':_0x1fd237,..._0x1fd237==='trunk'?{'baselineTrunkRevision':_0x5016ec['baseline_trunk_revision']}:{},..._0x5016ec['removed']===0x1?{'removed':!0x0}:{},'draftHeadRevision':_0x5016ec['draft_head_revision'],..._0x5016ec['ready_draft_head_revision']===null?{}:{'readyDraftHeadRevision':_0x5016ec['ready_draft_head_revision']},..._0x5016ec['merge_result_json']===null?{}:{'mergeResult':F(_0x5016ec['merge_result_json'])}};}function b(_0x474dd3){if(!_0x474dd3['filename'])throw M('SQLite\x20filename\x20is\x20required');if(_0x474dd3['busyTimeoutMs']!==void 0x0&&(!Number['isSafeInteger'](_0x474dd3['busyTimeoutMs'])||_0x474dd3['busyTimeoutMs']<0x0))throw M('SQLite\x20busyTimeoutMs\x20must\x20be\x20a\x20non-negative\x20integer');}function x(_0x19caa6){if(!_0x19caa6['record']['worktreeID']||!_0x19caa6['record']['sid']||_0x19caa6['record']['status']!=='draft')throw M('New\x20Worktree\x20must\x20be\x20a\x20draft\x20with\x20identity');let _0x3de756=new Set();for(let _0x249a5a of _0x19caa6['units']){if(_0x249a5a['worktreeID']!==_0x19caa6['record']['worktreeID']||_0x3de756['has'](_0x249a5a['unitID']))throw M('Initial\x20Worktree\x20Units\x20must\x20be\x20unique\x20and\x20share\x20identity');_0x3de756['add'](_0x249a5a['unitID']),S(_0x249a5a);}}function S(_0x1421e2){if(w(_0x1421e2),_0x1421e2['source']!=='trunk'||!_['has'](_0x1421e2['type'])||!Number['isSafeInteger'](_0x1421e2['baselineTrunkRevision'])||_0x1421e2['baselineTrunkRevision']<0x1||_0x1421e2['draftHeadRevision']!==_0x1421e2['baselineTrunkRevision']||_0x1421e2['readyDraftHeadRevision']!==void 0x0||_0x1421e2['mergeResult']!==void 0x0)throw M('New\x20Worktree\x20Unit\x20must\x20start\x20at\x20its\x20trunk\x20baseline');}function C(_0x5608d5,_0x2769ed){if(w(_0x5608d5),_0x5608d5['source']!=='worktree'||_0x5608d5['baselineTrunkRevision']!==void 0x0||!_['has'](_0x5608d5['type'])||_0x5608d5['draftHeadRevision']!==0x1||_0x5608d5['readyDraftHeadRevision']!==void 0x0||_0x5608d5['mergeResult']!==void 0x0||_0x2769ed['snapshot']['unitID']!==_0x5608d5['unitID']||_0x2769ed['snapshot']['type']!==_0x5608d5['type']||_0x2769ed['snapshot']['rev']!==0x1)throw M('Worktree-created\x20Unit\x20must\x20start\x20from\x20its\x20revision\x201\x20seed');}function w(_0x52e42e){if(!_0x52e42e['worktreeID']||!_0x52e42e['unitID'])throw M('Worktree\x20and\x20Unit\x20identity\x20are\x20required');}function T(_0x25c9f2){if(!Number['isSafeInteger'](_0x25c9f2['from'])||_0x25c9f2['from']<0x0||_0x25c9f2['to']!==void 0x0&&(!Number['isSafeInteger'](_0x25c9f2['to'])||_0x25c9f2['to']<0x0))throw M('Draft\x20revision\x20range\x20cannot\x20be\x20negative');}function E(_0x53ad30){if(_0x53ad30['status']==='merged'){if(!Number['isSafeInteger'](_0x53ad30['trunkRevision'])||_0x53ad30['trunkRevision']<0x1)throw M('Merged\x20result\x20requires\x20a\x20trunk\x20revision');return;}if(!(_0x53ad30['status']==='unchanged'||_0x53ad30['status']==='removed')&&(!_0x53ad30['error']['code']||!_0x53ad30['error']['message']||typeof _0x53ad30['error']['retryable']!='boolean'))throw M('Merge\x20error\x20must\x20be\x20stable\x20and\x20serializable');}function D(_0x431cf6,_0x1b6762){if(_0x1b6762['unit']['snapshot']['unitID']!==_0x431cf6['unitID']||_0x1b6762['unit']['snapshot']['type']!==_0x431cf6['type']||_0x1b6762['unit']['snapshot']['rev']!==0x1)throw M('Worktree\x20Unit\x20merge\x20artifact\x20must\x20be\x20a\x20revision\x201\x20snapshot');}function O(_0xf434a3){return k(_0xf434a3['mergeResult']);}function k(_0x343e95){return _0x343e95?.['status']==='merged'||_0x343e95?.['status']==='unchanged'||_0x343e95?.['status']==='removed';}function A(_0x285eb0){if(_0x285eb0==='draft'||_0x285eb0==='ready'||_0x285eb0==='merging'||_0x285eb0==='merged'||_0x285eb0==='discarded')return _0x285eb0;throw new u['CollabError']('INTERNAL_ERROR','SQLite\x20contains\x20invalid\x20Worktree\x20status\x20'+_0x285eb0);}function j(_0x5d4bf8){if(_0x5d4bf8==='trunk'||_0x5d4bf8==='worktree')return _0x5d4bf8;throw new u['CollabError']('INTERNAL_ERROR','SQLite\x20contains\x20invalid\x20Worktree\x20Unit\x20source\x20'+_0x5d4bf8);}function M(_0x45eb09){return new u['CollabError']('INVALID_REQUEST',_0x45eb09);}function N(_0x572411){return new u['CollabError']('INTERNAL_ERROR',_0x572411);}function P(_0x416fea){return JSON['stringify'](_0x416fea,function(_0x3e2bec,_0x5070e0){let _0x4478b5=this[_0x3e2bec];return _0x4478b5 instanceof Uint8Array?{[g]:Buffer['from'](_0x4478b5)['toString']('base64')}:_0x5070e0;});}function F(_0x2851b2){return JSON['parse'](_0x2851b2,(_0x5be691,_0x7b8f7)=>I(_0x7b8f7)?Uint8Array['from'](Buffer['from'](_0x7b8f7[g],'base64')):_0x7b8f7);}function I(_0x4e2b22){return typeof _0x4e2b22=='object'&&!!_0x4e2b22&&Object['keys'](_0x4e2b22)['length']===0x1&&typeof _0x4e2b22[g]=='string';}exports['SQLiteWorktreeDatabaseAdapter']=v;
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=(_0x2d3edc,_0x34015f,_0x4647ca,_0x1bbb43)=>{if(_0x34015f&&typeof _0x34015f=='object'||typeof _0x34015f=='function'){for(var _0x48acb5=r(_0x34015f),_0x1db52e=0x0,_0x40b403=_0x48acb5['length'],_0x1742b9;_0x1db52e<_0x40b403;_0x1db52e++)_0x1742b9=_0x48acb5[_0x1db52e],!a['call'](_0x2d3edc,_0x1742b9)&&_0x1742b9!==_0x4647ca&&t(_0x2d3edc,_0x1742b9,{'get':(_0x1c8062=>_0x34015f[_0x1c8062])['bind'](null,_0x1742b9),'enumerable':!(_0x1bbb43=n(_0x34015f,_0x1742b9))||_0x1bbb43['enumerable']});}return _0x2d3edc;},s=(_0x3e4cf7,_0x376180,_0x5ce688)=>(_0x5ce688=_0x3e4cf7==null?{}:e(i(_0x3e4cf7)),o(_0x376180||!_0x3e4cf7||!_0x3e4cf7['__esModule']?t(_0x5ce688,'default',{'value':_0x3e4cf7,'enumerable':!0x0}):_0x5ce688,_0x3e4cf7));let c=require('node:util'),l=require('libsql');l=s(l,0x1);let u=require('@univerjs-pro/collaboration-service'),d=require('@univerjs/protocol');var f='worktree',p=0x3,m=['collaboration_worktrees','collaboration_worktree_units','collaboration_worktree_changesets','collaboration_worktree_unit_seeds','collaboration_worktree_unit_merge_artifacts'],h=0x1388,g='__univerCollaborationBinary',_=new Set([d['UniverType']['UNIVER_SHEET'],d['UniverType']['UNIVER_DOC'],d['UniverType']['UNIVER_SLIDE'],d['UniverType']['UNIVER_BOARD'],d['UniverType']['UNIVER_BASE']]),v=class{['_database'];['_disposed']=!0x1;constructor(_0x426eff){b(_0x426eff),this['_database']=new l['default'](_0x426eff['filename'],{'timeout':_0x426eff['busyTimeoutMs']??h});try{this['_database']['exec']('PRAGMA\x20foreign_keys\x20=\x20ON;'),this['_database']['exec']('PRAGMA\x20busy_timeout\x20=\x20'+(_0x426eff['busyTimeoutMs']??h)+';'),this['_initializeSchema']();}catch(_0x38d805){throw this['_database']['close'](),_0x38d805;}}async['getWorktree'](_0xc34bd4,_0x547b12){return this['_assertOpen'](),this['_getAggregate'](_0x547b12);}async['getWorktreeUnit'](_0x4ee792,_0x3c6dc8,_0x46e594){this['_assertOpen']();let _0x4ec846=this['_getUnitRow'](_0x3c6dc8,_0x46e594);return _0x4ec846?y(_0x4ec846):null;}async['getDraftChangesets'](_0x220221,_0xff42a,_0x104d3a,_0x41351a){this['_assertOpen'](),T(_0x41351a);let _0x127397=this['_database']['prepare']('SELECT\x20changesets.payload_json\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_worktree_units\x20AS\x20units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20LEFT\x20JOIN\x20collaboration_worktree_changesets\x20AS\x20changesets\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20changesets.worktree_id\x20=\x20units.worktree_id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20changesets.unit_id\x20=\x20units.unit_id\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20changesets.revision\x20>\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20'+(_0x41351a['to']===void 0x0?'':'AND\x20changesets.revision\x20<=\x20?')+'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20units.worktree_id\x20=\x20?\x20AND\x20units.unit_id\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20changesets.revision\x20ASC')['all'](_0x41351a['from'],..._0x41351a['to']===void 0x0?[]:[_0x41351a['to']],_0xff42a,_0x104d3a);return _0x127397['length']===0x0?null:_0x127397['flatMap'](({payload_json:_0x4b6a20})=>_0x4b6a20?[F(_0x4b6a20)]:[]);}async['getUnitSeed'](_0x25d080,_0x5843be,_0x1333c8){return this['_assertOpen'](),this['_getUnitSeed'](_0x5843be,_0x1333c8);}async['getUnitMergeArtifact'](_0x2656b1,_0x3589aa,_0x2953d4){return this['_assertOpen'](),this['_getUnitMergeArtifact'](_0x3589aa,_0x2953d4);}async['createWorktree'](_0xae7d12,_0xd06aad){return this['_assertOpen'](),x(_0xd06aad),this['_transaction'](()=>{let _0x1e18c2=this['_getAggregate'](_0xd06aad['record']['worktreeID']);if(_0x1e18c2)return{'status':'already-exists','aggregate':_0x1e18c2};this['_database']['prepare']('INSERT\x20INTO\x20collaboration_worktrees\x20(worktree_id,\x20sid,\x20status)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20\x27draft\x27)')['run'](_0xd06aad['record']['worktreeID'],_0xd06aad['record']['sid']);let _0x32e0c0=this['_database']['prepare']('INSERT\x20INTO\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(worktree_id,\x20unit_id,\x20unit_order,\x20type,\x20source,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20baseline_trunk_revision,\x20draft_head_revision,\x20creator_id,\x20created_at_ms)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20\x27trunk\x27,\x20?,\x20?,\x20?,\x20?)');return _0xd06aad['units']['forEach']((_0x18c8fe,_0x2512ac)=>{_0x32e0c0['run'](_0x18c8fe['worktreeID'],_0x18c8fe['unitID'],_0x2512ac,_0x18c8fe['type'],_0x18c8fe['baselineTrunkRevision'],_0x18c8fe['draftHeadRevision'],_0x18c8fe['creatorID'],_0x18c8fe['createdAt']);}),{'status':'created','aggregate':this['_requireAggregate'](_0xd06aad['record']['worktreeID'])};});}async['addUnit'](_0x3a43e1,_0x54a4ca){return this['_assertOpen'](),w(_0x54a4ca['unit']),this['_transaction'](()=>{let {unit:_0x5a00fe}=_0x54a4ca,_0x3255b2=this['_getWorktreeRow'](_0x5a00fe['worktreeID']);if(!_0x3255b2)return{'status':'not-found'};if(this['_getUnitRow'](_0x5a00fe['worktreeID'],_0x5a00fe['unitID']))return{'status':'already-exists','aggregate':this['_requireAggregate'](_0x5a00fe['worktreeID'])};if(_0x3255b2['status']!=='draft')return{'status':'status-mismatch','aggregate':this['_requireAggregate'](_0x5a00fe['worktreeID'])};S(_0x5a00fe);let _0x3c02df=this['_database']['prepare']('SELECT\x20COALESCE(MAX(unit_order),\x20-1)\x20+\x201\x20AS\x20next_order\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?')['get'](_0x5a00fe['worktreeID']);return this['_database']['prepare']('INSERT\x20INTO\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(worktree_id,\x20unit_id,\x20unit_order,\x20type,\x20source,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20baseline_trunk_revision,\x20draft_head_revision,\x20creator_id,\x20created_at_ms)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20\x27trunk\x27,\x20?,\x20?,\x20?,\x20?)')['run'](_0x5a00fe['worktreeID'],_0x5a00fe['unitID'],_0x3c02df['next_order'],_0x5a00fe['type'],_0x5a00fe['baselineTrunkRevision'],_0x5a00fe['draftHeadRevision'],_0x5a00fe['creatorID'],_0x5a00fe['createdAt']),{'status':'added','aggregate':this['_requireAggregate'](_0x5a00fe['worktreeID'])};});}async['createUnit'](_0x2558d4,_0x48308a){return this['_assertOpen'](),C(_0x48308a['unit'],_0x48308a['seed']),this['_transaction'](()=>{let {unit:_0x2c553a,seed:_0x1cd6fc}=_0x48308a,_0x3978b1=this['_getWorktreeRow'](_0x2c553a['worktreeID']);if(!_0x3978b1)return{'status':'not-found'};let _0x1d3663=this['_getUnitRow'](_0x2c553a['worktreeID'],_0x2c553a['unitID']);if(_0x1d3663){let _0x473c79=this['_getUnitSeed'](_0x2c553a['worktreeID'],_0x2c553a['unitID']);return{'status':_0x1d3663['source']==='worktree'&&_0x1d3663['type']===_0x2c553a['type']&&_0x473c79!==null&&P(_0x473c79)===P(_0x1cd6fc)?'already-created':'unit-exists','aggregate':this['_requireAggregate'](_0x2c553a['worktreeID'])};}if(_0x3978b1['status']!=='draft')return{'status':'status-mismatch','aggregate':this['_requireAggregate'](_0x2c553a['worktreeID'])};let _0x586631=this['_database']['prepare']('SELECT\x20COALESCE(MAX(unit_order),\x20-1)\x20+\x201\x20AS\x20next_order\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?')['get'](_0x2c553a['worktreeID']);return this['_database']['prepare']('INSERT\x20INTO\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(worktree_id,\x20unit_id,\x20unit_order,\x20type,\x20source,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20baseline_trunk_revision,\x20draft_head_revision,\x20creator_id,\x20created_at_ms)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20\x27worktree\x27,\x201,\x201,\x20?,\x20?)')['run'](_0x2c553a['worktreeID'],_0x2c553a['unitID'],_0x586631['next_order'],_0x2c553a['type'],_0x2c553a['creatorID'],_0x2c553a['createdAt']),this['_database']['prepare']('INSERT\x20INTO\x20collaboration_worktree_unit_seeds\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(worktree_id,\x20unit_id,\x20snapshot_json,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20sheet_blocks_json)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?)')['run'](_0x2c553a['worktreeID'],_0x2c553a['unitID'],P(_0x1cd6fc['snapshot']),_0x1cd6fc['sheetBlocks']===void 0x0?null:P(_0x1cd6fc['sheetBlocks'])),{'status':'created','aggregate':this['_requireAggregate'](_0x2c553a['worktreeID'])};});}async['saveUnitMergeArtifact'](_0x283a53,_0x6ec56b){return this['_assertOpen'](),this['_transaction'](()=>{let _0x202247=this['_getWorktreeRow'](_0x6ec56b['worktreeID']),_0x3053d7=this['_getUnitRow'](_0x6ec56b['worktreeID'],_0x6ec56b['unitID']);if(!_0x202247||!_0x3053d7)return{'status':'not-found'};let _0x8356ae=y(_0x3053d7);if(_0x202247['status']!=='merging'||_0x8356ae['source']!=='worktree'||_0x8356ae['readyDraftHeadRevision']!==_0x6ec56b['artifact']['readyDraftHeadRevision']||O(_0x8356ae))return{'status':'stale-merge'};let _0x575beb=this['_getUnitMergeArtifact'](_0x6ec56b['worktreeID'],_0x6ec56b['unitID']);return _0x575beb?{'status':'already-saved','artifact':_0x575beb}:(D(_0x8356ae,_0x6ec56b['artifact']),this['_database']['prepare']('INSERT\x20INTO\x20collaboration_worktree_unit_merge_artifacts\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(worktree_id,\x20unit_id,\x20ready_draft_head_revision,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20snapshot_json,\x20sheet_blocks_json)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20VALUES\x20(?,\x20?,\x20?,\x20?,\x20?)')['run'](_0x6ec56b['worktreeID'],_0x6ec56b['unitID'],_0x6ec56b['artifact']['readyDraftHeadRevision'],P(_0x6ec56b['artifact']['unit']['snapshot']),_0x6ec56b['artifact']['unit']['sheetBlocks']===void 0x0?null:P(_0x6ec56b['artifact']['unit']['sheetBlocks'])),{'status':'saved','artifact':F(P(_0x6ec56b['artifact']))});});}async['setUnitRemoved'](_0x59fa3d,_0x2fc797){return this['_assertOpen'](),this['_transaction'](()=>{let _0x1f0943=this['_getWorktreeRow'](_0x2fc797['worktreeID']),_0x44dd82=this['_getUnitRow'](_0x2fc797['worktreeID'],_0x2fc797['unitID']);return!_0x1f0943||!_0x44dd82?{'status':'not-found'}:_0x1f0943['status']!=='draft'||O(y(_0x44dd82))?{'status':'not-editable','aggregate':this['_requireAggregate'](_0x2fc797['worktreeID'])}:_0x44dd82['removed']===0x1===_0x2fc797['removed']?{'status':'unchanged','aggregate':this['_requireAggregate'](_0x2fc797['worktreeID'])}:(this['_database']['prepare']('UPDATE\x20collaboration_worktree_units\x20SET\x20removed\x20=\x20?\x20WHERE\x20worktree_id\x20=\x20?\x20AND\x20unit_id\x20=\x20?')['run'](+!!_0x2fc797['removed'],_0x2fc797['worktreeID'],_0x2fc797['unitID']),{'status':'updated','aggregate':this['_requireAggregate'](_0x2fc797['worktreeID'])});});}async['commitDraftChangeset'](_0x42f0e9,_0x1f048a){return this['_assertOpen'](),this['_transaction'](()=>{let {worktreeID:_0x132b7f,changeset:_0x2883fa}=_0x1f048a,_0x16c3ba=this['_getWorktreeRow'](_0x132b7f),_0x305515=this['_getUnitRow'](_0x132b7f,_0x2883fa['unitID']);if(!_0x16c3ba||!_0x305515)return{'status':'not-found'};if(_0x16c3ba['status']!=='draft')return{'status':'not-editable','worktreeStatus':A(_0x16c3ba['status'])};let _0x317474=y(_0x305515);if(_0x317474['removed']||O(_0x317474))return{'status':'unit-frozen'};if(_0x317474['draftHeadRevision']!==_0x2883fa['revision']-0x1)return{'status':'revision-mismatch','actualHeadRevision':_0x317474['draftHeadRevision']};let _0x34835b=Date['now'](),_0x41ff89=P({..._0x2883fa,'createTime':Math['floor'](_0x34835b/0x3e8)});if(this['_database']['prepare']('INSERT\x20INTO\x20collaboration_worktree_changesets\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20(worktree_id,\x20unit_id,\x20revision,\x20base_revision,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\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?,\x20?)')['run'](_0x132b7f,_0x2883fa['unitID'],_0x2883fa['revision'],_0x2883fa['baseRev'],_0x2883fa['sid'],_0x2883fa['reqId'],_0x34835b,_0x41ff89),this['_database']['prepare']('UPDATE\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SET\x20draft_head_revision\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?\x20AND\x20unit_id\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20AND\x20draft_head_revision\x20=\x20?')['run'](_0x2883fa['revision'],_0x132b7f,_0x2883fa['unitID'],_0x2883fa['revision']-0x1)['changes']!==0x1)throw new u['CollabError']('INTERNAL_ERROR','SQLite\x20draft\x20head\x20changed\x20inside\x20a\x20write\x20transaction');return{'status':'committed','changeset':F(_0x41ff89),'headRevision':_0x2883fa['revision']};});}async['markReady'](_0x10a35b,_0x1b7602){return this['_assertOpen'](),this['_transaction'](()=>{let _0x426944=this['_getWorktreeRow'](_0x1b7602);if(!_0x426944)return{'status':'not-found'};if(_0x426944['status']==='ready')return{'status':'already-in-target','aggregate':this['_requireAggregate'](_0x1b7602)};if(_0x426944['status']!=='draft')return{'status':'status-mismatch','aggregate':this['_requireAggregate'](_0x1b7602)};for(let _0x312a90 of this['_getUnitRows'](_0x1b7602))O(y(_0x312a90))||(this['_database']['prepare']('UPDATE\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SET\x20ready_draft_head_revision\x20=\x20draft_head_revision\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?\x20AND\x20unit_id\x20=\x20?')['run'](_0x1b7602,_0x312a90['unit_id']),this['_database']['prepare']('DELETE\x20FROM\x20collaboration_worktree_unit_merge_artifacts\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?\x20AND\x20unit_id\x20=\x20?')['run'](_0x1b7602,_0x312a90['unit_id']));return this['_updateStatus'](_0x1b7602,'ready'),{'status':'transitioned','previousStatus':'draft','aggregate':this['_requireAggregate'](_0x1b7602)};});}async['reopenWorktree'](_0x525249,_0x2eaa64){return this['_assertOpen'](),this['_transaction'](()=>{let _0x5d76a2=this['_getWorktreeRow'](_0x2eaa64);if(!_0x5d76a2)return{'status':'not-found'};if(_0x5d76a2['status']==='draft')return{'status':'already-in-target','aggregate':this['_requireAggregate'](_0x2eaa64)};if(_0x5d76a2['status']!=='ready')return{'status':'status-mismatch','aggregate':this['_requireAggregate'](_0x2eaa64)};for(let _0x57d051 of this['_getUnitRows'](_0x2eaa64))O(y(_0x57d051))||(this['_database']['prepare']('UPDATE\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SET\x20ready_draft_head_revision\x20=\x20NULL,\x20merge_result_json\x20=\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?\x20AND\x20unit_id\x20=\x20?')['run'](_0x2eaa64,_0x57d051['unit_id']),this['_database']['prepare']('DELETE\x20FROM\x20collaboration_worktree_unit_merge_artifacts\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?\x20AND\x20unit_id\x20=\x20?')['run'](_0x2eaa64,_0x57d051['unit_id']));return this['_updateStatus'](_0x2eaa64,'draft'),{'status':'transitioned','previousStatus':'ready','aggregate':this['_requireAggregate'](_0x2eaa64)};});}async['discardWorktree'](_0x170261,_0x1d13f1){return this['_assertOpen'](),this['_transaction'](()=>{let _0x163575=this['_getWorktreeRow'](_0x1d13f1);if(!_0x163575)return{'status':'not-found'};if(_0x163575['status']==='discarded')return{'status':'already-in-target','aggregate':this['_requireAggregate'](_0x1d13f1)};if(_0x163575['status']!=='draft'&&_0x163575['status']!=='ready')return{'status':'status-mismatch','aggregate':this['_requireAggregate'](_0x1d13f1)};let _0x141d25=A(_0x163575['status']);return this['_updateStatus'](_0x1d13f1,'discarded'),{'status':'transitioned','previousStatus':_0x141d25,'aggregate':this['_requireAggregate'](_0x1d13f1)};});}async['startOrResumeMerge'](_0x1289b5,_0x292d74){return this['_assertOpen'](),this['_transaction'](()=>{let _0x3a9467=this['_getWorktreeRow'](_0x292d74);return _0x3a9467?_0x3a9467['status']==='merged'?{'status':'already-merged','aggregate':this['_requireAggregate'](_0x292d74)}:_0x3a9467['status']==='merging'?{'status':'resumed','aggregate':this['_requireAggregate'](_0x292d74)}:_0x3a9467['status']==='ready'?(this['_updateStatus'](_0x292d74,'merging'),{'status':'started','aggregate':this['_requireAggregate'](_0x292d74)}):{'status':'status-mismatch','aggregate':this['_requireAggregate'](_0x292d74)}:{'status':'not-found'};});}async['recordUnitMergeResult'](_0x5be618,_0x9e6a1c){return this['_assertOpen'](),E(_0x9e6a1c['mergeResult']),this['_transaction'](()=>{let _0x38c4da=this['_getWorktreeRow'](_0x9e6a1c['worktreeID']),_0x1ac429=this['_getUnitRow'](_0x9e6a1c['worktreeID'],_0x9e6a1c['unitID']);if(!_0x38c4da||!_0x1ac429)return{'status':'not-found'};let _0xaea61a=y(_0x1ac429);if(_0x38c4da['status']!=='merging'||_0xaea61a['readyDraftHeadRevision']!==_0x9e6a1c['readyDraftHeadRevision'])return{'status':'stale-merge'};if(_0x9e6a1c['mergeResult']['status']==='removed'&&!_0xaea61a['removed']||_0xaea61a['removed']&&(_0x9e6a1c['mergeResult']['status']==='merged'||_0x9e6a1c['mergeResult']['status']==='unchanged'))throw new u['CollabError']('INVALID_REQUEST','Merge\x20result\x20does\x20not\x20match\x20frozen\x20Unit\x20removal\x20intent');let _0x22c477=_0xaea61a['mergeResult'];return _0x22c477&&(0x0,c['isDeepStrictEqual'])(_0x22c477,_0x9e6a1c['mergeResult'])?{'status':'already-recorded','aggregate':this['_requireAggregate'](_0x9e6a1c['worktreeID'])}:_0x22c477&&k(_0x22c477)?{'status':'stale-merge'}:(this['_database']['prepare']('UPDATE\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20SET\x20merge_result_json\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?\x20AND\x20unit_id\x20=\x20?')['run'](P(_0x9e6a1c['mergeResult']),_0x9e6a1c['worktreeID'],_0x9e6a1c['unitID']),{'status':'recorded','aggregate':this['_requireAggregate'](_0x9e6a1c['worktreeID'])});});}async['finishMerge'](_0x45031d,_0x33c97b){return this['_assertOpen'](),this['_transaction'](()=>{let _0xb9fdbb=this['_getWorktreeRow'](_0x33c97b);if(!_0xb9fdbb)return{'status':'not-found'};if(_0xb9fdbb['status']==='merged')return{'status':'already-in-target','aggregate':this['_requireAggregate'](_0x33c97b)};if(_0xb9fdbb['status']!=='merging')return{'status':'status-mismatch','aggregate':this['_requireAggregate'](_0x33c97b)};let _0x33b7c9=this['_getUnitRows'](_0x33c97b)['every'](_0x2a97e9=>O(y(_0x2a97e9)));return this['_updateStatus'](_0x33c97b,_0x33b7c9?'merged':'ready'),{'status':'transitioned','previousStatus':'merging','aggregate':this['_requireAggregate'](_0x33c97b)};});}async['dispose'](){this['_disposed']||(this['_disposed']=!0x0,this['_database']['close']());}['_initializeSchema'](){this['_transaction'](()=>{if(!this['_hasTable']('collaboration_schema_versions')){if(this['_hasAnyOwnedTable']())throw N('SQLite\x20Worktree\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 _0x4f59ce=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(_0x4f59ce){if(_0x4f59ce['version']!==p)throw N('SQLite\x20Worktree\x20schema\x20version\x20'+_0x4f59ce['version']+'\x20is\x20not\x20supported;\x20run\x20the\x20explicit\x20versioned\x20migrations\x20first');let _0x3d2005=m['filter'](_0x45b1ff=>!this['_hasTable'](_0x45b1ff));if(_0x3d2005['length']>0x0)throw N('SQLite\x20Worktree\x20schema\x20v'+_0x4f59ce['version']+'\x20is\x20incomplete:\x20missing\x20'+_0x3d2005['join'](',\x20'));if(!this['_database']['prepare']('PRAGMA\x20table_info(collaboration_worktree_changesets)')['all']()['some'](_0x4338bc=>_0x4338bc['name']==='created_at_ms'&&_0x4338bc['notnull']===0x1))throw N('Changeset\x20schema\x20requires\x20NOT\x20NULL\x20created_at_ms');let _0x42fcc3=this['_database']['prepare']('PRAGMA\x20table_info(collaboration_worktree_units)')['all']();if(!['removed','creator_id','created_at_ms']['every'](_0x330ba2=>_0x42fcc3['some'](_0x22e3ee=>_0x22e3ee['name']===_0x330ba2&&_0x22e3ee['notnull']===0x1)))throw N('SQLite\x20Worktree\x20schema\x20v3\x20is\x20missing\x20required\x20Unit\x20columns');return;}if(this['_hasAnyOwnedTable']())throw N('SQLite\x20Worktree\x20tables\x20exist\x20without\x20a\x20schema\x20version');this['_database']['exec']('\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20collaboration_worktrees\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20worktree_id\x20TEXT\x20PRIMARY\x20KEY,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20sid\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20status\x20TEXT\x20NOT\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20CHECK\x20(status\x20IN\x20(\x27draft\x27,\x20\x27ready\x27,\x20\x27merging\x27,\x20\x27merged\x27,\x20\x27discarded\x27))\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20collaboration_worktree_units\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20removed\x20INTEGER\x20NOT\x20NULL\x20DEFAULT\x200\x20CHECK\x20(removed\x20IN\x20(0,\x201)),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20worktree_id\x20TEXT\x20NOT\x20NULL,\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\x20unit_order\x20INTEGER\x20NOT\x20NULL\x20CHECK\x20(unit_order\x20>=\x200),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20type\x20INTEGER\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20source\x20TEXT\x20NOT\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20CHECK\x20(source\x20IN\x20(\x27trunk\x27,\x20\x27worktree\x27)),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20baseline_trunk_revision\x20INTEGER\x20NOT\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20CHECK\x20(baseline_trunk_revision\x20>=\x201),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20draft_head_revision\x20INTEGER\x20NOT\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20CHECK\x20(draft_head_revision\x20>=\x20baseline_trunk_revision),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ready_draft_head_revision\x20INTEGER,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20merge_result_json\x20TEXT,\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\x20PRIMARY\x20KEY\x20(worktree_id,\x20unit_id),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20UNIQUE\x20(worktree_id,\x20unit_order),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FOREIGN\x20KEY\x20(worktree_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20REFERENCES\x20collaboration_worktrees(worktree_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_worktree_changesets\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20worktree_id\x20TEXT\x20NOT\x20NULL,\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(worktree_id,\x20unit_id,\x20revision),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20UNIQUE\x20(worktree_id,\x20unit_id,\x20sid,\x20req_id),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FOREIGN\x20KEY\x20(worktree_id,\x20unit_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20REFERENCES\x20collaboration_worktree_units(worktree_id,\x20unit_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20DELETE\x20CASCADE\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20INDEX\x20collaboration_worktree_changesets_revision\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20collaboration_worktree_changesets(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20worktree_id,\x20unit_id,\x20revision\x20ASC\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20collaboration_worktree_unit_seeds\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20worktree_id\x20TEXT\x20NOT\x20NULL,\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\x20snapshot_json\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20sheet_blocks_json\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resources_json\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20PRIMARY\x20KEY\x20(worktree_id,\x20unit_id),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FOREIGN\x20KEY\x20(worktree_id,\x20unit_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20REFERENCES\x20collaboration_worktree_units(worktree_id,\x20unit_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20DELETE\x20CASCADE\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20CREATE\x20TABLE\x20collaboration_worktree_unit_merge_artifacts\x20(\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20worktree_id\x20TEXT\x20NOT\x20NULL,\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\x20ready_draft_head_revision\x20INTEGER\x20NOT\x20NULL\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20CHECK\x20(ready_draft_head_revision\x20>=\x201),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20snapshot_json\x20TEXT\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20sheet_blocks_json\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20resources_json\x20TEXT,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20PRIMARY\x20KEY\x20(worktree_id,\x20unit_id),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20FOREIGN\x20KEY\x20(worktree_id,\x20unit_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20REFERENCES\x20collaboration_worktree_units(worktree_id,\x20unit_id)\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ON\x20DELETE\x20CASCADE\x0a\x20\x20\x20\x20\x20\x20\x20\x20);\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(\x27worktree\x27,\x20'+p+');\x0a\x20\x20\x20\x20\x20\x20');});}['_hasTable'](_0x233442){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'](_0x233442);}['_hasAnyOwnedTable'](){return m['some'](_0x359038=>this['_hasTable'](_0x359038));}['_getWorktreeRow'](_0x130e8d){return this['_database']['prepare']('SELECT\x20worktree_id,\x20sid,\x20status\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_worktrees\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?')['get'](_0x130e8d)??null;}['_getUnitRow'](_0x166f57,_0x24b2ac){return this['_database']['prepare']('SELECT\x20worktree_id,\x20unit_id,\x20type,\x20source,\x20baseline_trunk_revision,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20draft_head_revision,\x20ready_draft_head_revision,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20creator_id,\x20created_at_ms,\x20removed,\x20merge_result_json\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?\x20AND\x20unit_id\x20=\x20?')['get'](_0x166f57,_0x24b2ac)??null;}['_getUnitRows'](_0x389c0c){return this['_database']['prepare']('SELECT\x20worktree_id,\x20unit_id,\x20type,\x20source,\x20baseline_trunk_revision,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20draft_head_revision,\x20ready_draft_head_revision,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20creator_id,\x20created_at_ms,\x20removed,\x20merge_result_json\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_worktree_units\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20ORDER\x20BY\x20unit_order\x20ASC')['all'](_0x389c0c);}['_getUnitSeed'](_0x330493,_0x430fd5){let _0x67173e=this['_database']['prepare']('SELECT\x20snapshot_json,\x20sheet_blocks_json\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_worktree_unit_seeds\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?\x20AND\x20unit_id\x20=\x20?')['get'](_0x330493,_0x430fd5);return _0x67173e?{'snapshot':F(_0x67173e['snapshot_json']),..._0x67173e['sheet_blocks_json']===null?{}:{'sheetBlocks':F(_0x67173e['sheet_blocks_json'])}}:null;}['_getUnitMergeArtifact'](_0x306d82,_0xb9de86){let _0x3c0454=this['_database']['prepare']('SELECT\x20ready_draft_head_revision,\x20snapshot_json,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20sheet_blocks_json\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20FROM\x20collaboration_worktree_unit_merge_artifacts\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20WHERE\x20worktree_id\x20=\x20?\x20AND\x20unit_id\x20=\x20?')['get'](_0x306d82,_0xb9de86);return _0x3c0454?{'readyDraftHeadRevision':_0x3c0454['ready_draft_head_revision'],'unit':{'snapshot':F(_0x3c0454['snapshot_json']),..._0x3c0454['sheet_blocks_json']===null?{}:{'sheetBlocks':F(_0x3c0454['sheet_blocks_json'])}}}:null;}['_getAggregate'](_0x344139){let _0x37cd59=this['_getWorktreeRow'](_0x344139);return _0x37cd59?{'worktree':{'worktreeID':_0x37cd59['worktree_id'],'sid':_0x37cd59['sid'],'status':A(_0x37cd59['status'])},'units':this['_getUnitRows'](_0x344139)['map'](y)}:null;}['_requireAggregate'](_0x115938){let _0x595364=this['_getAggregate'](_0x115938);if(!_0x595364)throw new u['CollabError']('INTERNAL_ERROR','SQLite\x20Worktree\x20disappeared\x20inside\x20a\x20write\x20transaction');return _0x595364;}['_updateStatus'](_0x158577,_0x27336f){if(this['_database']['prepare']('UPDATE\x20collaboration_worktrees\x20SET\x20status\x20=\x20?\x20WHERE\x20worktree_id\x20=\x20?')['run'](_0x27336f,_0x158577)['changes']!==0x1)throw new u['CollabError']('INTERNAL_ERROR','SQLite\x20Worktree\x20status\x20update\x20did\x20not\x20affect\x20one\x20record');}['_transaction'](_0x317a6d){this['_database']['exec']('BEGIN\x20IMMEDIATE;');try{let _0x4cac0c=_0x317a6d();return this['_database']['exec']('COMMIT;'),_0x4cac0c;}catch(_0x5d32e0){throw this['_database']['inTransaction']&&this['_database']['exec']('ROLLBACK;'),_0x5d32e0;}}['_assertOpen'](){if(this['_disposed'])throw new u['CollabError']('INTERNAL_ERROR','SQLite\x20Worktree\x20Database\x20Adapter\x20is\x20disposed');}};function y(_0xe0f6c9){let _0x13a791=j(_0xe0f6c9['source']);return{'worktreeID':_0xe0f6c9['worktree_id'],'unitID':_0xe0f6c9['unit_id'],'type':_0xe0f6c9['type'],'source':_0x13a791,..._0x13a791==='trunk'?{'baselineTrunkRevision':_0xe0f6c9['baseline_trunk_revision']}:{},'draftHeadRevision':_0xe0f6c9['draft_head_revision'],..._0xe0f6c9['ready_draft_head_revision']===null?{}:{'readyDraftHeadRevision':_0xe0f6c9['ready_draft_head_revision']},'creatorID':_0xe0f6c9['creator_id'],'createdAt':_0xe0f6c9['created_at_ms'],..._0xe0f6c9['removed']===0x1?{'removed':!0x0}:{},..._0xe0f6c9['merge_result_json']===null?{}:{'mergeResult':F(_0xe0f6c9['merge_result_json'])}};}function b(_0x3db37a){if(!_0x3db37a['filename'])throw M('SQLite\x20filename\x20is\x20required');if(_0x3db37a['busyTimeoutMs']!==void 0x0&&(!Number['isSafeInteger'](_0x3db37a['busyTimeoutMs'])||_0x3db37a['busyTimeoutMs']<0x0))throw M('SQLite\x20busyTimeoutMs\x20must\x20be\x20a\x20non-negative\x20integer');}function x(_0x451287){if(!_0x451287['record']['worktreeID']||!_0x451287['record']['sid']||_0x451287['record']['status']!=='draft')throw M('New\x20Worktree\x20must\x20be\x20a\x20draft\x20with\x20identity');let _0x3599ee=new Set();for(let _0x2716cc of _0x451287['units']){if(_0x2716cc['worktreeID']!==_0x451287['record']['worktreeID']||_0x3599ee['has'](_0x2716cc['unitID']))throw M('Initial\x20Worktree\x20Units\x20must\x20be\x20unique\x20and\x20share\x20identity');_0x3599ee['add'](_0x2716cc['unitID']),S(_0x2716cc);}}function S(_0x15c578){if(w(_0x15c578),_0x15c578['source']!=='trunk'||!_['has'](_0x15c578['type'])||!Number['isSafeInteger'](_0x15c578['baselineTrunkRevision'])||_0x15c578['baselineTrunkRevision']<0x1||_0x15c578['draftHeadRevision']!==_0x15c578['baselineTrunkRevision']||_0x15c578['readyDraftHeadRevision']!==void 0x0||_0x15c578['mergeResult']!==void 0x0)throw M('New\x20Worktree\x20Unit\x20must\x20start\x20at\x20its\x20trunk\x20baseline');}function C(_0x5c2b7e,_0x171faa){if(w(_0x5c2b7e),_0x5c2b7e['source']!=='worktree'||_0x5c2b7e['baselineTrunkRevision']!==void 0x0||!_['has'](_0x5c2b7e['type'])||_0x5c2b7e['draftHeadRevision']!==0x1||_0x5c2b7e['readyDraftHeadRevision']!==void 0x0||_0x5c2b7e['mergeResult']!==void 0x0||_0x171faa['snapshot']['unitID']!==_0x5c2b7e['unitID']||_0x171faa['snapshot']['type']!==_0x5c2b7e['type']||_0x171faa['snapshot']['rev']!==0x1)throw M('Worktree-created\x20Unit\x20must\x20start\x20from\x20its\x20revision\x201\x20seed');}function w(_0x150ad9){if(typeof _0x150ad9['creatorID']!='string'||_0x150ad9['creatorID']['length']===0x0||!Number['isSafeInteger'](_0x150ad9['createdAt'])||_0x150ad9['createdAt']<0x0)throw M('Unit\x20creation\x20requires\x20creatorID\x20and\x20createdAt\x20in\x20Unix\x20milliseconds');if(!_0x150ad9['worktreeID']||!_0x150ad9['unitID'])throw M('Worktree\x20and\x20Unit\x20identity\x20are\x20required');}function T(_0x2b7ddf){if(!Number['isSafeInteger'](_0x2b7ddf['from'])||_0x2b7ddf['from']<0x0||_0x2b7ddf['to']!==void 0x0&&(!Number['isSafeInteger'](_0x2b7ddf['to'])||_0x2b7ddf['to']<0x0))throw M('Draft\x20revision\x20range\x20cannot\x20be\x20negative');}function E(_0xc08955){if(_0xc08955['status']==='merged'){if(!Number['isSafeInteger'](_0xc08955['trunkRevision'])||_0xc08955['trunkRevision']<0x1)throw M('Merged\x20result\x20requires\x20a\x20trunk\x20revision');return;}if(!(_0xc08955['status']==='unchanged'||_0xc08955['status']==='removed')&&(!_0xc08955['error']['code']||!_0xc08955['error']['message']||typeof _0xc08955['error']['retryable']!='boolean'))throw M('Merge\x20error\x20must\x20be\x20stable\x20and\x20serializable');}function D(_0x52146f,_0x26eaf4){if(_0x26eaf4['unit']['snapshot']['unitID']!==_0x52146f['unitID']||_0x26eaf4['unit']['snapshot']['type']!==_0x52146f['type']||_0x26eaf4['unit']['snapshot']['rev']!==0x1)throw M('Worktree\x20Unit\x20merge\x20artifact\x20must\x20be\x20a\x20revision\x201\x20snapshot');}function O(_0x412a22){return k(_0x412a22['mergeResult']);}function k(_0x7e42f){return _0x7e42f?.['status']==='merged'||_0x7e42f?.['status']==='unchanged'||_0x7e42f?.['status']==='removed';}function A(_0x582efc){if(_0x582efc==='draft'||_0x582efc==='ready'||_0x582efc==='merging'||_0x582efc==='merged'||_0x582efc==='discarded')return _0x582efc;throw new u['CollabError']('INTERNAL_ERROR','SQLite\x20contains\x20invalid\x20Worktree\x20status\x20'+_0x582efc);}function j(_0x383b16){if(_0x383b16==='trunk'||_0x383b16==='worktree')return _0x383b16;throw new u['CollabError']('INTERNAL_ERROR','SQLite\x20contains\x20invalid\x20Worktree\x20Unit\x20source\x20'+_0x383b16);}function M(_0x1b1ab9){return new u['CollabError']('INVALID_REQUEST',_0x1b1ab9);}function N(_0x25e44e){return new u['CollabError']('INTERNAL_ERROR',_0x25e44e);}function P(_0x60a0c3){return JSON['stringify'](_0x60a0c3,function(_0x34ebb8,_0xfb414){let _0x12fd14=this[_0x34ebb8];return _0x12fd14 instanceof Uint8Array?{[g]:Buffer['from'](_0x12fd14)['toString']('base64')}:_0xfb414;});}function F(_0x23f9b2){return JSON['parse'](_0x23f9b2,(_0x4cc229,_0x52d7df)=>I(_0x52d7df)?Uint8Array['from'](Buffer['from'](_0x52d7df[g],'base64')):_0x52d7df);}function I(_0x2ff0c6){return typeof _0x2ff0c6=='object'&&!!_0x2ff0c6&&Object['keys'](_0x2ff0c6)['length']===0x1&&typeof _0x2ff0c6[g]=='string';}function L(_0x48fc6c){let _0xb9037c=new l['default'](_0x48fc6c['filename'],{'fileMustExist':!0x0}),_0xcf6fbe=!0x1;try{if(_0xb9037c['exec']('BEGIN\x20IMMEDIATE;'),_0xcf6fbe=!0x0,_0xb9037c['prepare']('SELECT\x20version\x20FROM\x20collaboration_schema_versions\x20WHERE\x20component\x20=\x20\x27worktree\x27')['get']()?.['version']!==0x1)throw new u['CollabError']('INVALID_REQUEST','Worktree\x20v1-to-v2\x20migration\x20requires\x20schema\x20version\x201');_0xb9037c['exec']('\x0a\x20\x20\x20\x20\x20\x20ALTER\x20TABLE\x20collaboration_worktree_units\x20ADD\x20COLUMN\x20removed\x20INTEGER\x20NOT\x20NULL\x20DEFAULT\x200\x20CHECK\x20(removed\x20IN\x20(0,\x201));\x0a\x20\x20\x20\x20\x20\x20UPDATE\x20collaboration_schema_versions\x20SET\x20version\x20=\x202\x20WHERE\x20component\x20=\x20\x27worktree\x27;\x0a\x20\x20\x20\x20\x20\x20COMMIT;\x0a\x20\x20\x20\x20'),_0xcf6fbe=!0x1;}finally{try{_0xcf6fbe&&_0xb9037c['exec']('ROLLBACK;');}finally{_0xb9037c['close']();}}}async function R(_0xb767ef){let _0x200422=Date['now'](),_0x5a7f2c=new l['default'](_0xb767ef['filename'],{'fileMustExist':!0x0}),_0x2d4259=!0x1;try{if(_0x5a7f2c['exec']('PRAGMA\x20foreign_keys\x20=\x20OFF;\x20PRAGMA\x20legacy_alter_table\x20=\x20ON;\x20BEGIN\x20IMMEDIATE;'),_0x2d4259=!0x0,_0x5a7f2c['prepare']('SELECT\x20version\x20FROM\x20collaboration_schema_versions\x20WHERE\x20component\x20=\x20\x27worktree\x27')['get']()?.['version']!==0x2)throw new u['CollabError']('INVALID_REQUEST','Worktree\x20v2-to-v3\x20migration\x20requires\x20schema\x20version\x202');for(let _0x524a6e of['collaboration_worktrees','collaboration_worktree_changesets','collaboration_worktree_unit_seeds','collaboration_worktree_unit_merge_artifacts'])_0x5a7f2c['prepare']('SELECT\x201\x20FROM\x20'+_0x524a6e+'\x20LIMIT\x200')['all']();let _0x24f3f6=_0x5a7f2c['prepare']('SELECT\x201\x20FROM\x20sqlite_schema\x20WHERE\x20type\x20=\x20\x27table\x27\x20AND\x20name\x20=\x20\x27collaboration_history_revisions\x27')['get']()?_0x5a7f2c['prepare']('SELECT\x20user_id,\x20committed_at\x20FROM\x20collaboration_history_revisions\x20WHERE\x20unit_id\x20=\x20?\x20AND\x20revision\x20=\x20?'):void 0x0,_0x3d98ff=(_0x424955,_0x1f8897)=>_0x24f3f6?.['get'](_0x424955,_0x1f8897),_0x4b096d=_0x5a7f2c['prepare']('PRAGMA\x20table_info(collaboration_worktree_units)')['all']();if(!_0x4b096d['some'](_0x4a0738=>_0x4a0738['name']==='removed')||_0x4b096d['some'](_0xb81146=>['creator_id','created_at_ms']['includes'](_0xb81146['name'])))throw new u['CollabError']('INVALID_REQUEST','Unexpected\x20Worktree\x20v2\x20Unit\x20schema');let _0x4e007a=_0x5a7f2c['prepare']('SELECT\x20sql\x20FROM\x20sqlite_schema\x20WHERE\x20type\x20=\x20\x27table\x27\x20AND\x20name\x20=\x20\x27collaboration_worktree_units\x27')['get'](),_0x43d4dc=_0x5a7f2c['prepare']('SELECT\x20sql\x20FROM\x20sqlite_schema\x20WHERE\x20tbl_name\x20=\x20\x27collaboration_worktree_units\x27\x20AND\x20type\x20IN\x20(\x27index\x27,\x20\x27trigger\x27)\x20AND\x20sql\x20IS\x20NOT\x20NULL')['all']();_0x5a7f2c['exec']('CREATE\x20TABLE\x20collaboration_worktree_units_v3\x20(\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\x20'+_0x4e007a['sql']['slice'](_0x4e007a['sql']['indexOf']('(')+0x1));let _0x5af1eb=B(_0x5a7f2c,'collaboration_worktree_units',['worktree_id','unit_id']),_0x4229d0=_0x4b096d['map'](_0xa3af6a=>'\x22'+_0xa3af6a['name']['replaceAll']('\x22','\x22\x22')+'\x22')['join'](',\x20'),_0x7c5503=_0x5a7f2c['prepare']('INSERT\x20INTO\x20collaboration_worktree_units_v3\x20('+_0x4229d0+',\x20creator_id,\x20created_at_ms)\x20VALUES\x20('+_0x4b096d['map'](()=>'?')['join'](',\x20')+',\x20?,\x20?)');for(let _0x3784c8 of _0x5af1eb){let _0x39edd6=!_0xb767ef['resolveUnitCreation']&&_0x3784c8['source']==='trunk'?_0x3d98ff(_0x3784c8['unit_id'],0x1):void 0x0,_0x4599eb=_0xb767ef['resolveUnitCreation']?await _0xb767ef['resolveUnitCreation'](_0x3784c8['worktree_id'],_0x3784c8['unit_id']):{'creatorID':_0x39edd6?.['user_id']||'anonymous','createdAt':z(_0x39edd6?.['committed_at'])?_0x39edd6['committed_at']:_0x200422};if(!_0x4599eb||typeof _0x4599eb['creatorID']!='string'||_0x4599eb['creatorID']['length']===0x0||!Number['isSafeInteger'](_0x4599eb['createdAt'])||_0x4599eb['createdAt']<0x0)throw new u['CollabError']('INVALID_REQUEST','Missing\x20or\x20invalid\x20creation\x20facts\x20for\x20Worktree\x20'+_0x3784c8['worktree_id']+'\x20Unit\x20'+_0x3784c8['unit_id']);_0x7c5503['run'](..._0x4b096d['map'](_0x2b10dc=>_0x3784c8[_0x2b10dc['name']]),_0x4599eb['creatorID'],_0x4599eb['createdAt']);}_0x5a7f2c['exec']('DROP\x20TABLE\x20collaboration_worktree_units;\x20ALTER\x20TABLE\x20collaboration_worktree_units_v3\x20RENAME\x20TO\x20collaboration_worktree_units;');for(let _0x291cda of _0x43d4dc)_0x5a7f2c['exec'](_0x291cda['sql']);let _0x29661b=_0x5a7f2c['prepare']('SELECT\x20sql\x20FROM\x20sqlite_schema\x20WHERE\x20type\x20=\x20\x27table\x27\x20AND\x20name\x20=\x20\x27collaboration_worktree_changesets\x27')['get'](),_0x214c3d=_0x5a7f2c['prepare']('PRAGMA\x20table_info(collaboration_worktree_changesets)')['all']();if(_0x214c3d['some'](_0x5df55d=>_0x5df55d['name']==='created_at_ms'))throw new u['CollabError']('INVALID_REQUEST','Unexpected\x20changeset\x20creation-time\x20column\x20in\x20legacy\x20schema');let _0x1da716=_0x5a7f2c['prepare']('SELECT\x20sql\x20FROM\x20sqlite_schema\x20WHERE\x20tbl_name\x20=\x20\x27collaboration_worktree_changesets\x27\x20AND\x20type\x20IN\x20(\x27index\x27,\x20\x27trigger\x27)\x20AND\x20sql\x20IS\x20NOT\x20NULL')['all']();_0x5a7f2c['exec']('CREATE\x20TABLE\x20collaboration_worktree_changesets_new\x20(\x0a\x20\x20\x20\x20\x20\x20created_at_ms\x20INTEGER\x20NOT\x20NULL,\x0a\x20\x20\x20\x20\x20\x20'+_0x29661b['sql']['slice'](_0x29661b['sql']['indexOf']('(')+0x1));let _0x17cf91=B(_0x5a7f2c,'collaboration_worktree_changesets',['worktree_id','unit_id','revision']),_0x11c75e=_0x214c3d['map'](_0x45e928=>'\x22'+_0x45e928['name']['replaceAll']('\x22','\x22\x22')+'\x22')['join'](',\x20'),_0x60d763=_0x5a7f2c['prepare']('INSERT\x20INTO\x20collaboration_worktree_changesets_new\x20('+_0x11c75e+',\x20created_at_ms)\x20VALUES\x20('+_0x214c3d['map'](()=>'?')['join'](',\x20')+',\x20?)');for(let _0x353a79 of _0x17cf91){let _0x5c0b6a=JSON['parse'](_0x353a79['payload_json']),_0x2d98fc=typeof _0x5c0b6a['createTime']=='number'?_0x5c0b6a['createTime']*0x3e8:void 0x0,_0x25a136=_0xb767ef['resolveChangesetCreatedAt']?await _0xb767ef['resolveChangesetCreatedAt'](_0x353a79['worktree_id'],_0x353a79['unit_id'],_0x353a79['revision']):z(_0x2d98fc)?_0x2d98fc:_0x200422;if(!Number['isSafeInteger'](_0x25a136)||_0x25a136<0x0)throw new u['CollabError']('INVALID_REQUEST','Missing\x20or\x20invalid\x20changeset\x20time\x20for\x20Unit\x20'+_0x353a79['unit_id']+'\x20revision\x20'+_0x353a79['revision']);_0x5c0b6a['createTime']=Math['floor'](_0x25a136/0x3e8),_0x60d763['run'](..._0x214c3d['map'](_0x1893b5=>_0x1893b5['name']==='payload_json'?JSON['stringify'](_0x5c0b6a):_0x353a79[_0x1893b5['name']]),_0x25a136);}_0x5a7f2c['exec']('DROP\x20TABLE\x20collaboration_worktree_changesets;\x20ALTER\x20TABLE\x20collaboration_worktree_changesets_new\x20RENAME\x20TO\x20collaboration_worktree_changesets;');for(let _0xb1dab5 of _0x1da716)_0x5a7f2c['exec'](_0xb1dab5['sql']);if(_0x5a7f2c['prepare']('PRAGMA\x20foreign_key_check')['all']()['length'])throw new u['CollabError']('INVALID_REQUEST','Foreign\x20key\x20validation\x20failed\x20during\x20Worktree\x20migration');_0x5a7f2c['exec']('UPDATE\x20collaboration_schema_versions\x20SET\x20version\x20=\x203\x20WHERE\x20component\x20=\x20\x27worktree\x27;\x20COMMIT;'),_0x2d4259=!0x1;}finally{try{_0x2d4259&&_0x5a7f2c['exec']('ROLLBACK;');}finally{_0x5a7f2c['close']();}}}function z(_0x274115){return typeof _0x274115=='number'&&Number['isSafeInteger'](_0x274115)&&_0x274115>=0x0;}function*B(_0x4b390e,_0x8c04a6,_0x13af81){let _0x5665e4=_0x13af81['join'](',\x20'),_0x5f430b=_0x4b390e['prepare']('SELECT\x20*\x20FROM\x20'+_0x8c04a6+'\x20ORDER\x20BY\x20'+_0x5665e4+'\x20LIMIT\x20100'),_0x33b8f3=_0x4b390e['prepare']('SELECT\x20*\x20FROM\x20'+_0x8c04a6+'\x20WHERE\x20('+_0x5665e4+')\x20>\x20('+_0x13af81['map'](()=>'?')['join'](',\x20')+')\x20ORDER\x20BY\x20'+_0x5665e4+'\x20LIMIT\x20100'),_0x5dc38b=_0x5f430b['all']();for(;_0x5dc38b['length']>0x0;){yield*_0x5dc38b;let _0x50d618=_0x13af81['map'](_0x3cbf72=>_0x5dc38b[_0x5dc38b['length']-0x1][_0x3cbf72]);_0x5dc38b=[],_0x5dc38b=_0x33b8f3['all'](..._0x50d618);}}exports['SQLiteWorktreeDatabaseAdapter']=v,exports['migrateSQLiteWorktreeV1ToV2']=L,exports['migrateSQLiteWorktreeV2ToV3']=R;
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { DatabaseContext } from "@univerjs-pro/collaboration-service";
1
+ import { DatabaseContext, UnitRecord } from "@univerjs-pro/collaboration-service";
2
2
  import { AddWorktreeUnitDatabaseInput, AddWorktreeUnitDatabaseResult, CommitWorktreeChangesetInput, CommitWorktreeChangesetResult, CreateWorktreeDatabaseInput, CreateWorktreeDatabaseResult, CreateWorktreeUnitDatabaseInput, CreateWorktreeUnitDatabaseResult, IWorktreeDatabaseAdapter, RecordUnitMergeResultInput, RecordUnitMergeResultResult, SaveWorktreeUnitMergeArtifactInput, SaveWorktreeUnitMergeArtifactResult, SetWorktreeUnitRemovedDatabaseInput, SetWorktreeUnitRemovedResult, StartMergeResult, WorktreeAggregateRecord, WorktreeRevisionRange, WorktreeTransitionResult, WorktreeUnitMergeArtifact, WorktreeUnitRecord, WorktreeUnitSeed } from "@univerjs-pro/collaboration-worktree-service";
3
3
  import { IChangeset } from "@univerjs/protocol";
4
4
 
@@ -44,4 +44,17 @@ declare class SQLiteWorktreeDatabaseAdapter implements IWorktreeDatabaseAdapter
44
44
  private _assertOpen;
45
45
  }
46
46
  //#endregion
47
- export { SQLiteWorktreeDatabaseAdapter, type SQLiteWorktreeDatabaseAdapterOptions };
47
+ //#region src/migrations/v1-to-v2.d.ts
48
+ declare function migrateSQLiteWorktreeV1ToV2(options: {
49
+ readonly filename: string;
50
+ }): void;
51
+ //#endregion
52
+ //#region src/migrations/v2-to-v3.d.ts
53
+ interface SQLiteWorktreeV2ToV3MigrationOptions {
54
+ readonly filename: string;
55
+ readonly resolveUnitCreation?: (worktreeID: string, unitID: string) => Pick<UnitRecord, "creatorID" | "createdAt"> | Promise<Pick<UnitRecord, "creatorID" | "createdAt">>;
56
+ readonly resolveChangesetCreatedAt?: (worktreeID: string, unitID: string, revision: number) => number | Promise<number>;
57
+ }
58
+ declare function migrateSQLiteWorktreeV2ToV3(options: SQLiteWorktreeV2ToV3MigrationOptions): Promise<void>;
59
+ //#endregion
60
+ export { SQLiteWorktreeDatabaseAdapter, type SQLiteWorktreeDatabaseAdapterOptions, type SQLiteWorktreeV2ToV3MigrationOptions, migrateSQLiteWorktreeV1ToV2, migrateSQLiteWorktreeV2ToV3 };
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- const _0x17d171=_0x3e4e;(function(_0x1e36fd,_0x573c87){const _0xe8446b=_0x3e4e,_0x24d042=_0x1e36fd();while(!![]){try{const _0x22a4ac=parseInt(_0xe8446b(0x104))/0x1+-parseInt(_0xe8446b(0x101))/0x2*(-parseInt(_0xe8446b(0x103))/0x3)+parseInt(_0xe8446b(0xfc))/0x4+-parseInt(_0xe8446b(0xfe))/0x5*(-parseInt(_0xe8446b(0x105))/0x6)+-parseInt(_0xe8446b(0x102))/0x7*(-parseInt(_0xe8446b(0xfb))/0x8)+-parseInt(_0xe8446b(0xfd))/0x9*(parseInt(_0xe8446b(0xfa))/0xa)+-parseInt(_0xe8446b(0x100))/0xb;if(_0x22a4ac===_0x573c87)break;else _0x24d042['push'](_0x24d042['shift']());}catch(_0x2b190d){_0x24d042['push'](_0x24d042['shift']());}}}(_0x4f0f,0x481bf));import _0x1b6571 from'./index.cjs';function _0x3e4e(_0x26a951,_0x10a763){_0x26a951=_0x26a951-0xfa;const _0x4f0ffa=_0x4f0f();let _0x3e4e3f=_0x4f0ffa[_0x26a951];return _0x3e4e3f;}const facadeExport0=_0x1b6571[_0x17d171(0xff)];function _0x4f0f(){const _0x450866=['582giotYF','1532690LJzMRJ','8epqTzW','2159980iuMiwA','18wDLvxm','24870tMiEnb','SQLiteWorktreeDatabaseAdapter','7963010SXynNT','112766KzcgkT','1128113gtdYZN','3bIbVYs','85792WPcAdS'];_0x4f0f=function(){return _0x450866;};return _0x4f0f();}export{facadeExport0 as SQLiteWorktreeDatabaseAdapter};
1
+ function _0x3207(){const _0x37ef99=['16rjfOTZ','migrateSQLiteWorktreeV1ToV2','4mHoiEL','4968770tnvevx','1380449KjXYfL','9OHNwja','11QsYWFI','3056517WznOkh','3518345YQDwEe','2007NNwKXo','migrateSQLiteWorktreeV2ToV3','18132012mbEDAU','6093582HdfJFL','476rtzKxx','SQLiteWorktreeDatabaseAdapter'];_0x3207=function(){return _0x37ef99;};return _0x3207();}const _0x1d025e=_0x4d41;(function(_0x1d5698,_0x269621){const _0x24cfe1=_0x4d41,_0x57a83d=_0x1d5698();while(!![]){try{const _0x2709ed=parseInt(_0x24cfe1(0x15d))/0x1*(-parseInt(_0x24cfe1(0x152))/0x2)+-parseInt(_0x24cfe1(0x15b))/0x3+parseInt(_0x24cfe1(0x156))/0x4*(parseInt(_0x24cfe1(0x15c))/0x5)+-parseInt(_0x24cfe1(0x160))/0x6+parseInt(_0x24cfe1(0x158))/0x7*(parseInt(_0x24cfe1(0x154))/0x8)+-parseInt(_0x24cfe1(0x159))/0x9*(-parseInt(_0x24cfe1(0x157))/0xa)+-parseInt(_0x24cfe1(0x15a))/0xb*(-parseInt(_0x24cfe1(0x15f))/0xc);if(_0x2709ed===_0x269621)break;else _0x57a83d['push'](_0x57a83d['shift']());}catch(_0x2f8377){_0x57a83d['push'](_0x57a83d['shift']());}}}(_0x3207,0x90fc3));import _0x3a39a0 from'./index.cjs';const facadeExport0=_0x3a39a0[_0x1d025e(0x153)],facadeExport1=_0x3a39a0[_0x1d025e(0x155)],facadeExport2=_0x3a39a0[_0x1d025e(0x15e)];function _0x4d41(_0x15ab0d,_0x11ee66){_0x15ab0d=_0x15ab0d-0x152;const _0x3207a7=_0x3207();let _0x4d413e=_0x3207a7[_0x15ab0d];return _0x4d413e;}export{facadeExport0 as SQLiteWorktreeDatabaseAdapter,facadeExport1 as migrateSQLiteWorktreeV1ToV2,facadeExport2 as migrateSQLiteWorktreeV2ToV3};
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "engines": {
5
5
  "node": ">=22"
6
6
  },
7
- "version": "1.0.0-rc.0",
7
+ "version": "1.0.1",
8
8
  "main": "./dist/index.cjs",
9
9
  "module": "./dist/index.mjs",
10
10
  "types": "./dist/index.d.ts",
@@ -19,9 +19,9 @@
19
19
  "dist"
20
20
  ],
21
21
  "dependencies": {
22
- "@univerjs-pro/collaboration-service": "1.0.0-rc.0",
23
- "@univerjs-pro/collaboration-worktree-service": "1.0.0-rc.0",
24
- "@univerjs/protocol": "1.0.0-rc.0",
22
+ "@univerjs-pro/collaboration-service": "1.0.1",
23
+ "@univerjs-pro/collaboration-worktree-service": "1.0.1",
24
+ "@univerjs/protocol": "1.0.1",
25
25
  "libsql": "^0.5.29"
26
26
  }
27
27
  }