univer-cli 0.1.22 → 0.1.24
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/chunks/build-id-Coc3wh1M.js +1 -1
- package/chunks/build-info-BeqRsVqe.js +1 -0
- package/chunks/headless-univer-B0Rozw6u.js +1 -1
- package/chunks/node-BLWTwYLW.js +1 -1
- package/chunks/runtime-eval-kernels-BWvkXRlB.js +1 -1
- package/chunks/runtime-manifest-D6bFR_JZ.js +1 -1
- package/chunks/trace-DPfd8LdJ.js +1 -1
- package/internal/cli.js +1 -1
- package/internal/daemon.js +1 -1
- package/internal/product-telemetry.js +1 -1
- package/internal/univer-runner.js +1 -1
- package/package.json +1 -1
- package/sac-help/topics/apply-ledger.md +16 -38
- package/sac-help/topics/assertions.md +6 -6
- package/sac-help/topics/data-assets.md +9 -9
- package/sac-help/topics/facade-api.md +4 -4
- package/sac-help/topics/rebuild.md +1 -1
- package/sac-help/topics/workflow.md +14 -15
- package/view/browser/assets/formula-dependency-graph-panel.js +1 -1
- package/view/browser/assets/viewer.js +1 -1
- package/chunks/build-info-D56x_kvi.js +0 -1
package/internal/daemon.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const _0xfd75d1=_0x7641;(function(_0x5cb427,_0x340d92){const _0x44e169=_0x7641,_0x53c291=_0x5cb427();while(!![]){try{const _0x2d9c6a=-parseInt(_0x44e169(0x94))/0x1+parseInt(_0x44e169(0xb6))/0x2*(parseInt(_0x44e169(0x91))/0x3)+parseInt(_0x44e169(0x9d))/0x4+parseInt(_0x44e169(0xca))/0x5*(parseInt(_0x44e169(0xa0))/0x6)+parseInt(_0x44e169(0xe1))/0x7+-parseInt(_0x44e169(0xc5))/0x8*(parseInt(_0x44e169(0x9a))/0x9)+parseInt(_0x44e169(0xd0))/0xa;if(_0x2d9c6a===_0x340d92)break;else _0x53c291['push'](_0x53c291['shift']());}catch(_0x41dfe1){_0x53c291['push'](_0x53c291['shift']());}}}(_0x11e7,0x2a733));import'../chunks/vendor-CgwrUUL6.js';import{a as _0x1311d9,i as _0x531290,n,o as _0xf59f0,r as _0x47278f,t as _0x1681b9}from'../chunks/trace-DPfd8LdJ.js';import{a as _0x4b58d1,d as _0x10a065,l as _0xe2760a,m as _0x50a6f3,n as _0x1982a3,u as _0x4191f7}from'../chunks/node-BLWTwYLW.js';function _0x7641(_0x2fd5ee,_0x16b52c){_0x2fd5ee=_0x2fd5ee-0x72;const _0x11e7c6=_0x11e7();let _0x76418f=_0x11e7c6[_0x2fd5ee];return _0x76418f;}import{t as _0x19ee78}from'../chunks/build-id-Coc3wh1M.js';import{n as _0xbc40c4}from'../chunks/runtime-manifest-D6bFR_JZ.js';import{existsSync as _0x996241}from'node:fs';import{chmod as _0x1b7caa,mkdir as _0x5ed465,readFile as _0x58b207,rm as _0x52e3af,writeFile as _0x354b5a}from'node:fs/promises';import _0xb1e6b6 from'node:net';import _0x5ed6aa from'node:process';var S=0x2bf20,C=new _0x1982a3();async function w(_0x1eb4f6={}){const _0x327e40=_0x7641;let _0x5560db=_0x1eb4f6[_0x327e40(0x9b)]??_0x5ed6aa[_0x327e40(0x9b)],_0x17f2ae=_0x4191f7(_0x5560db),_0x5f48b6=_0xbc40c4(_0x5560db),_0x513763=_0x1eb4f6[_0x327e40(0xe7)]??D(new _0x4b58d1({'env':_0x5560db,'logger':_0x10a065({'env':_0x5560db,'role':_0x1311d9['Runtime']}),'resolveExecutionPlaneOptions':()=>({'execArgv':[..._0x5f48b6[_0x327e40(0xc8)]['execArgv']],'modulePath':_0x5f48b6[_0x327e40(0xc8)][_0x327e40(0xd7)]}),'rpcTimeoutMs':S})),_0x5a668d=_0x19ee78(_0x5560db),_0x1dfb17=new Date()[_0x327e40(0x89)]();if(await _0x5ed465(_0x17f2ae[_0x327e40(0x9e)],{'recursive':!0x0,'mode':0x1c0}),await _0x5ed465(_0x17f2ae[_0x327e40(0xd4)],{'recursive':!0x0,'mode':0x1c0}),!await N(_0x17f2ae[_0x327e40(0xb9)],_0x17f2ae[_0x327e40(0xac)])){if(await P(_0x17f2ae[_0x327e40(0xc3)]))return;throw Error(_0x327e40(0xed)+_0x17f2ae['lockPath']);}await M(_0x17f2ae);let _0x3151f0=_0x10a065({'env':_0x5560db,'role':_0x1311d9['Daemon']}),_0xf4b074=A({'buildId':_0x5a668d,'env':_0x5560db,'pid':_0x5ed6aa[_0x327e40(0xec)]}),_0x382cae=!0x1,_0x3a8f14={},_0x36778d=async _0x2ef47d=>B(null,-0x7f5b,Error('Daemon\x20handler\x20not\x20ready:\x20'+_0x2ef47d)),_0x2e4534=_0xb1e6b6[_0x327e40(0xa5)](_0x519765=>{const _0x2cc2fd=_0x327e40;let _0x562b24='';_0x519765['on'](_0x2cc2fd(0x97),_0x5387ea=>{const _0x15cfb6=_0x2cc2fd;_0x562b24+=_0x5387ea[_0x15cfb6(0x82)](_0x15cfb6(0x84)),_0x52eb09();}),_0x519765['on'](_0x2cc2fd(0xe0),()=>void 0x0);let _0x52eb09=async()=>{const _0x456275=_0x2cc2fd;for(;;){let _0x2fba59=_0x562b24[_0x456275(0xb7)]('\x0a');if(_0x2fba59<0x0)return;let _0x1facf5=_0x562b24[_0x456275(0xb4)](0x0,_0x2fba59)[_0x456275(0x78)]();if(_0x562b24=_0x562b24['slice'](_0x2fba59+0x1),!_0x1facf5)continue;let _0x1f8c21=await _0x36778d(_0x1facf5);_0x519765[_0x456275(0xc2)](JSON[_0x456275(0x7d)](_0x1f8c21)+'\x0a');}};});_0x36778d=T({'buildId':_0x5a668d,'logRequestEvent':async _0x12d48d=>{const _0x97b18f=_0x327e40;_0x3151f0[_0x97b18f(0xaa)]({'level':_0x12d48d[_0x97b18f(0xab)]===_0x531290['DaemonRpcError']?_0x97b18f(0xe0):'info','event_name':_0x12d48d['eventName'],'component':_0x47278f['Daemon'],'process_role':_0x1311d9[_0x97b18f(0xbb)],..._0x12d48d[_0x97b18f(0xe0)]===void 0x0?{}:{'error':_0x12d48d[_0x97b18f(0xe0)]},'fields':{..._0xf4b074,..._0x12d48d[_0x97b18f(0x7f)]===void 0x0?{}:{'duration_ms':_0x12d48d[_0x97b18f(0x7f)]},'method':_0x12d48d[_0x97b18f(0x95)],'timestamp':_0x12d48d[_0x97b18f(0xe8)]}});},'logRequestError':async _0x4b6a4b=>{const _0x4e8548=_0x327e40;_0x3151f0[_0x4e8548(0xe0)]({'event_name':_0x531290['DaemonRpcError'],'component':_0x47278f[_0x4e8548(0xbb)],'process_role':_0x1311d9[_0x4e8548(0xbb)],'error':_0x4b6a4b[_0x4e8548(0xe0)],'fields':{..._0xf4b074,'method':_0x4b6a4b[_0x4e8548(0x95)],'timestamp':_0x4b6a4b[_0x4e8548(0xe8)]}});},'onShutdownRequest':()=>{const _0x1a6947=_0x327e40;_0x133fa1('rpc-shutdown')[_0x1a6947(0xb5)](()=>{_0x5ed6aa['exit'](0x0);});},'pid':_0x5ed6aa['pid'],'runtimeRoot':_0x17f2ae[_0x327e40(0xd8)],'sessionHost':_0x513763,'socketPath':_0x17f2ae[_0x327e40(0xc3)],'startedAt':_0x1dfb17}),await new Promise((_0x1063af,_0x22809e)=>{const _0x3e1632=_0x327e40;_0x2e4534['once'](_0x3e1632(0xe0),_0x22809e),_0x2e4534[_0x3e1632(0xc1)](_0x17f2ae[_0x3e1632(0xc3)],_0x1063af);}),_0xe2760a(_0x17f2ae['socketPath'])||await _0x1b7caa(_0x17f2ae[_0x327e40(0xc3)],0x180);let _0x180cb6={'pid':_0x5ed6aa[_0x327e40(0xec)],'startedAt':_0x1dfb17,'socketPath':_0x17f2ae[_0x327e40(0xc3)],'runtimeRoot':_0x17f2ae['homeDir'],'buildId':_0x5a668d};await _0x354b5a(_0x17f2ae['pidPath'],String(_0x5ed6aa[_0x327e40(0xec)]),_0x327e40(0x84)),await _0x354b5a(_0x17f2ae['metaPath'],JSON['stringify'](_0x180cb6,null,0x2),_0x327e40(0x84)),_0x3151f0['info']({'event_name':_0x531290['DaemonStart'],'component':_0x47278f['Daemon'],'process_role':_0x1311d9[_0x327e40(0xbb)],'fields':{..._0xf4b074,'pid':_0x5ed6aa['pid'],'runtime_root':_0x17f2ae[_0x327e40(0xd8)],'socket_path':_0x17f2ae[_0x327e40(0xc3)],'started_at':_0x1dfb17}}),await _0x3151f0[_0x327e40(0x7c)]();let _0x4350e0=setInterval(()=>{_0x513763['unloadIdleSessions']();},Math[_0x327e40(0x76)](0x3e8,Math[_0x327e40(0xe5)](_0x513763[_0x327e40(0xdb)](),0xea60)));_0x4350e0[_0x327e40(0x79)](),_0x3a8f14[_0x327e40(0xce)]=_0x4350e0;async function _0x133fa1(_0x12ba2a){const _0x446c6a=_0x327e40;_0x382cae||(_0x382cae=!0x0,_0x3a8f14[_0x446c6a(0xce)]!==void 0x0&&clearInterval(_0x3a8f14['current']),_0x3151f0[_0x446c6a(0x8a)]({'event_name':_0x531290[_0x446c6a(0xd5)],'component':_0x47278f['Daemon'],'process_role':_0x1311d9[_0x446c6a(0xbb)],'fields':{..._0xf4b074,'pid':_0x5ed6aa[_0x446c6a(0xec)],'reason':_0x12ba2a,'timestamp':new Date()[_0x446c6a(0x89)]()}}),await _0x3151f0[_0x446c6a(0x7c)](),await _0x513763[_0x446c6a(0x8b)](_0x12ba2a),await new Promise(_0x2f4f00=>{_0x2e4534['close'](()=>_0x2f4f00());}),await I(_0x17f2ae[_0x446c6a(0xc3)]),await _0x52e3af(_0x17f2ae[_0x446c6a(0xac)],{'force':!0x0})[_0x446c6a(0x7e)](()=>void 0x0),await _0x52e3af(_0x17f2ae['metaPath'],{'force':!0x0})[_0x446c6a(0x7e)](()=>void 0x0),await _0x52e3af(_0x17f2ae[_0x446c6a(0xb9)],{'recursive':!0x0,'force':!0x0})[_0x446c6a(0x7e)](()=>void 0x0));}_0x5ed6aa['on'](_0x327e40(0xdc),()=>{const _0x46f091=_0x327e40;_0x133fa1(_0x46f091(0x86))[_0x46f091(0xb5)](()=>{const _0x5a78a8=_0x46f091;_0x5ed6aa[_0x5a78a8(0xaf)](0x0);});}),_0x5ed6aa['on'](_0x327e40(0xd1),()=>{const _0x30ce4f=_0x327e40;_0x133fa1(_0x30ce4f(0xc0))[_0x30ce4f(0xb5)](()=>{const _0x319510=_0x30ce4f;_0x5ed6aa[_0x319510(0xaf)](0x0);});});}function T(_0x2804c7){return async _0x19449c=>{const _0xafc556=_0x7641;let _0x49ca15;try{_0x49ca15=JSON['parse'](_0x19449c);}catch(_0x565231){return B(null,-0x7fbc,_0x565231);}let _0x691d4c=_0x1681b9(_0x49ca15[_0xafc556(0x7b)]?.[_0xafc556(0x8d)]),_0x69c86a=async()=>await n[_0xafc556(0x92)]({'name':_0xf59f0[_0xafc556(0xa2)],'kind':_0xafc556(0x8f)},async()=>{const _0x4c1c9d=_0xafc556;let _0x32ac13=Date[_0x4c1c9d(0x9c)]();await _0x2804c7[_0x4c1c9d(0xa6)]?.({'eventName':_0x531290[_0x4c1c9d(0xe2)],'method':_0x49ca15[_0x4c1c9d(0x95)],'timestamp':new Date()[_0x4c1c9d(0x89)]()});try{let _0x5671d3=await E(_0x49ca15,_0x2804c7);return await _0x2804c7[_0x4c1c9d(0xa6)]?.({'durationMs':Date[_0x4c1c9d(0x9c)]()-_0x32ac13,'eventName':_0x531290[_0x4c1c9d(0x9f)],'method':_0x49ca15['method'],'timestamp':new Date()[_0x4c1c9d(0x89)]()}),_0x5671d3;}catch(_0x5992e0){return await _0x2804c7[_0x4c1c9d(0xa6)]?.({'durationMs':Date[_0x4c1c9d(0x9c)]()-_0x32ac13,'eventName':_0x531290[_0x4c1c9d(0x83)],'method':_0x49ca15[_0x4c1c9d(0x95)],'error':_0x5992e0,'timestamp':new Date()[_0x4c1c9d(0x89)]()}),_0x2804c7['logRequestEvent']===void 0x0&&await _0x2804c7['logRequestError']?.({'method':_0x49ca15[_0x4c1c9d(0x95)],'error':_0x5992e0 instanceof Error?_0x5992e0[_0x4c1c9d(0xcf)]:String(_0x5992e0),'timestamp':new Date()[_0x4c1c9d(0x89)]()}),B(_0x49ca15['id'],-0x7f5b,_0x5992e0);}});return _0x691d4c===void 0x0?await _0x69c86a():await n[_0xafc556(0xa7)](_0x691d4c,_0x69c86a);};}async function E(_0x57db7d,_0x21c771){const _0x9d50c4=_0x7641;switch(_0x57db7d[_0x9d50c4(0x95)]){case _0x50a6f3[_0x9d50c4(0x98)]:return{'jsonrpc':_0x9d50c4(0x99),'id':_0x57db7d['id'],'result':{'ok':!0x0,'pid':_0x21c771[_0x9d50c4(0xec)],'startedAt':_0x21c771[_0x9d50c4(0xbd)],'socketPath':_0x21c771[_0x9d50c4(0xc3)],'runtimeRoot':_0x21c771[_0x9d50c4(0xeb)],'buildId':_0x21c771['buildId'],'sessionCount':_0x21c771[_0x9d50c4(0xe7)][_0x9d50c4(0x8c)]()}};case _0x50a6f3[_0x9d50c4(0x90)]:return _0x21c771[_0x9d50c4(0xb8)]?.(),{'jsonrpc':_0x9d50c4(0x99),'id':_0x57db7d['id'],'result':{'stopping':!0x0}};case _0x50a6f3[_0x9d50c4(0xc4)]:{let _0x582be9=await _0x21c771['sessionHost'][_0x9d50c4(0xdf)](_0x57db7d[_0x9d50c4(0xbe)]);return z(_0x57db7d['id'],_0x582be9);}case _0x50a6f3['SessionLoadWorkbookDataReplayPack']:{let _0x596d9c=await _0x21c771[_0x9d50c4(0xe7)][_0x9d50c4(0xc9)](_0x57db7d['params']);return z(_0x57db7d['id'],_0x596d9c);}case _0x50a6f3['SessionCreateWorkbook']:{let _0x480ec6=await _0x21c771[_0x9d50c4(0xe7)][_0x9d50c4(0xee)](_0x57db7d[_0x9d50c4(0xbe)]);return z(_0x57db7d['id'],_0x480ec6);}case _0x50a6f3[_0x9d50c4(0xc7)]:{let _0x2cb674=await _0x21c771['sessionHost'][_0x9d50c4(0xdd)](_0x57db7d[_0x9d50c4(0xbe)]);return z(_0x57db7d['id'],_0x2cb674);}case _0x50a6f3['SessionExportWorkbookFile']:{let _0x81918e=await _0x21c771[_0x9d50c4(0xe7)]['exportWorkbookFile'](_0x57db7d[_0x9d50c4(0xbe)]);return z(_0x57db7d['id'],_0x81918e);}case _0x50a6f3[_0x9d50c4(0xb3)]:{let _0x115fdd=_0x57db7d[_0x9d50c4(0xbe)],_0x115eed=await _0x21c771[_0x9d50c4(0xe7)][_0x9d50c4(0xd2)](_0x115fdd);return z(_0x57db7d['id'],_0x115eed);}case _0x50a6f3[_0x9d50c4(0x77)]:{let _0x20b95d=await _0x21c771['sessionHost']['dispose'](_0x57db7d[_0x9d50c4(0xbe)]);return z(_0x57db7d['id'],_0x20b95d);}case _0x50a6f3['SessionGetWorkbook']:{let _0xd88841=await _0x21c771['sessionHost']['getWorkbookSession'](_0x57db7d[_0x9d50c4(0xbe)]);return z(_0x57db7d['id'],_0xd88841);}default:return B(_0x57db7d['id'],-0x7f59,Error('Method\x20not\x20found:\x20'+_0x57db7d['method']));}}function D(_0x50a186){return{async 'createWorkbook'(_0x28676f){const _0x299173=_0x7641;let _0x201a9c=await O(_0x28676f),_0x2f4e4e=await _0x50a186[_0x299173(0xee)]({..._0x28676f['cwd']===void 0x0?{}:{'cwd':_0x28676f[_0x299173(0xe4)]},'identity':_0x201a9c,..._0x28676f['id']===void 0x0?{}:{'workbookId':_0x28676f['id']},..._0x28676f[_0x299173(0x87)]===void 0x0?{}:{'workbookName':_0x28676f[_0x299173(0x87)]}});return{'success':!0x0,'workbookData':_0x2f4e4e[_0x299173(0xbc)],'session':k(_0x2f4e4e['session'])};},async 'dispose'(_0x575fb5){const _0x25adb4=_0x7641;let _0x2a907b=await O(_0x575fb5);return await _0x50a186[_0x25adb4(0xd3)]({..._0x575fb5[_0x25adb4(0xe4)]===void 0x0?{}:{'cwd':_0x575fb5['cwd']},'identity':_0x2a907b}),{'disposed':!0x0,'workbookIdentity':_0x2a907b[_0x25adb4(0xa1)]};},async 'destroyAll'(_0x16ec79){const _0x30f6fa=_0x7641;await _0x50a186[_0x30f6fa(0x8b)]?.(_0x16ec79);},async 'evalJs'(_0x3bebbc){const _0x510766=_0x7641;let _0x1d2aa6=await O(_0x3bebbc),_0x6c4a77=await _0x50a186[_0x510766(0xdd)]({'code':_0x3bebbc[_0x510766(0xae)],..._0x3bebbc[_0x510766(0xe4)]===void 0x0?{}:{'cwd':_0x3bebbc[_0x510766(0xe4)]},'identity':_0x1d2aa6,..._0x3bebbc[_0x510766(0xa4)]===void 0x0?{}:{'maxCodeLength':_0x3bebbc[_0x510766(0xa4)]},..._0x3bebbc[_0x510766(0xbf)]===void 0x0?{}:{'mutates':_0x3bebbc[_0x510766(0xbf)]}});return{..._0x6c4a77[_0x510766(0xa8)]===void 0x0?{}:{'mutations':_0x6c4a77[_0x510766(0xa8)]},'success':!0x0,'value':_0x6c4a77[_0x510766(0xc6)],'session':k(_0x6c4a77['session'])};},async 'exportWorkbookData'(_0xc051c5){const _0x4cdd68=_0x7641;let _0x267f37=await O(_0xc051c5),_0x77e02b=await _0x50a186[_0x4cdd68(0xd2)]({..._0xc051c5[_0x4cdd68(0xe4)]===void 0x0?{}:{'cwd':_0xc051c5[_0x4cdd68(0xe4)]},'identity':_0x267f37});return{'success':!0x0,'workbookData':_0x77e02b['workbookData'],'session':k(_0x77e02b[_0x4cdd68(0x74)])};},async 'exportWorkbookFile'(_0x18332d){const _0x3d5cbc=_0x7641;let _0x4d7ac6=await O(_0x18332d),_0x214de0=await _0x50a186[_0x3d5cbc(0xcc)]({..._0x18332d[_0x3d5cbc(0xe4)]===void 0x0?{}:{'cwd':_0x18332d[_0x3d5cbc(0xe4)]},'format':_0x18332d[_0x3d5cbc(0xcb)],'identity':_0x4d7ac6,'outputPath':_0x18332d['outputPath']});return{'success':!0x0,'format':_0x214de0[_0x3d5cbc(0xcb)],'outputPath':_0x214de0[_0x3d5cbc(0xea)],'sizeBytes':_0x214de0[_0x3d5cbc(0xe9)],'session':k(_0x214de0['session'])};},async 'getWorkbookSession'(_0x234d4e){const _0x592b9e=_0x7641;let _0x361fb0=await O(_0x234d4e),_0x309df4=await _0x50a186[_0x592b9e(0x73)]({..._0x234d4e[_0x592b9e(0xe4)]===void 0x0?{}:{'cwd':_0x234d4e['cwd']},'identity':_0x361fb0});return{'exists':_0x309df4!==null,'session':_0x309df4===null?null:k(_0x309df4)};},'getSessionCount'(){const _0x5b96ee=_0x7641;return _0x50a186[_0x5b96ee(0x8c)]?.()??0x0;},'getSessionIdleTtlMs'(){const _0x17055f=_0x7641;return _0x50a186[_0x17055f(0xdb)]?.()??0xea60;},async 'loadWorkbook'(_0x4bd124){const _0xe77065=_0x7641;let _0x2401ed=await O(_0x4bd124),_0x2f5ffa=await _0x50a186[_0xe77065(0xde)]({..._0x4bd124[_0xe77065(0xe4)]===void 0x0?{}:{'cwd':_0x4bd124[_0xe77065(0xe4)]},'identity':_0x2401ed,'workbookData':_0x4bd124[_0xe77065(0xbc)]});return{'success':!0x0,'workbookData':_0x2f5ffa[_0xe77065(0xbc)],'session':k(_0x2f5ffa['session'])};},async 'loadWorkbookDataReplayPack'(_0x438de3){const _0x1196bb=_0x7641;let _0x519e2b=await O(_0x438de3);return{'success':!0x0,'session':k((await _0x50a186[_0x1196bb(0xc9)]({..._0x438de3['cwd']===void 0x0?{}:{'cwd':_0x438de3[_0x1196bb(0xe4)]},'identity':_0x519e2b,'replayPack':{'baseWorkbookData':_0x438de3[_0x1196bb(0x80)],'mutations':_0x438de3[_0x1196bb(0xa8)]}}))[_0x1196bb(0x74)])};},async 'unloadIdleSessions'(){const _0x816c23=_0x7641;await _0x50a186[_0x816c23(0xe6)]?.();}};}async function O(_0x1e2edd){const _0x1a0572=_0x7641;return await C[_0x1a0572(0xcd)](_0x1e2edd);}function k(_0x9e1405){const _0x3388ce=_0x7641;return{'createdAt':_0x9e1405[_0x3388ce(0xa3)]??'','lastAccessedAt':_0x9e1405[_0x3388ce(0x7a)]??'','sessionId':_0x9e1405[_0x3388ce(0x72)],'workbookIdentity':_0x9e1405['packageIdentity'][_0x3388ce(0xa1)]};}function A(_0x60cd1e){const _0x46bf39=_0x7641;return{'build.id':j(_0x60cd1e[_0x46bf39(0x9b)],_0x46bf39(0x8e))??_0x60cd1e[_0x46bf39(0x85)],'deployment.environment.name':_0x46bf39(0xa9),'distribution.channel':j(_0x60cd1e[_0x46bf39(0x9b)],_0x46bf39(0x75))??_0x46bf39(0x81),'service.instance.id':String(_0x60cd1e[_0x46bf39(0xec)]),'service.name':_0x46bf39(0xb2),...j(_0x60cd1e[_0x46bf39(0x9b)],_0x46bf39(0xe3))===void 0x0?{}:{'service.version':j(_0x60cd1e['env'],'UNIVER_CLI_VERSION')}};}function j(_0x29d96c,_0x2ccde6){const _0x163f1e=_0x7641;let _0x49d7b8=_0x29d96c[_0x2ccde6]?.[_0x163f1e(0x78)]();return _0x49d7b8===void 0x0||_0x49d7b8['length']===0x0?void 0x0:_0x49d7b8;}async function M(_0x174a73){const _0x2101f5=_0x7641;F(_0x174a73[_0x2101f5(0xc3)])&&!await P(_0x174a73[_0x2101f5(0xc3)])&&await I(_0x174a73[_0x2101f5(0xc3)]);let _0x109528=await L(_0x174a73[_0x2101f5(0xac)]);_0x109528!==null&&!R(_0x109528)&&(await _0x52e3af(_0x174a73[_0x2101f5(0xac)],{'force':!0x0})[_0x2101f5(0x7e)](()=>void 0x0),await _0x52e3af(_0x174a73[_0x2101f5(0x88)],{'force':!0x0})[_0x2101f5(0x7e)](()=>void 0x0),await _0x52e3af(_0x174a73['lockPath'],{'recursive':!0x0,'force':!0x0})[_0x2101f5(0x7e)](()=>void 0x0));}async function N(_0x55bc64,_0x644d6d){const _0x1c36ea=_0x7641;try{return await _0x5ed465(_0x55bc64,{'recursive':!0x1,'mode':0x1c0}),!0x0;}catch(_0xf4c984){if(_0xf4c984[_0x1c36ea(0xae)]!==_0x1c36ea(0xda))throw _0xf4c984;let _0x10d12c=await L(_0x644d6d);return _0x10d12c!==null&&R(_0x10d12c)?!0x1:(await _0x52e3af(_0x55bc64,{'recursive':!0x0,'force':!0x0}),await _0x5ed465(_0x55bc64,{'recursive':!0x1,'mode':0x1c0}),!0x0);}}async function P(_0x31f75e){return await new Promise(_0x2a7f21=>{const _0x223994=_0x7641;let _0x561679=_0xb1e6b6[_0x223994(0x96)](_0x31f75e);_0x561679[_0x223994(0xd9)](_0x223994(0xb1),()=>{const _0x3211d7=_0x223994;_0x561679[_0x3211d7(0xb0)](),_0x2a7f21(!0x0);}),_0x561679[_0x223994(0xd9)]('error',()=>{_0x2a7f21(!0x1);});});}function F(_0x35c8bf){return _0xe2760a(_0x35c8bf)?!0x1:_0x996241(_0x35c8bf);}async function I(_0x5bcf6a){const _0x5c168e=_0x7641;_0xe2760a(_0x5bcf6a)||await _0x52e3af(_0x5bcf6a,{'force':!0x0})[_0x5c168e(0x7e)](()=>void 0x0);}async function L(_0x142637){const _0x409dc1=_0x7641;try{let _0x366262=await _0x58b207(_0x142637,'utf8'),_0x413b7f=Number(_0x366262[_0x409dc1(0x78)]());return Number[_0x409dc1(0xba)](_0x413b7f)?_0x413b7f:null;}catch{return null;}}function R(_0x39a896){const _0x5cedc3=_0x7641;try{return _0x5ed6aa[_0x5cedc3(0xd6)](_0x39a896,0x0),!0x0;}catch{return!0x1;}}function _0x11e7(){const _0x34d2de=['1864yiDQgG','indexOf','onShutdownRequest','lockPath','isFinite','Daemon','workbookData','startedAt','params','mutates','sigterm','listen','write','socketPath','SessionLoadWorkbook','4328mUmtmE','value','SessionEvalJs','runtimeExecutionPlaneEntry','loadWorkbookDataReplayPack','1295pXGehw','format','exportWorkbookFile','resolveIdentity','current','message','1009750aBUuwg','SIGTERM','exportWorkbookData','dispose','sessionRoot','DaemonStop','kill','modulePath','homeDir','once','EEXIST','getSessionIdleTtlMs','SIGINT','evalJs','loadWorkbookData','loadWorkbook','error','2203747aWKTmC','DaemonRpcStart','UNIVER_CLI_VERSION','cwd','min','unloadIdleSessions','sessionHost','timestamp','sizeBytes','outputPath','runtimeRoot','pid','Another\x20daemon\x20startup\x20owns\x20','createWorkbook','sessionId','getSession','session','UNIVER_DISTRIBUTION_CHANNEL','max','SessionDispose','trim','unref','lastAccessedAt','meta','flush','stringify','catch','durationMs','baseWorkbookData','unknown','toString','DaemonRpcError','utf8','buildId','sigint','name','metaPath','toISOString','info','destroyAll','getSessionCount','traceparent','UNIVER_CLI_BUILD_ID','server','Shutdown','222iwRuea','withSpan','Unknown\x20daemon\x20subcommand:\x20','285794JrfeJn','method','createConnection','data','Health','2.0','1665OCYJAd','env','now','29564KfVowN','daemonDir','DaemonRpcFinish','1566hxnfsj','absolutePath','DaemonRpcServer','createdAt','maxCodeLength','createServer','logRequestEvent','withContext','mutations','local','event','eventName','pidPath','serve','code','exit','end','connect','univer-daemon','SessionExportWorkbookData','slice','finally'];_0x11e7=function(){return _0x34d2de;};return _0x11e7();}function z(_0x43b2d0,_0x7da552){const _0x9ce836=_0x7641;return{'jsonrpc':_0x9ce836(0x99),'id':_0x43b2d0,'result':_0x7da552};}function B(_0x2c45c5,_0x38340b,_0x31b37a){const _0xf2a1b9=_0x7641;return{'jsonrpc':_0xf2a1b9(0x99),'id':_0x2c45c5,'error':{'code':_0x38340b,'message':_0x31b37a instanceof Error?_0x31b37a['message']:String(_0x31b37a)}};}var V=process['argv'][0x2]??_0xfd75d1(0xad);V!==_0xfd75d1(0xad)&&(console['error'](_0xfd75d1(0x93)+V),process[_0xfd75d1(0xaf)](0x1)),w()['catch'](_0x31bb35=>{const _0x34dc35=_0xfd75d1;console[_0x34dc35(0xe0)](_0x31bb35 instanceof Error?_0x31bb35[_0x34dc35(0xcf)]:String(_0x31bb35)),process[_0x34dc35(0xaf)](0x1);});
|
|
2
|
+
const _0x1f5815=_0x5964;(function(_0x39b04a,_0x3018f8){const _0xb77ede=_0x5964,_0x2f5174=_0x39b04a();while(!![]){try{const _0x455fc3=-parseInt(_0xb77ede(0x91))/0x1*(parseInt(_0xb77ede(0x71))/0x2)+-parseInt(_0xb77ede(0x70))/0x3*(parseInt(_0xb77ede(0xb2))/0x4)+-parseInt(_0xb77ede(0x72))/0x5*(-parseInt(_0xb77ede(0x7b))/0x6)+-parseInt(_0xb77ede(0xa3))/0x7*(parseInt(_0xb77ede(0x75))/0x8)+parseInt(_0xb77ede(0x8c))/0x9+-parseInt(_0xb77ede(0xc7))/0xa*(parseInt(_0xb77ede(0x9a))/0xb)+-parseInt(_0xb77ede(0x8e))/0xc*(-parseInt(_0xb77ede(0xbc))/0xd);if(_0x455fc3===_0x3018f8)break;else _0x2f5174['push'](_0x2f5174['shift']());}catch(_0x33a698){_0x2f5174['push'](_0x2f5174['shift']());}}}(_0xa988,0x2a17a));import'../chunks/vendor-CgwrUUL6.js';import{a as _0x2f7a7b,i as _0x510568,n,o as _0x1a68e8,r as _0x39825b,t as _0x2d3714}from'../chunks/trace-DPfd8LdJ.js';import{a as _0x41dc62,d as _0x41c736,l as _0x261233,m as _0x3807a4,n as _0x3248ed,u as _0x4eb6ee}from'../chunks/node-BLWTwYLW.js';import{t as _0x35a4a2}from'../chunks/build-id-Coc3wh1M.js';import{n as _0x395242}from'../chunks/runtime-manifest-D6bFR_JZ.js';import{existsSync as _0x56bc9e}from'node:fs';import{chmod as _0x1891fb,mkdir as _0x10b2f8,readFile as _0x1fd745,rm as _0x54d075,writeFile as _0x536c4c}from'node:fs/promises';import _0x362a8b from'node:net';import _0x1aa976 from'node:process';var S=0x2bf20,C=new _0x3248ed();async function w(_0x6d8c5a={}){const _0x2da84a=_0x5964;let _0x1d35a8=_0x6d8c5a['env']??_0x1aa976['env'],_0x56b658=_0x4eb6ee(_0x1d35a8),_0x4459ba=_0x395242(_0x1d35a8),_0x162594=_0x6d8c5a[_0x2da84a(0x88)]??D(new _0x41dc62({'env':_0x1d35a8,'logger':_0x41c736({'env':_0x1d35a8,'role':_0x2f7a7b[_0x2da84a(0xb8)]}),'resolveExecutionPlaneOptions':()=>({'execArgv':[..._0x4459ba[_0x2da84a(0x73)][_0x2da84a(0xd5)]],'modulePath':_0x4459ba[_0x2da84a(0x73)]['modulePath']}),'rpcTimeoutMs':S})),_0x868b7b=_0x35a4a2(_0x1d35a8),_0x210275=new Date()[_0x2da84a(0xa8)]();if(await _0x10b2f8(_0x56b658[_0x2da84a(0x8f)],{'recursive':!0x0,'mode':0x1c0}),await _0x10b2f8(_0x56b658[_0x2da84a(0xd3)],{'recursive':!0x0,'mode':0x1c0}),!await N(_0x56b658[_0x2da84a(0x6b)],_0x56b658['pidPath'])){if(await P(_0x56b658[_0x2da84a(0xe0)]))return;throw Error(_0x2da84a(0xb3)+_0x56b658[_0x2da84a(0x6b)]);}await M(_0x56b658);let _0x2b740f=_0x41c736({'env':_0x1d35a8,'role':_0x2f7a7b[_0x2da84a(0xe5)]}),_0x270cc4=A({'buildId':_0x868b7b,'env':_0x1d35a8,'pid':_0x1aa976[_0x2da84a(0xdf)]}),_0x136931=!0x1,_0x498e60={},_0x5b9c8e=async _0x35764d=>B(null,-0x7f5b,Error(_0x2da84a(0x6d)+_0x35764d)),_0x3ced67=_0x362a8b[_0x2da84a(0xca)](_0x308738=>{const _0x589185=_0x2da84a;let _0xed2eaf='';_0x308738['on'](_0x589185(0xaf),_0x543b78=>{const _0x4e7a8b=_0x589185;_0xed2eaf+=_0x543b78[_0x4e7a8b(0xe4)]('utf8'),_0x5c6717();}),_0x308738['on'](_0x589185(0xdd),()=>void 0x0);let _0x5c6717=async()=>{const _0x596475=_0x589185;for(;;){let _0x5e8042=_0xed2eaf['indexOf']('\x0a');if(_0x5e8042<0x0)return;let _0x26da85=_0xed2eaf[_0x596475(0xd8)](0x0,_0x5e8042)[_0x596475(0xba)]();if(_0xed2eaf=_0xed2eaf[_0x596475(0xd8)](_0x5e8042+0x1),!_0x26da85)continue;let _0x25af18=await _0x5b9c8e(_0x26da85);_0x308738[_0x596475(0xc2)](JSON[_0x596475(0xc5)](_0x25af18)+'\x0a');}};});_0x5b9c8e=T({'buildId':_0x868b7b,'logRequestEvent':async _0x2e08a8=>{const _0x325ab8=_0x2da84a;_0x2b740f[_0x325ab8(0xd2)]({'level':_0x2e08a8[_0x325ab8(0xad)]===_0x510568[_0x325ab8(0x6a)]?_0x325ab8(0xdd):_0x325ab8(0xda),'event_name':_0x2e08a8[_0x325ab8(0xad)],'component':_0x39825b[_0x325ab8(0xe5)],'process_role':_0x2f7a7b[_0x325ab8(0xe5)],..._0x2e08a8['error']===void 0x0?{}:{'error':_0x2e08a8['error']},'fields':{..._0x270cc4,..._0x2e08a8[_0x325ab8(0xd7)]===void 0x0?{}:{'duration_ms':_0x2e08a8[_0x325ab8(0xd7)]},'method':_0x2e08a8['method'],'timestamp':_0x2e08a8[_0x325ab8(0x94)]}});},'logRequestError':async _0x8d74c2=>{const _0x967558=_0x2da84a;_0x2b740f[_0x967558(0xdd)]({'event_name':_0x510568['DaemonRpcError'],'component':_0x39825b['Daemon'],'process_role':_0x2f7a7b[_0x967558(0xe5)],'error':_0x8d74c2['error'],'fields':{..._0x270cc4,'method':_0x8d74c2[_0x967558(0x98)],'timestamp':_0x8d74c2[_0x967558(0x94)]}});},'onShutdownRequest':()=>{const _0x4f7646=_0x2da84a;_0x1c2a76(_0x4f7646(0x9d))[_0x4f7646(0xb7)](()=>{const _0x1a52cd=_0x4f7646;_0x1aa976[_0x1a52cd(0xcf)](0x0);});},'pid':_0x1aa976[_0x2da84a(0xdf)],'runtimeRoot':_0x56b658[_0x2da84a(0x8b)],'sessionHost':_0x162594,'socketPath':_0x56b658[_0x2da84a(0xe0)],'startedAt':_0x210275}),await new Promise((_0xc14e83,_0x54e560)=>{const _0x45c6fe=_0x2da84a;_0x3ced67[_0x45c6fe(0x76)](_0x45c6fe(0xdd),_0x54e560),_0x3ced67['listen'](_0x56b658[_0x45c6fe(0xe0)],_0xc14e83);}),_0x261233(_0x56b658[_0x2da84a(0xe0)])||await _0x1891fb(_0x56b658['socketPath'],0x180);let _0x46b1e1={'pid':_0x1aa976[_0x2da84a(0xdf)],'startedAt':_0x210275,'socketPath':_0x56b658['socketPath'],'runtimeRoot':_0x56b658[_0x2da84a(0x8b)],'buildId':_0x868b7b};await _0x536c4c(_0x56b658[_0x2da84a(0x7c)],String(_0x1aa976[_0x2da84a(0xdf)]),_0x2da84a(0xd6)),await _0x536c4c(_0x56b658[_0x2da84a(0xc3)],JSON[_0x2da84a(0xc5)](_0x46b1e1,null,0x2),_0x2da84a(0xd6)),_0x2b740f[_0x2da84a(0xda)]({'event_name':_0x510568[_0x2da84a(0xa2)],'component':_0x39825b['Daemon'],'process_role':_0x2f7a7b[_0x2da84a(0xe5)],'fields':{..._0x270cc4,'pid':_0x1aa976['pid'],'runtime_root':_0x56b658[_0x2da84a(0x8b)],'socket_path':_0x56b658[_0x2da84a(0xe0)],'started_at':_0x210275}}),await _0x2b740f[_0x2da84a(0x80)]();let _0x5a8d74=setInterval(()=>{const _0x3dc4f7=_0x2da84a;_0x162594[_0x3dc4f7(0x83)]();},Math[_0x2da84a(0xb5)](0x3e8,Math[_0x2da84a(0xa0)](_0x162594[_0x2da84a(0x96)](),0xea60)));_0x5a8d74[_0x2da84a(0xb0)](),_0x498e60[_0x2da84a(0xc1)]=_0x5a8d74;async function _0x1c2a76(_0x4df5a7){const _0x408f89=_0x2da84a;_0x136931||(_0x136931=!0x0,_0x498e60[_0x408f89(0xc1)]!==void 0x0&&clearInterval(_0x498e60[_0x408f89(0xc1)]),_0x2b740f[_0x408f89(0xda)]({'event_name':_0x510568['DaemonStop'],'component':_0x39825b['Daemon'],'process_role':_0x2f7a7b[_0x408f89(0xe5)],'fields':{..._0x270cc4,'pid':_0x1aa976[_0x408f89(0xdf)],'reason':_0x4df5a7,'timestamp':new Date()[_0x408f89(0xa8)]()}}),await _0x2b740f[_0x408f89(0x80)](),await _0x162594['destroyAll'](_0x4df5a7),await new Promise(_0x1eca5b=>{const _0xa68ea=_0x408f89;_0x3ced67[_0xa68ea(0x74)](()=>_0x1eca5b());}),await I(_0x56b658['socketPath']),await _0x54d075(_0x56b658[_0x408f89(0x7c)],{'force':!0x0})[_0x408f89(0x97)](()=>void 0x0),await _0x54d075(_0x56b658[_0x408f89(0xc3)],{'force':!0x0})[_0x408f89(0x97)](()=>void 0x0),await _0x54d075(_0x56b658['lockPath'],{'recursive':!0x0,'force':!0x0})[_0x408f89(0x97)](()=>void 0x0));}_0x1aa976['on'](_0x2da84a(0xa1),()=>{const _0x40cf48=_0x2da84a;_0x1c2a76(_0x40cf48(0xd1))['finally'](()=>{const _0x47071e=_0x40cf48;_0x1aa976[_0x47071e(0xcf)](0x0);});}),_0x1aa976['on']('SIGTERM',()=>{const _0x1321ab=_0x2da84a;_0x1c2a76(_0x1321ab(0x92))[_0x1321ab(0xb7)](()=>{_0x1aa976['exit'](0x0);});});}function T(_0x1c7a4f){return async _0x2098e1=>{const _0x1e0b73=_0x5964;let _0x4a17cb;try{_0x4a17cb=JSON[_0x1e0b73(0x93)](_0x2098e1);}catch(_0x1a2cf8){return B(null,-0x7fbc,_0x1a2cf8);}let _0x4b7be8=_0x2d3714(_0x4a17cb[_0x1e0b73(0xb4)]?.[_0x1e0b73(0xa9)]),_0x24d509=async()=>await n['withSpan']({'name':_0x1a68e8[_0x1e0b73(0xc4)],'kind':_0x1e0b73(0xde)},async()=>{const _0x3802d5=_0x1e0b73;let _0xbb8fab=Date[_0x3802d5(0x9e)]();await _0x1c7a4f[_0x3802d5(0xac)]?.({'eventName':_0x510568[_0x3802d5(0x78)],'method':_0x4a17cb[_0x3802d5(0x98)],'timestamp':new Date()[_0x3802d5(0xa8)]()});try{let _0x465bc0=await E(_0x4a17cb,_0x1c7a4f);return await _0x1c7a4f['logRequestEvent']?.({'durationMs':Date[_0x3802d5(0x9e)]()-_0xbb8fab,'eventName':_0x510568[_0x3802d5(0x99)],'method':_0x4a17cb[_0x3802d5(0x98)],'timestamp':new Date()[_0x3802d5(0xa8)]()}),_0x465bc0;}catch(_0x22d424){return await _0x1c7a4f['logRequestEvent']?.({'durationMs':Date[_0x3802d5(0x9e)]()-_0xbb8fab,'eventName':_0x510568['DaemonRpcError'],'method':_0x4a17cb[_0x3802d5(0x98)],'error':_0x22d424,'timestamp':new Date()[_0x3802d5(0xa8)]()}),_0x1c7a4f[_0x3802d5(0xac)]===void 0x0&&await _0x1c7a4f['logRequestError']?.({'method':_0x4a17cb[_0x3802d5(0x98)],'error':_0x22d424 instanceof Error?_0x22d424[_0x3802d5(0x6f)]:String(_0x22d424),'timestamp':new Date()[_0x3802d5(0xa8)]()}),B(_0x4a17cb['id'],-0x7f5b,_0x22d424);}});return _0x4b7be8===void 0x0?await _0x24d509():await n[_0x1e0b73(0xab)](_0x4b7be8,_0x24d509);};}async function E(_0x4977b4,_0x1a71ec){const _0x2636e7=_0x5964;switch(_0x4977b4[_0x2636e7(0x98)]){case _0x3807a4[_0x2636e7(0xc9)]:return{'jsonrpc':_0x2636e7(0xe2),'id':_0x4977b4['id'],'result':{'ok':!0x0,'pid':_0x1a71ec['pid'],'startedAt':_0x1a71ec[_0x2636e7(0xe1)],'socketPath':_0x1a71ec[_0x2636e7(0xe0)],'runtimeRoot':_0x1a71ec['runtimeRoot'],'buildId':_0x1a71ec[_0x2636e7(0x9f)],'sessionCount':_0x1a71ec[_0x2636e7(0x88)][_0x2636e7(0x7a)]()}};case _0x3807a4['Shutdown']:return _0x1a71ec[_0x2636e7(0xbb)]?.(),{'jsonrpc':'2.0','id':_0x4977b4['id'],'result':{'stopping':!0x0}};case _0x3807a4[_0x2636e7(0x87)]:{let _0x100b15=await _0x1a71ec['sessionHost']['loadWorkbook'](_0x4977b4[_0x2636e7(0xcd)]);return z(_0x4977b4['id'],_0x100b15);}case _0x3807a4[_0x2636e7(0xb9)]:{let _0x48e175=await _0x1a71ec['sessionHost'][_0x2636e7(0xc0)](_0x4977b4[_0x2636e7(0xcd)]);return z(_0x4977b4['id'],_0x48e175);}case _0x3807a4[_0x2636e7(0x84)]:{let _0x5be74d=await _0x1a71ec['sessionHost'][_0x2636e7(0xae)](_0x4977b4[_0x2636e7(0xcd)]);return z(_0x4977b4['id'],_0x5be74d);}case _0x3807a4[_0x2636e7(0xc6)]:{let _0x1d4b54=await _0x1a71ec[_0x2636e7(0x88)][_0x2636e7(0xe3)](_0x4977b4[_0x2636e7(0xcd)]);return z(_0x4977b4['id'],_0x1d4b54);}case _0x3807a4[_0x2636e7(0xbe)]:{let _0x434d0e=await _0x1a71ec[_0x2636e7(0x88)]['exportWorkbookFile'](_0x4977b4['params']);return z(_0x4977b4['id'],_0x434d0e);}case _0x3807a4[_0x2636e7(0xb1)]:{let _0x5c3083=_0x4977b4[_0x2636e7(0xcd)],_0x5490a0=await _0x1a71ec[_0x2636e7(0x88)][_0x2636e7(0xd4)](_0x5c3083);return z(_0x4977b4['id'],_0x5490a0);}case _0x3807a4['SessionDispose']:{let _0x3cc69b=await _0x1a71ec['sessionHost'][_0x2636e7(0x86)](_0x4977b4[_0x2636e7(0xcd)]);return z(_0x4977b4['id'],_0x3cc69b);}case _0x3807a4[_0x2636e7(0x77)]:{let _0x50a058=await _0x1a71ec[_0x2636e7(0x88)]['getWorkbookSession'](_0x4977b4[_0x2636e7(0xcd)]);return z(_0x4977b4['id'],_0x50a058);}default:return B(_0x4977b4['id'],-0x7f59,Error('Method\x20not\x20found:\x20'+_0x4977b4[_0x2636e7(0x98)]));}}function D(_0x1a1238){return{async 'createWorkbook'(_0x1eaa84){const _0xc46f2d=_0x5964;let _0x1d581b=await O(_0x1eaa84),_0x91754a=await _0x1a1238[_0xc46f2d(0xae)]({..._0x1eaa84[_0xc46f2d(0x7d)]===void 0x0?{}:{'cwd':_0x1eaa84[_0xc46f2d(0x7d)]},'identity':_0x1d581b,..._0x1eaa84['id']===void 0x0?{}:{'workbookId':_0x1eaa84['id']},..._0x1eaa84[_0xc46f2d(0xd9)]===void 0x0?{}:{'workbookName':_0x1eaa84['name']}});return{'success':!0x0,'workbookData':_0x91754a[_0xc46f2d(0xa7)],'session':k(_0x91754a[_0xc46f2d(0xcc)])};},async 'dispose'(_0x4542fe){const _0x842d2d=_0x5964;let _0x36301f=await O(_0x4542fe);return await _0x1a1238[_0x842d2d(0x86)]({..._0x4542fe[_0x842d2d(0x7d)]===void 0x0?{}:{'cwd':_0x4542fe[_0x842d2d(0x7d)]},'identity':_0x36301f}),{'disposed':!0x0,'workbookIdentity':_0x36301f['absolutePath']};},async 'destroyAll'(_0xff90a9){const _0x3fdec3=_0x5964;await _0x1a1238[_0x3fdec3(0xa6)]?.(_0xff90a9);},async 'evalJs'(_0x6c0ff9){const _0x3dd672=_0x5964;let _0x54f7a3=await O(_0x6c0ff9),_0x3ae284=await _0x1a1238[_0x3dd672(0xe3)]({'code':_0x6c0ff9[_0x3dd672(0xa5)],..._0x6c0ff9['cwd']===void 0x0?{}:{'cwd':_0x6c0ff9[_0x3dd672(0x7d)]},'identity':_0x54f7a3,..._0x6c0ff9[_0x3dd672(0x7f)]===void 0x0?{}:{'maxCodeLength':_0x6c0ff9[_0x3dd672(0x7f)]},..._0x6c0ff9['mutates']===void 0x0?{}:{'mutates':_0x6c0ff9[_0x3dd672(0xdb)]}});return{..._0x3ae284[_0x3dd672(0xa4)]===void 0x0?{}:{'mutations':_0x3ae284[_0x3dd672(0xa4)]},'success':!0x0,'value':_0x3ae284['value'],'session':k(_0x3ae284[_0x3dd672(0xcc)])};},async 'exportWorkbookData'(_0x560e54){const _0xbc4124=_0x5964;let _0x214c5f=await O(_0x560e54),_0x57dba0=await _0x1a1238[_0xbc4124(0xd4)]({..._0x560e54['cwd']===void 0x0?{}:{'cwd':_0x560e54[_0xbc4124(0x7d)]},'identity':_0x214c5f});return{'success':!0x0,'workbookData':_0x57dba0[_0xbc4124(0xa7)],'session':k(_0x57dba0[_0xbc4124(0xcc)])};},async 'exportWorkbookFile'(_0x35b124){const _0x48ef06=_0x5964;let _0x1ec035=await O(_0x35b124),_0x59f088=await _0x1a1238[_0x48ef06(0x8d)]({..._0x35b124['cwd']===void 0x0?{}:{'cwd':_0x35b124[_0x48ef06(0x7d)]},'format':_0x35b124[_0x48ef06(0x95)],'identity':_0x1ec035,'outputPath':_0x35b124['outputPath']});return{'success':!0x0,'format':_0x59f088['format'],'outputPath':_0x59f088['outputPath'],'sizeBytes':_0x59f088['sizeBytes'],'session':k(_0x59f088['session'])};},async 'getWorkbookSession'(_0x2e2b28){const _0x2799b5=_0x5964;let _0x38426=await O(_0x2e2b28),_0x5b5b5b=await _0x1a1238[_0x2799b5(0x85)]({..._0x2e2b28[_0x2799b5(0x7d)]===void 0x0?{}:{'cwd':_0x2e2b28[_0x2799b5(0x7d)]},'identity':_0x38426});return{'exists':_0x5b5b5b!==null,'session':_0x5b5b5b===null?null:k(_0x5b5b5b)};},'getSessionCount'(){return _0x1a1238['getSessionCount']?.()??0x0;},'getSessionIdleTtlMs'(){return _0x1a1238['getSessionIdleTtlMs']?.()??0xea60;},async 'loadWorkbook'(_0x125940){const _0x1b235d=_0x5964;let _0x1d5389=await O(_0x125940),_0x38c888=await _0x1a1238[_0x1b235d(0x90)]({..._0x125940[_0x1b235d(0x7d)]===void 0x0?{}:{'cwd':_0x125940['cwd']},'identity':_0x1d5389,'workbookData':_0x125940['workbookData']});return{'success':!0x0,'workbookData':_0x38c888[_0x1b235d(0xa7)],'session':k(_0x38c888[_0x1b235d(0xcc)])};},async 'loadWorkbookDataReplayPack'(_0x210bf3){const _0x59adc3=_0x5964;let _0x844f1e=await O(_0x210bf3);return{'success':!0x0,'session':k((await _0x1a1238['loadWorkbookDataReplayPack']({..._0x210bf3[_0x59adc3(0x7d)]===void 0x0?{}:{'cwd':_0x210bf3[_0x59adc3(0x7d)]},'identity':_0x844f1e,'replayPack':{'baseWorkbookData':_0x210bf3[_0x59adc3(0xc8)],'mutations':_0x210bf3['mutations']}}))[_0x59adc3(0xcc)])};},async 'unloadIdleSessions'(){const _0x2d9607=_0x5964;await _0x1a1238[_0x2d9607(0x83)]?.();}};}async function O(_0x2bf838){return await C['resolveIdentity'](_0x2bf838);}function k(_0x15e52a){const _0x3d06c3=_0x5964;return{'createdAt':_0x15e52a[_0x3d06c3(0xcb)]??'','lastAccessedAt':_0x15e52a[_0x3d06c3(0xb6)]??'','sessionId':_0x15e52a['sessionId'],'workbookIdentity':_0x15e52a[_0x3d06c3(0xce)][_0x3d06c3(0xd0)]};}function _0x5964(_0x502af7,_0x3534d6){_0x502af7=_0x502af7-0x6a;const _0xa98831=_0xa988();let _0x596416=_0xa98831[_0x502af7];return _0x596416;}function A(_0x432220){const _0x3363a6=_0x5964;return{'build.id':j(_0x432220[_0x3363a6(0xdc)],_0x3363a6(0xbd))??_0x432220[_0x3363a6(0x9f)],'deployment.environment.name':'local','distribution.channel':j(_0x432220['env'],'UNIVER_DISTRIBUTION_CHANNEL')??_0x3363a6(0x82),'service.instance.id':String(_0x432220['pid']),'service.name':_0x3363a6(0xaa),...j(_0x432220['env'],_0x3363a6(0x6c))===void 0x0?{}:{'service.version':j(_0x432220[_0x3363a6(0xdc)],'UNIVER_CLI_VERSION')}};}function j(_0x51f277,_0x12faa2){const _0x18d04d=_0x5964;let _0x24c5f3=_0x51f277[_0x12faa2]?.[_0x18d04d(0xba)]();return _0x24c5f3===void 0x0||_0x24c5f3[_0x18d04d(0x8a)]===0x0?void 0x0:_0x24c5f3;}async function M(_0x48a95e){const _0x3da30e=_0x5964;F(_0x48a95e[_0x3da30e(0xe0)])&&!await P(_0x48a95e['socketPath'])&&await I(_0x48a95e[_0x3da30e(0xe0)]);let _0x5017d8=await L(_0x48a95e[_0x3da30e(0x7c)]);_0x5017d8!==null&&!R(_0x5017d8)&&(await _0x54d075(_0x48a95e[_0x3da30e(0x7c)],{'force':!0x0})[_0x3da30e(0x97)](()=>void 0x0),await _0x54d075(_0x48a95e['metaPath'],{'force':!0x0})[_0x3da30e(0x97)](()=>void 0x0),await _0x54d075(_0x48a95e[_0x3da30e(0x6b)],{'recursive':!0x0,'force':!0x0})[_0x3da30e(0x97)](()=>void 0x0));}async function N(_0x23dc35,_0x4b8a42){const _0x55e9ff=_0x5964;try{return await _0x10b2f8(_0x23dc35,{'recursive':!0x1,'mode':0x1c0}),!0x0;}catch(_0x4a13bd){if(_0x4a13bd[_0x55e9ff(0xa5)]!==_0x55e9ff(0x7e))throw _0x4a13bd;let _0x16b995=await L(_0x4b8a42);return _0x16b995!==null&&R(_0x16b995)?!0x1:(await _0x54d075(_0x23dc35,{'recursive':!0x0,'force':!0x0}),await _0x10b2f8(_0x23dc35,{'recursive':!0x1,'mode':0x1c0}),!0x0);}}async function P(_0x17bb2f){return await new Promise(_0x38a56e=>{const _0x31db82=_0x5964;let _0x2e2d74=_0x362a8b[_0x31db82(0x81)](_0x17bb2f);_0x2e2d74[_0x31db82(0x76)](_0x31db82(0x89),()=>{const _0x12d446=_0x31db82;_0x2e2d74[_0x12d446(0xbf)](),_0x38a56e(!0x0);}),_0x2e2d74[_0x31db82(0x76)](_0x31db82(0xdd),()=>{_0x38a56e(!0x1);});});}function F(_0xcd17ae){return _0x261233(_0xcd17ae)?!0x1:_0x56bc9e(_0xcd17ae);}async function I(_0x275357){const _0x13ffb0=_0x5964;_0x261233(_0x275357)||await _0x54d075(_0x275357,{'force':!0x0})[_0x13ffb0(0x97)](()=>void 0x0);}async function L(_0x2333bc){const _0x8859b0=_0x5964;try{let _0x223279=await _0x1fd745(_0x2333bc,_0x8859b0(0xd6)),_0x5126b8=Number(_0x223279[_0x8859b0(0xba)]());return Number[_0x8859b0(0x9b)](_0x5126b8)?_0x5126b8:null;}catch{return null;}}function R(_0x7a8e2f){try{return _0x1aa976['kill'](_0x7a8e2f,0x0),!0x0;}catch{return!0x1;}}function z(_0x3c3059,_0x71d20){return{'jsonrpc':'2.0','id':_0x3c3059,'result':_0x71d20};}function B(_0x563ef4,_0x174bc4,_0x3ba718){const _0x23b6fb=_0x5964;return{'jsonrpc':_0x23b6fb(0xe2),'id':_0x563ef4,'error':{'code':_0x174bc4,'message':_0x3ba718 instanceof Error?_0x3ba718[_0x23b6fb(0x6f)]:String(_0x3ba718)}};}var V=process[_0x1f5815(0x79)][0x2]??_0x1f5815(0x9c);V!=='serve'&&(console[_0x1f5815(0xdd)](_0x1f5815(0x6e)+V),process[_0x1f5815(0xcf)](0x1)),w()[_0x1f5815(0x97)](_0xef2574=>{const _0xa35b7d=_0x1f5815;console[_0xa35b7d(0xdd)](_0xef2574 instanceof Error?_0xef2574['message']:String(_0xef2574)),process['exit'](0x1);});function _0xa988(){const _0xa4a32b=['405644owFHUV','12940EGbFlk','runtimeExecutionPlaneEntry','close','495832PKepLf','once','SessionGetWorkbook','DaemonRpcStart','argv','getSessionCount','234rQVEcY','pidPath','cwd','EEXIST','maxCodeLength','flush','createConnection','unknown','unloadIdleSessions','SessionCreateWorkbook','getSession','dispose','SessionLoadWorkbook','sessionHost','connect','length','homeDir','817758TflIws','exportWorkbookFile','2699508PyTJoy','daemonDir','loadWorkbookData','1LiGTJW','sigterm','parse','timestamp','format','getSessionIdleTtlMs','catch','method','DaemonRpcFinish','55kchgFC','isFinite','serve','rpc-shutdown','now','buildId','min','SIGINT','DaemonStart','21GMbach','mutations','code','destroyAll','workbookData','toISOString','traceparent','univer-daemon','withContext','logRequestEvent','eventName','createWorkbook','data','unref','SessionExportWorkbookData','108eGzRFR','Another\x20daemon\x20startup\x20owns\x20','meta','max','lastAccessedAt','finally','Runtime','SessionLoadWorkbookDataReplayPack','trim','onShutdownRequest','26wnpeck','UNIVER_CLI_BUILD_ID','SessionExportWorkbookFile','end','loadWorkbookDataReplayPack','current','write','metaPath','DaemonRpcServer','stringify','SessionEvalJs','28570OtxHkH','baseWorkbookData','Health','createServer','createdAt','session','params','packageIdentity','exit','absolutePath','sigint','event','sessionRoot','exportWorkbookData','execArgv','utf8','durationMs','slice','name','info','mutates','env','error','server','pid','socketPath','startedAt','2.0','evalJs','toString','Daemon','DaemonRpcError','lockPath','UNIVER_CLI_VERSION','Daemon\x20handler\x20not\x20ready:\x20','Unknown\x20daemon\x20subcommand:\x20','message','7362PkHQed'];_0xa988=function(){return _0xa4a32b;};return _0xa988();}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const _0x5ef050=_0x3e2e;(function(_0x5d0e88,_0x394ab2){const _0x3cf59a=_0x3e2e,_0x16d258=_0x5d0e88();while(!![]){try{const _0x1f223a=-parseInt(_0x3cf59a(0xc1))/0x1+parseInt(_0x3cf59a(0xcd))/0x2*(parseInt(_0x3cf59a(0xdf))/0x3)+-parseInt(_0x3cf59a(0x8f))/0x4+-parseInt(_0x3cf59a(0xa7))/0x5*(parseInt(_0x3cf59a(0xd4))/0x6)+parseInt(_0x3cf59a(0xe5))/0x7+-parseInt(_0x3cf59a(0x9c))/0x8*(parseInt(_0x3cf59a(0xc4))/0x9)+parseInt(_0x3cf59a(0xe0))/0xa;if(_0x1f223a===_0x394ab2)break;else _0x16d258['push'](_0x16d258['shift']());}catch(_0x3b7783){_0x16d258['push'](_0x16d258['shift']());}}}(_0x27e4,0xa267c));import{t as _0x331ee1}from'../chunks/build-info-D56x_kvi.js';import{n as _0x5e4433}from'../chunks/runtime-manifest-D6bFR_JZ.js';import{spawn as _0x2eb232}from'node:child_process';import{readFileSync as _0x13ab54}from'node:fs';function _0x27e4(){const _0x19b9ec=['univer-cli','name','first-open','isSafeInteger','env','endpoint','UNIVER_HOME','internal','application/json','2872dgTPqD','randomId','config','homeDir','trim','public-npm','distinctId','buildInfo','now','pnpm','timeoutMs','45OZjATB','anonymousInstallId','telemetry','state-unavailable','unref','eventSource','CLI\x20telemetry\x20proxy\x20failed\x20with\x20status\x20','properties','mode','cli_first_opened','events','cli_installed','execPath','cli-startup','npm_config_user_agent','buildCommit','0.0.0','.univer','ignore','unknown','already-attempted','parse','commitHash','@dream-num/univer-cli','UNIVER_MANAGED_BY_BUN','status','357260cEiALq','https://univer.ai/api/telemetry/cli','transport','27711zbDihz','product-telemetry.json','npm_execpath','eventName','packaged','state','path','bun','version','47614VKAcBR','packageRoot','not-packaged','Invalid\x20product\x20telemetry\x20anonymous\x20install\x20id.','postinstall','string','versions','62346zMfiKh','split','pid','utf8','yarn','readFile','attemptedAt','skipped','arch','stateIo','argv','159EVKuNd','4463360BiWNiN','number','development-build','manifest','capture','7863170LqNhKb','captured','test','2440260OaSYnk','length','missing-endpoint','cliVersion'];_0x27e4=function(){return _0x19b9ec;};return _0x27e4();}import{mkdir as _0x2fcb36,readFile as _0x3038c7,rename as _0x436aad,writeFile as _0x5341a7}from'node:fs/promises';import{dirname as _0x3446e2,join as _0x2fb283,resolve as _0x235d07}from'node:path';import{fileURLToPath as _0xeaf5ab}from'node:url';import{homedir as _0x4d76b4,platform as _0x10d0ea}from'node:os';import{randomUUID as _0x249a37}from'node:crypto';async function h(_0x1daed5){const _0x51aaf9=_0x3e2e;let _0x16c313=_0x1daed5['env']??process.env,_0x450ef4=_0x1daed5[_0x51aaf9(0xe3)]??_0x5e4433(_0x16c313);if(_0x450ef4['mode']!==_0x51aaf9(0xc8))return{'reason':_0x51aaf9(0xcf),'status':_0x51aaf9(0xdb)};let _0x270861=_0x1daed5['buildInfo']??_0x331ee1;if(N(_0x270861))return{'reason':_0x51aaf9(0xe2),'status':_0x51aaf9(0xdb)};let _0x24a891=_0x1daed5[_0x51aaf9(0x9e)]??await O(_0x450ef4[_0x51aaf9(0xce)]);if(_0x24a891['endpoint'][_0x51aaf9(0x90)]===0x0)return{'reason':_0x51aaf9(0x91),'status':_0x51aaf9(0xdb)};let _0x2bb054=_0x1daed5['now']??new Date(),_0xddcc83=_0x1daed5['statePath']??v({'env':_0x16c313}),_0x1f77e2=await b({'path':_0xddcc83,..._0x1daed5[_0x51aaf9(0x9d)]===void 0x0?{}:{'randomId':_0x1daed5[_0x51aaf9(0x9d)]},..._0x1daed5['stateIo']===void 0x0?{}:{'stateIo':_0x1daed5[_0x51aaf9(0xdd)]}});if(_0x1f77e2[_0x51aaf9(0xc9)]===void 0x0)return{'reason':_0x51aaf9(0xaa),'status':'skipped'};if(_0x1daed5[_0x51aaf9(0xc7)]===_0x51aaf9(0xb0)&&_0x1f77e2[_0x51aaf9(0xc9)][_0x51aaf9(0xb1)][_0x51aaf9(0xb0)]!==void 0x0)return{'reason':_0x51aaf9(0xbb),'status':_0x51aaf9(0xdb)};let _0x2cea6f=w({'buildInfo':_0x270861,'eventName':_0x1daed5['eventName'],'now':_0x2bb054,'state':_0x1f77e2[_0x51aaf9(0xc9)]});await C({'path':_0xddcc83,'state':_0x2cea6f,..._0x1daed5[_0x51aaf9(0xdd)]===void 0x0?{}:{'stateIo':_0x1daed5[_0x51aaf9(0xdd)]}});let _0x44ef24=T({'buildInfo':_0x270861,'env':_0x16c313,'eventName':_0x1daed5[_0x51aaf9(0xc7)],'eventSource':_0x1daed5['eventSource'],'manifest':_0x450ef4,'state':_0x2cea6f});try{return await(_0x1daed5[_0x51aaf9(0xc3)]??new A())[_0x51aaf9(0xe4)]({'capture':_0x44ef24,'config':_0x24a891}),{'status':_0x51aaf9(0xe6)};}catch{return{'reason':'capture-failed','status':_0x51aaf9(0xdb)};}}async function g(_0x480141={}){const _0x15c062=_0x3e2e;return await h({..._0x480141,'eventName':_0x15c062(0xb2),'eventSource':_0x15c062(0xd1)});}async function _(_0xb78376={}){const _0x2306e5=_0x3e2e;return await h({..._0xb78376,'eventName':'cli_first_opened','eventSource':_0x2306e5(0xb4)});}function v(_0x271424={}){const _0x523d74=_0x3e2e;let _0x114885=(_0x271424[_0x523d74(0x97)]??process.env)[_0x523d74(0x99)]?.[_0x523d74(0xa0)]();return _0x235d07(_0x114885&&_0x114885[_0x523d74(0x90)]>0x0?_0x114885:_0x2fb283(_0x271424[_0x523d74(0x9f)]??_0x4d76b4(),_0x523d74(0xb8)),_0x523d74(0xa9),'state.json');}function y(_0x8f07ba={}){const _0x5b85a8=_0x3e2e;return{'anonymousInstallId':_0x8f07ba[_0x5b85a8(0x9d)]?.()??_0x249a37(),'events':{},'version':0x1};}async function b(_0x2abdec){const _0x4fd915=_0x3e2e;let _0x5afb83=_0x2abdec['stateIo']?.[_0x4fd915(0xd9)]??_0x3038c7;try{return{'state':x(await _0x5afb83(_0x2abdec[_0x4fd915(0xca)],_0x4fd915(0xd7)))};}catch{return{'state':y({..._0x2abdec[_0x4fd915(0x9d)]===void 0x0?{}:{'randomId':_0x2abdec[_0x4fd915(0x9d)]}})};}}function x(_0xb92d53){const _0xbfe973=_0x3e2e;let _0x47ce33=JSON[_0xbfe973(0xbc)](_0xb92d53);if(!R(_0x47ce33)||_0x47ce33[_0xbfe973(0xcc)]!==0x1)throw Error('Invalid\x20product\x20telemetry\x20state\x20version.');if(typeof _0x47ce33[_0xbfe973(0xa8)]!='string'||_0x47ce33[_0xbfe973(0xa8)][_0xbfe973(0x90)]===0x0)throw Error(_0xbfe973(0xd0));let _0xead56c=R(_0x47ce33[_0xbfe973(0xb1)])?_0x47ce33['events']:{};return{'anonymousInstallId':_0x47ce33['anonymousInstallId'],'events':{...P(_0xead56c[_0xbfe973(0xb2)],_0xbfe973(0xb2)),...P(_0xead56c[_0xbfe973(0xb0)],_0xbfe973(0xb0))},'version':0x1};}function S(_0x158d85){return JSON['stringify'](_0x158d85,null,0x2)+'\x0a';}async function C(_0x17d947){const _0x5c266c=_0x3e2e;let _0x3a1d0d=_0x17d947[_0x5c266c(0xdd)]?.['writeFile']??_0x5341a7,_0x33973f=_0x17d947[_0x5c266c(0xdd)]?.['rename']??_0x436aad,_0x422e83=_0x17d947[_0x5c266c(0xca)]+'.'+process[_0x5c266c(0xd6)]+'.'+Date['now']()+'.tmp';try{await _0x2fcb36(_0x3446e2(_0x17d947['path']),{'mode':0x1c0,'recursive':!0x0}),await _0x3a1d0d(_0x422e83,S(_0x17d947[_0x5c266c(0xc9)]),{'encoding':_0x5c266c(0xd7),'mode':0x180}),await _0x33973f(_0x422e83,_0x17d947[_0x5c266c(0xca)]);}catch{}}function w(_0x248d1d){const _0x38103c=_0x3e2e;return{..._0x248d1d[_0x38103c(0xc9)],'events':{..._0x248d1d[_0x38103c(0xc9)][_0x38103c(0xb1)],[_0x248d1d[_0x38103c(0xc7)]]:{'attemptedAt':_0x248d1d[_0x38103c(0xa4)]['toISOString'](),'buildCommit':_0x248d1d[_0x38103c(0xa3)][_0x38103c(0xbd)],'cliVersion':_0x248d1d[_0x38103c(0xa3)][_0x38103c(0xcc)]}}};}function T(_0x6ed4f4){const _0x367f44=_0x3e2e;return{'distinctId':_0x6ed4f4[_0x367f44(0xc9)][_0x367f44(0xa8)],'event':_0x6ed4f4[_0x367f44(0xc7)],'properties':E(_0x6ed4f4)};}function E(_0x56b86c){const _0x48abe2=_0x3e2e;return{'arch':process[_0x48abe2(0xdc)],'build_commit':_0x56b86c[_0x48abe2(0xa3)][_0x48abe2(0xbd)],'cli_version':_0x56b86c[_0x48abe2(0xa3)][_0x48abe2(0xcc)],'distribution_channel':M(_0x56b86c['manifest']),'event_source':_0x56b86c[_0x48abe2(0xac)],'install_manager':D(_0x56b86c[_0x48abe2(0x97)]??process.env),'node_major_version':F(process[_0x48abe2(0xd3)]['node']),'package_name':j(_0x56b86c[_0x48abe2(0xe3)]),'platform':_0x10d0ea(),'telemetry_state_version':0x1};}function D(_0xd7e9c3=process.env){const _0x3ee38b=_0x3e2e;let _0x5bc25d=process[_0x3ee38b(0xd3)];if(typeof _0x5bc25d[_0x3ee38b(0xcb)]==_0x3ee38b(0xd2)&&_0x5bc25d[_0x3ee38b(0xcb)][_0x3ee38b(0x90)]>0x0)return _0x3ee38b(0xcb);let _0x2f66d0=_0xd7e9c3[_0x3ee38b(0xb5)]??'';if(/\bbun\//u['test'](_0x2f66d0))return _0x3ee38b(0xcb);if(/\bpnpm\//u[_0x3ee38b(0xe7)](_0x2f66d0))return'pnpm';if(/\byarn\//u[_0x3ee38b(0xe7)](_0x2f66d0))return _0x3ee38b(0xd8);if(/\bnpm\//u[_0x3ee38b(0xe7)](_0x2f66d0))return'npm';let _0x5b8cca=_0xd7e9c3[_0x3ee38b(0xc6)]??'';return/(^|[/\\])bun(?:\.exe)?$/u['test'](_0x5b8cca)?_0x3ee38b(0xcb):/(^|[/\\])pnpm(?:\.cmd|\.ps1|\.exe)?$/u[_0x3ee38b(0xe7)](_0x5b8cca)?_0x3ee38b(0xa5):/(^|[/\\])yarn(?:\.cmd|\.ps1|\.exe)?$/u[_0x3ee38b(0xe7)](_0x5b8cca)?_0x3ee38b(0xd8):/(^|[/\\])npm(?:\.cmd|\.ps1|\.exe)?$/u['test'](_0x5b8cca)?'npm':_0xd7e9c3[_0x3ee38b(0xbf)]==='1'?'bun':_0xd7e9c3['UNIVER_MANAGED_BY_NPM']==='1'?'npm':_0x3ee38b(0xba);}async function O(_0x3e6f56){const _0x14da2d=_0x3e2e;try{let _0x18ee94=await _0x3038c7(_0x2fb283(_0x3e6f56,_0x14da2d(0x9a),_0x14da2d(0xc5)),'utf8');return k(JSON[_0x14da2d(0xbc)](_0x18ee94));}catch{return k({});}}function k(_0x3b2004){const _0x1b86e7=_0x3e2e;let _0x29e218=R(_0x3b2004)?_0x3b2004:{};return{'endpoint':I(_0x29e218[_0x1b86e7(0x98)],_0x1b86e7(0xc2)),'timeoutMs':L(_0x29e218[_0x1b86e7(0xa6)],0x1388)};}var A=class{async[_0x5ef050(0xe4)](_0x223406){const _0x5e005d=_0x5ef050;let _0x31813e=await fetch(_0x223406[_0x5e005d(0x9e)][_0x5e005d(0x98)],{'body':JSON['stringify']({'distinctId':_0x223406[_0x5e005d(0xe4)][_0x5e005d(0xa2)],'event':_0x223406['capture']['event'],'properties':_0x223406[_0x5e005d(0xe4)][_0x5e005d(0xae)]}),'headers':{'content-type':_0x5e005d(0x9b)},'method':'POST','signal':AbortSignal['timeout'](_0x223406[_0x5e005d(0x9e)][_0x5e005d(0xa6)])});if(!_0x31813e['ok'])throw Error(_0x5e005d(0xad)+_0x31813e[_0x5e005d(0xc0)]);}};function j(_0xe654af){const _0x28f676=_0x5ef050;try{let _0x403ddd=JSON['parse'](_0x13ab54(_0x2fb283(_0xe654af[_0x28f676(0xce)],'package.json'),_0x28f676(0xd7)));return typeof _0x403ddd[_0x28f676(0x94)]==_0x28f676(0xd2)&&_0x403ddd['name'][_0x28f676(0xa0)]()[_0x28f676(0x90)]>0x0?_0x403ddd[_0x28f676(0x94)]:_0x28f676(0x93);}catch{return _0x28f676(0x93);}}function M(_0xc05f16){const _0x224d2c=_0x5ef050;let _0x264a42=j(_0xc05f16);return _0x264a42===_0x224d2c(0xbe)?'internal-github':_0x264a42===_0x224d2c(0x93)?_0x224d2c(0xa1):_0xc05f16[_0x224d2c(0xaf)];}function N(_0x2ed3d3){const _0x25aef1=_0x5ef050;return _0x2ed3d3[_0x25aef1(0xcc)]===_0x25aef1(0xb7);}function P(_0x245a19,_0x321ea8){const _0x566754=_0x5ef050;return!R(_0x245a19)||typeof _0x245a19['attemptedAt']!=_0x566754(0xd2)||typeof _0x245a19['buildCommit']!=_0x566754(0xd2)||typeof _0x245a19['cliVersion']!=_0x566754(0xd2)?{}:{[_0x321ea8]:{'attemptedAt':_0x245a19[_0x566754(0xda)],'buildCommit':_0x245a19[_0x566754(0xb6)],'cliVersion':_0x245a19[_0x566754(0x92)]}};}function F(_0x2499ef){const _0x5c4f55=_0x5ef050;let _0x30fd9b=Number(_0x2499ef[_0x5c4f55(0xd5)]('.')[0x0]);return Number[_0x5c4f55(0x96)](_0x30fd9b)&&_0x30fd9b>0x0?_0x30fd9b:void 0x0;}function _0x3e2e(_0x1b0c23,_0x5e46e6){_0x1b0c23=_0x1b0c23-0x8f;const _0x27e423=_0x27e4();let _0x3e2e99=_0x27e423[_0x1b0c23];return _0x3e2e99;}function I(_0x241e3c,_0x39a932){const _0x1c56b9=_0x5ef050;return typeof _0x241e3c==_0x1c56b9(0xd2)&&_0x241e3c['trim']()[_0x1c56b9(0x90)]>0x0?_0x241e3c[_0x1c56b9(0xa0)]():_0x39a932;}function L(_0x54659c,_0x458dc9){const _0x319ce2=_0x5ef050;return typeof _0x54659c==_0x319ce2(0xe1)&&Number['isSafeInteger'](_0x54659c)&&_0x54659c>0x0?_0x54659c:_0x458dc9;}function R(_0x42387c){return typeof _0x42387c=='object'&&!!_0x42387c;}var z=process[_0x5ef050(0xde)][0x2];try{z===_0x5ef050(0x95)?await _():z===_0x5ef050(0xd1)?B('postinstall-worker'):z==='postinstall-worker'&&await g();}catch{}function B(_0x165cb5){const _0x99271c=_0x5ef050;_0x2eb232(process[_0x99271c(0xb3)],[_0xeaf5ab(import.meta.url),_0x165cb5],{'detached':!0x0,'env':process.env,'stdio':_0x99271c(0xb9),'windowsHide':!0x0})[_0x99271c(0xab)]();}
|
|
2
|
+
const _0x4de12c=_0x4bae;(function(_0x61c101,_0x4355e8){const _0x199f4c=_0x4bae,_0x231bb5=_0x61c101();while(!![]){try{const _0x400679=parseInt(_0x199f4c(0x193))/0x1*(parseInt(_0x199f4c(0x198))/0x2)+parseInt(_0x199f4c(0x1d5))/0x3*(parseInt(_0x199f4c(0x1b5))/0x4)+parseInt(_0x199f4c(0x19a))/0x5*(-parseInt(_0x199f4c(0x1a7))/0x6)+parseInt(_0x199f4c(0x1ad))/0x7*(-parseInt(_0x199f4c(0x1d8))/0x8)+parseInt(_0x199f4c(0x1bc))/0x9+parseInt(_0x199f4c(0x1dc))/0xa+parseInt(_0x199f4c(0x18a))/0xb*(parseInt(_0x199f4c(0x1d9))/0xc);if(_0x400679===_0x4355e8)break;else _0x231bb5['push'](_0x231bb5['shift']());}catch(_0x2d0590){_0x231bb5['push'](_0x231bb5['shift']());}}}(_0x4856,0x691d2));import{t as _0x2ff531}from'../chunks/build-info-BeqRsVqe.js';import{n as _0x3b07c7}from'../chunks/runtime-manifest-D6bFR_JZ.js';function _0x4856(){const _0x580ec0=['packaged','isSafeInteger','stateIo','34024qbxuHN','public-npm','50045ukXOar','endpoint','cli-startup','parse','CLI\x20telemetry\x20proxy\x20failed\x20with\x20status\x20','captured','UNIVER_MANAGED_BY_NPM','events','execPath','npm','argv','attemptedAt','transport','390gPRzEx','yarn','distinctId','packageRoot','homeDir','bun','4841886EujtBJ','skipped','string','writeFile','event','name','toISOString','commitHash','1684ASwAuu','config','ignore','buildCommit','telemetry','cli_installed','POST','688500yVpNbT','eventSource','eventName','@dream-num/univer-cli','length','npm_config_user_agent','versions','node','mode','test','UNIVER_HOME','cli_first_opened','development-build','univer-cli','object','randomId','application/json','internal','stringify','trim','state','status','postinstall-worker','postinstall','not-packaged','474QQgNQA','manifest','state.json','8tmOKph','12IslPvA','path','version','2570440dszKpC','env','split','properties','0.0.0','unknown','Invalid\x20product\x20telemetry\x20state\x20version.','npm_execpath','state-unavailable','timeoutMs','unref','buildInfo','14164777BNLaLo','.tmp','https://univer.ai/api/telemetry/cli','now','capture','pnpm','anonymousInstallId','package.json','utf8','5xxUelD','number'];_0x4856=function(){return _0x580ec0;};return _0x4856();}import{spawn as _0x2bfd54}from'node:child_process';import{readFileSync as _0x5b68be}from'node:fs';import{mkdir as _0x2c293f,readFile as _0xad7546,rename as _0x4babaf,writeFile as _0x35daf1}from'node:fs/promises';import{dirname as _0x7ccd89,join as _0x381a33,resolve as _0x3f31ba}from'node:path';import{fileURLToPath as _0xffb230}from'node:url';import{homedir as _0x4a7dbe,platform as _0x42ef24}from'node:os';import{randomUUID as _0x2e8a7a}from'node:crypto';async function h(_0x3c2a66){const _0x642c6e=_0x4bae;let _0x10248e=_0x3c2a66[_0x642c6e(0x1dd)]??process.env,_0x467fc5=_0x3c2a66[_0x642c6e(0x1d6)]??_0x3b07c7(_0x10248e);if(_0x467fc5[_0x642c6e(0x1c4)]!==_0x642c6e(0x195))return{'reason':_0x642c6e(0x1d4),'status':'skipped'};let _0x4c8cc8=_0x3c2a66[_0x642c6e(0x189)]??_0x2ff531;if(N(_0x4c8cc8))return{'reason':_0x642c6e(0x1c8),'status':_0x642c6e(0x1ae)};let _0x483e8c=_0x3c2a66['config']??await O(_0x467fc5['packageRoot']);if(_0x483e8c[_0x642c6e(0x19b)][_0x642c6e(0x1c0)]===0x0)return{'reason':'missing-endpoint','status':_0x642c6e(0x1ae)};let _0x36dbfc=_0x3c2a66['now']??new Date(),_0x27404f=_0x3c2a66['statePath']??v({'env':_0x10248e}),_0x12501c=await b({'path':_0x27404f,..._0x3c2a66['randomId']===void 0x0?{}:{'randomId':_0x3c2a66[_0x642c6e(0x1cb)]},..._0x3c2a66[_0x642c6e(0x197)]===void 0x0?{}:{'stateIo':_0x3c2a66[_0x642c6e(0x197)]}});if(_0x12501c[_0x642c6e(0x1d0)]===void 0x0)return{'reason':_0x642c6e(0x186),'status':'skipped'};if(_0x3c2a66[_0x642c6e(0x1be)]==='cli_first_opened'&&_0x12501c[_0x642c6e(0x1d0)][_0x642c6e(0x1a1)]['cli_first_opened']!==void 0x0)return{'reason':'already-attempted','status':_0x642c6e(0x1ae)};let _0x3ab4d0=w({'buildInfo':_0x4c8cc8,'eventName':_0x3c2a66['eventName'],'now':_0x36dbfc,'state':_0x12501c['state']});await C({'path':_0x27404f,'state':_0x3ab4d0,..._0x3c2a66[_0x642c6e(0x197)]===void 0x0?{}:{'stateIo':_0x3c2a66[_0x642c6e(0x197)]}});let _0x22dd9d=T({'buildInfo':_0x4c8cc8,'env':_0x10248e,'eventName':_0x3c2a66[_0x642c6e(0x1be)],'eventSource':_0x3c2a66[_0x642c6e(0x1bd)],'manifest':_0x467fc5,'state':_0x3ab4d0});try{return await(_0x3c2a66[_0x642c6e(0x1a6)]??new A())['capture']({'capture':_0x22dd9d,'config':_0x483e8c}),{'status':_0x642c6e(0x19f)};}catch{return{'reason':'capture-failed','status':_0x642c6e(0x1ae)};}}async function g(_0x4fc750={}){const _0x2062dd=_0x4bae;return await h({..._0x4fc750,'eventName':'cli_installed','eventSource':_0x2062dd(0x1d3)});}async function _(_0x410eb4={}){const _0x5e5ea2=_0x4bae;return await h({..._0x410eb4,'eventName':_0x5e5ea2(0x1c7),'eventSource':_0x5e5ea2(0x19c)});}function v(_0x353e3f={}){const _0x21f58e=_0x4bae;let _0x52c0ae=(_0x353e3f[_0x21f58e(0x1dd)]??process.env)[_0x21f58e(0x1c6)]?.[_0x21f58e(0x1cf)]();return _0x3f31ba(_0x52c0ae&&_0x52c0ae[_0x21f58e(0x1c0)]>0x0?_0x52c0ae:_0x381a33(_0x353e3f[_0x21f58e(0x1ab)]??_0x4a7dbe(),'.univer'),_0x21f58e(0x1b9),_0x21f58e(0x1d7));}function y(_0x12d96c={}){return{'anonymousInstallId':_0x12d96c['randomId']?.()??_0x2e8a7a(),'events':{},'version':0x1};}async function b(_0x1ed5a4){const _0x5ecf53=_0x4bae;let _0xd80a8=_0x1ed5a4[_0x5ecf53(0x197)]?.['readFile']??_0xad7546;try{return{'state':x(await _0xd80a8(_0x1ed5a4[_0x5ecf53(0x1da)],'utf8'))};}catch{return{'state':y({..._0x1ed5a4[_0x5ecf53(0x1cb)]===void 0x0?{}:{'randomId':_0x1ed5a4[_0x5ecf53(0x1cb)]}})};}}function x(_0xa7e1c5){const _0x47621b=_0x4bae;let _0x2d3136=JSON[_0x47621b(0x19d)](_0xa7e1c5);if(!R(_0x2d3136)||_0x2d3136[_0x47621b(0x1db)]!==0x1)throw Error(_0x47621b(0x184));if(typeof _0x2d3136[_0x47621b(0x190)]!=_0x47621b(0x1af)||_0x2d3136[_0x47621b(0x190)][_0x47621b(0x1c0)]===0x0)throw Error('Invalid\x20product\x20telemetry\x20anonymous\x20install\x20id.');let _0x124949=R(_0x2d3136[_0x47621b(0x1a1)])?_0x2d3136['events']:{};return{'anonymousInstallId':_0x2d3136[_0x47621b(0x190)],'events':{...P(_0x124949[_0x47621b(0x1ba)],_0x47621b(0x1ba)),...P(_0x124949[_0x47621b(0x1c7)],_0x47621b(0x1c7))},'version':0x1};}function _0x4bae(_0x2e2106,_0x4a3882){_0x2e2106=_0x2e2106-0x180;const _0x485638=_0x4856();let _0x4baeb5=_0x485638[_0x2e2106];return _0x4baeb5;}function S(_0x393c49){const _0x53b3c4=_0x4bae;return JSON[_0x53b3c4(0x1ce)](_0x393c49,null,0x2)+'\x0a';}async function C(_0x5ed2e8){const _0x170d9a=_0x4bae;let _0x370259=_0x5ed2e8['stateIo']?.[_0x170d9a(0x1b0)]??_0x35daf1,_0x411896=_0x5ed2e8[_0x170d9a(0x197)]?.['rename']??_0x4babaf,_0x4157e3=_0x5ed2e8[_0x170d9a(0x1da)]+'.'+process['pid']+'.'+Date['now']()+_0x170d9a(0x18b);try{await _0x2c293f(_0x7ccd89(_0x5ed2e8['path']),{'mode':0x1c0,'recursive':!0x0}),await _0x370259(_0x4157e3,S(_0x5ed2e8[_0x170d9a(0x1d0)]),{'encoding':_0x170d9a(0x192),'mode':0x180}),await _0x411896(_0x4157e3,_0x5ed2e8['path']);}catch{}}function w(_0x58472d){const _0x4c4e9d=_0x4bae;return{..._0x58472d['state'],'events':{..._0x58472d['state'][_0x4c4e9d(0x1a1)],[_0x58472d[_0x4c4e9d(0x1be)]]:{'attemptedAt':_0x58472d[_0x4c4e9d(0x18d)][_0x4c4e9d(0x1b3)](),'buildCommit':_0x58472d['buildInfo'][_0x4c4e9d(0x1b4)],'cliVersion':_0x58472d['buildInfo'][_0x4c4e9d(0x1db)]}}};}function T(_0x113067){const _0x45f451=_0x4bae;return{'distinctId':_0x113067[_0x45f451(0x1d0)][_0x45f451(0x190)],'event':_0x113067[_0x45f451(0x1be)],'properties':E(_0x113067)};}function E(_0x240dd5){const _0xcea250=_0x4bae;return{'arch':process['arch'],'build_commit':_0x240dd5['buildInfo']['commitHash'],'cli_version':_0x240dd5[_0xcea250(0x189)][_0xcea250(0x1db)],'distribution_channel':M(_0x240dd5[_0xcea250(0x1d6)]),'event_source':_0x240dd5[_0xcea250(0x1bd)],'install_manager':D(_0x240dd5['env']??process.env),'node_major_version':F(process[_0xcea250(0x1c2)][_0xcea250(0x1c3)]),'package_name':j(_0x240dd5[_0xcea250(0x1d6)]),'platform':_0x42ef24(),'telemetry_state_version':0x1};}function D(_0x118ab1=process.env){const _0x431005=_0x4bae;let _0x7974e4=process[_0x431005(0x1c2)];if(typeof _0x7974e4['bun']==_0x431005(0x1af)&&_0x7974e4[_0x431005(0x1ac)][_0x431005(0x1c0)]>0x0)return _0x431005(0x1ac);let _0x5f4025=_0x118ab1[_0x431005(0x1c1)]??'';if(/\bbun\//u[_0x431005(0x1c5)](_0x5f4025))return _0x431005(0x1ac);if(/\bpnpm\//u['test'](_0x5f4025))return _0x431005(0x18f);if(/\byarn\//u[_0x431005(0x1c5)](_0x5f4025))return _0x431005(0x1a8);if(/\bnpm\//u['test'](_0x5f4025))return'npm';let _0x581ade=_0x118ab1[_0x431005(0x185)]??'';return/(^|[/\\])bun(?:\.exe)?$/u[_0x431005(0x1c5)](_0x581ade)?'bun':/(^|[/\\])pnpm(?:\.cmd|\.ps1|\.exe)?$/u[_0x431005(0x1c5)](_0x581ade)?_0x431005(0x18f):/(^|[/\\])yarn(?:\.cmd|\.ps1|\.exe)?$/u[_0x431005(0x1c5)](_0x581ade)?'yarn':/(^|[/\\])npm(?:\.cmd|\.ps1|\.exe)?$/u['test'](_0x581ade)?_0x431005(0x1a3):_0x118ab1['UNIVER_MANAGED_BY_BUN']==='1'?_0x431005(0x1ac):_0x118ab1[_0x431005(0x1a0)]==='1'?_0x431005(0x1a3):_0x431005(0x183);}async function O(_0x338e32){const _0x3a5079=_0x4bae;try{let _0x57e61b=await _0xad7546(_0x381a33(_0x338e32,_0x3a5079(0x1cd),'product-telemetry.json'),_0x3a5079(0x192));return k(JSON['parse'](_0x57e61b));}catch{return k({});}}function k(_0x3d2664){const _0x52c956=_0x4bae;let _0x2e46f7=R(_0x3d2664)?_0x3d2664:{};return{'endpoint':I(_0x2e46f7[_0x52c956(0x19b)],_0x52c956(0x18c)),'timeoutMs':L(_0x2e46f7[_0x52c956(0x187)],0x1388)};}var A=class{async[_0x4de12c(0x18e)](_0x16619f){const _0x190b4f=_0x4de12c;let _0x44e23a=await fetch(_0x16619f[_0x190b4f(0x1b6)][_0x190b4f(0x19b)],{'body':JSON[_0x190b4f(0x1ce)]({'distinctId':_0x16619f[_0x190b4f(0x18e)][_0x190b4f(0x1a9)],'event':_0x16619f[_0x190b4f(0x18e)][_0x190b4f(0x1b1)],'properties':_0x16619f[_0x190b4f(0x18e)][_0x190b4f(0x181)]}),'headers':{'content-type':_0x190b4f(0x1cc)},'method':_0x190b4f(0x1bb),'signal':AbortSignal['timeout'](_0x16619f[_0x190b4f(0x1b6)][_0x190b4f(0x187)])});if(!_0x44e23a['ok'])throw Error(_0x190b4f(0x19e)+_0x44e23a[_0x190b4f(0x1d1)]);}};function j(_0x332513){const _0x310d01=_0x4de12c;try{let _0x2fc0a2=JSON[_0x310d01(0x19d)](_0x5b68be(_0x381a33(_0x332513[_0x310d01(0x1aa)],_0x310d01(0x191)),_0x310d01(0x192)));return typeof _0x2fc0a2['name']==_0x310d01(0x1af)&&_0x2fc0a2[_0x310d01(0x1b2)][_0x310d01(0x1cf)]()['length']>0x0?_0x2fc0a2[_0x310d01(0x1b2)]:_0x310d01(0x1c9);}catch{return _0x310d01(0x1c9);}}function M(_0x26cfb0){const _0x530245=_0x4de12c;let _0x4f39e0=j(_0x26cfb0);return _0x4f39e0===_0x530245(0x1bf)?'internal-github':_0x4f39e0==='univer-cli'?_0x530245(0x199):_0x26cfb0['mode'];}function N(_0x310ebf){const _0x4ed4ab=_0x4de12c;return _0x310ebf[_0x4ed4ab(0x1db)]===_0x4ed4ab(0x182);}function P(_0x411172,_0x2e28f3){const _0x53e5ca=_0x4de12c;return!R(_0x411172)||typeof _0x411172[_0x53e5ca(0x1a5)]!=_0x53e5ca(0x1af)||typeof _0x411172['buildCommit']!='string'||typeof _0x411172['cliVersion']!=_0x53e5ca(0x1af)?{}:{[_0x2e28f3]:{'attemptedAt':_0x411172['attemptedAt'],'buildCommit':_0x411172[_0x53e5ca(0x1b8)],'cliVersion':_0x411172['cliVersion']}};}function F(_0x22d5e8){const _0x38c218=_0x4de12c;let _0x3b5179=Number(_0x22d5e8[_0x38c218(0x180)]('.')[0x0]);return Number[_0x38c218(0x196)](_0x3b5179)&&_0x3b5179>0x0?_0x3b5179:void 0x0;}function I(_0x371b9f,_0x4bc799){const _0x462e39=_0x4de12c;return typeof _0x371b9f==_0x462e39(0x1af)&&_0x371b9f[_0x462e39(0x1cf)]()[_0x462e39(0x1c0)]>0x0?_0x371b9f[_0x462e39(0x1cf)]():_0x4bc799;}function L(_0x56c6cf,_0x5cb361){const _0x1b8d37=_0x4de12c;return typeof _0x56c6cf==_0x1b8d37(0x194)&&Number[_0x1b8d37(0x196)](_0x56c6cf)&&_0x56c6cf>0x0?_0x56c6cf:_0x5cb361;}function R(_0x44b796){const _0x3c8484=_0x4de12c;return typeof _0x44b796==_0x3c8484(0x1ca)&&!!_0x44b796;}var z=process[_0x4de12c(0x1a4)][0x2];try{z==='first-open'?await _():z===_0x4de12c(0x1d3)?B(_0x4de12c(0x1d2)):z===_0x4de12c(0x1d2)&&await g();}catch{}function B(_0x494417){const _0x4b9ce8=_0x4de12c;_0x2bfd54(process[_0x4b9ce8(0x1a2)],[_0xffb230(import.meta.url),_0x494417],{'detached':!0x0,'env':process.env,'stdio':_0x4b9ce8(0x1b7),'windowsHide':!0x0})[_0x4b9ce8(0x188)]();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0xfcf1b=_0x34f6;(function(_0x5dc782,_0x4181a9){const _0x22edeb=_0x34f6,_0x2109df=_0x5dc782();while(!![]){try{const _0x1af380=parseInt(_0x22edeb(0x11a))/0x1*(-parseInt(_0x22edeb(0x104))/0x2)+parseInt(_0x22edeb(0xf5))/0x3*(-parseInt(_0x22edeb(0xf7))/0x4)+parseInt(_0x22edeb(0x11d))/0x5*(parseInt(_0x22edeb(0x106))/0x6)+parseInt(_0x22edeb(0x112))/0x7*(parseInt(_0x22edeb(0x113))/0x8)+-parseInt(_0x22edeb(0x119))/0x9+parseInt(_0x22edeb(0x10b))/0xa+parseInt(_0x22edeb(0x11c))/0xb*(parseInt(_0x22edeb(0x118))/0xc);if(_0x1af380===_0x4181a9)break;else _0x2109df['push'](_0x2109df['shift']());}catch(_0x19c4d9){_0x2109df['push'](_0x2109df['shift']());}}}(_0x4d79,0x461d5));import'../chunks/vendor-CgwrUUL6.js';import{t as _0x986637}from'../chunks/headless-univer-B0Rozw6u.js';import{n as _0x1dc48a,o as _0x526737,t as _0x492a29}from'../chunks/trace-DPfd8LdJ.js';let i=function(_0x5b29c9){const _0x1064c7=_0x34f6;return _0x5b29c9['CreateWorkbook']=_0x1064c7(0x114),_0x5b29c9['EvalJs']=_0x1064c7(0xf6),_0x5b29c9['ExportWorkbookFile']='exportWorkbookFile',_0x5b29c9[_0x1064c7(0xf8)]=_0x1064c7(0x11e),_0x5b29c9[_0x1064c7(0xfe)]='loadWorkbook',_0x5b29c9['LoadWorkbookDataReplayPack']=_0x1064c7(0x100),_0x5b29c9;}({});var a=class{[_0xfcf1b(0x10f)]=Promise[_0xfcf1b(0x11b)]();async[_0xfcf1b(0x117)](_0x172b43){const _0x312f4b=_0xfcf1b;let _0x3b05a9=this[_0x312f4b(0x10f)],_0x49e7d0;this[_0x312f4b(0x10f)]=new Promise(_0x3498d8=>{_0x49e7d0=_0x3498d8;}),await _0x3b05a9;try{return await _0x172b43();}finally{_0x49e7d0?.();}}},o=_0x986637(),s=new a();process[_0xfcf1b(0xfd)]?.({'type':_0xfcf1b(0x115)}),process['on'](_0xfcf1b(0xfc),async _0x379ca0=>{const _0x38091c=_0xfcf1b;if(_0x379ca0?.[_0x38091c(0x105)]!==_0x38091c(0x107))return;let _0xfeaa4f=await c(_0x379ca0['data']);process['send']?.({'type':_0x38091c(0x10e),'id':_0x379ca0['id'],'data':_0xfeaa4f});}),process['on'](_0xfcf1b(0x123),()=>{const _0x232d73=_0xfcf1b;o[_0x232d73(0x10c)](),process[_0x232d73(0x109)](0x0);}),process['on'](_0xfcf1b(0x10a),()=>{const _0x5aace0=_0xfcf1b;o[_0x5aace0(0x10c)](),process[_0x5aace0(0x109)](0x0);});function _0x4d79(){const _0x31ef35=['exportWorkbookFile','rpc-response','tail','workbookData','RuntimeRpcClient','481047qrETJA','56KAlpdN','createWorkbook','ready','format','enqueue','6331548GKPdMZ','3256434JzIeFd','316795AxrqoE','resolve','11tXXpqL','47585xdPZlu','exportWorkbookData','ExportWorkbookFile','value','mutations','method','disconnect','withSpan','3KblWoR','evaljs','1688436UjevZi','ExportWorkbookData','LoadWorkbookDataReplayPack','evalJsWithMutationCapture','CreateWorkbook','message','send','LoadWorkbook','2.0','loadWorkbookDataReplayPack','evalJs','params','code','2SLiVwt','type','174JdctqQ','rpc-request','meta','exit','SIGTERM','1032500UDOjyS','dispose'];_0x4d79=function(){return _0x31ef35;};return _0x4d79();}async function c(_0x5e2b68){const _0x3e2749=_0xfcf1b;let _0x975f19=_0x492a29(_0x5e2b68[_0x3e2749(0x108)]?.['traceparent']),_0xac3dfd=async()=>await _0x1dc48a[_0x3e2749(0xf4)]({'name':_0x526737[_0x3e2749(0x111)],'kind':'server'},async()=>await l(_0x5e2b68));return _0x975f19===void 0x0?await _0xac3dfd():await _0x1dc48a['withContext'](_0x975f19,_0xac3dfd);}function _0x34f6(_0x3f4c5d,_0x205e04){_0x3f4c5d=_0x3f4c5d-0xf4;const _0x4d7913=_0x4d79();let _0x34f616=_0x4d7913[_0x3f4c5d];return _0x34f616;}async function l(_0x2712ed){const _0x252bd5=_0xfcf1b;try{switch(_0x2712ed['method']){case i[_0x252bd5(0xfb)]:{let _0x355e6b=o[_0x252bd5(0x114)](_0x2712ed[_0x252bd5(0x102)]??{});return{'jsonrpc':_0x252bd5(0xff),'id':_0x2712ed['id'],'result':{'success':!0x0,'workbookData':_0x355e6b}};}case i['LoadWorkbook']:{let _0x2d724b=o['loadWorkbookData'](_0x2712ed['params'][_0x252bd5(0x110)]);return{'jsonrpc':'2.0','id':_0x2712ed['id'],'result':{'success':!0x0,'workbookData':_0x2d724b}};}case i[_0x252bd5(0xf9)]:return await o[_0x252bd5(0x100)](_0x2712ed['params']),{'jsonrpc':'2.0','id':_0x2712ed['id'],'result':{'success':!0x0}};case i[_0x252bd5(0xf8)]:return{'jsonrpc':'2.0','id':_0x2712ed['id'],'result':{'success':!0x0,'workbookData':o[_0x252bd5(0x11e)]()}};case i[_0x252bd5(0x11f)]:{let _0x277db7=_0x2712ed[_0x252bd5(0x102)],_0x523b2c=await o[_0x252bd5(0x10d)](_0x277db7['outputPath'],_0x277db7[_0x252bd5(0x116)]);return{'jsonrpc':_0x252bd5(0xff),'id':_0x2712ed['id'],'result':{'success':!0x0,..._0x523b2c}};}case i['EvalJs']:{let _0x1cbc1d=_0x2712ed[_0x252bd5(0x102)]??{},_0x375c22=async()=>{const _0x359f7e=_0x252bd5;let _0x356c9b=_0x1cbc1d['mutates']?await o[_0x359f7e(0xfa)](_0x1cbc1d[_0x359f7e(0x103)],_0x1cbc1d['maxCodeLength']):{'value':await o[_0x359f7e(0x101)](_0x1cbc1d['code'],_0x1cbc1d['maxCodeLength']),'mutations':void 0x0};return{'success':!0x0,..._0x356c9b[_0x359f7e(0x121)]===void 0x0?{}:{'mutations':_0x356c9b['mutations']},'value':_0x356c9b[_0x359f7e(0x120)]};},_0x458629=_0x1cbc1d['mutates']?await s[_0x252bd5(0x117)](_0x375c22):await _0x375c22();return{'jsonrpc':'2.0','id':_0x2712ed['id'],'result':_0x458629};}default:throw Error('Method\x20not\x20implemented:\x20'+String(_0x2712ed[_0x252bd5(0x122)]));}}catch(_0x1c1e9b){return{'jsonrpc':_0x252bd5(0xff),'id':_0x2712ed['id'],'error':{'code':-0x7f5b,'message':_0x1c1e9b instanceof Error?_0x1c1e9b[_0x252bd5(0xfc)]:String(_0x1c1e9b)}};}}
|
package/package.json
CHANGED
|
@@ -1,62 +1,40 @@
|
|
|
1
1
|
# SaC Apply And Ledger
|
|
2
2
|
|
|
3
|
-
`univer sac apply
|
|
3
|
+
`univer sac apply <package.univer>` validates package-local source under `project/migrations/`, validates the package ledger, bundles pending packs, and writes workbook state plus `manifest.metadata.sac.migrationLedger` back to the same project workbook package.
|
|
4
4
|
|
|
5
|
-
By default, every successfully applied pack is also committed through workbook versioning as one local changeset. If the newest applied pack is wrong, roll back the
|
|
5
|
+
By default, every successfully applied pack is also committed through workbook versioning as one local changeset. If the newest applied pack is wrong, roll back the package with `univer reset <package.univer> --hard HEAD~1`, inspect, then fix the migration source before applying again.
|
|
6
6
|
|
|
7
|
-
Use
|
|
7
|
+
Use `--no-commit` only for compatibility or recovery workflows where SaC should write ledger metadata without creating workbook local changesets.
|
|
8
8
|
|
|
9
9
|
## Target Lifecycle
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
The package path is the target. `--target` is not supported, and `project/univer.config.ts` does not contain artifact output settings.
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
Adopted workspaces are created by `univer sac init ./model --from ./existing.univer`. They use `artifacts.mode: "adopted"` and must continue updating the original artifact recorded in `artifacts.defaultWorkbook`.
|
|
16
|
-
|
|
17
|
-
If `--target` is provided, it must still resolve to the target required by the workspace artifact mode. Do not write SaC result workbooks to `dist/`, the workspace root, or ad hoc output names.
|
|
18
|
-
|
|
19
|
-
Generated workspaces are created by `univer sac init ./model`. They use `artifacts.mode: "generated"` and must write the managed result to `artifacts/<workspace-name>.univer`, for example `./model/artifacts/model.univer`.
|
|
20
|
-
|
|
21
|
-
Adopted workspaces are created by `univer sac init ./model --from ./existing.univer`. They use `artifacts.mode: "adopted"` and must continue updating the original artifact recorded in `artifacts.defaultWorkbook`.
|
|
22
|
-
|
|
23
|
-
If `--target` is provided, it must still resolve to the target required by the workspace artifact mode. Do not write SaC result workbooks to `dist/`, the workspace root, or ad hoc output names.
|
|
24
|
-
|
|
25
|
-
If the target `.univer` artifact does not exist, apply starts from an empty logical workbook and creates the artifact. The resulting workbook should contain only sheets declared by migration source.
|
|
26
|
-
|
|
27
|
-
If the target exists, it must be managed by SaC and contain the artifact-local ledger in package manifest metadata.
|
|
28
|
-
|
|
29
|
-
The ledger is artifact-local to the required result artifact. Apply rejects any default target or `--target` path that does not match the workspace artifact mode.
|
|
13
|
+
If the package has `project/univer.config.ts` but no SaC ledger, run `univer sac rebuild <package.univer>` to establish the package-local source/workbook baseline. Apply does not infer or repair a missing ledger.
|
|
30
14
|
|
|
31
15
|
## Ledger Contract
|
|
32
16
|
|
|
33
|
-
Each applied pack writes a ledger entry with pack id, source hash, previous pack pointer,
|
|
34
|
-
|
|
35
|
-
New default apply entries also include `workbookCommit` with the local changeset `sid`, `reqId`, commit message, and mutation count. Entries created with `--no-commit` omit `workbookCommit` and report the workbook commit as skipped in command output.
|
|
17
|
+
Apply updates the project workbook package pack by pack. Each applied pack writes a ledger entry with pack id, source hash, previous pack pointer, workbook content hash, runner metadata, timestamp, and origin.
|
|
36
18
|
|
|
37
19
|
Apply fails before executing pending source when:
|
|
38
20
|
|
|
39
|
-
- the
|
|
40
|
-
- the ledger is malformed
|
|
41
|
-
- the
|
|
21
|
+
- the package project is missing
|
|
22
|
+
- the package ledger is missing or malformed
|
|
23
|
+
- the package ledger is ahead of source
|
|
42
24
|
- an already-applied pack id has a different source hash
|
|
43
|
-
-
|
|
25
|
+
- workbook content has drifted since the ledger head
|
|
44
26
|
- automatic workbook commit finds no pending workbook mutations
|
|
45
27
|
- automatic workbook commit returns more than one local changeset for a single pack
|
|
46
28
|
|
|
47
|
-
If every source pack is already ledgered with matching hashes and the
|
|
29
|
+
If every source pack is already ledgered with matching hashes and the workbook content has not drifted, apply succeeds as an up-to-date no-op.
|
|
48
30
|
|
|
49
31
|
## Verification
|
|
50
32
|
|
|
51
|
-
Apply success is not the Spreadsheet TDD completion gate. For assertion-backed SaC work, run `univer sac verify <
|
|
52
|
-
|
|
53
|
-
Use `inspect`, `pipe out`, and `view` as supplemental workbook-visible checks when they help explain or hand off the result:
|
|
33
|
+
Apply success is not the Spreadsheet TDD completion gate. For assertion-backed SaC work, run `univer sac verify <package.univer> --json` after apply and read the referenced `internal/sac/runs/<run-id>/verify-report.json`.
|
|
54
34
|
|
|
55
35
|
```bash
|
|
56
|
-
univer sac verify
|
|
57
|
-
univer inspect workbook ./model
|
|
58
|
-
univer pipe out ./model
|
|
59
|
-
univer view ./model
|
|
36
|
+
univer sac verify ./model.univer --json
|
|
37
|
+
univer inspect workbook ./model.univer
|
|
38
|
+
univer pipe out ./model.univer --range "Revenue!A1:C4" --format tsv
|
|
39
|
+
univer view ./model.univer
|
|
60
40
|
```
|
|
61
|
-
|
|
62
|
-
Do not treat successful command output as the only validation for a non-trivial workbook change.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# SaC Assertions
|
|
2
2
|
|
|
3
|
-
Use `assertions.ts` to express the workbook-visible contract for a Facade Migration Pack. `univer sac verify` loads each applied pack's assertion source, copies the target workbook into a sandbox under
|
|
3
|
+
Use `assertions.ts` to express the workbook-visible contract for a Facade Migration Pack. `univer sac verify` loads each applied pack's assertion source, copies the target workbook into a sandbox under `internal/sac/runs/<run-id>/`, reads workbook state through the Facade API, and writes `internal/sac/runs/<run-id>/verify-report.json`.
|
|
4
4
|
|
|
5
5
|
`univer sac verify` does not mutate the canonical target workbook.
|
|
6
6
|
|
|
@@ -46,14 +46,14 @@ Keep assertions deterministic and representative. Prefer stable workbook-visible
|
|
|
46
46
|
Run apply before verification when a migration is not yet applied:
|
|
47
47
|
|
|
48
48
|
```bash
|
|
49
|
-
univer sac apply <
|
|
50
|
-
univer sac verify <
|
|
49
|
+
univer sac apply <package.univer>
|
|
50
|
+
univer sac verify <package.univer> --json
|
|
51
51
|
```
|
|
52
52
|
|
|
53
53
|
The JSON summary includes status, checked and skipped pack counts, assertion counts, failure summaries, and the report path. Read the referenced report for detailed failure evidence:
|
|
54
54
|
|
|
55
55
|
```text
|
|
56
|
-
|
|
56
|
+
internal/sac/runs/<run-id>/verify-report.json
|
|
57
57
|
```
|
|
58
58
|
|
|
59
59
|
Status interpretation:
|
|
@@ -78,9 +78,9 @@ For `failed` reports, inspect each failure for:
|
|
|
78
78
|
Then decide whether the migration source is wrong or the assertion expectation is wrong. Repair the source or assertion, rerun apply when the applied artifact needs to change, then rerun:
|
|
79
79
|
|
|
80
80
|
```bash
|
|
81
|
-
univer sac verify <
|
|
81
|
+
univer sac verify <package.univer> --json
|
|
82
82
|
```
|
|
83
83
|
|
|
84
84
|
For `error` reports, repair setup first. Do not treat setup errors as proof that workbook behavior is wrong.
|
|
85
85
|
|
|
86
|
-
Apply success is not a Spreadsheet TDD completion gate. The completion gate is a relevant `univer sac verify <
|
|
86
|
+
Apply success is not a Spreadsheet TDD completion gate. The completion gate is a relevant `univer sac verify <package.univer> --json` run with status `passed`, plus the report path recorded in the handoff.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# SaC Data Assets
|
|
2
2
|
|
|
3
|
-
Migration source may import
|
|
3
|
+
Migration source may import package-local CSV and TSV files when external data makes the workbook intent easier to review.
|
|
4
4
|
|
|
5
5
|
## CSV And TSV Assets
|
|
6
6
|
|
|
@@ -14,22 +14,22 @@ migrations/
|
|
|
14
14
|
revenue.tsv
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
The TypeScript bundler treats referenced CSV and TSV assets as source inputs. They participate in the same source hash as `pack.ts`, `*.sheet.ts`, and
|
|
17
|
+
The TypeScript bundler treats referenced CSV and TSV assets as source inputs. They participate in the same source hash as `pack.ts`, `*.sheet.ts`, and package-local helper files.
|
|
18
18
|
|
|
19
19
|
## Import Boundary
|
|
20
20
|
|
|
21
|
-
SaC source must stay inside the
|
|
21
|
+
SaC source must stay inside the package `project/` realpath boundary. These inputs are allowed:
|
|
22
22
|
|
|
23
|
-
- relative TypeScript imports that resolve inside the
|
|
24
|
-
- relative CSV or TSV imports that resolve inside the
|
|
23
|
+
- relative TypeScript imports that resolve inside the package project
|
|
24
|
+
- relative CSV or TSV imports that resolve inside the package project
|
|
25
25
|
- the CLI-provided helper specifier `univer:sac/facade-migration-pack`
|
|
26
|
-
- type-only imports for module declarations exposed by
|
|
26
|
+
- type-only imports for module declarations exposed by `project/types/*.d.ts`, such as `import type { FRange } from "@univerjs/sheets/facade"`
|
|
27
27
|
|
|
28
28
|
These inputs are rejected before any workbook mutation runs:
|
|
29
29
|
|
|
30
|
-
- parent-path or symlink escapes outside the
|
|
31
|
-
- runtime package imports; SaC does not install or bundle
|
|
30
|
+
- parent-path or symlink escapes outside the package project
|
|
31
|
+
- runtime package imports; SaC does not install or bundle project dependencies
|
|
32
32
|
- runtime Node builtin imports such as `import { readFile } from "node:fs/promises"`
|
|
33
33
|
- non-literal dynamic imports
|
|
34
34
|
|
|
35
|
-
The SaC
|
|
35
|
+
The SaC project does not support external dependencies. Use `import type` only when source needs named Facade or SDK types from local `project/types/*.d.ts`; do not add runtime package imports to migration source.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# SaC Facade API
|
|
2
2
|
|
|
3
|
-
SaC help does not duplicate the full Facade API reference.
|
|
3
|
+
SaC help does not duplicate the full Facade API reference. Project-enabled packages include local `project/types/*.d.ts` files generated from the CLI runtime SDK; use them as the authoring reference for method names, overloads, enum names, and data shapes.
|
|
4
4
|
|
|
5
5
|
## Local Types
|
|
6
6
|
|
|
@@ -17,11 +17,11 @@ apply({ workbook, sheet, univerAPI }) {
|
|
|
17
17
|
- `univerAPI` is available for Facade APIs that are not sheet-local.
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
rg "class FRange|setFormula|setValues" types
|
|
21
|
-
rg "interface ICellData|enum BorderType" types
|
|
20
|
+
rg "class FRange|setFormula|setValues" project/types
|
|
21
|
+
rg "interface ICellData|enum BorderType" project/types
|
|
22
22
|
pnpm exec tsc -p tsconfig.json --pretty false
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
Use only APIs present in local `types/*.d.ts`. Do not guess Facade method names, and do not hand-write local ambient declarations or shim files for Facade or `univer:sac/*` helpers.
|
|
25
|
+
Use only APIs present in local `project/types/*.d.ts`. Do not guess Facade method names, and do not hand-write local ambient declarations or shim files for Facade or `univer:sac/*` helpers.
|
|
26
26
|
|
|
27
27
|
If a public Facade API or type is missing from the generated assets, treat it as a CLI type asset gap instead of patching the SaC project with private declarations.
|
|
@@ -14,7 +14,7 @@ A successful rebuild replaces active `migrations/` with one generated checkpoint
|
|
|
14
14
|
|
|
15
15
|
Default rebuild requires the source chain and artifact ledger to match. `--force` may discard active source history only inside the same workspace artifact boundary; it does not bypass managed-artifact validation, materialization gaps, package locks, transaction recovery, or path safety.
|
|
16
16
|
|
|
17
|
-
Rebuild recovery state is stored in
|
|
17
|
+
Rebuild recovery state is stored in `internal/sac/rebuild-recovery` and is cleaned after a successful rebuild or rollback. Agent runner evidence belongs in `internal/sac/runs/` and must not be removed by rebuild recovery cleanup.
|
|
18
18
|
|
|
19
19
|
## Related Help
|
|
20
20
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# SaC Workflow
|
|
2
2
|
|
|
3
|
-
Use SaC when the workbook should be maintained as a source project with ordered Facade Migration Packs. Use `univer run` for one-off workbook-local edits. In SaC, migrations
|
|
3
|
+
Use SaC when the workbook should be maintained as a source project with ordered Facade Migration Packs. Use `univer run` for one-off workbook-local edits. In SaC, `project/migrations/` is the source of truth and the `.univer` package is updated in place.
|
|
4
4
|
|
|
5
5
|
## Local Happy Path
|
|
6
6
|
|
|
@@ -13,49 +13,48 @@ univer config set experimental.sac true
|
|
|
13
13
|
Create an empty SaC project:
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
univer
|
|
16
|
+
univer new ./model.univer --with-project
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
Create one migration, then edit the generated source before applying it:
|
|
20
20
|
|
|
21
21
|
```bash
|
|
22
|
-
univer sac migration create "Add Revenue Model"
|
|
22
|
+
univer sac migration create "Add Revenue Model" ./model.univer
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
Write `assertions.ts` beside the migration `pack.ts` before claiming a non-trivial migration is complete. The assertions should describe workbook-visible outcomes such as sheet existence, used ranges, representative values, and formulas.
|
|
26
26
|
|
|
27
|
-
Apply the source chain to the
|
|
27
|
+
Apply the source chain to the same project workbook package:
|
|
28
28
|
|
|
29
29
|
```bash
|
|
30
|
-
univer sac apply ./model
|
|
30
|
+
univer sac apply ./model.univer
|
|
31
31
|
```
|
|
32
32
|
|
|
33
|
-
For an empty project, `univer
|
|
33
|
+
For an empty project, `univer new ./model.univer --with-project` creates `project/univer.config.ts` and `project/migrations/` inside the package. Keep `inspect`, `pipe out`, and `view` pointed at `./model.univer`.
|
|
34
34
|
|
|
35
35
|
Each successful apply creates one workbook local changeset per migration pack. To undo the newest applied migration, use:
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
|
-
univer reset ./model
|
|
38
|
+
univer reset ./model.univer --hard HEAD~1
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
Verify workbook-visible state after apply with the assertion gate:
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
univer sac verify ./model --json
|
|
44
|
+
univer sac verify ./model.univer --json
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
Read the JSON summary and the referenced
|
|
47
|
+
Read the JSON summary and the referenced `internal/sac/runs/<run-id>/verify-report.json`. If verification fails, inspect the report, repair migration source or assertions, then apply or verify again. Repeat the loop one migration at a time: create or edit migration, write assertions, apply, verify, repair, and repeat. Keep each migration focused on one durable workbook intent.
|
|
48
48
|
|
|
49
49
|
`univer inspect`, `univer pipe out`, and `univer view` are supplemental inspection tools for understanding workbook-visible state and handoff review. They are not the primary SaC Spreadsheet TDD completion gate when assertions exist.
|
|
50
50
|
|
|
51
51
|
## Project Shape
|
|
52
52
|
|
|
53
|
-
- `
|
|
54
|
-
- `types/` is managed by the current CLI and exposes the curated Facade d.ts view.
|
|
55
|
-
- `migrations/` contains timestamped migration pack directories.
|
|
56
|
-
- The
|
|
57
|
-
-
|
|
58
|
-
- `.sac/runs/` is reserved for agent runner evidence and is separate from generated workbook results.
|
|
53
|
+
- `project/univer.config.ts` declares `spreadsheet.source.migrationsDir`.
|
|
54
|
+
- `project/types/` is managed by the current CLI and exposes the curated Facade d.ts view.
|
|
55
|
+
- `project/migrations/` contains timestamped migration pack directories.
|
|
56
|
+
- The project does not contain `package.json`, `tsconfig.json`, or `node_modules`; apply prepares the shared CLI-owned toolchain as needed.
|
|
57
|
+
- `internal/sac/runs/` is reserved for agent runner evidence and is separate from generated workbook results.
|
|
59
58
|
|
|
60
59
|
## Related Help
|
|
61
60
|
|