@univerjs-pro/collaboration-worktree-endpoint 1.0.0-insiders.20260727-46ed76c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/middleware-registry.d.ts +11 -0
- package/dist/middleware-registry.js +1 -0
- package/dist/worktree-endpoint.d.ts +84 -0
- package/dist/worktree-endpoint.js +1 -0
- package/package.json +27 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { UniverCollabWorktreeEndpoint } from "./worktree-endpoint.js";
|
|
2
|
+
export type { BaseWorktreeEndpointMiddlewareContext, ConnectWorktreeEndpointMiddlewareContext, JoinWorktreeUnitEndpointMiddlewareContext, MemberLeftWorktreeUnitEvent, ReceiveWorktreePresenceEndpointMiddlewareContext, SendWorktreePresenceEndpointMiddlewareContext, UniverCollabWorktreeEndpointOptions, WorktreeChangedMessage, WorktreeEndpointEventMap, WorktreeEndpointMiddleware, WorktreeEndpointMiddlewareAction, WorktreeEndpointMiddlewareMap, WorktreeEndpointMiddlewareNext, } from "./worktree-endpoint.js";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';Object['defineProperty'](exports,'__esModule',{'value':!![]}),exports['UniverCollabWorktreeEndpoint']=void 0x0;var worktree_endpoint_js_1=require('./worktree-endpoint.js');Object['defineProperty'](exports,'UniverCollabWorktreeEndpoint',{'enumerable':!![],'get':function(){return worktree_endpoint_js_1['UniverCollabWorktreeEndpoint'];}});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
type Next = () => Promise<void>;
|
|
2
|
+
type Middleware<T> = (context: T, next: Next) => void | Promise<void>;
|
|
3
|
+
export declare class MiddlewareRegistry<TAction extends PropertyKey> {
|
|
4
|
+
private readonly _middlewares;
|
|
5
|
+
use<TContext>(action: TAction, middleware: Middleware<TContext>): {
|
|
6
|
+
dispose(): void;
|
|
7
|
+
};
|
|
8
|
+
run<TContext>(action: TAction, context: TContext, terminal: Next): Promise<void>;
|
|
9
|
+
clear(): void;
|
|
10
|
+
}
|
|
11
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';const _0x552227=_0x4b59;function _0x38c4(){const _0x397775=['\x20called\x20next()\x20twice','7557640NHInME','MiddlewareRegistry','3169878nBcIDo','4023582pyoIny','874040JruWkS','Middleware\x20for\x20action\x20','indexOf','get','1828304bBZeVO','defineProperty','clear','995926LVtmzf','use','_middlewares','splice','__esModule','557052RBSzgT','run','\x20did\x20not\x20call\x20next()','21KjsMJm'];_0x38c4=function(){return _0x397775;};return _0x38c4();}(function(_0x52350d,_0x5c35cc){const _0x11f4b4=_0x4b59,_0x30e8d7=_0x52350d();while(!![]){try{const _0x2ae294=-parseInt(_0x11f4b4(0x15a))/0x1+parseInt(_0x11f4b4(0x151))/0x2+parseInt(_0x11f4b4(0x15f))/0x3+parseInt(_0x11f4b4(0x153))/0x4+-parseInt(_0x11f4b4(0x14f))/0x5+parseInt(_0x11f4b4(0x152))/0x6+-parseInt(_0x11f4b4(0x162))/0x7*(-parseInt(_0x11f4b4(0x157))/0x8);if(_0x2ae294===_0x5c35cc)break;else _0x30e8d7['push'](_0x30e8d7['shift']());}catch(_0x267947){_0x30e8d7['push'](_0x30e8d7['shift']());}}}(_0x38c4,0xcc902));function _0x4b59(_0x25adc8,_0xca4dd4){_0x25adc8=_0x25adc8-0x14e;const _0x38c479=_0x38c4();let _0x4b5978=_0x38c479[_0x25adc8];return _0x4b5978;}Object[_0x552227(0x158)](exports,_0x552227(0x15e),{'value':!![]}),exports[_0x552227(0x150)]=void 0x0;class MiddlewareRegistry{[_0x552227(0x15c)]=new Map();[_0x552227(0x15b)](_0x18f3bf,_0x50013e){const _0x162608=_0x552227,_0x488604=this['_middlewares'][_0x162608(0x156)](_0x18f3bf)??[],_0x1c2d22=_0x50013e;_0x488604['push'](_0x1c2d22),this[_0x162608(0x15c)]['set'](_0x18f3bf,_0x488604);let _0x44db68=![];return{'dispose':()=>{const _0x3f6c23=_0x162608;if(_0x44db68)return;_0x44db68=!![];const _0x28b50e=_0x488604[_0x3f6c23(0x155)](_0x1c2d22);if(_0x28b50e>=0x0)_0x488604[_0x3f6c23(0x15d)](_0x28b50e,0x1);}};}async[_0x552227(0x160)](_0x51f5cb,_0x1916ad,_0x28d7d8){const _0x26cc41=_0x552227,_0x277087=[...this[_0x26cc41(0x15c)][_0x26cc41(0x156)](_0x51f5cb)??[]],_0x3bd3eb=async _0x40f5e9=>{const _0x3b1194=_0x26cc41,_0x515a33=_0x277087[_0x40f5e9];if(!_0x515a33){await _0x28d7d8();return;}let _0x5510a0=![],_0x501659;const _0x3267f7=()=>{const _0xdf7d60=_0x4b59;if(_0x5510a0)throw new Error('Middleware\x20for\x20action\x20'+String(_0x51f5cb)+_0xdf7d60(0x14e));return _0x5510a0=!![],_0x501659=_0x3bd3eb(_0x40f5e9+0x1),_0x501659;};await _0x515a33(_0x1916ad,_0x3267f7);if(!_0x5510a0)throw new Error(_0x3b1194(0x154)+String(_0x51f5cb)+_0x3b1194(0x161));await _0x501659;};await _0x3bd3eb(0x0);}[_0x552227(0x159)](){const _0x5b440d=_0x552227;this['_middlewares'][_0x5b440d(0x159)]();}}exports[_0x552227(0x150)]=MiddlewareRegistry;
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { type EndpointMember, type ISessionTicketStore } from "@univerjs-pro/collaboration-endpoint";
|
|
2
|
+
import { type CollabSession, type Disposable } from "@univerjs-pro/collaboration-service";
|
|
3
|
+
import { type NodeTransportConnection, type NodeTransportContext, type NodeTransportMiddlewareObject, type NodeTransportNext } from "@univerjs-pro/collaboration-transport-node";
|
|
4
|
+
import { type IUniverCollabWorktreeService, type WorktreeData } from "@univerjs-pro/collaboration-worktree-service";
|
|
5
|
+
export interface UniverCollabWorktreeEndpointOptions {
|
|
6
|
+
readonly ticketStore: ISessionTicketStore;
|
|
7
|
+
readonly sessionTicketTtlMs?: number;
|
|
8
|
+
}
|
|
9
|
+
export interface BaseWorktreeEndpointMiddlewareContext {
|
|
10
|
+
readonly worktreeID: string;
|
|
11
|
+
readonly session: CollabSession;
|
|
12
|
+
}
|
|
13
|
+
export interface ConnectWorktreeEndpointMiddlewareContext extends BaseWorktreeEndpointMiddlewareContext {
|
|
14
|
+
readonly connection: NodeTransportConnection;
|
|
15
|
+
readonly member: EndpointMember;
|
|
16
|
+
}
|
|
17
|
+
export interface JoinWorktreeUnitEndpointMiddlewareContext extends BaseWorktreeEndpointMiddlewareContext {
|
|
18
|
+
readonly unitID: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ReceiveWorktreePresenceEndpointMiddlewareContext extends JoinWorktreeUnitEndpointMiddlewareContext {
|
|
21
|
+
readonly payload: unknown;
|
|
22
|
+
readonly customData: Record<string, unknown>;
|
|
23
|
+
}
|
|
24
|
+
export interface SendWorktreePresenceEndpointMiddlewareContext extends ReceiveWorktreePresenceEndpointMiddlewareContext {
|
|
25
|
+
readonly targetMemberId: string;
|
|
26
|
+
}
|
|
27
|
+
export type WorktreeEndpointMiddlewareAction = "connect" | "joinUnit" | "receivePresence" | "sendPresence";
|
|
28
|
+
export type WorktreeEndpointMiddlewareNext = () => Promise<void>;
|
|
29
|
+
export type WorktreeEndpointMiddleware<TContext> = (context: TContext, next: WorktreeEndpointMiddlewareNext) => void | Promise<void>;
|
|
30
|
+
export interface WorktreeEndpointMiddlewareMap {
|
|
31
|
+
readonly connect: WorktreeEndpointMiddleware<ConnectWorktreeEndpointMiddlewareContext>;
|
|
32
|
+
readonly joinUnit: WorktreeEndpointMiddleware<JoinWorktreeUnitEndpointMiddlewareContext>;
|
|
33
|
+
readonly receivePresence: WorktreeEndpointMiddleware<ReceiveWorktreePresenceEndpointMiddlewareContext>;
|
|
34
|
+
readonly sendPresence: WorktreeEndpointMiddleware<SendWorktreePresenceEndpointMiddlewareContext>;
|
|
35
|
+
}
|
|
36
|
+
export interface MemberLeftWorktreeUnitEvent {
|
|
37
|
+
readonly worktreeID: string;
|
|
38
|
+
readonly session: CollabSession;
|
|
39
|
+
readonly unitID: string;
|
|
40
|
+
readonly reason: "explicit" | "disconnect" | "endpoint-dispose";
|
|
41
|
+
}
|
|
42
|
+
export interface WorktreeEndpointEventMap {
|
|
43
|
+
readonly memberLeftUnit: MemberLeftWorktreeUnitEvent;
|
|
44
|
+
}
|
|
45
|
+
export interface WorktreeChangedMessage {
|
|
46
|
+
readonly event: "worktreeChanged";
|
|
47
|
+
readonly worktree: WorktreeData;
|
|
48
|
+
}
|
|
49
|
+
type EndpointListener<K extends keyof WorktreeEndpointEventMap> = (event: WorktreeEndpointEventMap[K]) => void | Promise<void>;
|
|
50
|
+
export declare class UniverCollabWorktreeEndpoint implements NodeTransportMiddlewareObject {
|
|
51
|
+
private readonly _service;
|
|
52
|
+
private readonly _options;
|
|
53
|
+
private readonly _middleware;
|
|
54
|
+
private readonly _listeners;
|
|
55
|
+
private readonly _scopedEndpoints;
|
|
56
|
+
private readonly _connectionOwners;
|
|
57
|
+
private readonly _connectionReady;
|
|
58
|
+
private readonly _eventBindings;
|
|
59
|
+
private readonly _eventRooms;
|
|
60
|
+
private readonly _eventQueues;
|
|
61
|
+
private readonly _subscriptions;
|
|
62
|
+
private readonly _ticketTtlMs;
|
|
63
|
+
private _disposed;
|
|
64
|
+
constructor(_service: IUniverCollabWorktreeService, _options: UniverCollabWorktreeEndpointOptions);
|
|
65
|
+
use<K extends WorktreeEndpointMiddlewareAction>(action: K, middleware: WorktreeEndpointMiddlewareMap[K]): Disposable;
|
|
66
|
+
on<K extends keyof WorktreeEndpointEventMap>(event: K, listener: EndpointListener<K>): Disposable;
|
|
67
|
+
handle(context: NodeTransportContext, next: NodeTransportNext): Promise<void>;
|
|
68
|
+
dispose(): Promise<void>;
|
|
69
|
+
private _handleHttp;
|
|
70
|
+
private _handleManagement;
|
|
71
|
+
private _handleOpen;
|
|
72
|
+
private _openEventConnection;
|
|
73
|
+
private _scopedEndpoint;
|
|
74
|
+
private _getJoinableWorktree;
|
|
75
|
+
private _enqueueWorktreeChanged;
|
|
76
|
+
private _sendChanged;
|
|
77
|
+
private _removeEventBinding;
|
|
78
|
+
private _waitForConnectionReady;
|
|
79
|
+
private _emit;
|
|
80
|
+
private _requireUser;
|
|
81
|
+
private _writeFailure;
|
|
82
|
+
private _assertRunning;
|
|
83
|
+
}
|
|
84
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';const _0x42b75f=_0x4722;(function(_0x545a06,_0x597e9a){const _0xd0b39c=_0x4722,_0x5e2549=_0x545a06();while(!![]){try{const _0x431d5c=-parseInt(_0xd0b39c(0x191))/0x1+parseInt(_0xd0b39c(0x1c9))/0x2*(parseInt(_0xd0b39c(0x12f))/0x3)+-parseInt(_0xd0b39c(0x163))/0x4+parseInt(_0xd0b39c(0x195))/0x5+-parseInt(_0xd0b39c(0x164))/0x6+-parseInt(_0xd0b39c(0x126))/0x7*(parseInt(_0xd0b39c(0x135))/0x8)+-parseInt(_0xd0b39c(0x1da))/0x9*(-parseInt(_0xd0b39c(0x1ce))/0xa);if(_0x431d5c===_0x597e9a)break;else _0x5e2549['push'](_0x5e2549['shift']());}catch(_0xaf1252){_0x5e2549['push'](_0x5e2549['shift']());}}}(_0x2349,0xecac4));Object[_0x42b75f(0x1c1)](exports,'__esModule',{'value':!![]}),exports['UniverCollabWorktreeEndpoint']=void 0x0;const node_crypto_1=require('node:crypto'),collaboration_endpoint_1=require('@univerjs-pro/collaboration-endpoint'),collaboration_service_1=require('@univerjs-pro/collaboration-service'),collaboration_transport_node_1=require('@univerjs-pro/collaboration-transport-node'),collaboration_worktree_service_1=require('@univerjs-pro/collaboration-worktree-service'),protocol_1=require('@univerjs/protocol'),middleware_registry_js_1=require('./middleware-registry.js'),DEFAULT_TICKET_TTL_MS=0x5*0xea60,WORKTREES_PATH=_0x42b75f(0x155),TICKET_PATH=_0x42b75f(0x125);class UniverCollabWorktreeEndpoint{['_service'];[_0x42b75f(0x18b)];[_0x42b75f(0x11a)]=new middleware_registry_js_1['MiddlewareRegistry']();[_0x42b75f(0x1b3)]=new Map();[_0x42b75f(0x1a7)]=new Map();[_0x42b75f(0x1bb)]=new Map();[_0x42b75f(0x192)]=new Map();['_eventBindings']=new Map();['_eventRooms']=new Map();[_0x42b75f(0x1c5)]=new Map();[_0x42b75f(0x1d4)];[_0x42b75f(0x171)];[_0x42b75f(0x12e)]=![];constructor(_0x16ef22,_0x38bc2f){const _0x443d9=_0x42b75f;this[_0x443d9(0x199)]=_0x16ef22,this[_0x443d9(0x18b)]=_0x38bc2f;if(!_0x16ef22)throw new TypeError(_0x443d9(0x1b6));if(!_0x38bc2f?.[_0x443d9(0x1bc)])throw new TypeError(_0x443d9(0x17e));this[_0x443d9(0x171)]=_0x38bc2f[_0x443d9(0x168)]??DEFAULT_TICKET_TTL_MS;if(!Number['isSafeInteger'](this[_0x443d9(0x171)])||this[_0x443d9(0x171)]<=0x0)throw new TypeError('sessionTicketTtlMs\x20must\x20be\x20a\x20positive\x20safe\x20integer');this[_0x443d9(0x1d4)]=[this[_0x443d9(0x199)]['on']('worktreeCreated',_0x9e1e34=>this[_0x443d9(0x14e)](_0x9e1e34['worktree'])),this[_0x443d9(0x199)]['on'](_0x443d9(0x1b4),_0x2d0518=>this[_0x443d9(0x14e)](_0x2d0518[_0x443d9(0x15c)])),this[_0x443d9(0x199)]['on'](_0x443d9(0x128),_0x2f78c3=>this[_0x443d9(0x14e)](_0x2f78c3['worktree'])),this[_0x443d9(0x199)]['on'](_0x443d9(0x19a),_0x57e91d=>this[_0x443d9(0x14e)](_0x57e91d['worktree'])),this[_0x443d9(0x199)]['on'](_0x443d9(0x11d),_0x4ff70d=>this[_0x443d9(0x14e)](_0x4ff70d[_0x443d9(0x15c)]))];}['use'](_0x24c392,_0xe549bd){const _0x392ee7=_0x42b75f;return this['_assertRunning'](),this[_0x392ee7(0x11a)][_0x392ee7(0x1c6)](_0x24c392,_0xe549bd);}['on'](_0x10054a,_0x353ce0){const _0x5daf8b=_0x42b75f;this[_0x5daf8b(0x13f)]();const _0x1bb1cf=this[_0x5daf8b(0x1b3)]['get'](_0x10054a)??new Set(),_0x16e2dc=_0x353ce0;_0x1bb1cf[_0x5daf8b(0x1b0)](_0x16e2dc),this[_0x5daf8b(0x1b3)]['set'](_0x10054a,_0x1bb1cf);let _0x289df8=![];return{'dispose':()=>{const _0x12fe75=_0x5daf8b;if(_0x289df8)return;_0x289df8=!![],_0x1bb1cf[_0x12fe75(0x182)](_0x16e2dc);}};}async['handle'](_0x59ff17,_0x2328a1){const _0x5c5008=_0x42b75f;if(this[_0x5c5008(0x12e)]){await _0x2328a1();return;}switch(_0x59ff17[_0x5c5008(0x19b)]){case _0x5c5008(0x11b):await this['_handleHttp'](_0x59ff17,_0x2328a1);return;case _0x5c5008(0x1c3):await this[_0x5c5008(0x15a)](_0x59ff17,_0x2328a1);return;case _0x5c5008(0x176):{const _0x8fb660=this[_0x5c5008(0x130)][_0x5c5008(0x1cd)](_0x59ff17[_0x5c5008(0x186)]['id']);if(_0x8fb660){_0x59ff17[_0x5c5008(0x186)]['close'](0x3eb,_0x5c5008(0x156));return;}const _0x500977=this[_0x5c5008(0x1bb)]['get'](_0x59ff17['connection']['id']);if(_0x500977){await this['_waitForConnectionReady'](_0x59ff17[_0x5c5008(0x186)]['id']),await _0x500977['handle'](_0x59ff17,_0x2328a1);return;}await _0x2328a1();return;}case'websocket-close':{if(this['_eventBindings']['has'](_0x59ff17[_0x5c5008(0x186)]['id'])){this['_removeEventBinding'](_0x59ff17['connection']['id']);return;}const _0x17f394=this[_0x5c5008(0x1bb)][_0x5c5008(0x1cd)](_0x59ff17[_0x5c5008(0x186)]['id']);if(_0x17f394){this[_0x5c5008(0x1bb)]['delete'](_0x59ff17[_0x5c5008(0x186)]['id']),await this[_0x5c5008(0x1b2)](_0x59ff17[_0x5c5008(0x186)]['id']),await _0x17f394['handle'](_0x59ff17,_0x2328a1);return;}await _0x2328a1();}}}async['dispose'](){const _0x229596=_0x42b75f;if(this[_0x229596(0x12e)])return;this[_0x229596(0x12e)]=!![],this[_0x229596(0x1d4)][_0x229596(0x120)](_0x1142d5=>_0x1142d5['dispose']()),await Promise[_0x229596(0x1c7)]([...this[_0x229596(0x1c5)]['values']()]);for(const _0x5353fd of this[_0x229596(0x130)][_0x229596(0x1aa)]()){_0x5353fd[_0x229596(0x186)][_0x229596(0x165)](0x3e9,_0x229596(0x12b));}this['_eventBindings'][_0x229596(0x1c8)](),this[_0x229596(0x19f)][_0x229596(0x1c8)](),this[_0x229596(0x1c5)][_0x229596(0x1c8)](),this[_0x229596(0x1bb)]['clear'](),this[_0x229596(0x192)][_0x229596(0x1c8)]();const _0x182679=[...this['_scopedEndpoints'][_0x229596(0x1aa)]()];this['_scopedEndpoints'][_0x229596(0x1c8)](),await Promise[_0x229596(0x13c)](_0x182679[_0x229596(0x11c)](_0x5c8f00=>_0x5c8f00[_0x229596(0x166)]())),this[_0x229596(0x11a)][_0x229596(0x1c8)](),this[_0x229596(0x1b3)][_0x229596(0x1c8)]();}async['_handleHttp'](_0x47a59b,_0x5920ea){const _0x3abc80=_0x42b75f;let _0x382702;try{_0x382702=new URL(_0x47a59b['incomingMessage'][_0x3abc80(0x18c)]??'/',_0x3abc80(0x184));}catch(_0x3b8853){this[_0x3abc80(0x1c4)](_0x47a59b,_0x3b8853);return;}if(_0x47a59b['incomingMessage'][_0x3abc80(0x12a)]===_0x3abc80(0x1cf)&&_0x382702[_0x3abc80(0x198)]===TICKET_PATH){try{this[_0x3abc80(0x14a)](_0x47a59b);const _0x110382=await this[_0x3abc80(0x18b)][_0x3abc80(0x1bc)]['issue']({'userId':_0x47a59b[_0x3abc80(0x17f)],'customData':_0x47a59b[_0x3abc80(0x150)]},this[_0x3abc80(0x171)]);writeJson(_0x47a59b,0xc8,{'error':{'code':protocol_1[_0x3abc80(0x146)]['OK'],'message':''},'ticket':_0x110382});}catch(_0x4d3fdc){this['_writeFailure'](_0x47a59b,_0x4d3fdc);}return;}let _0x5bf803,_0x40fc18;try{_0x5bf803=matchManagementRoute(_0x47a59b[_0x3abc80(0x131)]['method'],_0x382702[_0x3abc80(0x198)]),_0x40fc18=matchScopedRoute(_0x382702[_0x3abc80(0x198)]);}catch(_0x48d2ee){this[_0x3abc80(0x1c4)](_0x47a59b,_0x48d2ee);return;}if(_0x5bf803){await this[_0x3abc80(0x196)](_0x47a59b,_0x5bf803);return;}if(_0x40fc18&&isProtocolSuffix(_0x40fc18[_0x3abc80(0x18a)])){await this[_0x3abc80(0x162)](_0x40fc18['worktreeID'],_0x40fc18['protocolBasePath'])[_0x3abc80(0x145)](_0x47a59b,_0x5920ea);return;}await _0x5920ea();}async[_0x42b75f(0x196)](_0x458383,_0x55ed75){const _0x178e4f=_0x42b75f;try{this[_0x178e4f(0x14a)](_0x458383);const _0x529f64={'session':callerSession(_0x458383['userId']),'customData':_0x458383['customData']};if(_0x55ed75[_0x178e4f(0x181)]===_0x178e4f(0x14c)){const _0x1d32ed=await this['_service'][_0x178e4f(0x15b)]({'worktreeID':_0x55ed75[_0x178e4f(0x19d)],'unitID':_0x55ed75['unitID']},_0x529f64);_0x458383[_0x178e4f(0x124)][_0x178e4f(0x1c0)](_0x178e4f(0x140),_0x178e4f(0x1a5)),writeJson(_0x458383,0xc8,{'evaluation':_0x1d32ed});return;}let _0x17f921;switch(_0x55ed75['action']){case'create':{const _0x139ae2=await _0x458383['readJson']();assertCreateBody(_0x139ae2),_0x17f921=await this[_0x178e4f(0x199)]['createWorktree'](_0x139ae2,_0x529f64);break;}case _0x178e4f(0x1cd):_0x17f921=await this[_0x178e4f(0x199)][_0x178e4f(0x1d9)]({'worktreeID':_0x55ed75[_0x178e4f(0x19d)]},_0x529f64);break;case _0x178e4f(0x13d):{const _0x13a656=await _0x458383[_0x178e4f(0x1b1)]();assertAddUnitBody(_0x13a656),_0x17f921=await this['_service'][_0x178e4f(0x13d)]({'worktreeID':_0x55ed75[_0x178e4f(0x19d)],'unitID':_0x13a656[_0x178e4f(0x175)]},_0x529f64);break;}case _0x178e4f(0x1af):{const _0x40f30a=parseCreateUnitFromSnapshotBody(await _0x458383[_0x178e4f(0x1b1)]());_0x17f921=await this[_0x178e4f(0x199)][_0x178e4f(0x16c)]({'worktreeID':_0x55ed75[_0x178e4f(0x19d)],..._0x40f30a},_0x529f64);break;}case _0x178e4f(0x1cb):{const _0xedc685=parseCreateUnitFromDataBody(await _0x458383['readJson']());_0x17f921=await this['_service'][_0x178e4f(0x1cb)]({'worktreeID':_0x55ed75[_0x178e4f(0x19d)],..._0xedc685},_0x529f64);break;}case'ready':_0x17f921=await this['_service'][_0x178e4f(0x151)]({'worktreeID':_0x55ed75['worktreeID']},_0x529f64);break;case'reopen':_0x17f921=await this['_service'][_0x178e4f(0x1d6)]({'worktreeID':_0x55ed75['worktreeID']},_0x529f64);break;case _0x178e4f(0x1b7):_0x17f921=await this['_service'][_0x178e4f(0x1db)]({'worktreeID':_0x55ed75[_0x178e4f(0x19d)]},_0x529f64);break;case _0x178e4f(0x1ac):_0x17f921=await this[_0x178e4f(0x199)][_0x178e4f(0x1b9)]({'worktreeID':_0x55ed75[_0x178e4f(0x19d)]},_0x529f64);break;}writeJson(_0x458383,0xc8,{'worktree':_0x17f921['worktree']});}catch(_0xc5208f){this[_0x178e4f(0x1c4)](_0x458383,_0xc5208f);}}async[_0x42b75f(0x15a)](_0x2f1fb8,_0x55bd46){const _0x360551=_0x42b75f;let _0x2c9cf8,_0x14682a;try{_0x2c9cf8=new URL(_0x2f1fb8[_0x360551(0x131)][_0x360551(0x18c)]??'/',_0x360551(0x184)),_0x14682a=matchScopedRoute(_0x2c9cf8[_0x360551(0x198)]);}catch{_0x2f1fb8[_0x360551(0x186)][_0x360551(0x165)](0x3f0,_0x360551(0x14d));return;}if(!_0x14682a){await _0x55bd46();return;}if(_0x14682a[_0x360551(0x18a)]===_0x360551(0x18f)){await this[_0x360551(0x1a3)](_0x2f1fb8,_0x2c9cf8,_0x14682a[_0x360551(0x19d)]);return;}if(_0x14682a['suffix']==='/comb/connect'){const _0x4f4b90=this['_scopedEndpoint'](_0x14682a['worktreeID'],_0x14682a['protocolBasePath']);this['_connectionOwners'][_0x360551(0x112)](_0x2f1fb8['connection']['id'],_0x4f4b90);const _0x524c9d=Promise[_0x360551(0x12d)]()['then'](()=>_0x4f4b90[_0x360551(0x145)](_0x2f1fb8,_0x55bd46));this['_connectionReady'][_0x360551(0x112)](_0x2f1fb8[_0x360551(0x186)]['id'],_0x524c9d);try{await _0x524c9d;}finally{this[_0x360551(0x192)][_0x360551(0x1cd)](_0x2f1fb8['connection']['id'])===_0x524c9d&&this[_0x360551(0x192)][_0x360551(0x182)](_0x2f1fb8[_0x360551(0x186)]['id']);}return;}await _0x55bd46();}async[_0x42b75f(0x1a3)](_0x9235fa,_0x5f4e94,_0x49aa9b){const _0x2506b0=_0x42b75f;try{const _0x51ced5=_0x5f4e94[_0x2506b0(0x10d)]['get'](_0x2506b0(0x1a2))??'',_0x220719=await this['_options'][_0x2506b0(0x1bc)]['consume'](_0x51ced5);if(!_0x220719){_0x9235fa['connection'][_0x2506b0(0x165)](0x3f0,'Invalid\x20or\x20expired\x20session\x20ticket');return;}const _0x4539d4=(0x0,node_crypto_1[_0x2506b0(0x172)])(),_0x306212={'memberId':_0x4539d4,'userId':_0x220719[_0x2506b0(0x17f)],'customData':_0x220719[_0x2506b0(0x150)]},_0x42fab1={'memberID':_0x4539d4,'userID':_0x220719['userId'],'name':_0x220719[_0x2506b0(0x17f)]};await this[_0x2506b0(0x11a)][_0x2506b0(0x1d3)](_0x2506b0(0x123),{'worktreeID':_0x49aa9b,'session':_0x306212,'connection':_0x9235fa['connection'],'member':_0x42fab1},async()=>undefined);const _0x4826fb={'worktreeID':_0x49aa9b,'connection':_0x9235fa[_0x2506b0(0x186)],'session':_0x306212,'ready':![]};this[_0x2506b0(0x130)][_0x2506b0(0x112)](_0x9235fa[_0x2506b0(0x186)]['id'],_0x4826fb);const _0x230088=this['_eventRooms'][_0x2506b0(0x1cd)](_0x49aa9b)??new Map();_0x230088[_0x2506b0(0x112)](_0x9235fa[_0x2506b0(0x186)]['id'],_0x4826fb),this[_0x2506b0(0x19f)][_0x2506b0(0x112)](_0x49aa9b,_0x230088);try{const {worktree:_0x58b748}=await this['_service'][_0x2506b0(0x1d9)]({'worktreeID':_0x49aa9b},{'session':_0x306212,'customData':_0x9235fa[_0x2506b0(0x150)]});await this[_0x2506b0(0x116)](_0x4826fb,_0x58b748),_0x4826fb[_0x2506b0(0x12c)]=!![];if(_0x4826fb[_0x2506b0(0x14f)]){const _0x28d530=_0x4826fb[_0x2506b0(0x14f)];delete _0x4826fb[_0x2506b0(0x14f)],await this[_0x2506b0(0x116)](_0x4826fb,_0x28d530);}}catch(_0x46a7eb){this['_removeEventBinding'](_0x9235fa[_0x2506b0(0x186)]['id']);throw _0x46a7eb;}}catch(_0x7b89c1){_0x9235fa[_0x2506b0(0x186)]['close'](_0x7b89c1 instanceof collaboration_service_1[_0x2506b0(0x173)]||_0x7b89c1 instanceof collaboration_worktree_service_1[_0x2506b0(0x11f)]?0x3f0:0x3f3,_0x2506b0(0x139));}}[_0x42b75f(0x162)](_0x3d0431,_0x5c60b0){const _0x54cda2=_0x42b75f,_0x40c1b3=this[_0x54cda2(0x1a7)][_0x54cda2(0x1cd)](_0x3d0431);if(_0x40c1b3)return _0x40c1b3;const _0x33a658=new ScopedWorktreeService(this[_0x54cda2(0x199)],_0x3d0431),_0x619148=new collaboration_endpoint_1[(_0x54cda2(0x16a))](_0x33a658,{'ticketStore':this[_0x54cda2(0x18b)][_0x54cda2(0x1bc)],'protocolBasePath':_0x5c60b0});return _0x619148[_0x54cda2(0x1c6)](_0x54cda2(0x123),(_0x19b78d,_0x4f3fa3)=>this['_middleware']['run']('connect',{..._0x19b78d,'worktreeID':_0x3d0431},_0x4f3fa3)),_0x619148[_0x54cda2(0x1c6)]('joinUnit',async(_0x1a4776,_0x88eaef)=>{const _0x1a7f6e=_0x54cda2,{worktree:_0x2f113c}=await this[_0x1a7f6e(0x1bd)](_0x3d0431,_0x1a4776[_0x1a7f6e(0x119)]);if(!_0x2f113c[_0x1a7f6e(0x197)][_0x1a7f6e(0x143)](({unitID:_0x6a52a7})=>_0x6a52a7===_0x1a4776[_0x1a7f6e(0x175)]))throw new collaboration_service_1[(_0x1a7f6e(0x173))](_0x1a7f6e(0x137),_0x1a7f6e(0x118)+_0x1a4776[_0x1a7f6e(0x175)]+_0x1a7f6e(0x1be)+_0x3d0431);await this[_0x1a7f6e(0x11a)][_0x1a7f6e(0x1d3)]('joinUnit',{..._0x1a4776,'worktreeID':_0x3d0431},_0x88eaef);}),_0x619148[_0x54cda2(0x1c6)](_0x54cda2(0x13a),(_0x5ce5ea,_0x4f3411)=>this[_0x54cda2(0x11a)][_0x54cda2(0x1d3)](_0x54cda2(0x13a),{..._0x5ce5ea,'worktreeID':_0x3d0431},_0x4f3411)),_0x619148['use']('sendPresence',(_0x2efcde,_0x3c18bd)=>this[_0x54cda2(0x11a)]['run']('sendPresence',{..._0x2efcde,'worktreeID':_0x3d0431},_0x3c18bd)),_0x619148['on']('memberLeftUnit',_0x4c8622=>this['_emit'](_0x54cda2(0x177),{..._0x4c8622,'worktreeID':_0x3d0431})),this[_0x54cda2(0x1a7)][_0x54cda2(0x112)](_0x3d0431,_0x619148),_0x619148;}async[_0x42b75f(0x1bd)](_0x58da3b,_0x265d90){const _0x29f0e5=_0x42b75f;try{const _0x500737=await this[_0x29f0e5(0x199)][_0x29f0e5(0x1d9)]({'worktreeID':_0x58da3b},{'session':_0x265d90});if(_0x500737[_0x29f0e5(0x15c)][_0x29f0e5(0x1ba)]===_0x29f0e5(0x1d1))throw new collaboration_service_1['CollabError']('PERMISSION_DENIED',_0x29f0e5(0x1d5));return _0x500737;}catch(_0x5eafa9){if(_0x5eafa9 instanceof collaboration_worktree_service_1[_0x29f0e5(0x11f)]&&_0x5eafa9[_0x29f0e5(0x147)]===_0x29f0e5(0x141))throw new collaboration_service_1[(_0x29f0e5(0x173))](_0x29f0e5(0x137),_0x5eafa9[_0x29f0e5(0x161)]);throw _0x5eafa9;}}['_enqueueWorktreeChanged'](_0x489888){const _0x141a23=_0x42b75f;if(this[_0x141a23(0x12e)])return;const _0x3e33ff=_0x489888[_0x141a23(0x19d)],_0x159c51=this[_0x141a23(0x1c5)][_0x141a23(0x1cd)](_0x3e33ff)??Promise['resolve'](),_0x3bb4f9=_0x159c51[_0x141a23(0x1ae)](()=>undefined)[_0x141a23(0x1bf)](async()=>{const _0x1eff12=_0x141a23,_0x3d4a25=[...this['_eventRooms'][_0x1eff12(0x1cd)](_0x3e33ff)?.['values']()??[]];for(const _0x501b3e of _0x3d4a25){if(!_0x501b3e[_0x1eff12(0x12c)]){_0x501b3e[_0x1eff12(0x14f)]=_0x489888;continue;}await this[_0x1eff12(0x116)](_0x501b3e,_0x489888);}});this[_0x141a23(0x1c5)][_0x141a23(0x112)](_0x3e33ff,_0x3bb4f9),void _0x3bb4f9[_0x141a23(0x142)](()=>{const _0xfbc1b3=_0x141a23;this['_eventQueues']['get'](_0x3e33ff)===_0x3bb4f9&&this[_0xfbc1b3(0x1c5)][_0xfbc1b3(0x182)](_0x3e33ff);});}[_0x42b75f(0x116)](_0x5826f9,_0x222e04){const _0x54b575=_0x42b75f,_0x1fbd36={'event':_0x54b575(0x188),'worktree':_0x222e04};return Promise[_0x54b575(0x12d)](_0x5826f9[_0x54b575(0x186)][_0x54b575(0x1b5)](JSON[_0x54b575(0x180)](_0x1fbd36)));}[_0x42b75f(0x149)](_0x8b8cec){const _0x17457c=_0x42b75f,_0xd89783=this[_0x17457c(0x130)]['get'](_0x8b8cec);if(!_0xd89783)return;this['_eventBindings'][_0x17457c(0x182)](_0x8b8cec);const _0x344d3a=this[_0x17457c(0x19f)]['get'](_0xd89783[_0x17457c(0x19d)]);_0x344d3a?.['delete'](_0x8b8cec);if(_0x344d3a?.[_0x17457c(0x152)]===0x0)this[_0x17457c(0x19f)][_0x17457c(0x182)](_0xd89783[_0x17457c(0x19d)]);}async[_0x42b75f(0x1b2)](_0x420468){const _0x4fe9e9=_0x42b75f;try{await this[_0x4fe9e9(0x192)]['get'](_0x420468);}catch{}}async['_emit'](_0x1ebd59,_0x2fc278){const _0x41681d=_0x42b75f;for(const _0x2f41d2 of[...this['_listeners'][_0x41681d(0x1cd)](_0x1ebd59)??[]]){try{await _0x2f41d2(_0x2fc278);}catch{}}}[_0x42b75f(0x14a)](_0x25c87d){const _0x402fea=_0x42b75f;if(!_0x25c87d['userId'])throw new collaboration_service_1[(_0x402fea(0x173))](_0x402fea(0x1ca),_0x402fea(0x19e));}[_0x42b75f(0x1c4)](_0x3fb043,_0x5039c2){const _0x138326=_0x42b75f,_0x343234=httpFailure(_0x5039c2);writeJson(_0x3fb043,_0x343234[_0x138326(0x1ba)],{'error':_0x343234['error']});}[_0x42b75f(0x13f)](){const _0x461b93=_0x42b75f;if(this['_disposed'])throw new collaboration_service_1['CollabError'](_0x461b93(0x134),_0x461b93(0x169));}}exports[_0x42b75f(0x183)]=UniverCollabWorktreeEndpoint;class ScopedWorktreeService{['_service'];[_0x42b75f(0x127)];constructor(_0x4520e2,_0x2d642d){this['_service']=_0x4520e2,this['_worktreeID']=_0x2d642d;}['use'](){return{'dispose':()=>undefined};}[_0x42b75f(0x157)](_0x272e27,_0x341665){const _0x174813=_0x42b75f;return this['_service'][_0x174813(0x157)]({..._0x272e27,'worktreeID':this[_0x174813(0x127)]},_0x341665);}['getChangesets'](_0x55fa04,_0x749eb2){const _0x18224b=_0x42b75f;return this[_0x18224b(0x199)][_0x18224b(0x16f)]({..._0x55fa04,'worktreeID':this[_0x18224b(0x127)]},_0x749eb2);}[_0x42b75f(0x16b)](_0x5776f2,_0x41e771){const _0x23da7f=_0x42b75f;return this[_0x23da7f(0x199)][_0x23da7f(0x16b)]({..._0x5776f2,'worktreeID':this[_0x23da7f(0x127)]},_0x41e771);}[_0x42b75f(0x17d)](_0x51c528,_0x5e9fe2){const _0x12867b=_0x42b75f;return this['_service'][_0x12867b(0x17d)]({..._0x51c528,'worktreeID':this[_0x12867b(0x127)]},_0x5e9fe2);}[_0x42b75f(0x16c)](_0x5c7d60,_0x13e004){const _0x8e0865=_0x42b75f;return Promise[_0x8e0865(0x193)](new collaboration_service_1[(_0x8e0865(0x173))](_0x8e0865(0x1d7),_0x8e0865(0x1d0)));}[_0x42b75f(0x1cb)](_0x77ef99,_0x59ddc6){const _0x215342=_0x42b75f;return Promise[_0x215342(0x193)](new collaboration_service_1[(_0x215342(0x173))](_0x215342(0x1d7),_0x215342(0x1d0)));}['deleteUnits'](_0x2bf14a,_0x1bdd03){const _0x191aab=_0x42b75f;return Promise[_0x191aab(0x193)](new collaboration_service_1['CollabError'](_0x191aab(0x1d7),_0x191aab(0x113)));}[_0x42b75f(0x179)](_0x55b90a,_0x3ca4b0){const _0x1917fa=_0x42b75f;return Promise['reject'](new collaboration_service_1[(_0x1917fa(0x173))]('INVALID_REQUEST',_0x1917fa(0x1b8)));}[_0x42b75f(0x1d2)](_0x3f7917,_0x2b4ec7){const _0x2add6b=_0x42b75f;return this[_0x2add6b(0x199)][_0x2add6b(0x1d2)]({..._0x3f7917,'worktreeID':this['_worktreeID']},_0x2b4ec7);}['on'](_0xcd2f4f,_0x1a8a98){const _0x576b00=_0x42b75f;if(_0xcd2f4f!==_0x576b00(0x167))return{'dispose':()=>undefined};return this['_service']['on'](_0x576b00(0x167),_0x362e77=>{const _0x2e73b5=_0x576b00;if(_0x362e77[_0x2e73b5(0x1d8)][_0x2e73b5(0x19d)]!==this[_0x2e73b5(0x127)])return;return _0x1a8a98(_0x362e77);});}[_0x42b75f(0x166)](){const _0x94ff57=_0x42b75f;return Promise[_0x94ff57(0x12d)]();}}function _0x2349(){const _0x2c9865=['finally','some','object','handle','ErrorCode','code','\x20must\x20be\x20valid\x20base64','_removeEventBinding','_requireUser','WORKTREE_UNIT_NOT_FOUND','evaluateUnitMerge','Invalid\x20Worktree\x20URL','_enqueueWorktreeChanged','pending','customData','markReady','size','POST','retryable','/universer-api/worktrees','Worktree\x20event\x20connection\x20is\x20server-only','getUnit','sheets','snapshot\x20originalMeta','_handleOpen','evaluateWorktreeUnitMerge','worktree','filter','toString','UNIVER_BOARD','sheetBlocks\x20must\x20be\x20an\x20object\x20array','message','_scopedEndpoint','7081888dUUgGT','7789710QgrmCb','close','dispose','changesetCommitted','sessionTicketTtlMs','Worktree\x20Endpoint\x20is\x20disposed','UniverCollabEndpoint','getSheetBlock','createUnit','REQUEST_BODY_TOO_LARGE','UNIVER_DOC','getChangesets','UniverType','_ticketTtlMs','randomUUID','CollabError','resources','unitID','websocket-message','memberLeftUnit','originalMeta','recoverUnits','\x20must\x20be\x20a\x20base64\x20string','workbook','Route\x20contains\x20invalid\x20encoding','getResources','UniverCollabWorktreeEndpoint\x20requires\x20the\x20shared\x20ticketStore','userId','stringify','action','delete','UniverCollabWorktreeEndpoint','http://localhost','create','connection','type','worktreeChanged','sheetBlocks[].data','suffix','_options','url','statusCode','doc','/events','units\x20must\x20be\x20a\x20string\x20array','1867339uggzoC','_connectionReady','reject','Internal\x20server\x20error','9123870oHQrzJ','_handleManagement','units','pathname','_service','worktreeStatusChanged','kind','from','worktreeID','HTTP\x20user\x20is\x20not\x20authenticated','_eventRooms','startsWith','content-type','sessionTicket','_openEventConnection','length','no-store','resources\x20must\x20be\x20an\x20object','_scopedEndpoints','base64','REQUEST_ABORTED','values','snapshot\x20sheet\x20originalMeta','merge','snapshot\x20must\x20be\x20an\x20object','catch','createUnitFromSnapshot','add','readJson','_waitForConnectionReady','_listeners','worktreeUnitAdded','send','UniverCollabWorktreeEndpoint\x20requires\x20a\x20Worktree\x20Service','discard','Cannot\x20recover\x20Units\x20through\x20a\x20Worktree\x20Endpoint','mergeWorktree','status','_connectionOwners','ticketStore','_getJoinableWorktree','\x20is\x20not\x20in\x20Worktree\x20','then','setHeader','defineProperty','end','websocket-open','_writeFailure','_eventQueues','use','allSettled','clear','5408OpecMf','UNAUTHENTICATED','createUnitFromData','UNIVER_BASE','get','78950SwNIug','GET','Cannot\x20create\x20a\x20Unit\x20through\x20a\x20Worktree\x20Endpoint','discarded','submitChangeset','run','_subscriptions','Discarded\x20Worktree\x20cannot\x20be\x20joined','reopenWorktree','INVALID_REQUEST','request','getWorktree','3879knxLDn','discardWorktree','searchParams','NodeTransportError','UNIVER_SHEET','reopen','data','set','Cannot\x20delete\x20Units\x20through\x20a\x20Worktree\x20Endpoint','destroyed','writableEnded','_sendChanged','worktrees','Unit\x20','session','_middleware','http','map','worktreeUnitMergeResultRecorded','snapshot','WorktreeError','forEach','application/json;\x20charset=utf-8','string','connect','response','/universer-api/user/session-ticket','6989437RcwvcF','_worktreeID','worktreeUnitCreated','split','method','Endpoint\x20disposed','ready','resolve','_disposed','1860HzTDBb','_eventBindings','incomingMessage','empty','UNIVER_SLIDE','INTERNAL_ERROR','8ItFcVk','sheetBlocks','UNIT_NOT_FOUND','http-','Worktree\x20event\x20connection\x20rejected','receivePresence','isArray','all','addUnit','slide','_assertRunning','cache-control','WORKTREE_NOT_FOUND'];_0x2349=function(){return _0x2c9865;};return _0x2349();}function callerSession(_0x1e263f){const _0x9f9507=_0x42b75f;return{'memberId':_0x9f9507(0x138)+(0x0,node_crypto_1[_0x9f9507(0x172)])(),'userId':_0x1e263f,'customData':Object['create'](null)};}function matchManagementRoute(_0x4bd4bf,_0x6797e8){const _0x484739=_0x42b75f;if(_0x4bd4bf===_0x484739(0x153)&&_0x6797e8===WORKTREES_PATH)return{'action':_0x484739(0x185)};const _0x328439=_0x6797e8[_0x484739(0x129)]('/')[_0x484739(0x15d)](Boolean);if(_0x328439[_0x484739(0x1a4)]<0x3||_0x328439[0x0]!=='universer-api'||_0x328439[0x1]!==_0x484739(0x117))return null;const _0x781fe5=decodeSegment(_0x328439[0x2]);if(_0x4bd4bf===_0x484739(0x1cf)&&_0x328439[_0x484739(0x1a4)]===0x3)return{'action':_0x484739(0x1cd),'worktreeID':_0x781fe5};if(_0x4bd4bf===_0x484739(0x1cf)&&_0x328439[_0x484739(0x1a4)]===0x6&&_0x328439[0x3]===_0x484739(0x197)&&_0x328439[0x5]==='merge-preview')return{'action':_0x484739(0x14c),'worktreeID':_0x781fe5,'unitID':decodeSegment(_0x328439[0x4])};if(_0x4bd4bf===_0x484739(0x153)&&_0x328439[_0x484739(0x1a4)]===0x5&&_0x328439[0x3]===_0x484739(0x197)){const _0x5dd2b1={'from-snapshot':_0x484739(0x1af),'from-data':'createUnitFromData'}[_0x328439[0x4]];return _0x5dd2b1?{'action':_0x5dd2b1,'worktreeID':_0x781fe5}:null;}if(_0x4bd4bf!==_0x484739(0x153)||_0x328439[_0x484739(0x1a4)]!==0x4)return null;const _0x282aa7={'units':_0x484739(0x13d),'ready':_0x484739(0x12c),'reopen':_0x484739(0x110),'discard':_0x484739(0x1b7),'merge':_0x484739(0x1ac)}[_0x328439[0x3]];return _0x282aa7?{'action':_0x282aa7,'worktreeID':_0x781fe5}:null;}function matchScopedRoute(_0x4141ab){const _0x5b7f4e=_0x42b75f,_0x31494a=_0x4141ab['split']('/')[_0x5b7f4e(0x15d)](Boolean);if(_0x31494a[_0x5b7f4e(0x1a4)]<0x4||_0x31494a[0x0]!=='universer-api'||_0x31494a[0x1]!==_0x5b7f4e(0x117))return null;const _0x21e3a0=_0x31494a[0x2],_0x26de20=decodeSegment(_0x21e3a0),_0x3956f9=WORKTREES_PATH+'/'+encodeURIComponent(_0x26de20);if(!_0x4141ab[_0x5b7f4e(0x1a0)](_0x3956f9+'/'))return null;return{'worktreeID':_0x26de20,'protocolBasePath':_0x3956f9,'suffix':_0x4141ab['slice'](_0x3956f9[_0x5b7f4e(0x1a4)])};}function isProtocolSuffix(_0x596b43){const _0x4685fe=_0x42b75f;return _0x596b43[_0x4685fe(0x1a0)]('/snapshot/')||_0x596b43['startsWith']('/comb/');}function decodeSegment(_0x28482b){const _0x2f9bb9=_0x42b75f;try{const _0xf0050b=decodeURIComponent(_0x28482b);if(!_0xf0050b)throw new Error(_0x2f9bb9(0x132));return _0xf0050b;}catch{throw new collaboration_service_1[(_0x2f9bb9(0x173))](_0x2f9bb9(0x1d7),_0x2f9bb9(0x17c));}}function assertCreateBody(_0x2a0316){const _0x261957=_0x42b75f;if(!_0x2a0316||typeof _0x2a0316!=='object'||typeof _0x2a0316[_0x261957(0x19d)]!==_0x261957(0x122))throw new collaboration_service_1[(_0x261957(0x173))](_0x261957(0x1d7),'worktreeID\x20must\x20be\x20a\x20string');const _0x2a3be5=_0x2a0316[_0x261957(0x197)];if(_0x2a3be5!==undefined&&(!Array[_0x261957(0x13b)](_0x2a3be5)||_0x2a3be5[_0x261957(0x143)](_0x1c6297=>typeof _0x1c6297!=='string')))throw new collaboration_service_1['CollabError'](_0x261957(0x1d7),_0x261957(0x190));}function assertAddUnitBody(_0x233583){const _0x3cd88a=_0x42b75f;if(!_0x233583||typeof _0x233583!=='object'||typeof _0x233583[_0x3cd88a(0x175)]!==_0x3cd88a(0x122))throw new collaboration_service_1[(_0x3cd88a(0x173))](_0x3cd88a(0x1d7),'unitID\x20must\x20be\x20a\x20string');}function parseCreateUnitFromSnapshotBody(_0x246995){const _0x4b7a91=_0x42b75f;if(!isRecord(_0x246995)||!isRecord(_0x246995[_0x4b7a91(0x11e)]))throw new collaboration_service_1['CollabError'](_0x4b7a91(0x1d7),_0x4b7a91(0x1ad));const _0x3b9459=_0x246995[_0x4b7a91(0x11e)];decodeSnapshotBytes(_0x3b9459);const _0x10fad6=_0x246995[_0x4b7a91(0x136)];if(_0x10fad6!==undefined&&(!Array[_0x4b7a91(0x13b)](_0x10fad6)||_0x10fad6[_0x4b7a91(0x143)](_0x44dcc2=>!isRecord(_0x44dcc2))))throw new collaboration_service_1['CollabError'](_0x4b7a91(0x1d7),_0x4b7a91(0x160));for(const _0x270711 of _0x10fad6??[]){_0x270711[_0x4b7a91(0x111)]=decodeProtocolBytes(_0x270711[_0x4b7a91(0x111)],_0x4b7a91(0x189));}const _0x3bb141=_0x246995[_0x4b7a91(0x174)];if(_0x3bb141!==undefined&&!isRecord(_0x3bb141))throw new collaboration_service_1[(_0x4b7a91(0x173))](_0x4b7a91(0x1d7),_0x4b7a91(0x1a6));return{'snapshot':_0x3b9459,..._0x10fad6===undefined?{}:{'sheetBlocks':_0x10fad6},..._0x3bb141===undefined?{}:{'resources':_0x3bb141}};}function parseCreateUnitFromDataBody(_0x9f1403){const _0x425c97=_0x42b75f;if(!isRecord(_0x9f1403)||!SUPPORTED_UNIT_TYPES['has'](_0x9f1403[_0x425c97(0x187)])||!isRecord(_0x9f1403[_0x425c97(0x111)]))throw new collaboration_service_1[(_0x425c97(0x173))]('INVALID_REQUEST','type\x20and\x20data\x20must\x20describe\x20a\x20supported\x20Unit');return _0x9f1403;}function decodeSnapshotBytes(_0x203094){const _0x588c93=_0x42b75f,_0x3a42e1=_0x203094[_0x588c93(0x17b)]??_0x203094[_0x588c93(0x18e)]??_0x203094[_0x588c93(0x13e)]??_0x203094['board'];if(!_0x3a42e1)return;_0x3a42e1['originalMeta']=decodeProtocolBytes(_0x3a42e1['originalMeta'],_0x588c93(0x159));if(_0x203094[_0x588c93(0x17b)])for(const _0x211bbd of Object[_0x588c93(0x1aa)](_0x203094['workbook'][_0x588c93(0x158)])){_0x211bbd[_0x588c93(0x178)]=decodeProtocolBytes(_0x211bbd[_0x588c93(0x178)],_0x588c93(0x1ab));}}function _0x4722(_0x21acd4,_0x4a7720){_0x21acd4=_0x21acd4-0x10d;const _0x2349b5=_0x2349();let _0x472273=_0x2349b5[_0x21acd4];return _0x472273;}function decodeProtocolBytes(_0x23fee0,_0x163632){const _0x13ed67=_0x42b75f;if(_0x23fee0 instanceof Uint8Array)return _0x23fee0;if(typeof _0x23fee0!==_0x13ed67(0x122))throw new collaboration_service_1['CollabError'](_0x13ed67(0x1d7),_0x163632+_0x13ed67(0x17a));try{return new Uint8Array(Buffer[_0x13ed67(0x19c)](_0x23fee0,_0x13ed67(0x1a8)));}catch{throw new collaboration_service_1[(_0x13ed67(0x173))]('INVALID_REQUEST',_0x163632+_0x13ed67(0x148));}}function isRecord(_0x49f5f2){const _0x1930cd=_0x42b75f;return!!_0x49f5f2&&typeof _0x49f5f2===_0x1930cd(0x144)&&!Array['isArray'](_0x49f5f2);}const SUPPORTED_UNIT_TYPES=new Set([protocol_1[_0x42b75f(0x170)][_0x42b75f(0x10f)],protocol_1['UniverType'][_0x42b75f(0x16e)],protocol_1[_0x42b75f(0x170)][_0x42b75f(0x133)],protocol_1[_0x42b75f(0x170)][_0x42b75f(0x15f)],protocol_1[_0x42b75f(0x170)][_0x42b75f(0x1cc)]]);function writeJson(_0x4364f9,_0x37e883,_0x2c1fc7){const _0x44d1a6=_0x42b75f,_0x12f9ec=_0x4364f9[_0x44d1a6(0x124)];if(_0x12f9ec[_0x44d1a6(0x115)]||_0x12f9ec[_0x44d1a6(0x114)])return;_0x12f9ec[_0x44d1a6(0x18d)]=_0x37e883,_0x12f9ec[_0x44d1a6(0x1c0)](_0x44d1a6(0x1a1),_0x44d1a6(0x121)),_0x12f9ec[_0x44d1a6(0x1c2)](JSON[_0x44d1a6(0x180)](_0x2c1fc7,(_0x26e39c,_0x8fb864)=>_0x8fb864 instanceof Uint8Array?Buffer[_0x44d1a6(0x19c)](_0x8fb864)[_0x44d1a6(0x15e)](_0x44d1a6(0x1a8)):_0x8fb864));}function httpFailure(_0x1e23b1){const _0x3bb6a7=_0x42b75f;if(_0x1e23b1 instanceof collaboration_transport_node_1[_0x3bb6a7(0x10e)])return{'status':_0x1e23b1['code']===_0x3bb6a7(0x16d)?0x19d:_0x1e23b1['code']==='INVALID_JSON'||_0x1e23b1[_0x3bb6a7(0x147)]===_0x3bb6a7(0x1a9)?0x190:0x1f7,'error':{'code':_0x1e23b1[_0x3bb6a7(0x147)],'message':_0x1e23b1['message']}};if(_0x1e23b1 instanceof collaboration_worktree_service_1['WorktreeError']){const _0x2a418a=_0x1e23b1[_0x3bb6a7(0x147)]===_0x3bb6a7(0x141)||_0x1e23b1['code']===_0x3bb6a7(0x14b)?0x194:0x199;return{'status':_0x2a418a,'error':{'code':_0x1e23b1[_0x3bb6a7(0x147)],'message':_0x1e23b1[_0x3bb6a7(0x161)],'retryable':_0x1e23b1[_0x3bb6a7(0x154)]}};}if(_0x1e23b1 instanceof collaboration_service_1[_0x3bb6a7(0x173)]){const _0x565503={'UNAUTHENTICATED':0x191,'INVALID_REQUEST':0x190,'UNIT_NOT_FOUND':0x194,'PERMISSION_DENIED':0x193,'OT_CONFLICT':0x199,'REVISION_MISMATCH':0x199,'ADAPTER_FAILURE':0x1f7,'INTERNAL_ERROR':0x1f4}[_0x1e23b1[_0x3bb6a7(0x147)]];return{'status':_0x565503,'error':{'code':_0x1e23b1[_0x3bb6a7(0x147)],'message':_0x1e23b1[_0x3bb6a7(0x161)],'retryable':_0x1e23b1[_0x3bb6a7(0x154)]}};}return{'status':0x1f4,'error':{'code':_0x3bb6a7(0x134),'message':_0x3bb6a7(0x194)}};}
|
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@univerjs-pro/collaboration-worktree-endpoint",
|
|
3
|
+
"type": "commonjs",
|
|
4
|
+
"main": "./dist/index.js",
|
|
5
|
+
"types": "./dist/index.d.ts",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"import": "./dist/index.js",
|
|
10
|
+
"require": "./dist/index.js"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist"
|
|
15
|
+
],
|
|
16
|
+
"version": "1.0.0-insiders.20260727-46ed76c",
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"@univerjs-pro/collaboration-endpoint": "1.0.0-insiders.20260727-46ed76c",
|
|
19
|
+
"@univerjs-pro/collaboration-service": "1.0.0-insiders.20260727-46ed76c",
|
|
20
|
+
"@univerjs-pro/collaboration-transport-node": "1.0.0-insiders.20260727-46ed76c",
|
|
21
|
+
"@univerjs-pro/collaboration-worktree-service": "1.0.0-insiders.20260727-46ed76c",
|
|
22
|
+
"@univerjs/protocol": "1.0.0-insiders.20260727-46ed76c"
|
|
23
|
+
},
|
|
24
|
+
"publishConfig": {
|
|
25
|
+
"access": "public"
|
|
26
|
+
}
|
|
27
|
+
}
|